keyv悪意ある改ざんが発生―サプライチェーン攻撃を防ぐ事前防御の仕組み

2026年8月、オープンソース(OSS)エコシステム全体を揺るがす大規模なサプライチェーン攻撃が発生しました。

JavaScript/Node.js環境で広く使われている軽量キャッシュライブラリ keyv や cacheable などの主要メンテナーアカウントが乗っ取られ、月間20億回以上ダウンロードされる10の主要パッケージが悪意を持って改ざんされたのです。この攻撃はワームのように自己増殖し、数百から数千のダウンストリームパッケージへと拡大しました。

本記事では、この巧妙なマルウェア攻撃についての解説と、なぜ従来の防御策では防ぎきれなかったのか、そして今までの事後的な確認のみに頼ることのない、サプライチェーンそのものに対する事前防御というセキュリティモデルの強みを解説します。

また、感染のチェックや影響を受けたパッケージの詳細などについては、ChainguardのCISOのBlog記事が詳しいです。こちらをご参照ください。

The keyv and cacheable npm Supply Chain Attack: Inside the Mini Shai-Hulud Campaign(公式ブログ記事)

1. 何が起きたのか?:npm攻撃(Mini Shai-Hulud)の特徴

今回の攻撃は、単なるコードの流出にとどまらず、多層的かつ極めて高度な仕掛けが組み込まれていました。

多層的な攻撃手法のポイント

  • 自動実行と資格情報の窃取
    パッケージのインストール時(preinstall スクリプト)に自動で悪意ある処理が実行。環境変数や .npmrc などから、AWS、GitHub、npm、HashiCorp Vaultなどの重大な機密情報(APIトークンや認証情報)を収集し、外部へ流出させました。
  • 自己増殖(ワーム化)
    窃取したnpmトークンを即座に悪用し、被害者が所有する他のパッケージへ悪意あるコードを挿入して自動で再公開。これにより感染が爆発的に広まりました。
  • VS Code / Claude Code のフック(閲覧するだけで感染)
    開発者が npm install を実行しなくても、プロジェクトフォルダをVS CodeやClaude Code等のエディタで開いただけで悪意あるコードが起動する仕組みが仕込まれていました。
  • C2(司令塔)の難読化
    マルウェアの通信先(C2サーバー)のドメイン決定にEthereumのスマートコントラクトを経由させて動的に解決させることで、従来のIPアドレスやドメイン指定のブロック回避を図っていました。

2. なぜ「自力での防衛」は難しいのか?

今回の事例は、多くの企業が導入している標準的なセキュリティ対策の「死角」を完璧に突いたものでした。

  1. 電子署名やProvenance(起源証明)の形骸化
    メンテナーのアカウント自体が侵害されたため、悪意あるコードであっても「正規のメンテナーによる正しい署名」が付与されてしまいます。その結果、自動検証ツールやProvenanceチェックは「正常」と判定してしまいました。
  2. ソースリポジトリの汚染によるロールバックの不全
    単純に1つ前のクリーンなバージョンへロールバックしようとしても、アップストリームのソースコードリポジトリ自体が攻撃者によって汚染されている場合、新たなリリースにも再び悪意あるコードが紛れ込むリスクが残ります。
  3. リアルタイム検知の限界
    日々の開発作業やCI/CDパイプラインの中で、暗号化・難読化された未知のワーム型攻撃をリアルタイムに検知し、遮断し続けることは自社運用では極めて困難です。

3. 特定の検知機能だけに頼らない強力な「多層防御(Defense in Depth)」の仕組みとは

このような未曽有のサプライチェーン攻撃に対し、Chainguard Libraries(Chainguard Images)を利用していた顧客は影響を「ゼロ」で切り抜けることができました。

その理由は、特定の検知機能だけに頼らない強力な「多層防御(Defense in Depth)」の仕組みにあります。

Chainguardの堅牢な防御レイヤーの詳細は以下の通りです。

① 検証済みソースからのビルド (Build from Verified Source)

Chainguardは、アップストリーム(npm等)のバイナリをそのまま横流しするのではなく、主要・人気パッケージについて信頼・検証されたソースコードから独自に安全なビルドを行っています。

② マルウェア & グレーウェアの自動スキャン

ビルドおよびパッケージ提供の前に、高度な分析スキャナーを用いてコードを評価します。preinstall での不審な資格情報読み取りや未承認ランタイムのダウンロードなど、異常な挙動を示すコードを自動で検知し、未然に遮断します。

③ 設定可能なクールダウン期間 (Cooldown Periods)

上流のnpm等で新しいバージョンが公開されても、即座には配信せず一定の「冷却期間」を設定しています。この期間中に安全性を徹底検証することで、今回のように公開直後に急速に広まるタイプの脅威がユーザーの手元に届く前に自動で足止めします。

セキュリティモデルの重要ポイント

仮に攻撃者が誰かのアカウントを乗っ取り「正規の署名がついた悪意あるリリース」をアップストリームに公開したとしても、Chainguardの多層フィルターを通過できないため、開発者の手元には悪意あるコードが一切届きません。

4. まとめ・考察

今回の事件は、オープンソースエコシステムを狙ったアカウント乗っ取りやワーム型攻撃が、今後さらに高度化していくことを明確に示しています。

従来の「問題が発生してからパッチを当てる」「失効した資格情報を急いで差し替える」といった後手の対策では、被害を最小限に抑えることすら難しくなってきています。いままでの常識にとらわれない根本的な対策レイヤーの追加が必要となります。

いま求められているのは、悪意あるコードが最初から入ってこない「安全性が検証されたパッケージしか届かない構造」を作る先手を打つサプライチェーンセキュリティと、従来の対策を両立したハイブリッド防御です。Chainguardの多層防御アプローチは、これからの現代的な開発環境において最適で安全なセキュリティ基盤と言えます。

先手を打つサプライチェーンセキュリティを導入する事により、結果として脆弱性対策がシンプルになるがゆえにROIの向上にも寄与します。

さいごに

クリエーションラインは、AI駆動開発の伴走支援から、「Chainguard」等を活用した開発環境のセキュリティ強化まで、皆様のプロジェクトを総合的にバックアップしています。私たちが現場で泥臭く整備してきた実践的なノウハウを惜しみなく提供し、安全かつ迅速なAI開発のスタートアップを支援します。

サプライチェーンセキュリティに関する最新情報(Blog、Webinar、イベント)も引き続き発信していきますが、現在、AI駆動開発におけるセキュリティをテーマにした新しいイベントも企画中です! 首都圏だけでなく、全国各地を盛り上げていきたいと考えておりますので、「うちの地域でもやってみたい!」と開催にご協力いただける方は、ぜひ私と「ザッソウ(雑談・相談)」させてください。(nogi@creationline.com まで、お気軽にご連絡お待ちしています!)

ChainguardやProject Athenaの詳細、伴走支援にご興味をお持ちの方は、ぜひお気軽にお問い合わせください。

Author

Dockerを中心に、アジャイルやDevOpsなどについてなんかしています。
最近ではAI駆動開発におけるセキュリティについて活動をしています。
パグを愛しパグに愛された男。
日本酒も好き。F1も好き。

Etsutaka Nogiの記事一覧

新規CTA