npm ワームから MCP ポイズニングへ:AI Agent サプライチェーン攻撃の進化と防衛線
ソフトウェアサプライチェーンへの毒物混入は新しい話ではない。2018 年の event-stream には暗号資産ウォレットを盗むバックドアが仕込まれ、2021 年には週間ダウンロード数 800 万近い ua-parser-js が乗っ取られマイナーと情報窃取ツールの配布に使われた。2024 年の xz/liblzma バックドア(CVE-2024-3094)では、攻撃者が 3 年をかけてコミュニティの信頼を獲得し、主要 Linux ディストリビューションへの侵入まであと一歩に迫った。そして 2025 年 9 月、自己複製する npm ワーム「Shai-Hulud」が数百のパッケージに感染し、盗んだメンテナー資格情報で下流への投毒を自動化した。攻撃は「工房」から「工場」へ進化した。
攻撃対象は Agent エコシステムへ移動している
企業が AI Agent を本格導入するにつれ、ほぼ無統制の新しい配布チャネルが生まれた——MCP サーバーと Agent Skill である。プラグインのように手軽にインストールされるが、その権限は従来の依存関係よりはるかに大きい。ファイルの読み書き、社内 API の呼び出し、メール送信、ブラウザ操作まで及ぶ。
実害はすでに発生している。2025 年 9 月に発覚した postmark-mcp 事件では、npm 上で公開された MCP サーバーが数バージョンにわたり正常に動作した後、静かなアップデートで 1 行のコードが追加され、ユーザーの送信メールすべてが攻撃者へ BCC されるようになった。研究者はさらに「ツールポイズニング」——MCP のツール記述に悪意ある指示を隠し、ユーザーが気づかないうちにモデルに SSH 秘密鍵を外部送信させる手口——を実証している。mcp-remote のリモートコード実行脆弱性(CVE-2025-6514、CVSS 9.6)は、信頼できない MCP サーバーに接続するだけでホストが侵害されうることを証明した。
なぜマルウェア検知では足りないのか
従来のセキュリティツールには構造的な盲点がある。Skill の危険性は悪意あるコードからではなく、付与される能力の組み合わせから生じることが多いのだ。
- 説明書こそが攻撃面:Skill の挙動は SKILL.md のような自然言語ファイルに大きく依存する。プロンプトインジェクションはドキュメントに隠れられるが、静的スキャナーはそれを読まない。
- 善意でも危険:メールを読む能力と外部 API へアクセスする能力を併せ持つ「メール要約」Skill は、それだけで完成されたデータ持ち出しチャネルである——悪意あるコードは 1 行もない。
- 組み合わせ攻撃チェーン:単体では無害な Skill でも、能力の重ね合わせ(ファイル読取+ネットワーク+定期実行)で完全な侵入経路が組み上がる。
問うべきは「悪意があるか」ではなく「有効化された後、Agent はどの承認すべき能力を獲得するのか」である。これが能力監査とマルウェア検知の分水嶺だ。
MCP と Skill:二つの信頼モデル、二つの監査観点
並べて語られがちだが、両者のリスク構造は異なる。MCP サーバーはランタイムサービス——動的でリモート、いつでも更新されうる。監査の焦点はエンドポイントの挙動とツール記述のドリフトだ。昨日審査を通ったサーバーが、今日のサイレント更新で挙動を変える——postmark-mcp はまさにこの経路だった。Skill は能力パッケージ——説明書とスクリプトの静的な組み合わせで、最大のリスクは「宣言と実装の乖離」にある。ドキュメントは読み取り専用と言いながらスクリプトは書き込み、ローカル処理と言いながらコードは外部通信する。自然言語とコードの両方を読み、両者の一致を検証する必要がある。コードしか見ない従来型スキャナーがこの生態系で構造的に盲目なのはこのためだ。
企業の三つの防衛線
第一線:導入前ゲート。あらゆる MCP サーバーと Skill は企業環境に入る前に監査を受け、block / need_review / pass の明確な判定を得るべきだ。Sectrend の SkillSec はこの手法を製品化している——7 つのリスクドメイン、30 以上の構造化能力タグ、E1–E5 の証拠グレーディング、SKILL.md の行番号まで特定する証拠チェーン。
第二線:バージョン継続監視。postmark-mcp の教訓は「登録時にクリーン」が「永遠にクリーン」を意味しないことだ。更新のたびに再監査し、挙動の差分に注目する。
第三線:ランタイム最小権限。能力タグに基づいて Agent の実際の権限を絞り込み、すり抜けた投毒が実害化しにくい環境をつくる。
サプライチェーン攻撃の歴史法則はひとつ——配布チャネルのあるところに投毒は必ず追いかけてくる。npm が成熟した防御の合意を築くのに 7 年かかった。権限が大きく成長が速い Agent エコシステムに、7 年の猶予はない。有効化の前に監査を置くこと。それが今日からできる対策である。
