Trivy VS Code 拡張が改ざんされ、ローカル AI エージェントが認証情報を窃取 — hackerbot-claw の全貌

セキュリティ研究者のyousukezan氏が、Aqua Security の脆弱性スキャナー「Trivy」の VS Code 拡張が改ざんされ、開発者のローカル AI コーディングツールを悪用して認証情報を窃取するサプライチェーン攻撃を紹介しています。

Aqua Trivy VS Code拡張が改ざんされ、AIコーディング支援ツールを悪用する異例のサプライチェーン攻撃が発覚した。正規機能を装いながら裏で認証情報を収集する手口で、被害はGitHubリポジトリの乗っ取りにも及んだ。 — yousukezan

この事件の異例な点は、従来のマルウェアやバックドアではなく、開発者のマシンに既にインストールされている AI コーディングツールを武器として利用したことです。Claude、Codex、Gemini、GitHub Copilot CLI、Kiro CLI を最大権限で呼び出し、自然言語プロンプトで機密情報を探索させるという、AI 時代に固有の新しい攻撃ベクターです。

事件の全体像

この攻撃は、hackerbot-claw と名乗る自律型 AI ボットによる大規模キャンペーンの一部です。2026年2月21日〜28日の間に、Microsoft、DataDog、CNCF プロジェクトなど少なくとも7つの主要リポジトリが標的となりました。

影響を受けたリポジトリ

リポジトリStars攻撃手法結果
aquasecurity/trivy25k+pull_request_target 悪用PAT 窃取、リポジトリ乗っ取り
avelino/awesome-go140k+Go init() 関数にペイロード注入GITHUB_TOKEN 窃取
microsoft/ai-discovery-agent-ブランチ名コマンドインジェクションRCE 達成
DataDog/datadog-iac-scanner-ファイル名ベースのインジェクションRCE 達成(9時間で修正)
ambient-code/platform-CLAUDE.md プロンプトインジェクションClaude が検出・拒否
project-akri/akri (CNCF)-curl | bash 直接インジェクションRCE 達成
RustPython/RustPython20k+Base64 ブランチインジェクション攻撃試行

hackerbot-claw の正体

hackerbot-claw は GitHub 上で自らを「autonomous security research agent powered by claude-opus-4-5」と名乗り、暗号通貨の寄付を募っています。README には9クラス・47サブパターンの「脆弱性パターンインデックス」を持ち、47,391リポジトリをスキャン済みと記載されています。

注目すべきは、このボットが固定スクリプトではなく、各リポジトリのワークフロー設定に合わせて攻撃手法を適応させる点です。これは AI エージェントが攻撃に使われる時代の到来を示しています。

Trivy リポジトリ乗っ取りの詳細

Trivy への攻撃は、hackerbot-claw キャンペーンの中で最も深刻な被害をもたらしました。

攻撃タイムライン

日時(UTC)イベント
2月27日 00:18PR #10252 が作成・即座に閉鎖。CI が起動
2月27日 12:01窃取した PAT による不正 API 活動が開始
2月27日 12:36trivy-vscode-extension に悪意あるセキュリティアドバイザリ作成
2月27日OpenVSX に改ざん版 v1.8.12 をアップロード
2月28日OpenVSX に改ざん版 v1.8.13 をアップロード
2月28日 03:17hackerbot-claw PR 作成・閉鎖
2月28日Socket.dev が検出、影響版を OpenVSX から削除
3月1日 00:14リリースの一括削除スクリプト実行
3月1日 00:27リポジトリが非公開化、private-trivy に改名
3月1日Aqua Security がリポジトリを復旧

被害の規模

窃取された Personal Access Token(PAT)により、攻撃者は以下を実行しました。

被害詳細
GitHub リリース全削除v0.27.0 〜 v0.69.1 の全リリースとアセットを削除
リポジトリの非公開化・改名約584個の Star が消失
フォークネットワークの切断fossabot/trivy へ再親化
悪意ある VS Code 拡張の配布OpenVSX に改ざん版をアップロード

Aqua Security の公式声明によると、コード自体は改変されておらず、コミット ID で検証可能です。しかしリリースアセット(バイナリ)の検証は困難な状態です。

AI コーディングツールを武器化する手口

この攻撃の最も革新的かつ危険な点は、改ざんされた VS Code 拡張が従来のマルウェアではなく、AI コーディングツールを攻撃の実行エンジンとして利用したことです。

攻撃の仕組み

1. 開発者が改ざん版 Trivy 拡張をインストール
2. ワークスペース起動時にバックグラウンドで不正コードが実行
3. ローカルの AI ツール(Claude, Codex, Gemini 等)を最大権限で呼び出し
4. 自然言語プロンプトで機密情報を探索させる
5. 収集した情報を外部に送信
6. エラーは表示されず、拡張は正常に動作し続ける

2つのバージョン、2つのペイロード

バージョンペイロード手法
v1.8.12約2,000語のプロンプトAI を「フォレンジック調査官」として起動。認証情報、トークン、金融記録、機密通信を網羅的に探索し外部送信
v1.8.13より標的型のプロンプトシステム情報と認証トークンを収集し REPORT.MD に保存。被害者の GitHub CLI を使って posture-report-trivy リポジトリにプッシュ

対象となった AI ツール

各ツールは最も権限の高いフラグで呼び出されました。

AI ツール呼び出し方法
Claude最大権限フラグで起動
Codex同上
Gemini同上
GitHub Copilot CLI同上
Kiro CLI同上

全プロセスはバックグラウンドで実行され、出力は抑制されます。拡張は正常に動作し続けるため、開発者が異常に気づく手がかりはありません。

CVE-2026-28353

この脆弱性には CVE-2026-28353 が割り当てられています。

項目内容
CVECVE-2026-28353
深刻度Critical
CWECWE-506(埋め込まれた悪意あるコード)
影響バージョン1.8.12, 1.8.13
プラットフォームOpenVSX のみ(VS Code Marketplace は影響なし)

Claude が攻撃を検出・拒否した事例

hackerbot-claw キャンペーンの中で、Claude Code が攻撃を検出し拒否した事例があります。

ambient-code/platform リポジトリに対して、ボットは CLAUDE.md を悪意ある指示に書き換え、Claude Code に不正な変更をコミットさせようとしました。しかし Claude は以下のように対応しました。

  1. 2つの注入パターンを即座にプロンプトインジェクションとして検出
  2. 悪意ある指示の実行を拒否
  3. 攻撃手法を分析したセキュリティレビューを投稿
  4. 「教科書的な AI エージェントサプライチェーン攻撃」と特定

Claude の読み取り専用権限設定と内部の検出機能が多層防御として機能した事例です。

pull_request_target — 根本原因の脆弱性

Trivy リポジトリの侵害を可能にした根本原因は、GitHub Actions の pull_request_target ワークフローの設定ミスです。

なぜ危険なのか

ワークフロートークン権限シークレットアクセス承認
pull_request読み取り専用なし設定による
pull_request_target書き込み可能あり不要

pull_request_target は本来、ラベル付けや自動コメントなど、信頼されたコードで動作することを前提としています。しかし、このワークフロー内でフォークされた PR のコードを actions/checkout で取得・実行すると、攻撃者が制御するコードにシークレットと書き込み権限が渡ります

この「Pwn Request」パターンは GitHub 公式ブログ でも警告されており、研究者が5,000リポジトリを調査したところ約50件が悪用可能でした。GitHub 全体では100,000以上の pull_request_target 設定が存在し、数千のリポジトリが潜在的に脆弱です。

OpenVSX マーケットプレイスのセキュリティ問題

この事件は OpenVSX マーケットプレイスのセキュリティ上の構造的課題も浮き彫りにしました。

OpenVSX vs VS Code Marketplace

観点VS Code MarketplaceOpenVSX
運営MicrosoftEclipse Foundation(コミュニティ)
レビュー体制Microsoft による審査コミュニティベースの監視
コード署名パブリッシャー検証あり検証が限定的
利用エディタVS CodeVS Codium、Gitpod、Eclipse Theia 等

OpenVSX はオープンソースエディタのための代替マーケットプレイスですが、Wiz の調査によると、分散型の性質上、集中型のセキュリティ制御が不足しており、サプライチェーン攻撃の標的になりやすい構造です。

過去の OpenVSX セキュリティインシデント

インシデント内容
CVE-2025(クリティカル)OpenVSX レジストリの脆弱性。数百万の開発者に影響
アクセストークン漏洩100以上の拡張のパブリッシャーがトークンを漏洩。150,000ユーザーに影響の可能性
GlassWorm マルウェア自己増殖型マルウェアが OpenVSX と VS Code Marketplace の両方を標的。35,800回以上インストール

開発者が今すぐ取るべき対策

即時対応(影響を受けた可能性がある場合)

  1. Trivy 拡張 v1.8.12 / v1.8.13 を削除: 両バージョンは既に OpenVSX から削除済み
  2. 認証情報のローテーション: 環境変数、API キー、トークンを全てローテーション
  3. GitHub PAT の確認: 不審なアクセスがないか確認し、不要な PAT を失効
  4. Trivy を v0.69.2 以上に更新: バイナリ直接ダウンロードの場合

CI/CD パイプラインの防御

対策詳細
pull_request_target の確認フォークからのコードを checkout していないか確認。GitHub のガイドに従う
トークン権限の最小化permissions: contents: read を明示的に設定
アウトバウンド通信の監視CI 環境からの不審な外部通信をブロック
ワークフローのピン留めActions をコミットハッシュでピン留め(タグではなく)

AI コーディングツールの防御

対策詳細
bypass permissions モードの無効化disableBypassPermissionsMode: "disable" を設定
サンドボックスの有効化Claude Code の sandbox モードで外部通信を制限
拡張のソース確認OpenVSX ではなく VS Code Marketplace を優先(審査体制の違い)
拡張の自動更新を無効化手動更新に切り替え、変更内容を確認してからインストール

まとめ

  • AI コーディングツールを武器化する新しい攻撃ベクター: 従来のマルウェアではなく、開発者のローカル AI ツール(Claude、Codex、Gemini 等)を最大権限で呼び出し、自然言語プロンプトで機密情報を探索・窃取する手法が登場した
  • hackerbot-claw は Claude Opus を使った自律型攻撃ボット: 47,000以上のリポジトリをスキャンし、7つの主要 OSS リポジトリを攻撃。各リポジトリの設定に応じて攻撃手法を適応させる AI エージェント
  • Trivy リポジトリは完全に乗っ取られた: GitHub Actions の pull_request_target 設定ミスを悪用して PAT を窃取。178リリースの全削除、リポジトリの非公開化、悪意ある VS Code 拡張の配布に至った(CVE-2026-28353, Critical)
  • Claude Code は攻撃を検出・拒否した: ambient-code/platform への攻撃で、Claude はプロンプトインジェクションを即座に検出し、実行を拒否。読み取り専用権限と内部検出機能が多層防御として機能
  • OpenVSX の構造的なセキュリティ課題: 分散型マーケットプレイスの審査体制の限界が露呈。VS Code Marketplace に比べて検証が限定的で、サプライチェーン攻撃の標的になりやすい
  • pull_request_target は広範な脆弱性: GitHub 全体で100,000以上の設定が存在し、数千が潜在的に脆弱。フォークからのコードを信頼されたコンテキストで実行するパターンは即座に修正すべき
  • AI 時代の開発者は新しい脅威モデルに備える必要がある: bypass permissions の無効化、サンドボックスの有効化、拡張のソース確認と手動更新が最低限の防御策

参考