新たに確認されたFlash脆弱性「CVE-2015-5122」の解析

トレンドマイクロは、2015年7月7日以降、イタリア企業「Hacking Team」への攻撃により漏えいした機密情報から確認された脆弱性を利用する攻撃や関連事例などを報告しています。

  • 伊企業「Hacking Team」の情報漏えい事例:Flash Playerに存在する未修正の不具合を確認
    /archives/11851
  • 「Hacking Team」の漏えい事例:Open Typeフォントマネージャの脆弱性の検証
    /archives/11866
  • 「Hacking Team」の情報漏えい事例:Flash Playerのゼロデイ脆弱性「CVE-2015-5119」、複数のエクスプロイトキットで追加を確認
    /archives/11877
  • 「Hacking Team」の情報漏えい事例:Flashゼロデイ脆弱性、発覚前に韓国と日本で被害発生か
    /archives/11884
  • 新たなFlashのゼロデイ脆弱性「CVE-2015-5122」、「CVE-2015-5123」を連続して確認
    /archives/11903

前回のブログ記事で予告した通り、本記事では、新たな脆弱性「CVE-2015-5122」について報告します。この脆弱性は、Adobe Flash Player に存在し、「CVE-2015-5119」と同様深刻な不具合であると考えられます。この「CVE-2015-5122」が利用されると、この脆弱性の影響を受ける PC がクラッシュすることとなり、攻撃者により制御される恐れがあります。そして新たに確認された脆弱性は、「CVE-2015-5119」同様、Windows、Mac、Linux上の Flash Player の全バージョンに影響を与えます。

2015年7月11日現在、この脆弱性を利用するエクスプロイトコードは、「Proof-of-concept(PoC、概念実証型エクスプロイト。実際に有効な攻撃ができることを実証している攻撃コード)」であり、弊社は実際の攻撃に使われていないかどうか、現在調査しています。また、問題の脆弱性「CVE-2015-5122」には、まだセキュリティ更新プログラムが公開されていません。しかし、弊社は、7月11日午前11時半時点(日本時間)で解析および検証を行い、すぐに Adobe社に通知しました。同社はその後、午後12時44分時点でこの脆弱性についてのセキュリティ情報を公開しています。

■新たなゼロデイ脆弱性「CVE-2015-5122」について
トレンドマイクロの解析より、「CVE-2015-5122」は、「TextBlock.createTextLine()」および「TextBlock.recreateText(textLine)」の 2つのメソッドを利用する「Use After Free(解放後使用)」の脆弱性であることが判明しました。

この脆弱性利用は、「my_textLine.opaqueBackground = MyClass_object」のメソッドに関連します。「MyClass.prototype.valueOf」が上書きされると、関数「valueOf」が「TextBlock.recreateTextLine(my_textLine)」を呼び出します。関数「my_textLine」は解放後に使用されます。

弊社がこの PoC を x86環境でデバッグしたところ、脆弱性利用はクラス「MyClass32」にありました。攻撃に利用される関数は「MyClass32」の「TryExpl」です。

脆弱性は、以下の手順で利用されます。

  1. 新規の「Array」は「_ar」と名付けられ、_ar の長さは _arLen = 126 です。_ar[0…29] は Vector.<uint>により設定され、ベクターの長さは 0x62 です。_ar[46….125] は、Vector.<uint>によって設定され、ベクターの長さは 0x8 です。_ar[30….45] は _tb.createTextLine() を利用して testLine によって設定され、textLine. opaqueBackground は 1 に設定されます。
  2. 手順1
    手順1

  3. MyClass.prototype.valueOf は MyClass.prototype.valueOf = valueOf2 を利用して上書きされ、_ar[_cnt].opaqueBackground = _mc を利用して、関数「valueOf2」を実行します。「_mc」は、MyClass のインスタンスです。
  4. 手順2
    手順2

  5. 関数「valueOf2」では、手順1 で割り当てられた関数「textLine」を解放するために「_tb. recreateTextLine(_ar[index])」を呼び出します。解放された「textLine」のメモリを使用するために、ベクターの長さは 0x8 から 0x62 に設定されます。関数「valueOf2」は 0x62 + 8 = 0x6a で返され、「_ar[_cnt].opaqueBackground」は、「valueOf2」が返されるまで 0x6a に設定されます。使用するベクターの lengthフィールドの上書きを確実にするために、関数「valueOf2」は再帰呼び出しを利用します。
  6. 手順3
    手順3

  7. ベクターの長さを 0x6a に上書きした後、破壊したベクターを検索し、隣のベクターの長さを 0x40000000 に設定します。

手順4
手順4

この PoC では “calc.exe” を実行することが可能です。つまり、不正な実行ファイルを実行するために細工することも可能です。弊社では現在、この PoC を監視しており、新しい展開があれば本ブログで報告します。ユーザは、この脆弱性を利用した攻撃を避けるために、Flash Player を無効にすることを推奨します。

トレンドマイクロ製品をご利用のユーザは、この脅威から守られています。弊社のネットワーク挙動監視ソリューション「Trend Micro Deep Discovery(トレンドマイクロ ディープディスカバリー)」のサンドボックスや「Script Analyzer」エンジンにより、他のエンジンやパターンの更新がなくても、この脅威をその挙動で検出することができます。ブラウザ向け脆弱性利用対策技術「ブラウザガード」を搭載する「ウイルスバスター クラウド」や「Trend Micro 脆弱性対策オプション(ウイルスバスター コーポレートエディション プラグイン製品)」、「ウイルスバスター ビジネスセキュリティ」といったネットワーク端末へのセキュリティ対策製品は、エクスプロイトコードをホストする URL にアクセスするタイミングでエクスプロイトコードをブロックします。「ブラウザガード」はまた、ブラウザや関連したプラグインを狙うエクスプロイトコードから保護します。

トレンドマイクロのサーバ向け総合セキュリティ製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」および「Trend Micro 脆弱性対策オプション(ウイルスバスター コーポレートエディション プラグイン製品)」をご利用のお客様は、以下のフィルタを適用することにより、問題のゼロデイ脆弱性を利用した攻撃から保護されます。

  • 1006858 – Adobe Flash ActionScript3 opaqueBackground Use After Free Vulnerability (CVE-2015-5122)

【更新情報】

2015/7/15 10:30 セキュリティリサーチャー Kafeine氏は、「Angler Exploit Kit」が「CVE-2015-5122」を利用するエクスプロイトコードを追加したことに言及しましたが、その後、トレンドマイクロが弊社のクラウド型セキュリティ基盤「Trend Micro Smart Protection Network」からのフィードバックを検証したところ、「Nuclear Exploit Kit」および「Rig Exploit Kit」も、2015年7月13日(米国時間)、「CVE-2015-5122」のエクスプロイトコードを追加したことが判明しました。「Nuclear Exploit Kit」は、オンライン銀行詐欺ツール「TROJ_CARBERP」(NvdUpd.exe)、「Rig Exploit Kit」は情報収集する恐れのある「BKDR_TOFSEE」(F01A – Copy.tmp)にそれぞれ誘導します。弊社では、現在これらの不正プログラムを解析中です。詳細が分かり次第、本ブログで報告します。

【更新情報】

2015/7/16 10:30 Adobe は、「CVE-2015-5122」および「CVE-2015-5123」に対する修正プログラムを公開しました。これらの脆弱性は、Windows、Mac および Linux上の Flash Player に存在します。この脆弱性を利用することにより、攻撃者は感染PC を制御下に置くことが可能になります。セキュリティ情報「APSB15-18」によると、今回のアップデートにより、バージョン「18.0.0.203」以下のバージョンはこの脆弱性の問題が解消されます。

ユーザは、Adobe Flash Player のバージョンを直ちに更新して下さい。Adobe Flash Player のページにアクセスするか、Flash Player が実行されている場所を右クリックし、メニューから「Adobe Flash Player」もしくは「Macromedia」を選ぶと、PC にインストールされた Flash Player のバージョンを確認できます。

Hacking Team 関連の記事一覧

日付 更新
7月5日 伊企業「Hacking Team」が攻撃を受け、400Gバイト以上の企業の機密情報がインターネットに公開される。
7月7日 3つの脆弱性 – Adobe Flash Player の脆弱性 2つと Windowsカーネルの脆弱性 1つが漏えいした情報から確認される。そのうちの 1つ「CVE-2015-5119」は Flashのゼロデイ脆弱性。

Windowsカーネルに存在する脆弱性「CVE-2015-2387」は、Open Typeフォントマネージャのモジュール(ATMDF.dll)に存在し、サンドボックスを使ったセキュリティ対策を回避するために利用される。

Flash のゼロデイ脆弱性「CVE-2015-5119」が、「Angler Exploit Kit」や「Nuclear Exploit Kit」に追加される。韓国および日本に限定した攻撃も確認。

7月11日 2つの Flashゼロデイ脆弱性「CVE-2015-5122」および「CVE-2015-5123」が漏えいした情報から新たに確認される。
7月13日 Hacking Team が自社製品「Remote Control System (RCS)」のエージェントを対象とする PC に常駐させるための UEFI および BIOS に感染するルートキットが漏えいした情報から確認される。
7月14日 IEゼロデイ脆弱性「CVE-2015-2425」が新たに確認される。
7月16日 「Google Play」のフィルタを回避する偽のニュースアプリが確認される。
7月20日 Windowsに存在する新たなゼロデイ脆弱性「CVE-2015-2426」が確認され、Microsoft は定例外の更新プログラムを公開。
7月21日 不正プログラム「RCSAndroid」を解析した結果、Hacking Team が対象とするモバイル端末を監視していたことが判明。

参考記事:

 翻訳:品川 暁子 および 船越 麻衣子(Core Technology Marketing, TrendLabs)