トレンドマイクロは、2015年7月7日以降、イタリア企業「Hacking Team」への攻撃により漏えいした機密情報から確認された脆弱性を利用する攻撃や関連事例などを報告しています。
- 伊企業「Hacking Team」の情報漏えい事例:Flash Playerに存在する未修正の不具合を確認
http://blog.trendmicro.co.jp/archives/11851 - 「Hacking Team」の漏えい事例:Open Typeフォントマネージャの脆弱性の検証
http://blog.trendmicro.co.jp/archives/11866 - 「Hacking Team」の情報漏えい事例:Flash Playerのゼロデイ脆弱性「CVE-2015-5119」、複数のエクスプロイトキットで追加を確認
http://blog.trendmicro.co.jp/archives/11877 - 「Hacking Team」の情報漏えい事例:Flashゼロデイ脆弱性、発覚前に韓国と日本で被害発生か
http://blog.trendmicro.co.jp/archives/11884 - 新たなFlashのゼロデイ脆弱性「CVE-2015-5122」、「CVE-2015-5123」を連続して確認
http://blog.trendmicro.co.jp/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」です。
脆弱性は、以下の手順で利用されます。
- 新規の「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 に設定されます。
- MyClass.prototype.valueOf は MyClass.prototype.valueOf = valueOf2 を利用して上書きされ、_ar[_cnt].opaqueBackground = _mc を利用して、関数「valueOf2」を実行します。「_mc」は、MyClass のインスタンスです。
- 関数「valueOf2」では、手順1 で割り当てられた関数「textLine」を解放するために「_tb. recreateTextLine(_ar[index])」を呼び出します。解放された「textLine」のメモリを使用するために、ベクターの長さは 0x8 から 0x62 に設定されます。関数「valueOf2」は 0x62 + 8 = 0x6a で返され、「_ar[_cnt].opaqueBackground」は、「valueOf2」が返されるまで 0x6a に設定されます。使用するベクターの lengthフィールドの上書きを確実にするために、関数「valueOf2」は再帰呼び出しを利用します。
- ベクターの長さを 0x6a に上書きした後、破壊したベクターを検索し、隣のベクターの長さを 0x40000000 に設定します。
手順1
手順2
手順3
手順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)
参考記事:
- 「Another Zero-Day Vulnerability Arises from Hacking Team Data Leak」
by Peter Pi (Threat Analyst)
翻訳:品川 暁子 および 船越 麻衣子(Core Technology Marketing, TrendLabs)