IE9から11までを狙った新しいゼロデイ攻撃が標的型攻撃にて発見される

本コンテンツは、2014年4月26日(米国時間)にFireEye, Inc.のブログにて公開された内容の翻訳です。 本内容は予告なく更新されている可能性があることをご了承ください。

ファイア・アイのリサーチ・ラボでは、標的型攻撃にて使用された新しいインターネット・エクスプローラ(IE)のゼロデイ攻撃を確認しました。この脆弱性は、IE6から11までに影響し、攻撃はIE9からIE11までを対象としています。このゼロデイは、ASLRおよびDEPを経由します。マイクロソフトは、この脆弱性に、「CVE-2014-1776」という認証コードを割り当て、当件を追跡するためにセキュリティ・アドバイザリをリリースしました。

攻撃者はファイア・アイが「オペレーションClandesitine Fox」と命名したキャンペーンを積極的に使用しています。しかし、諸事情よりこのキャンペーンの詳細については公表することができません。ファイア・アイでは、この脆弱なバージョンが全体の1/4を占めるブラウザ・マーケットに関連することから、重大なゼロデイ攻撃と位置づけています。ファイア・アイでは、本件についてのパッチが提供されるまでIEの使用をしないことを推奨します。

NetMarketShare社によると、2013年の対象IEのシェアは、IE9が13.9%、IE10が11.04%、IE11が1.32%でした。合計すると、2013年には、26.25%の脆弱性のあるIEのバージョンがブラウザ・マーケットに存在することになります。この脆弱性は、IE6からIE11に存在しますが、攻撃はIE9以上を対象としています。

詳細

この攻撃は、解放済みのメモリ領域を使用する未知の脆弱性を利用し、恣意的なメモリアクセスを実行するために、よく知られたFlashの攻撃手法を使用しています。また、Windows ASLRとDEPプロテクションを経由します。

 

攻撃の実施

l  ヒープの準備

攻撃ページには細工を施されたFlash SWFファイルが埋め込まれており、heap feng

shuiと呼ばれる手法でheapメモリー領域を操作します。まず、複数のFlash Vectorオブジェクトを作成し、メモリーアドレス0x18184000を含むようにheap sprayを仕掛けます。その後flash.Media.Sound()オブジェクトを含むVectorオブジェクトを作成し、これを破壊することによってROPチェーンへ制御が渡るようにしています。

l  恣意的なメモリ・アクセス

SWFファイルはIE内でJavascriptへコール・バックし、IEバグを引き起こし、ヒープ・スプレーの中のFlashベクター・オブジェクトの変長フィールドを上書きします。このSWFファイルは、破壊されたベクター・オブジェクトを探すためにヒープ・スプレー内を旋回し、再度別のベクター・オブジェクトの長さを変更します。この別の破壊されたベクター・オブジェクトは後続するメモリ・アクセスに使用され、さらにASLRおよびDEPを経由するために使用されます。

l  ROP実行時間の発生

メモリ・コントロールを通し、この攻撃はZwProtectVirtualMemoryとNTDLLからのスタック・ピボット(opcode 0×94 0xc3)を探します。また、デバッグ・レジスターを消去するkernel32内のSetThreadContextを探します。この手法は、EMETのEAF緩和のようなハードウェア・ブレークポイントを使用する防御を経由することを目的としている可能性があります。

前述したAPIとガジェットのアドレスを使用して、SWFファイルはROPチェーンを構築し、RC4の解読されたシェルコードの先頭に追加します。その後、新しく作られたROPペイロードへと指し示すサウンド・オブジェクトの仮想関数テーブル(vftable)を偽物へと置き換えます。サウンド・オブジェクトがvftableを呼び出そうとすると、攻撃者のROPチェーンへと操作を転換させます。

l  ROPとシェル・コード

ROPペイロードは、基本的に、0×18184000におけるメモリを実行可能にしようとします。そしてシェルコードを実行するために0x1818411cに戻ります。

0:008> dds eax18184100        770b5f58 ntdll!ZwProtectVirtualMemory

18184104        1818411c

18184108        ffffffff

1818410c        181840e8

18184110        181840ec

18184114        00000040

18184118        181840e4

シェルコード内では、現在のスタック・ポインターを0×18181800へセーブし、呼び出し元に安全に戻ります。

mov      dword ptr ds:[18181800h],ebp

その後、flash.Media.Sound vftableを復元し、アプリケーション・クラッシュを回避するために破壊されたベクター・オブジェクトを修復します。

18184123        b820609f06     mov      eax,69F6020h

18184128        90                    nop

18184129        90                    nop

1818412a        c700c0f22169 mov      dword ptr [eax],offset

Flash32_11_7_700_261!AdobeCPGetAPI+0x42ac00 (6921f2c0)

18184133        b800401818    mov      eax,18184000h

18184138        90                    nop

18184139        90                    nop

1818413a        c700fe030000 mov      dword ptr [eax],3FEh ds:0023:18184000=3ffffff0

このシェルコードは、スタック・レンジが現在のスレッド・スタック・ベース/リミットにあることを確認するためにESPレジスターを回復します。

18184140        8be5                mov      esp,ebp

18184142        83ec2c             sub      esp,2Ch

18184145        90                    nop

18184146        eb2c                jmp       18184174

シェル・コードはデバッグ・レジスターを消去するためにSetThreadContextを呼び出します。これは、デバッグ・レジスターを使用する緩和を回避するためである可能性があります。

18184174        57                                push    edi

18184175        81ece0050000                        sub      esp,5E0h

1818417b        c7042410000100        mov      dword ptr [esp],10010h

18184182        8d7c2404                    lea        edi,[esp+4]

18184186        b9dc050000                mov      ecx,5DCh

1818418b        33c0                            xor       eax,eax

1818418d        f3aa                             rep stos byte ptr es:[edi]

1818418f         54                                push    esp

18184190        6afe                             push    0FFFFFFFEh

18184192        b8b308b476                mov      eax,offset kernel32!SetThreadContext (76b408b3)

18184197        ffd0                              call       eax

このシェル・コードはURLDownloadToCacheFileAを呼び出し、画像に扮したペイロードの次の段階をダウンロードします。

緩和方法

EMETを使用することで、PC環境への攻撃を阻止できる可能性があります。EMETバージョン4.1と5.0は私たちの検証では攻撃を阻止(および/または検知)しました。また、検証ではIEの拡張保護モードも攻撃を阻止しました。拡張保護モードは、IE10以降に実装されています。さらに、Adobe Flashを使用しない場合は攻撃を受けません。FlashプラグインをIE内で無効にすることも攻撃を防ぐ方法の一つです。

脅威グループの背景

この攻撃に関わったAPTグループは過去のブラウザーベースのゼロデイ攻撃(IE、Firefox、およびFlash)にアクセスすることができる最初のグループです。このグループは、攻撃の多様化に非常に長けており、通常のコマンド&コントロールインフラストラクチャを再度使用しないため、追跡が難しい状況です。またこのグループは、以前このブログでも紹介した「Pirpi」として知られているバックドアを含む多くのバックドアを所有しています。後のIE6、7、8におけるゼロデイ攻撃となる脆弱性CVE-2010-3962は、以前のケースで紹介された「Pirpi」ペイロードの影響を受けました。

現在まだ調査中のために、現時点ではさらなる詳細を公開していません。

FireEye について

 

FireEye®は、次世代のサイバー攻撃から、世界中の民間企業や官公庁をリアルタイムで防御するために専用設計された、仮想マシンベースのセキュリティ・プラットフォームを発明した企業です。高度なサイバー攻撃は、次世代ファイアウォールやIPS、アンチウイルス、各種ゲートウェイなど、シグネチャベースのセキュリティ対策を容易にすり抜けてしまいます。FireEye®脅威対策プラットフォーム™は、攻撃ライフサイクル全体で、モバイル、Web、電子メール、ファイル・システムといった主要な攻撃経路にわたり、シグネチャを利用しないリアルタイムでダイナミックな脅威防御策を組織へ提供します。FireEyeプラットフォームの核となる仮想実行エンジンは、Dynamic Threat Intelligenceによって補完されており、サイバー攻撃をリアルタイムに検出・防御することができます。FireEyeのソリューションは、世界40か国以上の1,900を超える組織に導入されており、Fortune 500企業の130社以上で利用されています。

FireEyeウェブサイト: http://www.fireeye.co.jp

FireEyeプラットフォームについて: http://www.fireeye.com/jp/ja/products-and-solutions/

 

【報道関係の方からのお問い合せ先】

FireEye広報事務局

(株式会社トークス内)

担当: 吉崎、新井原

TEL: 03-3556-1225

Email: fireeye@pr-tocs.co.jp

 

# # #

FireEyeはFireEye, Inc.の登録商標です。その他すべてのブランド、製品、またはサービスの名前は、それぞれ該当する所有者の商標またはサービスマークである可能性があります。