SOC Prime Bias: クリティカル

12 Jan 2026 14:55 UTC

MuddyWaterのRustピボット:RustyWaterインプラントの内部

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
MuddyWaterのRustピボット:RustyWaterインプラントの内部
shield icon

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の注入アーティファクトを環境全体で特定し、完全な封じ込めを確保するための狩猟を拡大します。

攻撃フロー

シミュレーション実行

前提条件: テレメトリーとベースラインの事前チェックが合格している必要があります。

理論: このセクションでは、検出ルールをトリガーすることを目的とした攻撃者の技術的手法 (TTP) の正確な実行を詳しく説明しています。コマンドや説明は識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的としています。

  • 攻撃ナレッジとコマンド:
    APTオペレーターは、悪意のあるマクロを含んだOfficeの添付ファイルを含むスピアフィッシングメールを受け取ります。開封されると、マクロは2つのペイロードファイルをドロップします—Cybersecurity.doc and CertificationKit.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 "シミュレーションファイルが削除されました。"