ファイア・アイ、脆弱性「CVE-2017-8759」を発見、ゼロデイ攻撃を実環境で行い、FINSPYを配布

ファイア・アイはこのほど、SOAP WSDLパーサーのコードインジェクション脆弱性「CVE-2017-8759」を悪用した、Microsoft Officeの悪意あるRTFドキュメントを検出しました。この脆弱性によって、悪意ある攻撃者はSOAP WSDL定義内容の構文解析に際し、任意のコードを注入できます。ファイア・アイが解析したMicrosoft Wordドキュメントでは、攻撃者は任意のコードのインジェクション攻撃を悪用し、PowerShellコマンドが記載されたVisual Basicスクリプトのダウンロード・実行を可能にしていました。

ファイア・アイは以前より、この脆弱性の詳細情報をマイクロソフトと共有していましたが、一般への情報公開については、脆弱性に対応するパッチとセキュリティガイダンスの公開(こちらでご覧いただけます)に合わせる形で調整していました。

この悪意あるドキュメントを検出したのは、ファイア・アイの電子メール/エンドポイント/ネットワーク製品です。

ロシア語を話す人間を標的とし、脆弱性を悪用

悪意あるドキュメント「Проект.doc」(MD5:fe5c4d6bb78e170abf5cf3741868ea4c)は、ロシア語を話す人間を標的として悪用された可能性があります。CVE-2017-8759のエクスプロイトの実行に成功すると、ドキュメントは複数のコンポーネント(詳細は下記参照)をダウンロードし、最終的にはFINSPYペイロード(MD5:a7b990d5f57b244dd17e9a937a41e7f5)を立ち上げます。

FINSPYマルウェアは、FinFisherまたはWingBirdとしても報告されており、「合法的な傍受」機能の一部として購入可能です。FINSPYの今回および過去の使用事例を踏まえると、この悪意あるドキュメントが国家規模で悪用されたものであり、その目的が、ロシア語を話す人間を標的としたサイバースパイ活動であるという推定について、私たちはある程度の自信をもっています。これに加えて、ファイア・アイのDynamic Threat Intelligenceシステムの検出結果からは、顧客が別の可能性はあるものの、早ければ2017年7月には、本件と関連したアクティビティが行われた可能性も示唆されています。

WSDLパーサーのコードインジェクション攻撃であるCVE-2017-8759

コードインジェクションの脆弱性は、PrintClientProxyメソッド(http://referencesource.microsoft.com/ - System.Runtime.Remoting/metadata/wsdlparser.cs,6111)内の、WSDLパーサーモージュールに存在します。CRLFシーケンスを含むデータが提供された場合、IsValidUrlは、正確な検証を実施しません。これによって攻撃者は、任意のコードを注入・実行できます。図1は、脆弱なコードの一部を抜粋したものです。

図1:脆弱なWSDLパーサー

SOAPレスポンス内で複数のaddress要素が提供されると、コードは最初のaddress要素の後に、「//base.ConfigureProxy(this.GetType()」の文字を挿入し、残りのaddress要素をコメントアウトします。しかし、CRLFシーケンスが追加のアドレス内に存在する場合、CRLFの後に続くコードは、コメントアウトされません。図2では、CRLFの検証がないことで、「System.Diagnostics.Process.Start」のメソッド呼び出しが注入されています。生成されたコードは、.NETフレームワークのcsc.exeによってコンパイルされ、Officeの実行ファイルによりDLLとしてロードされます。

図2:SOAP定義 vs. 生成されたコード

実環境での攻撃

ファイア・アイが実環境で観察した攻撃は、リッチテキスト形式(RTF)ドキュメントを悪用しており、これは私たちが以前に報告した「CVE-2017-0199」ドキュメントと類似しています。この悪意あるサンプルデータには、エクスプロイトの実行をより円滑に行うためのSOAPモニカーが組み込まれていました(図3)。

図3:SOAPモニカー

ペイロードは、攻撃者の制御サーバーから、悪意あるSOAP WSDL定義を取り出します。.NETフレームワークのSystem.Runtime.Remoting.ni.dllに実装されたWSDLパーサーはその内容を構文解析し、作業ディレクトリに.csのソースコードを生成します。.NETフレームワークのcsc.exeは次に、ライブラリ、すなわちhttp[urlパス].dllに生成されたソースコードをコンパイルします。Microsoft Officeは次にライブラリをロードし、エクスプロイトの実行段階を完了させます。図4は、エクスプロイトの実行結果としてロードされた、ライブラリのサンプルです。


図4:ロードされたDLL

エクスプロイトの実行に成功すると、注入されたコードは新たなプロセスを作成し、mshta.exeを悪用して、同一のサーバーから「word.db」というファイル名のHTAスクリプトを取り出します。このHTAスクリプトは、ソースコード、コンパイルされたDLL、PDBファイルをディスクから取り除き、「left.jpg」というファイル名のFINSPYマルウェアをダウンロード・実行します。これは.jpgの拡張子と「image/jpeg」のコンテンツタイプであるにも関わらず、実際は実行ファイルです。図5は、このマルウェアの転送のPCAPの詳細です。

図5:ライブリクエスト

マルウェアは、%appdata%\Microsoft\Windows\OfficeUpdte-KB[6桁のランダムな数字].exeとして配置されます。図6は、Process Monitorで確認されたプロセス作成チェーンです。

図6:プロセス作成チェーン

マルウェア

「left.jpg」(md5:a7b990d5f57b244dd17e9a937a41e7f5)は、FINSPYの亜種です。これは、数ある解析妨害技術の中でも組み込みのバーチャルマシンを採用した、高度に難読化されたコードを悪用することで、リバースエンジニアリングをより困難にしています。さらにユニークな解析妨害テクニックとして、このマルウェアは自身のMD5値を算出して、そのMD5値の検索をします。サンドボックスをはじめとした解析ツールはファイル名の一意性を保つため、解析しているサンプルのMD5値を計算して、そのMD5値をファイル名として使います。FINSPYはこの性質を解析回避の手段として利用します。この亜種は、「WininetStartupMutex0」のミューテックスによって実行されます。

結論

CVE-2017-8759は、FINSPYの配布で悪用される第2のゼロデイ脆弱性として、2017年にファイア・アイによって発見されました。これらの発見事例からは、「合法の傍受」を行う企業とその顧客にとって、利用可能なリソースが大規模に存在することがうかがえます。さらに、FINSPYは複数の顧客に販売されており、他の標的に対してもこの脆弱性が悪用されていたことを示唆しています。

CVE-2017-8759は、その他の攻撃者も悪用していた可能性があります。裏付けとなる証拠こそ見つかってはいませんが、FINSPYの配布目的で2017年4月に行われたゼロデイ攻撃では、CVE-2017-0199が、金銭目的の攻撃者によって同時に悪用されました。FINSPYの背後にいる攻撃者が、過去に使用されたものと同一の提供元からこの脆弱性を取得していた場合、この提供元が脆弱性を他の攻撃者にも販売した可能性があります。

最後に

本ブログ記事の作成にご協力いただいた、Dhanesh Kizhakkinan、Joseph Reyes、FireEye Labsチーム、FireEye FLAREチーム、FireEye iSIGHTインテリジェンスに感謝の意を表します。また、この問題について協力してくださった、マイクロソフト セキュリティ レスポンス センター(MSRC)の皆様にも感謝いたします。

■FireEye ® (ファイア・アイ)について

FireEyeはインテリジェンス主導型のセキュリティ企業です。顧客企業は、FireEyeの革新的セキュリティ技術、国家レベルの脅威インテリジェンス、世界的に著名なMandiant®コンサルティングの知見が統合された単一プラットフォームを、自社のセキュリティ対策の一部としてシームレスに組み込むことができます。このアプローチにより、FireEyeは準備、防御、インシデント・レスポンスといった、組織がサイバー攻撃対策をするうえでの課題となっていた複雑性や負担を解消します。FireEyeは「Forbes Global 2000」企業の4割以上を含む、世界67か国以上の6,000を超える組織で利用されています。

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

【報道関係の方からのお問い合せ先】
ファイア・アイ広報事務局(ホフマンジャパン株式会社内)
担当: 小倉 / 上田 / 田中
Tel: 03-5159-5750
Email: FireEye_PR@hoffman.com

# # #

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