Symantec Security Response Weblog
The Trojan.Hydraq Incident: Analysis of the Aurora 0-Day Exploit」より
January 21,2010 Posted by Andrea Lelli

 最近のニュースでご存じの通り、攻撃の足がかりとして「Internet Explorer」(IE)のセキュリティ・ホールを突くゼロディ・エクスプロイトを悪用する大規模な攻撃が広まっている。このエクスプロイトには、「Aurora Exploit(オーロラ・エクスプロイト)」という名前が付けられた。問題の攻撃用コードは既に流出しており、セキュリティ検証ツール「Metasploit Framework」にも追加済みである(関連記事:「オーロラ攻撃」の詳細/Googleなどを狙う攻撃コードが流出、McAfeeが警戒を呼びかけ)。

 同エクスプロイトの目的は、「Trojan.Hydraq」という名前で知られる悪質なペイロードを配布することだ。そしてこのペイロードには、感染パソコンから情報を盗んで攻撃者に送るという主目的がある。

 攻撃コードは、IEの削除済みオブジェクト処理プロセスに存在するセキュリティ・ホールを突くという、既知の手口を使う。エクスプロイト単体としての最終目標は、削除されてしまったオブジェクトにアクセスすることだ。削除済みオブジェクトにアクセスできれば、攻撃者は悪質なコードを仕込んだ自分の管理下にあるメモリー領域への参照が可能となる。

 当社(米シマンテック)は、このエクスプロイトを阻止する侵入防止システム(IPS)用シグネチャ「HTTP MSIE Memory Corruption Code Exec(23599)」を作ってリリースした。それ以降、同エクスプロイトによる実際の攻撃行為は毎日増える一方だ。

 我々が調査したところ、現在、エクスプロイト・コードは中国や韓国、インド、ポーランドなどの国々でホスティングされており、今後の増加が予想される。

 それではこのエクスプロイトを詳しく説明しよう。

 攻撃は、以下に示したJavaScriptベースの簡単な復号スクリプトで幕を開ける。

 このスクリプトは自分自身を復号するだけで、後の処理は復号後のスクリプトに任せる(復号対象の暗号化データは変数bに入っている)。以下に復号済みスクリプトを掲載しておく。

 一般的なヒープ・スプレイは、シェルコードやNOP命令に類するデータを挿入する。

 このスクリプトを詳しく見ると、最初にシェルコードの設定と暗号化バイト列の復号を行っている。その結果、復号で以下のスクリプトが得られる。

 これがヒープ・スプレイ処理の中心部分であり、意味のない命令(クラッシュも引き起こさない命令)で構成された大量データをまとめてメモリーに書き込み、その後ろに悪質なシェルコードを追加する。典型的なヒープ・スプレイの手口であり、目新しいことは何もない。