この投稿は、Intel SecurityのHaifei Li とIntel LabsのXiaoning Liによって作成されました。
Microsoft Officeドキュメントは仕事でもプライベートライフでも重要な役割を果たしています。しかし残念ながら、この数年はOfficeドキュメントを利用した多くの不正コード、特に複数の重大なゼロデイ攻撃が発生しています。以下に主な攻撃の例を示します。
- CVE-2014-4114/6352:2014年10月に報告された「Sandworm」ゼロデイ攻撃。McAfee Labsは、この攻撃の詳細な原因分析(英語サイト)とMicrosoftの初期の問題のあるパッチ(英語サイト)について報告しました。
- CVE-2014-1761:3月にGoogleによって発見された、非常に巧妙に作成されたゼロデイ攻撃。非常に巧妙と結論付けた理由についてはこちら(英語サイト)をご覧ください。
- CVE-2013-3906:Microsoft Graphicsコンポーネントのゼロデイ脆弱性ながら、Officeドキュメントによって拡散。このゼロデイ攻撃は、2013年10月にMcAfee Labsが検出して報告(英語サイト)。
- CVE-2012-0158/1856:かなり古いMSCOMCTL.OCXの2つの脆弱性であるものの、攻撃者が数年にわたって愛用。不正コードは現在も実環境で発見されている。
McAfee Labsでは、不正コードの検知と防御のための革新的テクノロジ開発のために、Officeのセキュリティについて主導的な研究を行っています。最近では、Sandworm脆弱性を活用する攻撃の増加を確認しています。さらに重要なのは、攻撃実行者が興味深い検知回避技法を利用し始めたことです。このことについて、セキュリテイコミュニティの皆様と情報を共有したいと思います。
PPSX vs PPS
私たちは、多くのSandworm不正コード(CVE-2014-4114)が現在の.ppsx形式ではなく.pps(PowerPoint Show)形式になりすましているケースを確認しています。元々のSandwormサンプルは、旧式のOffice Binary Formatに取って代わったOffice Open XML Formatを使用して、 .ppsxとしてパッケージされていました。このバイナリフォーマットは、互換性維持のために現在もOfficeでサポートされています。Open XML Formatは透明かつオープンであるため、セキュリティ製品を含むサードパーティアプリケーションは、この形式を容易に解析して理解することができます。したがって大半のセキュリティベンダーは、Open XML Formatを使用するCVE-2014-4114不正コードを簡単に検知できます。
しかし、Office Binary Formatを使用する.ppsドキュメントでは状況が異なります。Microsoftによって仕様が公開されているものの、この形式は理解が困難です。したがってセキュリティ製品は、この形式を使用する不正コードの検知に手こずってしまいます。もちろん攻撃者はこのことを把握しており、.ppsx形式ではなく.pps形式でCVE-2014-4114不正コードを配信し始めました。例として、ThreatGeekサイトが数日前に報告した(英語サイト)スピアフィッシングキャンペーンが挙げられます(私たちもこのキャンペーンを追跡しています)。このキャンペーンでは、不正コードが.pps形式でパッケージし直され、大半のAV検知の回避に成功しています。
プレーンなPPS vs 暗号化されたPPS
このバイナリ形式は解析が困難ですが、幸運にも「プレーンな」形式です。つまり、一般的なパターンを持つ優れたシグネチャがあれば、悪質なバイトは隠れられません。しかし不正コード作成者は、.pps形式への移行だけでは満足していません。McAfee Labsでは、彼らが不正コードを暗号化してさらに検知を困難にしていることを確認しています。
ここで、私たちが発見したプレーンな.pps形式のサンプルを検証し、通常の.ppsと暗号化された.ppsの違いを見てみましょう。次のイメージからわかるように、バイト(文字列「package」)を確認することができるため、バイトは暗号化されていないことがわかります。
こちらは暗号化された.ppsです。
暗号化されたバージョンでは、悪質なバイトを全く見つけられません。
このサンプルをPowerPointで開いて編集してみましょう。実行を回避するために、まずこのファイルの名前を変更して.ppsから.ppt形式にします。
この不正コードの作成者は、ドキュメントを表示と編集から保護できるOfficeの機能を巧みに活用しています。このサンプルでは、作成者はパスワードでドキュメントを暗号化しているため、誰でも表示は可能ですが編集はできません。(.pps (PowerPoint Show) ドキュメントを開くと、実際には「表示」していることになるため、この不正コードはパスワードプロンプトなしで機能します)。一方、このドキュメントは編集ができないため、セキュリティ製品はコンテンツを分析できません。また研究者も、悪質なサンプルを統計的に分析することができません。
私たちは、長期にわたって暗号化されたOffice不正コードの脅威キャンペーンを追跡してきました。ここでは、スピアフィッシングの例よりも古い例を紹介します。MD5:2E63ED1CDCEBAC556F78F16E8E872786を使用したこのキャンペーンは、「Attachment Information(English Version).pps」という名前のファイルが送信されるもので、VirusTotalで5月12日に最初に確認されました。しかし暗号化されていたため、7月2日時点でVirusTotalではまだ検知されませんでした。
暗号化された不正コードのマルウェアの分析
CVE-2014-4114を悪用するために、この悪質な.ppsサンプルはTempディレクトリに1つのマルウェアを送りこみ、update.dat (9421D13AA5F3ECE0C790A7184B9B10B3)として実行しました。
このファイルのmain関数:
このmain関数は複数のタスクを実行しました。
- 暗号化された.exeファイルデータを$AppData\Roaming\SearchCache.dllに復号化(97FE2A5733D33BDE1F93678B73B062AC)
- 新しいrundll32.exeプロセスを実行して、SearchCache.dllのエクスポートされたAPI_flushfile@16を実行 (C:\Windows\system32\rundll32.exe $AppData\Roaming \SearchCache.dll”,_flushfile@16 $AppData\Local\Temp\update.dat)
エクスポートされたAPI _flushfile@16のコードにより、まずスリープ状態に入って検知を回避し、次に元のupdate.datを削除し、新しいスレッドを作成してその他のタスクを実行。
この新しいスレッドがコントロールサーバーに接続し、ローカルのシステム情報を収集し、データをコントロールサーバーに送信。このスレッドはirmon32.dllもダウンロードし、今後の悪質なアクションのためにサービスを登録。詳細な手順を以下に示します。
脅威インテリジェンス
防御担当者の皆様の分析を支援するために、これらのキャンペーンに関連するサンプルハッシュ(MD5)の一部を示します。
0BC232549C86D9FA7E4500A801676F02
12F8354C83E9C9C7A785F53883C71CFC
142B50AEAEBE7ABEDA2EC3A05F6559B6
1E479D02DDE72B7BB9DD1335C587986B
209470139EE8760CA1921A234D967E40
2E63ED1CDCEBAC556F78F16E8E872786
3EA3435FC57CECB7AD53AEE0BBE3A31D
4AF0B2073B290E15961146E9714BD811
6360DDC19A858B0CE3DB7D1E07BC742F
710A39FA656981A81577D2EE31B46B18
719A7315449A3AE664291A7E0C124F0A
822F13D2A8AE52836BB94D537A1E3E3C
864EC7ED23523B0DC9C4B46DE3B852D1
8675174A45AABC8407C858D726ABB049
8A6A6ADCDE64420F0D53231AD7A6A927
96432AC95A743AC329DF0D51C724786F
AD2A5B0AF9B3188F42A5A29326CDDB0E
B4F788E76E60F91CF35880F5833C9D27
B86297F429FFBC8AFD67BDDD44CBB867
D57DF8C7BA9F2119660EA1BCE01D8F4A
E5BEF07992F88BCF91173B68AC3EA6BC
E7399EDE401DA1BACB3D2059A45F0763
結論と対応
このような回避トリックは、防御担当者にとって大きな課題です。セキュリティは常に一進一退の戦いですが、私たちは攻撃者の一歩先を行かなければなりません。このケースから、今日のコンピューティング環境では、ネットワーク、エンドポイント、サンドボックスベースを含め、どのセキュリティ製品も単独ではすべての脅威を阻止できないことも浮き彫りになりました。この種の脅威に対応するには、私たちが提供しているサンドボックスベースのAdvanced Threat DefenseとHost Intrusion Preventionの併用が最適です(Sandworm脆弱性にパッチを当てていない場合は、すぐに当ててください)。McAfee AntiVirusは、ここで説明した2つのキャンペーン(「プレーン」および「暗号化」不正コード両方を含む)に対する防御を提供します。
追記
Officeのセキュリティについて言えば、私たちは8月にラスベガスで開催される今年のBlack Hat USA 2015セキュリティカンファレンスでプレゼンテーション(英語サイト)を行います。Officeの重要なOLE機能に関する独自の最新調査結果を報告する予定です。OfficeのOLE機能のリスクと脅威実行者からユーザーを保護する方法をコミュニティの皆様に理解してほしいと考えています。
脆弱性の情報を提供してくれたIntel SecurityのBing SunとStanley Zhuに感謝の意を表します。
※本ページの内容は McAfee Blog の抄訳です。
原文: Threat Actors Use Encrypted Office Binary Format to Evade Detection
著者: Haifei Li (Intel Security)