WhisperGateマルウェアがウクライナのコンピューターを破損
このレポートは、2022 年 1 月 15 日に Microsoft Threat Intelligence によって報告された WhisperGate マルウェアの技術的な概要です。 これは、マルウェアのTTPと緩和策の概要を探している人を対象としています。
Executive Summary
WhisperGateは、政府、非営利団体、情報技術組織など、ウクライナの複数の業界を標的とした継続的な作戦で使用されている新しいマルウェアファミリーです。 このマルウェアは、被害者のMBRを破壊し、接続されたストレージデバイス上のファイルを破損するように設計された3段階のマスターブートレコード(MBR)ワイパーです。 マルウェアの各ステージには個別のタスクがあります:ステージ1はMBRを身代金メモとコードで上書きし、見つかった各ドライブのセクションを上書きし、ステージ2はDiscordのCDNにJPG添付ファイルとしてホストされているステージ3をダウンロードして実行し、ステージ3は191のファイル拡張子のリストに一致するファイルを破損します。 マルウェアの開発者は、特にステージ3で難読化を使用して、検出と分析を回避します。 WhisperGateは、Windowsシステムをワイプして破損させ、ファイルやドライブを回復または使用できなくなります。 WhisperGateの動機と攻撃の背後にいる脅威アクターに関する詳細はまだ明らかにされていません。 これらの攻撃は、2022年1月14日に発生したロシアによるウクライナ侵攻とウクライナ政府のウェブサイト改ざんのリスクが高まっている中で行われました。
主な判断
- この記事の執筆時点では、WhisperGateを展開している脅威アクターグループは既知の脅威グループに起因していませんが、他の研究者は、グループが国家の支援を受けている と疑 っています。
- WhisperGateのデータ破壊機能の影響を軽減するために、データのバックアップに関してランサムウェアに対して講じられているのと同じ予防策を適用する必要があります。
- WhisperGateマルウェアは、ウクライナ国外での他の攻撃の一部として使用されていることは確認されておらず、この操作のために特別に開発された可能性があることを示しています。
背景
2022年1月15日、Microsoftはウクライナの複数の組織を標的とした破壊的なマルウェア作戦 を報告し ました。 この活動は、既存の脅威アクターグループに起因していないため、MicrosoftのDEV-####命名規則を使用して追跡されています。これは、脅威活動の未知の新たなクラスターを追跡するために使用されます。 このグループには、最終的に名前付きアクターに変換されるか、既存のアクターとマージされるまで、DEV-0586 という名称が付けられています。 Microsoftは2022年1月13日にこの悪意のある活動を確認し始め、調査により、WhisperGateとして追跡されている新しいマルウェアファミリーが明らかになりました。
WhisperGateテクニカル分析
WhisperGateマルウェアには3つの段階があり、以下の図1で詳しく説明します。 3つのステージはすべて、マシンが再起動する前に実行する必要があります。 ステージ1では、被害者のブートディスクのMBRが破損し、再起動時にシステム上の他のドライブが破損します。 ステージ 2 は、アタッチされたファイル システムやネットワーク ドライブ上のファイルを破損するために使用されるステージ 3 をダウンロードします。 ステージ 1 またはステージ 2 のどちらか一方だけが正常に実行されると、ファイルの損傷が発生します。 テストでは、GUID パーティション テーブル (GPT) ディスクは WhisperGate のステージ 1 マルウェアによって修復不可能なほど破壊されたわけではないため、マルウェアのそのステージに対して部分的に免疫があることがわかりました。 ステージ2とステージ3を含めることは、GPTスタイルのブートディスクを使用している被害者もマルウェアの影響を受けるようにする方法であると推測しています。 ただし、ステージ3はリモートネットワークドライブも対象としているため、被害者のブートディスクで使用されているパーティションスキームに関係なく、さらに被害が及ぶ可能性があります。
図 1: Stages of WhisperGate malware (Source: Recorded Future)
ステージ 1: マスター ブート レコード (MBR) を上書きする
ステージ 1 は、Windows 上の GNU コンパイラ コレクション (GCC) 6.3.0 をサポートする Minimalist GNU for Windows (MinGW) 開発環境を使用してコンパイルされます。 バイナリの主な目的は、"\\.\PhysicalDrive0" の MBR をカスタム MBR で上書きし、その影響はマシンが再起動するまで表示されないことです。 起動時に、コンピュータのBIOSは、MBRを検索するときに使用するディスクの順序を決定します。 PhysicalDrive0 の MBR を上書きすると、そのディスクが BIOS によってチェックされる最初のディスクであると想定されますが、これは通常、妥当な仮定です。 マシンが再起動し、カスタム MBR コードが実行されると、図 2 に示す身代金メモがユーザーに表示されます。
図 2: Ransom note displayed after stage 1 of WhisperGate is executed (Source: Recorded Future)
身代金要求メモを表示した後、MBR コードは各ドライブのセクションを 199 バイト間隔で、図 3 に示す内容で上書きします。 各ドライブに書き込まれる内容は 6 バイト目で異なり、0x00 バイトから順番に増加します。
図 3: Hex view of the contents that are written to disk (Source: Recorded Future)
MBR コードは、図 4 に示すように、 割り込み0x13を介して拡張書き込み関数呼び出しを行うことで、各ドライブにコンテンツを複数回書き込みます。
図 4: MBR instructions that enumerate the drives and overwrite sections on each disk found (Source: Recorded Future)
被害者がブートディスクでGPTスタイルのパーティションテーブルを使用している場合、ステージ1は有効になりません。 再起動すると、Windowsは起動できなくなります。ただし、ディスクドライブを破損するWhisperGateのMBRコードは実行されません。 GPTディスクはディスクの最後にGPTテーブルのバックアップコピーを保持するため、被害者はライブLinuxディストリビューションを実行し、図5に示すように gdisk ユーティリティの リカバリコマンドを使用して GPTテーブルを復元できます。
図 5: Restoring the corrupted GPT table with the gdisk recovery command (Source: Recorded Future)
ステージ2:ダウンローダー
ステージ2はNETで書かれており、その主な機能はマルウェアの第3ステージをダウンロードして実行することです。 PowerShell コマンド "_powershell -enc UwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwAA==_" を使用して 20 秒後に実行を開始し、"_Start-Sleep -s 10_" にデコードします。 10秒の遅延は2回実行され、マルウェアがAVエンジンによる検出を回避するために使用される可能性があります。 このマルウェアは、 https://cdn[.]discordapp[.]com、 名前付きTbopbh.jpg。 ステージ 2 では、JPG ファイルのバイトを反転し、JPG ファイルを .NET アセンブリとして反射的に読み込み、エクスポートされた関数 "_Ylfwdwgmpilzyaph_" を呼び出します。
ステージ3:ファイル破損者
マルウェアのステージ3は.NETで書かれており、eazfuscatorで難読化されています。 実行時に、2 つの埋め込み PE 実行可能リソース (AdvancedRun と Wagybg) が解凍、デコード、GZIP 圧縮解除されます。 次に、.vbs スクリプトは "%AppData%\local\Temp\Nmddfrqqrbyjeygggda.vbs" に書き込まれ、Wscript.exe で実行されます。 図 6 に示すスクリプトは、Windows Defender によるスキャンから C ドライブ全体を除外するために使用されます。
図 6: Contents of “%AppData%\local\Temp\Nmddfrqqrbyjeygggda.vbs” (Source: Recorded Future)
次に、AdvancedRunが実行され、Windows Defenderサービスが停止され、そのプログラムデータフォルダーが削除されます。 AdvancedRunは 、NirSoft によって開発された無害なソフトウェアであり、さまざまな設定でプログラムを実行するために使用されます。 著者がAdvancedRunを使用したのは、Windows Defenderを無効にするコマンドを実行するために必要なTrustedInstaller権限でプログラムを実行できるためです。 図 7 と図 8 は、AdvancedRun.exe の実行に使用されるコマンド ライン引数を示しています。 "_/RunAs 8_" 引数を使用すると、TrustedInstaller 特権を使用するように AdvancedRun に指示します。
図 7: “AdvancedRun.exe” stopping the Windows Defender service (Source: Recorded Future)
図 8: “AdvancedRun.exe” recursively deleting Windows Defender’s program data (Source: Recorded Future)
最後に、Wagybgは、InstallUtil.exeプロセスでのプロセスハロウイングを介して実行されます。 同様の手法は、2019年にフィッシングキャンペーンの一環としてNetwireトロイの木馬をロードするために使用されました。InstallUtil は、Microsoft によって作成され、.NET Framework の一部として配布される無害なプログラムです。
マルウェアのこの段階は、ファイルの破損を実行するために使用されます。 まず、GetLogicalDrives() を呼び出してシステム上の論理ドライブのリストを取得し、次に固定メディアまたはネットワークドライブを識別します。 このマルウェアは、これらのドライブで、以下の図9に示す191のファイル拡張子のうち1つで終わるファイルを検索します。 次に、各ファイルの最初の 1 MiB を 0xCC バイトで上書きすることにより、一致するファイルを破損します。
図 9: Targeted file extensions (Source: Recorded Future)
After it finishes corrupting files, the corrupter sends 5 ping requests to 111.111.111[.]111 and then deletes itself as shown in Figure 10. While it is unclear exactly why the malware makes the ping requests, we speculate that it could be to add a time delay before deleting itself or to keep a record of infected hosts.
図 10: Self-deletion function used by the file corrupter (Source: Recorded Future)
軽減策
組織は、WhisperGateマルウェアの破壊機能からデータを保護するために、オフサイトバックアップ戦略を検討することをお勧めします。
- ネットワークのセグメンテーションにより、攻撃者やマルウェアが組織のネットワークの他の部分にアクセスするのを防ぐことができます。 このソリューションでは、大規模なネットワークを小さなネットワーク セグメントに分割し、ファイアウォール、仮想ローカル エリア ネットワーク、およびその他の分離手法を使用して実現できます。
- 機密性の高いクライアント情報は、インターネットから切断されているシステムや、企業ネットワークの残りの部分からセグメント化されたシステムに保持することを検討してください。 WhisperGateマルウェアは被害者のシステム上のファイルを改ざんするため、機密性の高い顧客データをインターネットアクセスやネットワークの残りの部分にアクセスできないシステムに移動すると、WhisperGateマルウェアがそれらのファイルにアクセスするのを最小限に抑えることができます。
- 侵入検知システム (IDS)、侵入防止システム (IPS)、または導入されているネットワーク防御メカニズムを設定して、前述の外部 IP アドレスに対するアラートを発し、確認した上で、外部 IP アドレスとの間の接続試行をブロックすることを検討します。
- リモートアクセスソリューションが日常業務にとって重要である場合、CitrixやRDPなどのすべてのリモートアクセスサービスとプロトコルは、2要素認証または多要素認証で実装する必要があります。
- 疑わしいファイル変更アクティビティ (特にユーザー ディレクトリ内の大量のファイル変更) の作成を監視します。
- Set the Execution Policy for PowerShell to require that scripts be signed in order to be executed. This will only be effective for scripts being run traditionally (for example by double-clicking) and will not protect against base64-encoded scripts executed on the command line as an argument to the PowerShell program (such as powershell.exe <command></command>).
- 新しいバージョンの PowerShell (バージョン 5 など) を使用して、セキュリティ関連の改善をいくつか追加しました。
- マルウェア対策スキャン インターフェイス (AMSI): この機能は、Windows 10 および Windows Server 2016 で導入され、"ファイルとメモリまたはストリームのスキャン、コンテンツ ソース URL/IP レピュテーション チェック、およびその他の手法" を提供し、PowerShell、UAC、Windows スクリプト ホスト、JavaScript、VBScript、Office VBA マクロと統合できます。 AMSIをバイパスする方法に関する研究によると、難読化(XORやbase64エンコーディングの「禁止」コマンドなど)や単純な実行バイパス、メモリパッチなどの他のより高度な方法を使用してAMSIを回避できることが示されています。
- スクリプトとコマンドのログ記録が有効になっていることを確認します。 これには、モジュール ログ記録 (スクリプトの一部、難読化解除されたコード、出力用に書式設定されたデータなど、PowerShell スクリプトのパイプライン実行を記録する)、スクリプト ブロック ログ記録 (実行されたスクリプトとコマンドの完全な内容を含む実行を記録する)、文字起こし (入力と出力を含む各 PowerShell セッションの一意のレコードを作成する) が含まれます。 ログ記録は必ずしも悪意のあるPowerShellの実行を防ぐわけではありませんが、どのような悪意のある動作や指標が関与していたかを理解するのに役立つ可能性があります。
今後の展望
この記事の執筆時点では、DEV-0586 は WhisperGate を使用してウクライナの組織を標的にしているだけのようです。 この脅威アクターに関するアトリビューションを含む詳細情報は、今後数日または数週間のうちに公開される予定です。 WhisperGateが公に報告され、セキュリティ専門家にマルウェアについて警告が発せられた今、WhisperGateの開発者はワイパーを変更して検出をより適切に回避する可能性があります。
関連ニュース&研究