マイクロソフトは8月21日,Internet Explorer(IE)に見つかった2つの危険なセキュリティ・ホールを明らかにした。悪用されると,ユーザーがWebページやHTMLメールを閲覧しただけで,任意のコード(プログラム)を実行させられる恐れがある。対策は「Windows Update」などからパッチを適用すること。パッチは,今までに公開されたIE用のパッチを含む累積パッチであるとともに,2つのセキュリティ・ホール以外の不具合も修正する。セキュリティ・ホールの最大深刻度は最悪の「緊急」なので,早急にパッチを適用する必要がある。

 マイクロソフトの情報によると,セキュリティ・ホールの影響を受けるのは,IE 6.0 for Windows Server 2003,IE6/6 SP1,IE 5.5 SP2,IE 5.01 SP3/SP4 for Windows 2000。ただし,米Microsoftの情報によると,セキュリティ・ホールがあるかどうかテストしたのは,これらのバージョンだけである。すなわち,テストしたバージョンすべてに今回のセキュリティ・ホールが存在する。このため,これら以外のIEでも同様にセキュリティ・ホールがあると考えられるので,「影響を受ける製品」以外のIEを使っている場合には,バージョンアップや最新のサービスパックを適用した上で,今回公開されたパッチを適用するべきである。

 今回公開されたセキュリティ・ホールは,(1)「Internet Explorer が Web サーバーから返されたオブジェクトの種類を適切に確認できない問題」,(2)「Internet Explorer がブラウザのキャッシュからファイルを取得するために使用するメソッドを悪用することにより,マイ コンピュータ ゾーンでスクリプトが実行される問題」――である。

 (1)は,Webサーバーから返される特定のHTTPレスポンスを,IEが適切にチェックしないことが原因である。この結果,HTTPレスポンスに仕込まれたコードを実行させられてしまう。つまり,細工が施されたWebページを閲覧するだけで,任意のコードを実行させられる恐れがある。HTMLメール中に仕込まれたリンクによって,細工が施されたWebページへ誘導される可能性もある。

 (2)は,クロスドメインのセキュリティ・モデルをバイパスできるセキュリティ・ホールである。クロスドメインのセキュリティ・モデルとは,IE上に異なるサイトのページ(ウインドウ)を表示している場合,それぞれを異なる“ドメイン”として認識して,片方のページからもう片方のページが表示している情報にアクセスできないようにするセキュリティ・モデルである。

 ユーザーのローカル・ファイル・システム(ユーザーが使用しているパソコンのシステム)も異なるドメインと認識されるため,ブラウザで表示させているページが,ローカル・ファイル・システムの情報にアクセスすることはできない。しかし,クロスドメインのセキュリティ・モデルを破られると,インターネット上のWebページから,ローカルのファイルにアクセスできてしまう。つまり,パソコン内のファイルを読み取ることが可能となる。ローカルに存在するプログラム(コマンド)を実行することもできる。ただし,プログラムに任意の引数を渡すことはできない。

 セキュリティ・ホールの深刻度は,(1)については4段階中最悪(1番目)の「緊急」,(2)は上から2番目の「重要」に設定されている。ただし,IE 6.0 for Windows Server 2003はデフォルトでは影響を受けないので,上から3番目(下から2番目)の「警告」に設定されている。IE 6.0 for Windows Server 2003は,他のIEと比較してデフォルトでセキュアな設定になっているためである。

 対策はパッチを適用すること。「Windows Update」セキュリティ情報のページからパッチを適用できる。

【9月9日追記】マイクロソフトは9月9日,同社が公開したパッチでは,(1)「Internet Explorer が Web サーバー から返されたオブジェクトの種類を適切に確認できない問題」を修正できないことを明らかにした。同社は,新しいパッチを開発中。新しいパッチが公開されるまでの回避策は,同社が公開する「よく寄せられる質問」に記載されている。具体的には,信頼できるサイト以外からのActiveX コントロールは実行しないこと。【以上,9月9日追記】

 なお,今回のパッチを適用すれば,上記2つのセキュリティ・ホールだけではなく,他のセキュリティ・ホールも修正できる。まず,「BR549.DLL」というActiveXコントロールにKill Bitを設定して,このコントロールを利用できないようにする。このコントロールにはバッファ・オーバーフローのセキュリティ・ホールが存在するためだ。Kill Bitとは,IE経由で特定のActiveXコントロールが呼び出されることを防ぐために,レジストリに設定する固有の値のこと。

 BR549.DLLは「Windows Reporting Tool」のActiveXコントロールであるが,Windows Reporting Toolは現在ではサポートされていない。しかし,Kill Bitを設定しないと,まずBR549.DLLをWebページなどから送り込まれて,その後BR549.DLLを悪用した攻撃を受ける恐れがある。BR549.DLLのKill Bitを設定することで,この攻撃を防げる。

 また,今回のパッチでは,IEにおけるHTMLファイルのレンダリング(整形)に関する不具合を修正する。IEには,INPUT TYPEタグを適切にレンダリングできない不具合が存在するため,細工が施されたWebページやHTMLメールを閲覧すると,IEあるいはOutlook Expressが強制終了してしまう。

 加えて,「MS03-020」で既に公開されているものの,修正が不十分だったセキュリティ・ホールを解消できる。

 これらはいずれもセキュリティ・ホールと呼べるものである。特に,BR549.DLLのバッファ・オーバーフローについては,米Microsoftの情報では「緊急」(IE 6.0 for Windows Server 2003では「重要」)に位置付けている。なぜこれらを含めず,「今回のパッチは新たに2つの問題を排除するもの」としているのかは不明である。

 今回公開されたパッチは,以上のセキュリティ・ホールを修正するパッチだけではなく,今まで公開されたIE用パッチを含む累積パッチである。過去に公開されたIEの累積パッチ同様,今回のパッチを適用すると,HTMLヘルプ機能のいくつかが使用できなくなる。具体的には,window.showHelp() が機能しなくなる。「マイクロソフト サポート技術情報 811630」から最新の「HTML ヘルプ コントロール (英語版) 」をインストールすれば,パッチ適用後も HTMLヘルプ機能を使用できる。

◎参考資料
「MS03-032 Cumulative Patch for Internet Explorer (822925)」(米Microsoft,英語)
「MS03-032: Internet Explorer 用の累積的な修正プログラム (822925) 」に関する要約情報(マイクロソフト)
絵でみるセキュリティ情報「MS03-032 : Internet Explorer の重要な更新」(マイクロソフト)
「Internet Explorer 用の累積的な修正プログラム (822925) (MS03-032)」(マイクロソフト)

(勝村 幸博=IT Pro)