COUNTERSince June 16, 2000
STUDIO KAMADAJapanese to English by Excite
戻る | サイトマップ | ホーム
Windows+IEにおけるプログラム強制実行の実験と対策(その2)2002-08-23(Fri) 21:25

●更新履歴
2002年5月17日 公開
2002年5月17日 解説を追加
2002年5月24日 関連リンクにマイクロソフト セキュリティ情報 MS02-023 について(マイクロソフト)を追加
2002年8月23日 修正プログラムが公開されたのでその情報を追加

●概要
 Windows 98/NT/2000上のIE5.5SP2には、「アクティブスクリプトが有効になっている状態で悪意のあるウェブページを表示すると、ユーザのハードディスクの中にある名前を知られている任意の実行可能ファイルがユーザの許可なく実行される可能性がある」というセキュリティホールがあります。

 5月17日現在で最新の「IEの累積的な修正プログラム(Q321232)」は、このセキュリティホールに対して効果がありません(IEの累積的な修正プログラムは多数のセキュリティホールを修正するものなので、このセキュリティホールに対して効果がなくてもインストールするべきです)。
 2002年8月23日、このセキュリティホールを塞ぐことができる「MS02-047:Internet Explorer 用の累積的な修正プログラム (Q323759)」が公開されました。August 2002, Cumulative Patch for Internet Explorer (Q323759)(Microsoft)で言語とプラットフォームに合った修正プログラムをダウンロードおよびインストールすることで、このセキュリティホールを塞ぐことができます。

 なお、実行可能ファイルにパラメータを渡す手段がありませんので、任意の実行可能ファイルを実行できるといっても、いきなりハードディスクをフォーマットするようなことはできないと思います(絶対にできないという保証もありませんが)。

●動作条件
 次の環境で動作を確認しました。
  Windows98SE+IE5.5SP2(IEの累積的な修正プログラム(Q321232)を適用済み) … プログラムが実行される

  Windows98SE+IE5.5SP2(IEの累積的な修正プログラム(Q323759)を適用済み) … プログラムは実行されない

●解説
 IEのメニューで「編集」→「このページの検索」を選択したときに表示される検索ダイアログは、JavaScriptで記述されています。この検索ダイアログは、dialogArgumentsプロパティを介して親ウインドウのdocumentオブジェクトを含むパラメータを受け取り、検索を実行しています。
 検索ダイアログの仲間で、「ドキュメントの分析」というダイアログがあります。この分析ダイアログは、検索ダイアログと同様にdialogArgumentsプロパティを介して親ウインドウのdocumentオブジェクトを含むパラメータを受け取り、それを分析して結果を表示します。
 分析ダイアログには、「linkタグのhrefプロパティの内容をダイアログに表示するときに、エスケープ処理をせずにinsertAdjacentHTMLメソッドを使ってhrefプロパティの内容を直接ダイアログのHTMLソースに結合している」という、クロスサイトスクリプティングの脆弱性があります。すなわち、linkタグのhrefプロパティに悪意のあるHTMLソースを埋め込んだdocumentオブジェクトを含むパラメータを渡すことで、分析ダイアログにそれを表示させることができるのです。
 objectタグはプログラムをロードして実行するものですが、ローカルディスクにあるファイルのファイル名を指定することで任意のプログラムを実行することもできます。すなわち、linkタグのhrefプロパティにobjectタグを埋め込んでおくことで、分析ダイアログにプログラムを実行させることができるということになります。ただし、objectタグで任意のプログラムを実行するには「未署名の ActiveX コントロールのダウンロード」が有効になっている必要があります。ところが、分析ダイアログはマイコンピュータ・ゾーンで表示されるので、マイコンピュータ・ゾーンの「未署名の ActiveX コントロールのダウンロード」が有効になっていれば分析ダイアログにプログラムを実行させることができてしまいます。
 showModalDialogメソッドおよびshowModelessDialogメソッドはダイアログを表示するためのものですが、これらはdialogArgumentsプロパティに渡すオブジェクトを任意に指定することができます。linkタグのhrefプロパティにobjectタグを埋め込んだダミーのdocumentオブジェクトを作り、showModalDialogメソッドまたはshowModelessDialogメソッドを使って分析ダイアログを表示することで、任意のプログラムを実行することができるというわけです。
 なお、showModalDialogメソッドまたはshowModelessDialogメソッドで表示したダイアログは一度表示されてしまうと親ウインドウから操作することができなくなるため、ユーザが手動でクローズする必要があります。

  この実験のページのソースを表示する
    view-source:http://hpcgi2.nifty.com/m_kamada/ietest8.cgi
  分析ダイアログのソースを表示する
    view-source:http://hpcgi2.nifty.com/m_kamada/getFile.cgi?fName=res://shdoclc.dll/analyze.dlg

●実験
 実在する*.EXEファイル名を入力して「実行」ボタンを押してください。
 分析ダイアログが表示されてしまうので、手動でクローズしてください。
 ファイル名の代わりに「電卓」を入力すると、電卓の起動を試みます。


●実験の副作用について
 この実験でプログラムが起動した場合は、起動したプログラムの情報が次のレジストリに残ってしまいます(Windows98SE+IE5.5SP2で確認)。

  HKEY_LOCAL_MACHINE\Software\Microsoft\Code Store Database\Distribution Units\{11111111-1111-1111-1111-111111111111}

 これは放置しても害はありませんが、無駄な情報が残っていることには違いないので、気になる場合は次の手順で削除してください。

  「インターネットオプション」→「全般」→「インターネット一時ファイル」→「設定」→「オブジェクトの表示」を選択する。
  「プログラム ファイル」が「{11111111-1111-1111-1111-111111111111}」となっているものを削除する。

 間違って関係のないものを削除してしまわないように十分に注意してください。また、「十分な情報がない…」というダイアログが出ますが、もともと十分な情報は記録されていないので問題ありません。

●対策
 「MS02-047:Internet Explorer 用の累積的な修正プログラム (Q323759)」をインストールする。

 MS02-047 に関する情報(Microsoft)


●関連リンク
 MS02-047 に関する情報(Microsoft、8月23日)
 Internet Explorer 用の累積的な修正プログラム (Q323759) (MS02-047)(Microsoft、8月23日)
 August 2002, Cumulative Patch for Internet Explorer (Q323759)(Microsoft、8月22日)
 マイクロソフトがIE用累積パッチを公開、Gopher問題もようやく修正へ(ZDNetエンタープライズ、8月23日)
 マイクロソフト、IEの累積的修正プログラムを提供(impress INTERNET Watch、8月23日)

 GreyMagic Security Advisory Appendix GM#001-AX(GreyMagic)
 2002 年 5 月 15 日 Internet Explorer 用の累積的な修正プログラム (Q321232) (MS02-023)(マイクロソフト)
 マイクロソフト セキュリティ情報 MS02-023 について(マイクロソフト)

●他の実験のページ
 Opera 6.0 Beta 1におけるディレクトリ情報漏洩の実験
 Opera 6.0 Beta 1におけるCookie情報漏洩の実験
 Windows+IEにおけるローカルファイル内容漏洩の実験
 Windows+IEにおけるローカルファイル内容漏洩の実験(その2)
 Windows+IEにおけるCookie情報漏洩の実験
 Windows+IEにおけるスクリプト強制実行の実験
 Windows+IEにおけるローカルファイル内容漏洩の実験(その3)
 Windows+IEにおけるプログラムの実行の実験
 Windows+IEにおけるプログラム強制実行の実験と対策
 Netscape 6とMozillaにおけるローカルディスクの内容の漏洩の実験
 Windows+IEにおけるプログラム強制実行の実験と対策(その2)
 Windows+IEにおけるプログラム強制実行の実験と対策(その3)
 Windows+IEにおけるローカルファイル内容漏洩の実験(その4)
 Windows+IEにおけるローカルファイル内容漏洩の実験(その5)

 日記に戻る
戻る | サイトマップ | ホーム
E-mail: m_kamada at nifty dot comMirrorCopyright (C) 1999-2004 M.Kamada All Rights Reserved.