9月16日、The Hacker Newsが「Attacker Hijacks AI Coding Assistant Session, Spreads Shai-Hulud Across About 100 Repositories」と題した記事を公開した。AIコーディングアシスタントが「推薦するパッケージ」を信じた瞬間に感染が始まり、約100のリポジトリが連鎖的に侵害された——Googleのセキュリティ部門Mandiantが公表したこの事例は、AI支援開発が当たり前になった現在の開発環境において、従来のセキュリティ対策では想定していなかった攻撃経路が現実に悪用されていることを示している。
AIアシスタントのセッション乗っ取りから始まった連鎖感染
Mandiantが2026年9月のレポートで公表した事例だ。被害を受けたのは匿名のSaaS企業で、開発者が使用中のAIコーディングアシスタントのセッションを攻撃者が乗っ取った。
攻撃の起点となったのは、AIアシスタントによるパッケージ推薦だった。攻撃者はあらかじめPyPIパッケージを汚染(ポイズニング)しておき、AIアシスタントがそのパッケージを推薦する状況を作り出した。開発者がその推薦を受け入れたことで、情報窃取マルウェア(インフォスティーラー)がインストールされ、GitHubのOAuthトークンも盗まれた。
その後、攻撃者は乗っ取ったセッションを足掛かりに、自己拡散型ワーム「Shai-Hulud」を約100の内部コードリポジトリに展開。ワームはリポジトリ内のシークレット情報と製品のソースコードを窃取した。
さらに被害は連鎖する。攻撃者は企業の公式パッケージ名前空間(namespace)にも汚染パッケージを仕込み、別の従業員がその侵害済みバージョンを取得したことで二次感染が発生した。
Shai-Huludとは何か
Shai-Huludはフランク・ハーバートのSF小説『デューン』に登場するサンドワームの別名で、Mandiantがこのマルウェアファミリーに付与した命名だ。その自己拡散・増殖する性質がサンドワームになぞらえられている。なお、攻撃者自身がこの名称を使用しているわけではなく、Mandiantによるトラッキング上の識別名である。
Mandiantは2025年のレポートの時点で、攻撃者がLLM(大規模言語モデル)をマルウェアや実際の攻撃に組み込む方向へシフトしていると指摘していた。今回の事例はその延長線上にある。
Shai-Huludファミリーの攻撃は、今回の事例に限らず開発者ツールを狙い続けている。
- 2026年8月:Keyv連携のnpmワームが数百のパッケージを汚染し、Claude CodeおよびVisual Studio Codeへのフックを仕掛けた
- 2026年9月:別の分析で、Shai-Huludの変種がCI/CDツール、クラウド設定、AIツールのファイルを含む開発者システム上の469か所で認証情報を探索していることが判明(関連記事)
ただし、これらは今回のMandiant報告事例とは別のキャンペーンであり、同一の攻撃者との関連は確認されていない。
エンジニアが今すぐ確認すべき3つの対策
Mandiantはこの事例を踏まえ、AI支援開発環境向けの具体的な対策として以下3点を推奨している。
- AIが推薦するサードパーティ依存関係を、暗号チェックサムと承認済みアローリストで検証する:AIアシスタントはパッケージの安全性を保証しない。推薦されたパッケージであっても、PyPIのハッシュ検証や組織内の承認済みリストと照合する運用が不可欠だ。
- APIキーや長期OAuthトークンなどのシークレットを、拡張機能の直接アクセス圏外に置く:今回の攻撃ではOAuthトークンの窃取がセッション乗っ取りの足掛かりとなった。GitHub Actions secretsや専用のシークレット管理サービスを活用し、トークンをIDE拡張機能から論理的に分離することが求められる。
- 依存関係のトラフィックを、管理された内部リポジトリ経由でルーティングする:外部パッケージレジストリへの直接アクセスを遮断し、ArtifactoryやAWS CodeArtifactなどの内部プロキシ経由に限定することで、汚染パッケージが開発環境に到達するリスクを大幅に低減できる。
AIコーディングアシスタント(GitHub Copilot、Cursor、Claude Codeなど)は今や多くの開発現場に浸透しているが、アシスタントが「推薦するパッケージ」の信頼性を検証する仕組みは整っていないケースが多い。今回の攻撃はその盲点を突いた形だ。
詳細はAttacker Hijacks AI Coding Assistant Session, Spreads Shai-Hulud Across About 100 Repositoriesを参照していただきたい。




