悪意あるOpenClawスキルがRemcos RATとGhostLoaderを配布
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは、AIエージェントまたは開発者を欺いて武器化されたMSIインストーラをダウンロードさせる悪意のあるOpenClawスキル「DeepSeek-Claw」を公開しました。実行されると、インストーラは署名されたGoToMeetingバイナリをドロップし、悪意のあるDLLをサイドロードし、その後Remcos RATをロードします。別の感染経路では、クロスプラットフォームのGhostLoaderスティーラーをインストールする大幅に難読化されたNode.jsペイロードが配信されます。このキャンペーンは、妥協したAIワークフロープラグインが永続的なリモートアクセスとデータ盗用のサプライチェーンベクターとしてどのように使用されるかを強調しています。
調査
Zscaler ThreatLabzは悪意のあるスキルマークダウンファイルからMSIダウンロードまでの完全な感染チェーンを追跡し、DLLのサイドロードを通じて G2M.exe、ETWとAMSIをパッチするメモリ内ローダを特定しました。研究者は、Remcosのコマンドアンドコントロールアドレスとミューテックスを含む設定を回収し、GhostLoaderのmacOSおよびLinux環境でのスクリプトとBashベースのインストーラの使用も特定しました。レポートには、APIの難読化、TEAベースの復号化、およびサンドボックス認識チェックを含む複数の回避技術も文書されています。 npm scripts and Bash-based installers for macOS and Linux environments. The report further documents multiple evasion techniques, including API obfuscation, TEA-based decryption, and sandbox-awareness checks.
緩和
ディフェンダーは悪意のあるMSIおよび関連するURLへのアクセスをブロックし、正規のGoToMeetingプロセスによってロードされる未署名のDLLを監視し、使用前にOpenClawスキルのコンテンツを厳格に検証する必要があります。エンドポイント保護もETWおよびAMSIのパッチを検出し、非管理者コンテキストからの PowerShell or msiexec の実行を制限する必要があります。組織はすべてのバイナリのコード署名を確認し、AIエージェントとプラグインの統合に最小権限の制御を適用すべきです。
対応
この活動が検出された場合、感染しているエンドポイントをすぐに隔離し、すべてのRemcosまたはGhostLoaderプロセスを終了し、システムから悪意のあるDLLとMSIアーティファクトを削除します。メモリダンプを収集し、攻撃者の構成を保存してフォレンジック分析を行い、侵害された資格情報をリセットし、影響を受けたすべての証明書や秘密を回転させます。セキュリティチームはまた、特定されたインジケータで脅威インテリジェンスフィードを更新し、AIプラグイン使用に関するサプライチェーンの制御を強化すべきです。
"graph TB %% クラス定義 classDef technique fill:#cfe2f3 classDef tool fill:#e2efda classDef malware fill:#f9cb9c classDef process fill:#ffd966 %% 手法ノード tech_user_exec_copypaste["<b>手法</b> – <b>T1204.004 ユーザーの実行: 悪意のあるコピーとペースト</b><br/><b>説明</b>: ユーザーやAIエージェントをだましてコピーされたPowerShellワンライナーを実行させます。"] class tech_user_exec_copypaste technique tech_user_exec_link["<b>手法</b> – <b>T1204.001 ユーザーの実行: 悪意のあるリンク</b><br/><b>説明</b>: 被害者が悪意のあるダウンロードリンクをクリックして同じチェーンを開始します。"] class tech_user_exec_link technique tech_msiexec["<b>手法</b> – <b>T1218.007 システムバイナリプロキシ実行: Msiexec</b><br/><b>説明</b>: Msiexecを使用してリモートMSIパッケージを静かにダウンロードしてインストールします。"] class tech_msiexec technique tech_dll_hijack["<b>手法</b> – <b>T1574.001 実行フローのハイジャック: DLLサイドロード</b><br/><b>説明</b>: 正規の実行可能ファイルの横に悪意のあるDLLを配置することによりロードします。"] class tech_dll_hijack technique tech_active_scanning["<b>手法</b> – <b>T1595 アクティブスキャニング</b><br/><b>説明</b>: テレメトリとアンチマルウェアスキャンを回避するためにEtwEventWriteとAmsiScanBufferをパッチします。"] class tech_active_scanning technique tech_virt_user_check["<b>手法</b> – <b>T1497.002 仮想化エヴェーション: ユーザー活動のチェック</b><br/><b>説明</b>: サンドボックスで実行されているかどうかを判断するためにユーザー駆動の活動を検出します。"] class tech_virt_user_check technique tech_virt_time_check["<b>手法</b> – <b>T1497.003 仮想化エヴェーション: 時間のチェック</b><br/><b>説明</b>: 分析を妨げるために遅延および時間ベースの遅延を導入します。"] class tech_virt_time_check technique tech_obfusc_embedded["<b>手法</b> – <b>T1027.009 難読化されたファイルまたは情報: 埋め込まれたペイロード</b><br/><b>説明</b>: TEACBCで暗号化され、メモリ内でのみ復号化される最終RATペイロード。"] class tech_obfusc_embedded technique tech_keylogging["<b>手法</b> – <b>T1056.001 入力キャプチャ: キーロギング</b><br/><b>説明</b>: コンプロマイズされたシステムからキー操作をキャプチャします。"] class tech_keylogging technique tech_clipboard["<b>手法</b> – <b>T1115 クリップボードデータ</b><br/><b>説明</b>: 抽出のためにクリップボードの内容を読み取ります。"] class tech_clipboard technique tech_steal_cookie["<b>手法</b> – <b>T1539 ウェブセッションクッキーの盗難</b><br/><b>説明</b>: アクティブなブラウザクッキーを抽出してMFAをバイパスします。"] class tech_steal_cookie technique tech_alt_auth["<b>手法</b> – <b>T1550.004 代替認証材料の使用: ウェブセッションクッキー</b><br/><b>説明</b>: ハーベストされたクッキーを有効な認証トークンとして再利用します。"] class tech_alt_auth technique tech_forge_cookie["<b>手法</b> – <b>T1606.001 ウェブクレデンシャルの偽造: ウェブクッキー</b><br/><b>説明</b>: 盗まれたクッキーに基づいて偽造されたウェブクレデンシャルを作成します。"] class tech_forge_cookie technique tech_private_keys["<b>手法</b> – <b>T1552.004 パスワードストアからのクレデンシャル: プライベートキー</b><br/><b>説明</b>: ファイルシステムからSSHプライベートキーを収集します。"] class tech_private_keys technique tech_cred_files["<b>手法</b> – <b>T1552.001 ファイル内のクレデンシャル</b><br/><b>説明</b>: プレーンテキストのクレデンシャルを含むファイルを検索します。"] class tech_cred_files technique tech_browser_creds["<b>手法</b> – <b>T1555.003 ウェブブラウザからのクレデンシャル</b><br/><b>説明</b>: インストールされているブラウザから保存されたパスワードをダンプします。"] class tech_browser_creds technique tech_code_repo["<b>手法</b> – <b>T1213.003 情報リポジトリからのデータ: コードリポジトリ</b><br/><b>説明</b>: ソースコードファイルから仮想通貨ウォレットやAPIトークンを収集します。"] class tech_code_repo technique tech_trusted_dev_util["<b>手法</b> – <b>T1127 信頼された開発者ユーティリティプロキシ実行</b><br/><b>説明</b>: npmライフサイクルスクリプトとNode.jsを使用してmacOS/Linux上で悪意のあるペイロードを実行します。"] class tech_trusted_dev_util technique tech_input_injection["<b>手法</b> – <b>T1674 入力インジェクション</b><br/><b>説明</b>: スキルのマークダウンがAIエージェントによって解析されて実行されるコマンドを注入します。"] class tech_input_injection technique %% ツール / マルウェア / プロセスノード process_powershell["<b>プロセス</b> – ユーザーがコピーしたPowerShellワンライナーの実行。"] class process_powershell process tool_msiexec["<b>ツール</b> – Msiexec<br/><b>目的</b>: 悪意のあるMSIの静的インストール。"] class tool_msiexec tool tool_g2m_exe["<b>ツール</b> – GoToMeeting実行可能ファイル(正規の署名済みバイナリ)。"] class tool_g2m_exe tool tool_g2m_dll["<b>ツール</b> – サイドロードによってロードされた悪意のあるg2m.dll。"] class tool_g2m_dll tool malware_remcos["<b>マルウェア</b> – Remcos RAT<br/><b>能力</b>: リモートアクセス、キーロギング、データ抽出。"] class malware_remcos malware tool_npm["<b>ツール</b> – npmライフサイクルスクリプト"] class tool_npm tool tool_nodejs["<b>ツール</b> – Node.js実行環境"] class tool_nodejs tool malware_ghostloader["<b>マルウェア</b> – GhostLoader<br/><b>ターゲット</b>: macOS/Linux"] class malware_ghostloader malware %% コネクション u2013 メイン実行パス tech_user_exec_copypaste –>|引き金| process_powershell process_powershell –>|使用| tech_msiexec tech_msiexec –>|実行| tool_msiexec tool_msiexec –>|MSIをインストールし、ドロップ| tool_g2m_exe tool_msiexec –>|MSIをインストールし、ドロップ| tool_g2m_dll tool_g2m_exe –>|促進| tech_dll_hijack tool_g2m_dll –>|読み込み済み| tech_dll_hijack tech_dll_hijack –>|導く| tech_active_scanning tech_active_scanning –>|組み合わせ| tech_virt_user_check tech_active_scanning –>|組み合わせ| tech_virt_time_check tech_virt_user_check –>|有効化| tech_virt_time_check tech_dll_hijack –>|届ける| tech_obfusc_embedded tech_obfusc_embedded –>|復号化して| malware_remcos malware_remcos –>|実行する| tech_keylogging malware_remcos –>|実行する| tech_clipboard malware_remcos –>|抽出する| tech_steal_cookie tech_steal_cookie –>|有効化| tech_alt_auth tech_alt_auth –>|有効化| tech_forge_cookie malware_remcos –>|収集する| tech_private_keys malware_remcos –>|収集する| tech_cred_files malware_remcos –>|収集する| tech_browser_creds malware_remcos –>|収集する| tech_code_repo %% 代替配信パス tool_npm –>|実行| tool_nodejs tool_nodejs –>|ドロップ| malware_ghostloader malware_ghostloader –>|使用| tech_trusted_dev_util %% 入力インジェクションパス tech_input_injection –>|開始| tech_user_exec_copypaste %% 悪意のあるリンクパス tech_user_exec_link –>|引き金| process_powershell "
攻撃フロー
検知
不審なMsiExecリモートインストーラの隠されたインストール試行(cmdlineによる)
表示
G2m動的ライブラリサイドロードの試行の可能性(イメージロードによる)
表示
MacOSアーカイブユーティリティが不審なディレクトリを指している(cmdlineによる)
表示
不審なCurl実行試行 [MacOS](cmdlineによる)
表示
検出対象: Remcos RATおよびGhostLoaderを配布する悪意のあるOpenClawスキル (HashMd5)
表示
検出対象: Remcos RATおよびGhostLoaderを配布する悪意のあるOpenClawスキル (SourceIP)
表示
検出対象: Remcos RATおよびGhostLoaderを配布する悪意のあるOpenClawスキル (DestinationIP)
表示
Remcos RATのコマンドアンドコントロール over TLS [Windows Network Connection]
表示
GoToMeetingを介した悪意のあるDLLサイドロード [Windows Image Load]
表示
悪意のあるPowerShellコマンドを介したRemcos RATのデプロイメントを検出 [Windows PowerShell]
表示
シミュレーション実行
前提条件: テレメトリー&ベースラインのプレフライトチェックが通過している必要があります。
議論: このセクションでは、検出ルールをトリガーするために設計された具体的なアドバーサリーテクニック(TTP)の正確な実行について詳述しています。コマンドとナラティブは、特定されたTTPに直接反映され、検出ロジックによって予想される正確なテレメトリーを生成することを目指します。抽象的または無関係な例は誤診を引き起こします。
-
攻撃ナラティブとコマンド:
- 準備: 攻撃者は、悪意のあるDLLペイロード(例: RAT)を取得し、それを g2m.dll に名前を変更して正規のライブラリに見せかけます。
- 配置: DLLは正規のGoToMeetingバイナリ(
C:Program FilesGoToMeeting)と同じディレクトリにコピーされます。WindowsはDLLの検索順序(アプリケーションディレクトリが最優先)に従うため、G2M.exeではなく、期待されたライブラリがロードされます。g2m.dllの代わりに。 - 実行: 攻撃者は
G2M.exeを起動します。プロセス作成中に、SysmonはImage = *G2M.exeを記録します。直後に、SysmonはImageLoaded = *g2m.dll.
をログに記録します。この正確なパターンがSigmaルールの条件(
selection1とselection2)を満たし、アラートが発生します。 -
回帰テストスクリプト: (PowerShell – 自己完結型)
# ------------------------------------------------- # GoToMeetingを介したDLLサイドロードの回帰スクリプト # ------------------------------------------------- $g2mPath = "C:Program FilesGoToMeeting" $exe = Join-Path $g2mPath "G2M.exe" $malDll = Join-Path $g2mPath "g2m.dll" # 1. 正規の実行可能ファイルが存在することを確認します if (-not (Test-Path $exe)) { Write-Error "G2M.exeが $exe に見つかりません。まずGoToMeetingをインストールしてください。" exit 1 } # 2. 非悪意のプレースホルダDLLを配置します(悪意のあるペイロードをシミュレート) # ここでは、正しい名前のファイルを持つために、既存のシステムDLLをコピーします。 $sourceDll = "$env:SystemRootSystem32kernel32.dll" Copy-Item -Path $sourceDll -Destination $malDll -Force Write-Host "[+] 悪意のあるDLLを $malDll に配置しました" # 3. 署名済みバイナリを起動します - これがサイドロードをトリガーします Write-Host "[+] DLLロードをトリガーするための G2M.exe を起動中..." $proc = Start-Process -FilePath $exe -PassThru # 4. ImageLoadedイベントがログに記録されるのを短期間待ちます Start-Sleep -Seconds 5 # 5. 後片付け – プロセスを終了し、DLLを削除します if ($proc.HasExited -eq $false) { Stop-Process -Id $proc.Id -Force Write-Host "[+] G2M.exe (PID $($proc.Id)) を終了しました" } Remove-Item -Path $malDll -Force Write-Host "[+] 悪意のあるDLLを清掃しました" # ------------------------------------------------- -
クリーンアップコマンド: (攻撃者がアーティファクトのみを削除したい場合)
# 悪意のあるDLLがまだ存在する場合は削除します $dllPath = "C:Program FilesGoToMeetingg2m.dll" if (Test-Path $dllPath) { Remove-Item -Path $dllPath -Force Write-Host "Removed $dllPath" } # 残っている可能性のあるG2M.exeプロセスをオプションで終了します Get-Process -Name "G2M" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "残されているG2M.exeプロセスを終了しました"