タイトル: AIコーディングアシスタントのセッションがサプライチェーン攻撃に

Mandiantの最新のケーススタディによると、乗っ取られたAIコーディングアシスタントのセッションを通じて、攻撃者がソフトウェア企業のコードベースに毒入りのパッケージを注入し、100の内部リポジトリを侵害、GitHub OAuthトークンを窃取し、ソースコードや機密情報を流出させたことが明らかになりました。 この侵害は、開発者がAIによる提案を安全なコードとして扱うことはできないという事実を証明しています。

何が起きたのか

ライブ開発セッション中に、攻撃者がチームのエディタに組み込まれたAIアシスタントの制御を奪いました。侵害されたアシスタントは、その後、悪意のあるパッケージを提案しました。開発者はツールを信頼し、追加の確認を行うことなくその提案を受け入れました。

毒入りのパッケージは、ワークステーションに保存されているGitHub OAuthトークンを収集するインフォスティーラー(情報窃取型マルウェア)を送り込みました。攻撃者はこれらのトークンを使用して「Shai-Hulud」ワームを展開し、100の内部リポジトリに自身をコピーしました。悪意のあるコードがその企業自身の名前空間(namespace)を使用していたため、後に同じパッケージをプルした他の開発者も感染しました。

なぜ重要なのか

AIコーディングアシスタントは、プロジェクトファイルの読み取り、インストールコマンドの生成、依存関係マニフェストの編集、さらにはターミナルコマンドの実行まで可能です。この広範なアクセス権限により、サプライチェーン攻撃の魅力的なベクトルとなっています。開発者が他人の助言よりもAIの提案を信頼してしまうと、攻撃者の仕事は容易になります。アシスタントは、正当なものに見える悪意のあるコードを密かに挿入することができるからです。

サプライチェーン攻撃により、攻撃者は組織のコードベース内を横方向に移動(ラテラルムーブメント)し、認証情報を窃取し、独自の資産を流出させることができます。これらすべては、被害者が被害に気づいたときにはすでに手遅れであるという状況で行われます。

攻撃の経緯

  1. セッションの乗っ取り – 攻撃者が進行中のAIアシスタントセッションを乗っ取った。
  2. 毒入りの推奨 – 侵害されたアシスタントが、悪意のあるパッケージを提案するように強制された。
  3. 開発者による受け入れ – AIの推奨を信じた開発者が、パッケージを追加し、生成されたインストールコマンドを実行した。
  4. ペイロードの実行 – パッケージが、ローカルのGitHub OAuthトークンやその他の機密情報を読み取るインフォスティーラーをインストールした。
  5. ワームの拡散 – 盗んだトークンを使用して、攻撃者がShai-Huludワームを展開し、100の内部リポジトリに拡散した。
  6. 情報の流出 – ソースコード、内部ライブラリ、およびシークレットキーが攻撃者のインフラストラクチャに吸い上げられた。

開発者が今できること

すべてのAIの提案を「信頼できないコード」として扱ってください。サードパーティの依存関係に対して行うものと同じ検証手順を適用してください。

  • パッケージの検証

    • 公式ドキュメントとバージョン履歴を確認する。
    • パブリッシャーの身元と評判を確認する。
    • ソースリポジトリと最近のコミットを確認する。
    • 予期しないリンクがないか、完全な依存関係ツリーを調査する。
    • インストールスクリプトに隠されたコマンドがないか精査する。
  • 認証情報の取り扱いの強化

    • 各トークンに必要最小限の権限のみを付与する。
    • 長期的なトークンよりも短期間のトークンを優先する。
    • 本番環境のシークレットをローカルの開発マシンに置かない。
    • エディタ拡張機能が不要な認証情報にアクセスできないように制限する。
  • 侵害が疑われる場合の対応

    • 影響を受けた環境を直ちに隔離する。node_modulesや同様のディレクトリを削除するだけでは不十分です。
    • すべてのGitHub、npm、PyPI、およびクラウドの認証情報をローテーションする。
    • 予期しないコミットやプルリクエストのマージがないか、リポジトリのアクティビティを監査する。
    • 異常な動作がないか、CI/CDログとGitフックスクリプトを確認する。

今後の展望

AIアシスタントは多くの開発者にとって生産性を向上させるツールであり続けますが、その強力な機能には「信頼」というコストが伴います。組織は、外部ライブラリと同様に、AIが生成したコードを既存のセキュリティレビューパイプラインに組み込むべきです。自動化されたポリシーチェック、署名付きのAIアシスタント出力、およびランタイムサンドボックス化により、密かな侵害のリスクを軽減できます。

Mandiantの事例は、一度AIアシスタントが侵害されると、攻撃者がソフトウェアサプライチェーンへの直接的な経路を手に入れることを明確に示しています。AIの提案を「無条件に許可されるもの」ではなく、「脅威モデルの一部」として扱うことが、コードベースの安全性を維持するために不可欠となるでしょう。

教訓:AIが生成した推奨事項は、他のサードパーティ製コードと同様に信頼できるものではありません。厳格に検証、制限、および監視を行ってください。さもなければ、便利なアシスタントを大規模なサプライチェーン侵害の導管に変えてしまうリスクがあります。