Internet Explorerの全てのバージョンを利用するゼロデイ脆弱性
![](https://documents.trendmicro.com/assets/dumpimages/30102012115948.jpeg)
マイクロソフトは、2012年9月21日(米国時間)、定例外セキュリティ情報の「MS12-063」を公開しました。しかもこの更新プログラムは、Internet Explorer(IE)の全てのバージョン(IE6、IE7、IE8およびIE9)へ影響を及ぼす複数の脆弱性を修正する目的でリリースされようです。本稿では、「ゼロデイ脆弱性」として認識されたこの脆弱性について、その詳細を確認しながら、実際、どのような影響が生じたかについて見ていきます。
「MS12-063」は、2012年9月21日(米国時間)に定例外でマイクロソフトから公開されたセキュリティ情報のことで、「Internet Explorer(IE)でサポート対象となっている全てのバージョン(IE9以下)の複数の脆弱性を利用する攻撃」に対処する目的でリリースされました。マイクロソフトでは、その「深刻度」を「緊急」と位置づけています。IEに存在するこれらの脆弱性は、最近その利用による感染事例が確認され、なかでも、「execCommand の解放後使用の脆弱性- CVE-2012-4969」という脆弱性は、不正リモートユーザによる攻撃で不正コード実行を引き起させることから、「最も深刻な被害をもたらす脆弱性の1つ」とも見なされています。しかも標的型攻撃では、この脆弱性利用により、標的型攻撃で使用される「PlugX」という「Remote Access Tool(RAT)」がダウンロードされることも確認されています。
今回の脆弱性利用が発生した理由は何でしょうか。
今回の定例外セキュリティ情報がリリースされるまでの間、一連の脆弱性に対して未修正のままのIEは、バージョン6から9まで全てのバージョンにおいて「改ざんされたWebサイトを閲覧した際に脆弱性が利用されてしまう」という状態となっていました。サイバー犯罪たちがこの状態につけ込み、未修正のままのIEを介して脆弱性を利用し、ユーザと同じ権限を取得しようとしたことが、今回ような脅威が発生した理由とみられています。実際、「StatCounter」も示しているとおり、IEの使用者は、全世界のインターネットユーザの30%以上にも及んでおり、この統計からも、今回の脅威では、これだけの規模のユーザが危険にさらされたと言えることもできます。
今回の脆弱性における「Use After Free(解放後使用)」とは、どのような意味ですか。
「解放後使用」とは、オブジェクトの削除等により「解放されたメモリが参照されるエラー」のことを指し、これにより、プログラムの強制終了や、予期しない値の使用、コードの実行等が発生することになります。
攻撃者は、IE上の脆弱性をどのように利用しますか。
攻撃者は、IE上の脆弱性利用を確実にするため、複数のコンポーネントを駆使します。これらのコンポーネントは、不正なHTMLファイル、不正なSWFファイル、さらに実際に不正活動を実行する不正なEXEファイルから構成されています。
- まず、改ざんされたWebサイトをユーザが閲覧することにより、"exploit.html" という不正なHTMLファイル(「HTML_EXPDROP.II」として検出)が攻撃の発端となります。これにより、閲覧されたWebページ上やそのドキュメント内に画像要素を配列化した複数のインスタンスが作成されます。これらは全て、src属性の値が "a" に設定され、さらにそれらの値は、ヒープメモリ上に保存されます。ヒープ領域とは、事前に確保されたメモリ領域のことで、一般的には、プログラムが不定量のデータを保存する際に使用されます。
- そして「HTML_EXPDROP.II」は、"Moh2010.swf" という不正なSWFファイルを読み込みます。この不正ファイルは、「SWF_DROPPR.II」や、「SWF_DROPPR.IJ」、「SWF_DROPPR.IK」、「SWF_DROPPR.IL」などとして検出されます。
図1: "exploit.html"のコード
- "Moh2010.swf" が読み込まれると、この不正なSWFファイルは、さらにiframeを読み込み、これにより、"protect.html" へとリダイレクトされます。この不正なHTMLファイルは、「HTML_EXPDROP.II」として検出されます。
- そしてこの "protect.html" が脆弱性を利用することにより、以下に述べるような一連のイベントが発生します。
- 「document.execCommand(“selectAll”)」が実行され、「"onselect=’TestArray()’”」という "selectAll" のイベントが生じます。そしてヒープメモリ上に「CmshtmlEd」というオブジェクトが作成されます。
図2: 「SubtleArr()」という機能が読み込まれる
図3:「SubtleArr()」機能のコンテンツ
- そして「TestArray() 」という機能により、「document.write("L") 」という機能が呼び出され、HTMLファイルが書き換えられます。この書き換えにより、作成された「CmshtmlEd 」というオブジェクトのヒープメモリが「解放」されます。(ここが、いわゆる「解放後使用の脆弱性」の「解放」の部分に該当します)。
図4:ハイライトされた部分が「document.write("L")」に該当
- 以下の図5で「parent.jifud[L].src = …」とハイライトされた部分のメソッドから、オブジェクト「CmshtmlEd」の解放後ヒープメモリへの上書きが100回も実行されていることが分かります。
図5:ハイライトされた箇所のコードは、偽装で解放されたヒープメモリを示しています。
- 「CMshtmlEd::Exec」というメソッドにより、オブジェクト「CmshtmlEd」の解放後ヒープメモリへのアクセスが試みられます。このメソッドにより、例外的なエラーが発生し、それによりさらに、任意のコード実行が発生することになります(ここが、いわゆる「解放後使用の脆弱性」の「使用」の部分に該当します)。
- "Moh2010.swf" には、ヒープスプレーコード(シェルコード)が含まれており、これは既にメモリ上にも読み込まれています。そして「解放後使用」の例外エラーが発生すると、このシェルコードが実行され、これにより、「BKDR_POISON.BMN」として検出される以下のファイルがダウンロードされ実行されることになります。
ohttp://<省略>.<省略>.104.149/public/help/111.exe
今回の脆弱性利用は、IEのバージョン10にも影響を及ぼしますか。
今回の脆弱性は、リリース予定のIE10には、関係はありません。なお、このゼロデイ脆弱性から間もなくして、マイクロソフトでは、IE10の開発者バージョンをダウンロードしたユーザ向けにセキュリティアップデートをリリースしています。「Microsoft Security Advisory (2755801)」 がそれに該当し、IE10のAdobe Flash Playerに存在する脆弱性に対処し、Windows
8 およびWindows Server 2012の全てのバージョンに対応しています。
今回の脆弱性は、他の攻撃でも利用されていますか。
この脆弱性は、RAT「PlugX」を作成する標的型攻撃でも利用されています。この種の標的型攻撃は、主に政府系機関や主要産業の企業等をターゲットにした攻撃としても知られています。
脆弱性が未修正のままのコンピュータを使用すると、どのような影響が生じますか。
一般的に脆弱性が利用されると、マルウェアの作成やダウンロードが攻撃者により行なわれ、そのマルウェアによって、さらに危険なマルウェアの感染被害が、そういった脆弱性があるコンピュータや、未修正のままのコンピュータへともたらされることになります。また、修正を実施して更新されたコンピュータの場合でも必ずしも安全とはいえず、いわゆる「ゼロデイ脆弱性を介した攻撃」にさらされる可能性があります。ゼロデイ脆弱性を利用した攻撃は、該当のソフトウェアベンダから修正パッチ等が提供されていない脆弱性がターゲットにされるため、その分、通常の脆弱性利用の攻撃をよりも危険であるといえます。この場合、該当のソフトウェアベンダが、修正ツールやセキュリティアップデートなどの対応策を提供しないかぎり、ユーザは、無防備のままで脆弱性利用の脅威にさらされることになります。
今回のようなゼロデイ脆弱性からは、どのようにして身を守ることができますか。
なお、今回のようなブラウザを標的にして脆弱性利用に関しては、適切な修正プログラムがリリースされるまでの間、「ウイルスバスター クラウド」の「ブラウザガード」機能などを使用することで、そのような脆弱性利用を防御することが可能です。
トレンドマイクロ製品は、今回の脅威からユーザを守ることができますか。