マイクロソフトが、月例のセキュリティ更新を7月11日未明に公開した。 今月は、緊急3件, 重要2件、警告1件の計6件のセキュリティ情報が公開された。
ただし、今月は最もインパクトが大きいのは緊急の3件ではなく、「重要」とされている中の1件、SDL(セキュリティ開発ライフサイクル)にもとづいて開発されたはずのPublisher 2007に発見された脆弱性ではないかと思われる。
では、さっそく、パッチの提供が開始された脆弱性の内容を見ていこう。今月は6件すべてについて内容を確認する。
● MS07-036:Microsoft Excelの脆弱性により、リモートでコードが実行される
・計算エラーの脆弱性 - CVE-2007-1756
・ワークシートの無効なメモリの脆弱性 - CVE-2007-3029
・ブックのメモリ破損の脆弱性 - CVE-2007-3030
MS07-036では、上記の3つの脆弱性を修正している。この脆弱性を利用して作った不正なプログラムを実行してしまった場合、いずれもExcelを実行しているユーザーの権限で任意のプログラムが実行させられる危険性がある。
この3つの脆弱性のうち、「計算エラーの脆弱性」と「ブックのメモリ破損の脆弱性」については、Excel 2000で深刻度が「緊急」、それ以外のバージョンでは深刻度が「重要」の脆弱性となっていて、一般には知られていなかった脆弱性だ。
計算エラーの脆弱性は、プログラムがExcelデータファイルを読み込んだ際に、ファイル中のバージョン情報が不正な形式だった場合にメモリ破壊を起こすというものだ。ブックのメモリ破損の脆弱性も同様に、ファイルにワークシートの起動が明示されている場合にメモリ破壊を起こす可能性がある。
また、ワークシートの無効なメモリの脆弱性については、Excel 2003/2002が対象で深刻度は「重要」の脆弱性で、マイクロソフトによれば、すでに一般にExcelの不正な動作として知られていた脆弱性だ。
この脆弱性も、プログラムがExcelデータファイルを読み込んだ際に、アクティブワークシートの数の情報が不正だった場合にメモリ破壊を起こすというものだ。
ブックのメモリ破損の脆弱性に関しては詳細は不明だが(ワークシートの起動が明示されている、というのはauto_openなどで起動時にマクロが動いてワークシートを操作する、ということなのだろうか?)、残りの2つに関しては、比較的攻撃方法が類推しやすい脆弱性であるように思える。
日本のマイクロソフトのセキュリティチームのブログでも(一般論としてだが)指摘されているように、最近では「セキュリティ情報の公開と同時または数日以内には、何らかの検証コードや技術情報が公開される傾向」が見受けられる。この手の脆弱性が発覚した場合、できるだけ早めに対処しておくべきだろう。
■URL
「日本のセキュリティチームのBlog」の該当記事
http://www.exconn.net/Blogs/team02/archive/2007/07/11/16994.aspx
● MS07-037:Publisher 2007の脆弱性により、リモートでコードが実行される
MS07-037では、「Publisher 2007」に関する1件の脆弱性を修正する。
・Publisherの無効なメモリの参照の脆弱性 - CVE-2007-1754
この脆弱性は、.pub形式のファイルをディスクからメモリにデータを転送する前処理段階で、正しくメモリ内容をクリアできていないために、不正なファイルの読み込みによって任意のプログラムを実行できてしまうというもの。そのため、バックドアなどを作ってリモートからの操作が可能となる。
管理者権限を乗っ取ることはできないためか、深刻度は「緊急」ではなく、一段低い「重要」となっている。ただ、この脆弱性は「Publisherの不正なメモリ参照脆弱性」として既に一般に知られている脆弱性であり、できる限り早期に更新プログラムを適用すべきだろう。
この脆弱性をマイクロソフトに報告したのは米eEyeで、そちらのサイトには既にマイクロソフトより詳しい脆弱性の技術情報が公開されている。
それによると、この脆弱性はPublisher 2007のPUBCONV.DLLに存在するという。PUBCONV.DLLは、Publisher形式の以前のバージョンのファイルを、Publisher 2007の形式に変換するためのライブラリだが、想定外の内容のPublisher 98形式を読み込んだときに、PUBCONV.DLLが任意のファンクションポインタを呼び出してしまうという、実装上の問題が存在している。
この問題を利用すると、悪意の攻撃者が不正なPublisher 98形式のファイルを送りつけ、ユーザーにそれを実行させることで、悪意の攻撃者のプログラムをPC上で実行することが可能になってしまう。
マイクロソフトはWindows Vistaと同様に、Office 2007についても初期の段階からセキュリティに考慮したSDL(セキュリティ開発ライフサイクル)に基づいて開発した製品であるとして、その脆弱性への堅牢さを売りにしていた。しかし、2月下旬という非常に早い段階で、この脆弱性の存在が明らかになってしまった。
SDL開発ソフトでは、ほかにもWindows VistaにWindowsアニメーションカーソルの脆弱性(CVE-2007-0038)が見つかっているが、今回の脆弱性はそれ以上にインパクトがあると言えるだろう。というのも、Vistaのアニメーションカーソルの問題はWindows NT時代に作られたものの見落としであったのに対して、こちらはSDLが適用されているはずのPublisher 2007で新たに追加された実装部分の問題だからだ。
SDLと言えども、それさえ行なえばいいという魔法や特効薬ではない。セキュリティ上の脅威に対抗するにはこれまで同様、製品テストを念入りに行ない、脆弱性が見つかったらこまめに対策という地道な対応が必要であることを示す例だと言えるだろう。
● MS07-038:Windows Vistaの脆弱性により、情報漏えいが起こる
Windows Vistaで、ネットワークアドレス変換(NAT)を越えてIPv4によりカプセル化されたIPv6パケットを送信するための技術「Teredo」の脆弱性により、情報漏洩が起こるという脆弱性だ。対象は64ビットバージョンを含むWindows Vistaで、深刻度は「警告」。
この脆弱性に関しては、前述のマイクロソフトのセキュリティチームのブログでわかりやすい解説がされている。それによるとこの脆弱性は、Teredoを外部からネットワークを通じて悪用することはできない。メールやその他の方法で、内部側でTeredoが使われるようなIPv6の通信が発生すると、攻撃者と対象PCの間にIPv6トンネルが確立されてしまうことがあり、その結果として、管理者や利用者の予期しない、NATを通過可能なトンネルが形成される可能性があり、それに対処するためのセキュリティ更新である、ということだ。
● MS07-039:Active Directoryの脆弱性により、リモートでコードが実行される
・Active Directoryのリモートでコードが実行される脆弱性 - CVE-2007-0040
・Active Directoryのサービス拒否の脆弱性 - CVE-2007-3028
MS07-039は、上記の2つの脆弱性への対応を含むセキュリティ更新だ。
Active Directoryのリモートでコードが実行される脆弱性は、Windows 2000 Server Serviceで深刻度「緊急」、64ビット版を含む Windows Server 2003で深刻度「重要」。また、Active Directoryのサービス拒否の脆弱性の対象はWindows 2000 SP4のみで、深刻度「重要」となっている。どちらも、これまで一般には存在も知られていなかった脆弱性だ。
いずれの脆弱性も、原因はLDAPサービスの問題で、このサービスがリクエストをクライアントPCから受ける際に、このリクエストに含まれる変換可能な属性の数のチェックが十分ではなく、不正なリクエストの内容によってメモリ破壊、サービス拒否、および不正なプログラムが実行される可能性があるということだ。
これらの脆弱性は、これまで一般には存在も知られていなかった脆弱性であり、情報も類推しにくい。また、Active DirectoryサーバーとなっているマシンのOSでのみ影響がある問題であり、Active Directoryは基本的にはイントラネット内で使われるというサーバーの特性から、基本的にはインターネットから攻撃を受ける可能性はそれほどなさそうに思える。
ただし、やはり、サーバーの脆弱性であり、万一、悪意のプログラムに攻撃された場合のリスクを考えると、(当然そうしているだろうが)サーバー管理者はセキュリティ更新プログラムで脆弱性に対応しておくべきだろう。
● MS07-040:.NET Frameworkの脆弱性により、リモートでコードが実行される
・.NET PEローダーの脆弱性 - CVE-2007-0041
・ ASP.NET Nullバイトの強制終了の脆弱性 - CVE-2007-0042
・.NET JITのコンパイラの脆弱性 - CVE-2007-0043
MS07-040では、上記の3つの脆弱性に対応している。このうち、.NET PEローダーの脆弱性と.NET JITのコンパイラの脆弱性は最大深刻度が緊急となっている。
.NET PEローダーの脆弱性は、リモートコード実行可能な脆弱性で、Windows XP/2000上の.NET Framework 2.0/1.1/1.0で深刻度「緊急」とされている。この脆弱性は、.NET Framework向けに作られた実行ファイルを読み込んで展開する際に、未チェックの領域があり、実行しているユーザーの権限で任意のプログラムを実行されてしまう可能性があるという。
.NET JITのコンパイラの脆弱性もリモートコードが実行可能な脆弱性で、Windows XP/2000上の.NET Framework 2.0で深刻度「緊急」とされている。この脆弱性は、Just In Timeコンパイラ、つまり、中間言語で書かれたプログラムを実行可能な形式のバイナリにコンパイルするプログラムの問題で、中間言語で書かれたプログラムに不正な値があると、やはり実行しているユーザーの権限で任意のプログラムを実行されてしまう可能性があるようだ。
ただし、これらの脆弱性を悪用するには、何らかの形で実行ファイル形式の悪意のファイルを、ターゲットとなるユーザーに実行させる必要が出てくる。任意の実行ファイルを他のユーザーのPCで実行させる手法は、悪意のユーザーにとってがあまり使い勝手がよいとは思えず、むしろソーシャル的な方法を使ったほうが良いように思える。
残った1つの「ASP.NET Nullバイトの強制終了の脆弱性」は、Windows XP/2000上の.NET Framework 2.0/1.1/1.0で深刻度「重要」とされる、情報漏洩の可能性のある脆弱性だ。
ASP.NETが入力として渡されたURLパスを正しく検証せず、結果として、悪意のユーザーが、無効なURLを送信することにより、ASP.NETのセキュリティ機能を無視し、構成ファイルへの許可されないアクセスを取得する可能性がある。
本質的にこの脆弱性は、これ単独で直接脅威となるものではないが、他の脆弱性を利用した攻撃の補助手段としてこの脆弱性が狙われる可能性はあり、留意しておくべき脆弱性情報だろう。
たとえば、本来入手できないファイルの情報(たとえばスクリプト内にハードコーディングされたパスワード情報など)を不正に入手し、それを悪用してPCを乗っ取りに使うなど、不正なアクセスの補助手段として、この脆弱性を悪用したプログラムが作られる可能性などが考えられる。
● MS07-041:Microsoft IISの脆弱性により、リモートでコードが実行される
|
IISがインストールされているかは、「プログラムの追加と削除」から「Windowsコンポーネントの追加と削除」で確認できる
|
IISは、マイクロソフトが無償で提供しているWebサーバーで、サーバーOSのWindows Server 2003やWindows 2000 Serverだけでなく、Windows Vista/XPなどのクライアントOS用にも提供されている。ただし、今回のMS07-041で修正される脆弱性は、Windows XP SP2上のIIS 5.1でのみ起こりうるものだ。
・IISメモリのリクエストの脆弱性 - CVE-2005-4360
脆弱性の内容だが、IIS中の「inetinfo.exe」というプログラムにパラメータの未チェック部分があり、クライアントがWebサーバーにリクエストを送る際に、不正なデータを紛れ込ませることで、任意のプログラムの実行が可能であるというものだ。
実はこの脆弱性は、2005年末頃から「IISでDoSを引き起こすことができる脆弱性」として知られていた情報だ。DoSを引き起こすのは非常に簡単で、たとえばブラウザから、
「http://foo.bar/_vti_bin/.dll/*\~0」
といったアドレスでアクセスし、更新ボタンを4回押すと、サーバーを止めることができることが知られている。サーバー側でも、リクエストURLの最後の部分が「~0」「~1」となるようなアクセスがされないように、途中でなんらかの仕掛けを置いてブロックしなければならないことが知られていた。
これが今回、実際にはDoSではなく任意のプログラム実行が可能な脆弱性で、前述の例などはメモリからあふれたデータが正しいプログラムの形をしていないため、ハングアップしただけであるということがわかったのだ。
Windows XPは基本的にクライアントOSであり、WebサーバーのIISが動いているケースはそう多くないと考えられる。ただし念のため、IISが動いていないかをユーザーは確認しておいたほうがいいかもしれない。
IISがOSにインストールされているかどうかは、コントロールパネルの「プログラムの追加と削除」から「Windowsコンポーネントの追加と削除」で確認できる。Windowsコンポーネントの一覧で「インターネット インフォメーション サービス(IIS)」にチェックが入っている場合は、IISがインストールされている。
関連情報
■URL
2007年7月のマイクロソフトセキュリティ情報
http://www.microsoft.com/japan/technet/security/bulletin/ms07-jul.mspx
マイクロソフトセキュリティ情報「MS07-036」
http://www.microsoft.com/japan/technet/security/bulletin/MS07-036.mspx
マイクロソフトセキュリティ情報「MS07-037」
http://www.microsoft.com/japan/technet/security/bulletin/MS07-037.mspx
マイクロソフトセキュリティ情報「MS07-038」
http://www.microsoft.com/japan/technet/security/bulletin/MS07-038.mspx
マイクロソフトセキュリティ情報「MS07-039」
http://www.microsoft.com/japan/technet/security/bulletin/MS07-039.mspx
マイクロソフトセキュリティ情報「MS07-040」
http://www.microsoft.com/japan/technet/security/bulletin/MS07-040.mspx
マイクロソフトセキュリティ情報「MS07-041」
http://www.microsoft.com/japan/technet/security/bulletin/MS07-041.mspx
■関連記事
・ マイクロソフト、7月の月例パッチ6件を公開(2007/07/11)
( 大和 哲 )
2007/07/12 16:49
- ページの先頭へ-
|