MuddyWaterのRustピボット:RustyWaterインプラントの内部
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
MuddyWaterは、中東の外交、海運、金融、通信組織を対象としたスピアフィッシングキャンペーンを開始しました。攻撃者は、RustベースのインプラントであるRustyWaterを展開するために、マクロが埋め込まれた武装化されたWord文書に依存していました。インストールされると、マルウェアはRunレジストリキーを通じて持続性を持ち、HTTPを介してコマンド&コントロールと通信し、通常のユーザーアクティビティに溶け込むためにexplorer.exeにコードを注入します。インプラントは解析防止の安全策を組み込み、攻撃者の制御を拡張するためのモジュール化されたポスト妥協機能をサポートします。
調査
CloudSEKのTRIADチームは悪意のあるドキュメントを分析し、16進数でエンコードされたペイロードを復元し、Rust実行ファイルreddit.exeを特定しました。静的検査では、HTTPベースのC2のためにreqwestライブラリを使用し、アンチデバッグのためのベクター化された例外ハンドラメカニズムを持ち、CurrentUser Runレジストリパスを介して持続性を維持することが示されました。動的テストでは、explorer.exeへのプロセス注入とランダム化されたコールバックタイミングを伴う非同期C2動作を確認しました。調査では、ハッシュ、レジストリアーティファクト、通信に使用された悪意のあるドメインなど、主要なインジケーターをまとめました。
緩和策
特にProgramData下に格納されたバイナリを指すエントリを含む、HKCUSoftwareMicrosoftWindowsCurrentVersionRunの怪しい変更に注意してください。OfficeがWScript.Shellを介してcmd.exeを呼び出すマクロ駆動の実行チェーンを検出します。JSON → Base64 → XORのエンコーディングとランダム化されたジッターを伴うビーコン通信のためのHTTPトラフィックパターン検出を追加します。不明または信頼できない送信者からのマクロ対応のWord添付ファイルをブロックまたは隔離するためのメール制御を強化します。
対応
RustyWaterの活動が検出された場合、エンドポイントを隔離し、注入に焦点を当てたフォレンジックを支援するためにメモリイメージを取得します。悪意のあるRunキー持続性を削除し、ProgramDataにドロップされたファイルを削除します。確認されたC2ドメインとIPを境界制御でブロックします。関連するマクロ活動とexplorer.exeの注入アーティファクトを環境全体で特定し、完全な封じ込めを確保するための狩猟を拡大します。
graph TB %% クラス定義 classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef file fill:#e6e6e6 classDef process fill:#c2f0c2 classDef registry fill:#ffd9b3 classDef data fill:#d9d9ff %% ノード action_phishing[“<b>アクション</b> – <b>T1566.001 スピアフィッシング添付</b><br/>悪意のあるWord文書を含むメールが被害者に送信される”] class action_phishing action file_doc[“<b>ファイル</b> – <b>名前</b>: Cybersecurity.doc<br/><b>種類</b>: VBAマクロを含むWord文書”] class file_doc file action_user_execution[“<b>アクション</b> – <b>T1204.002 悪意のあるファイル</b><br/>被害者が添付文書を開き、実行が開始される”] class action_user_execution action technique_vba_macro[“<b>技術</b> – <b>T1059.005 Visual Basic</b><br/>VBAマクロが実行され、悪意のある処理を行う”] class technique_vba_macro technique file_ini[“<b>ファイル</b> – <b>名前</b>: CertificationKit.ini<br/><b>目的</b>: WMI経由で実行されるスクリプト”] class file_ini file technique_native_api[“<b>技術</b> – <b>T1106 ネイティブAPI</b><br/>マクロがCOMオブジェクトを作成してシステムと対話する”] class technique_native_api technique technique_wmi[“<b>技術</b> – <b>T1047 WMI</b><br/>WMIを使用して.iniスクリプトを起動する”] class technique_wmi technique technique_reflective_loading[“<b>技術</b> – <b>T1620 リフレクティブロード</b><br/>16進エンコードされたペイロードがメモリ内で復号されディスクに書き込まれる”] class technique_reflective_loading technique technique_process_injection[“<b>技術</b> – <b>T1055.002 PEインジェクション</b><br/>シェルコードがexplorer.exeに注入される”] class technique_process_injection technique process_explorer[“<b>プロセス</b> – <b>名前</b>: explorer.exe”] class process_explorer process technique_persistence[“<b>技術</b> – <b>T1547 永続化</b><br/>レジストリRunキーが作成される”] class technique_persistence technique registry_run[“<b>レジストリ</b> – <b>キー</b>: HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run”] class registry_run registry technique_encrypted_channel[“<b>技術</b> – <b>T1573 暗号化チャネル</b><br/>C2通信が暗号化される”] class technique_encrypted_channel technique technique_symmetric_crypto[“<b>技術</b> – <b>T1573.001 対称暗号</b><br/>XOR/Base64でデータを隠蔽する”] class technique_symmetric_crypto technique technique_credential_hooking[“<b>技術</b> – <b>T1056.004 認証情報APIフック</b><br/>APIフックにより認証情報を取得する”] class technique_credential_hooking technique credentials[“<b>データ</b> – <b>種類</b>: 取得された認証情報”] class credentials data %% 接続 action_phishing –>|配信| file_doc file_doc –>|ユーザーが開く| action_user_execution action_user_execution –>|起動| technique_vba_macro technique_vba_macro –>|作成| file_ini technique_vba_macro –>|使用| technique_native_api technique_native_api –>|呼び出し| technique_wmi technique_wmi –>|実行| file_ini file_ini –>|読み込み| technique_reflective_loading technique_reflective_loading –>|導く| technique_process_injection technique_process_injection –>|注入| process_explorer process_explorer –>|有効化| technique_persistence technique_persistence –>|書き込み| registry_run registry_run –>|サポート| technique_encrypted_channel technique_encrypted_channel –>|使用| technique_symmetric_crypto technique_symmetric_crypto –>|保護| technique_credential_hooking technique_credential_hooking –>|取得| credentials
攻撃フロー
検出
実行可能バイナリの異常な拡張 (via process_creation)
表示
可能性のある持続化ポイント [ASEPs – Software/NTUSER Hive] (via registry_event)
表示
引数のない疑わしいプロセス (via cmdline)
表示
疑わしいMSオフィス子プロセス (via cmdline)
表示
IOC (HashSha256) を検出する: Reborn in Rust: Muddy WaterがRustyWaterインプラントでツールを進化させる
表示
Muddy Water RustyWater インプラント実行の検出 [Windows プロセス作成]
表示
Muddy Water APT スピアフィッシングアーティファクトの検出 [Windows ファイルイベント]
表示
シミュレーション実行
前提条件: テレメトリーとベースラインの事前チェックが合格している必要があります。
理論: このセクションでは、検出ルールをトリガーすることを目的とした攻撃者の技術的手法 (TTP) の正確な実行を詳しく説明しています。コマンドや説明は識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的としています。
-
攻撃ナレッジとコマンド:
APTオペレーターは、悪意のあるマクロを含んだOfficeの添付ファイルを含むスピアフィッシングメールを受け取ります。開封されると、マクロは2つのペイロードファイルをドロップします—Cybersecurity.docandCertificationKit.ini—多くのアプリケーションで信頼されている場所に隠すためにディレクトリ。マクロはPowerShellを使用してファイルを書き込み、これがSysmonファイル作成イベントをトリガーし、検出ルールが監視します。directory to hide them in a location trusted by many applications. The macro uses PowerShell to write the files, which triggers Sysmon file‑create events that the detection rule monitors. -
回帰テストスクリプト:
# ------------------------------------------------- # MuddyWater APTファイルドロップシミュレーション (Windows) # ------------------------------------------------- $progData = $Env:ProgramData # ペイロード内容を定義 (テスト用のダミーデータ) $docContent = "これは検出テスト用のサイバーセキュリティ文書のモックです。" $iniContent = "[設定]`nキー=値`n" # Cybersecurity.docを作成 $docPath = Join-Path -Path $progData -ChildPath "Cybersecurity.doc" $docContent | Out-File -FilePath $docPath -Encoding UTF8 # CertificationKit.iniを作成 $iniPath = Join-Path -Path $progData -ChildPath "CertificationKit.ini" $iniContent | Out-File -FilePath $iniPath -Encoding UTF8 Write-Host "MuddyWaterシミュレーションファイルが作成されました:" Write-Host "`t$docPath" Write-Host "`t$iniPath" # ------------------------------------------------- -
クリーンアップコマンド:
# シミュレーションアーティファクトを削除 Remove-Item -Path "$Env:ProgramDataCybersecurity.doc" -ErrorAction SilentlyContinue Remove-Item -Path "$Env:ProgramDataCertificationKit.ini" -ErrorAction SilentlyContinue Write-Host "シミュレーションファイルが削除されました。"