マルウェア「FormBook」がOffice 365ゼロデイ脆弱性(CVE-2021-40444)を悪用
トレンドマイクロでは、2016年以降、拡散されている情報窃取を行うマルウェア「FormBook」の最新バージョンを使用した新たな攻撃を検出しました。
トレンドマイクロでは、2016年以降、拡散されている情報窃取を行うマルウェア「FormBook」の最新バージョンを使用した新たな攻撃を検出しました。過去数年、macOSの拡張サポートを始め、FormBookに関する複数の解析結果が公表されています。FormBookは高度に難読化されたペイロードであり、文書ファイルの脆弱性を悪用していることでよく知られています。最近までFormBookの攻撃では、CVE- 2017-0199が利用されていましたが、新たなFormBookの亜種は、最新のOffice365ゼロデイ脆弱性(CVE-2021-40444)を利用しています。
■攻撃手法について
FormBookの作成者は、トレンドマイクロとMicrosoft社が以前確認した、商用のペネトレーションツール「Cobalt Strike beacons」の拡散を行うオリジナルのエクスプロイトを一部変更していました。利用されている脆弱性はCVE-2021-40444です。しかし、この脆弱性自体はすでに解析済みなので、本ブログではFormBookによる独自の変更点に焦点をあてることにします。
FormBookはパッケージ内のファイル「document.xml.rels」の内部で異なる「Target」フォーマットを使用しています。図1の右側が新しいフォーマットを示しています。この脆弱性を利用する際に、「mhtml」や「!x-usc」などのオプションは要求されないため、このフォーマットは実行可能です。この新しいフォーマットは、上記の「Target」オプションをエクスプロイトの痕跡として使用することで、検出の回避を試みています。
図1:「Target」URLフォーマット:左側は過去の検体、右側はFormBookが使用した検体
ディレクトリトラバーサルパスおよび「Target」に対してエンプティオプション(「!:」の連続使用)を使用してURLが攻撃を受けても、この脆弱性を利用することができ、Wordはサーバに図2で示しているネットワークキャプチャのようなリクエストを送信します。
図2:FormBook文書検体のネットワークキャプチャ
FormBookが今回のエクスプロイトに導入した変更点の中には、難読化メカニズムが含まれています。図3はFormBookによるエクスプロイトの難読化にあたる箇所を示しています。
図3:FormBookによる難読化エクスプロイト
先述した通り、FormBookの作成者は、トレンドマイクロおよびMicrosoft社が公表したコードを基にした、オリジナルのエクスプロイトを一部変更しています。FormBookは、JavaScriptのコードをリバースエンジニアリングから保護するための、アンチデバッグ動作を実行する関数に2つのcallを追加しています。図4はその関数を示しています。
図4:FormBookのJavaScriptアンチデバッグエクスプロイト
ブラウザの開発者ツールを開いた状態で、f()関数を実行すると、新たにバーチャルマシン(VM)ウィンドウが開きます。これにはdebuggerステートメントを伴う匿名の関数が組み込まれています。これにより、焦点はソースコードウィンドウから、匿名の関数を含む新たなバーチャルマシン(VM)ウィンドウにシフトします。JavaScriptのコードを実行すると、匿名の関数が継続的に実行されます。JavaScriptのコードを実行することで、debuggerステートメントが永久に実行されるため、JavaScriptのコードのデバッグを防ぐことができます。
■攻撃チェーンについて
トレンドマイクロの解析では、今回の攻撃には、不正なWord文書が添付されたメールが侵入経路として使用されていました。攻撃では、二層構造のPowerShellスクリプトを使用して、既知のFormBookを送り付けていました。今回のFormBookのバージョンは過去のバージョンと同一でしたが、攻撃チェーンには独自の変更点が導入されていました。今回の攻撃で拡散された最終版のFormBookは、これまでの攻撃で使用され、他社のリサーチャにより解析されたマルウェアと一致しています。また、そのサンプルは、トレンドマイクロがコマンド&コントロール(C&C)チャネル情報の復号後に検出したFormBookバージョン4.1とも一致しています。これは図5にて確認することができます。
図5:復号後のFormBook Beacon
今回の独自の攻撃に関して、攻撃チェーンを図6に示します。
図6:攻撃チェーンを抽象化した図
FormBookが2段階のPowerShellスクリプトをどのように実行するかは図6の通りです。第一段階では、第二段階のスクリプトをダウンロードし、「Discord」(ファイル共有機能を持ったコミュニケーションツール)上にホストされる添付ファイルとして保存されます。トレンドマイクロでは、ネットワーク保護対策を回避する目的で、Discord上にアップロードされるファイルの不正使用が増加していることを確認しています。
図7は第一段階のPowerShellスクリプトの一例を示しています。
図7:第一段階のPowerShellスクリプト
図6の例では、次の段階のスクリプトをDiscord(URL自体も難読化されている)からダウンロードしています。URLのフォーマットは以下の通りです。
hxxps://cdn[.]discordapp[.]com/attachments/889336010087989260/889336402121199686/avatar.jpg
Discordからダウンロードした添付ファイルは、第二段階のPowerShellであり、Base64でフォーマットされています。第二段階のスクリプトには、FormBookの実行に必要な検体がすべて含まれています。
図8は第二段階のPowerShellの一例を示しています。
図8:第二段階のPowerShell
図8の通り、変数「$decompressedByteArray」の値には「.NET」インジェクタが備わっており、変数「$INICAYLA」の値は、FormBookそのものです。今回の攻撃では、マルウェアを「Calculator」プロセスに挿入するという手法が、以前の分析とは異なっていますが、これは難読化処理の結果が「.NET」インジェクタに適用されていたためです。
■結論
トレンドマイクロでは、過去数年に渡り、一般向けサービスを利用してマルウェアをホストする事例が増加していることを確認しています。現在では、一般向けサービスを利用して、マルウェアインフラストラクチャを構築する方法は数えきれないほど存在します。一般向けサービスの利用は、攻撃者にとって様々な利点があります。
・URLは、セキュリティデバイスやセキュリティソフトにかけても、通常のURLのように見える
・場合によっては、状況に応じて「ランダムな」URLの作成も可能
・暗号化されたトラフィック(HTTPS)がデフォルト
・検体やファイルなどのリソースに対して自動でアクセス保護
・余計なレンタルサービスやメンテナンスサービスを利用する必要がない
また、トレンドマイクロは、さまざまな「サービスとしてのマルウェア(MaaS)」に実装されている難読化された検体の自動作成ツールの品質が改善していることを確認しています。
上記2要素を組み合わせることで、今回のケースのように、攻撃者は、ゼロデイ脆弱性を再利用した攻撃を検出されても、再度変更を行い、攻撃を試みることができます。また、今回のインシデントは、早急に脆弱性の修正プログラムを適用することの重要性を浮き彫りにしています。ご存じの通り、Microsoft社はすでに、2021年9月のセキュリティアップデートの一環として、この脆弱性の修正プログラムをリリースしています。
高度な攻撃に対して対策を行うために、Trend Micro Vision One™は、単一の階層から見ただけでは重要ではないと思われる、疑わしい挙動を検出することができます。一方で、Trend Micro Apex One™はエンドポイントデバイスをランサムウェア、ファイルレス脅威、そして高度な攻撃に対する自動脅威検出機能を通じて保護します。
侵入の痕跡(Indicators of Compromise, IoC):
今回の記事に関する侵入の痕跡は、こちらを参照してください。
参考記事:
「FormBook Adds Latest Office 365 0-Day Vulnerability (CVE-2021-40444) to Its Arsenal」
By Aliakbar Zahravi, Kamlapati Choubey, Peter Girnus, William Gamazo Sanchez
翻訳: 谷口 厚志(Core Technology Marketing, Trend Micro™ Research)