はじめに
2026年8月、npm(Node.js のパッケージ管理)で、また供給網(サプライチェーン)を狙う攻撃が確認されました。名前は ChainDrop。特徴は、人が npm install を実行するだけで感染が広がる「自己増殖型」のワームという点です。盗むのは、開発者やクラウドの認証情報です。
この記事では、当サイトのこれまでの記事——不可視の文字を使ったGlassWormや、AIツール経由で広がる「AIワーム」——と同じ姿勢で扱います。つまり、攻撃の再現手順やペイロードは書きません。仕組みは概念レベルにとどめ、読者が取れる防御と確認の実務を、出典を明記して整理します。
本記事は攻撃の再現手順・実際のコード・回避テクニックを一切書きません。仕組みは「preinstall で自動実行される」「認証情報を盗む」「依存を通じて広がる」という概念までにとどめます。影響を受けたパッケージ数などの数字は、調査主体・時点で食い違うため、出典を添えて幅で示します(進行中の事案で、今後も増減しえます)。
🧨 1. 何が起きたのか
時系列と規模を、出典を添えて整理します。
- 2026年8月4日、Elastic Security Labs が、広く使われる key-value ライブラリ keyv のメンテナを標的にした新たな Shai-Hulud キャンペーンを確認し、そこに含まれる自己増殖ワームを CHAINDROP と名付けたと報告しています(Elastic)。
- 起点は、メンテナのアカウント侵害とされています。奪った npm の認証情報を使い、そのメンテナが公開権を持つすべてのパッケージへ悪性コードを注入する、という流れです(Microsoft/Elastic)。keyv や cacheable の namespace が影響を受けたと報じられています(SecurityWeek)。
影響範囲の数字は、調査主体で食い違います。 ここは断定せず、そのまま並べます。
| 出典 | 報告された規模 |
|---|---|
| Microsoft(ブログ) | 400を超えるパッケージ |
| Microsoft/JFrog(SecurityWeek 経由) | 約440パッケージ・2,200版超 |
| Aikido(報道経由) | 444パッケージ・1,381版 |
| ダウンロード規模 | 影響パッケージ合計で週5億回超(SecurityWeek)。keyv 単体でも月数億回規模と報じられる |
いずれも「〜によれば」という帰属付きの、執筆時点の数字です。進行中の事案のため、数は今後変わりえます。「正確に何個」と一つの数字で断定はしません。
⚠️ 2. なぜ怖いのか——自己増殖と preinstall
ChainDrop の怖さは、大きく2点に集約されます。
preinstall フックは、npm install でパッケージを入れる際、インストール完了の前に自動で走るスクリプトの仕組みです。本来は正当な用途のためのものですが、ここに悪性の処理が仕込まれると、「依存を入れる」という日常動作そのものが実行トリガーになります。
自己増殖(ワーム)は、感染した環境から次の対象へ、人手を介さず自動で広がる性質のことです。ChainDrop は、盗んだ認証情報で別のパッケージを書き換えて再公開し、それを誰かが入れると、また広がります。
一つめは、マルウェア対策の「外」で広がる点です。誰かが怪しいファイルを開くのではなく、信頼して依存を入れただけで連鎖します。二つめは、構造的な穴という点です。preinstall フックは npm の正規の機能で、多くのパッケージが日常的に使っています。悪用と正当な利用の線引きが難しいところに、この攻撃は入り込んでいます。
概念図にすると、次のような「増殖ループ」になります(★具体的な手順やコードは示しません)。
盗まれる対象として報告されているのは、npm・GitHub・AWS・Kubernetes・HashiCorp Vault などの認証情報です(Microsoft)。CI/CD 環境も探索の対象になり、環境が CI/CD か開発端末かで挙動を変える、とも報告されています(Microsoft)。
🧬 3. Shai-Hulud との関係——2025年からの系譜
ChainDrop は、いきなり現れた新種ではありません。2025年に登場した Shai-Hulud ワームの系譜にあたります。複数の調査主体が、これを「Shai-Hulud 2.0 の進化版(派生)」と位置づけています(Microsoft は「Mini Shai-Hulud variant」と表現)。盗んだ情報の退避先として作られる GitHub リポジトリに 「Shai-Hulud: Here We Go Again」(また始まった、の意)という説明文が付く点が、この系譜の目印になっています(Microsoft/Elastic ほか)。
技術的に新しいと報じられているのが、指令サーバ(C2)の隠し方です。攻撃者の連絡先を固定のサーバに置くのではなく、イーサリアムのスマートコントラクトを参照して、実行時に接続先を取り出す手法が使われていると報告されています(Microsoft/Elastic/SecurityWeek)。ブロックチェーンに情報を潜ませるこの手口は EtherHiding と呼ばれています。連絡先を止められにくくする狙いがある、と見られています(★本記事では具体的なアドレスや手順は扱いません)。
つまり系譜としては、2025年の Shai-Hulud で確立した「自己増殖+認証情報窃取」に、より止めにくい C2 とより広い巻き込みが重なった、という位置づけになります。供給網攻撃が、一段ずつ手強くなってきている、という流れです。
🛡️ 4. 読者は何をすべきか(防御と確認)
ここが、この記事でいちばん実用的な部分です。攻撃の中身ではなく、守り方に絞ります。以下は各主体が推奨しているもので、確認できた範囲で帰属します。
- npm CLI を新しめのバージョンに更新する:Microsoft は npm CLI v12 への更新と、公開直後のパッケージを避ける
min-release-ageの活用を挙げています(Microsoft)。新しく公開された版をすぐに取り込まない、という考え方です。 - 依存ツリーを見直す:どのパッケージに依存しているかを把握し、身に覚えのない更新がないか確認します(Microsoft)。
- 認証情報を「クリーンな環境」からローテーションする:感染の疑いがある端末でトークンを入れ替えても、また盗まれる恐れがあります。きれいなホストから入れ替えるよう推奨されています(Microsoft)。
- 影響システムは隔離し、ログを保全してから再構築する:JFrog は、影響を受けたシステムの隔離、パッケージの tarball・npm/CI/GitHub の各ログの保全、その後に CI・runner を作り直すことを挙げています(JFrog、SecurityWeek 経由)。
- 保護機能を有効にする:Microsoft は Defender のクラウド配信保護などの有効化を挙げています(Microsoft)。
当サイトの読者にとっても、これは他人事ではありません。個人開発でも、Raspberry Pi や組み込みの開発で Node.js のツールチェーンを使う場面は多く、自分の CI や開発環境も同じ供給網の上にあります。とくに、AI コーディングツールに広い権限を与えていると、そこが新たな永続化の経路になりうる、という指摘もあります。この点は、AIツール経由で広がる「AIワーム」の記事と地続きです。
🧑💻 5. 筆者の見方
正直に書きます。筆者は日々、AI コーディングツールに手伝ってもらいながら開発をしていて、npm install をほとんど無警戒に実行しています。新しいライブラリを試すとき、依存の中身まで毎回追っているかと言われると、追えていません。そのため、今回の ChainDrop は「自分は対策済み」とは口が裂けても言えない立場から読みました。
怖いと感じたのは、攻撃が「うっかり怪しいものを開く」タイプではなく、信頼して依存を入れるという、開発で毎日やっている動作に相乗りしてくる点です。しかも自己増殖で、C2 まで止めにくくしてきている。ここまで来ると、個人の注意力だけで防ぎ切るのは難しく、仕組み側の守り(新しい版をすぐ入れない、認証情報をこまめに入れ替える、CI の権限を絞る)に寄せていくしかない、と感じています。
もう一つ、AI ツールに広い権限を渡している自分にとっては、「AI 経由の永続化」という指摘が刺さりました。便利さと引き換えに何を握らせているのか——ここは、消耗品の対策記事や AIワーム記事で書いてきた「便利さの裏側を確認する」という姿勢の、続きとして受け止めています。政治的な評価をするつもりはなく、一人の利用者としての受け止めです。
まとめ
- 2026年8月、npm で自己増殖型の認証情報窃取ワーム ChainDrop が確認されました。2025年の Shai-Hulud の系譜にあたります(Microsoft/Elastic ほか)。
- 芯は2つ。自己増殖(
npm installするだけで広がる=マルウェア対策の外)と、preinstall フックという構造的な穴(依存を入れる日常動作が実行トリガー)です。 - 影響を受けたパッケージ数は調査主体・時点で食い違い(400超〜440前後などと報告)、進行中の事案です。単一の確定数字では語れません。
- C2 にイーサリアムのスマートコントラクトを使う(EtherHiding)など、止めにくくする手口も報告されています。
- 守りは、新しい版をすぐ入れない・依存ツリーの確認・クリーンな環境での認証情報ローテーション・影響システムの隔離と再構築が各主体から推奨されています(Microsoft/JFrog ほか)。
同じ供給網クラスタの話として、GlassWormやAIワームもあわせてどうぞ。日常の npm install を、少しだけ立ち止まって見直すきっかけになればと思います。
よくある質問(FAQ)
Q. ChainDrop に感染すると何が起きますか?
A. 開発環境や CI/CD にある認証情報(npm・GitHub・AWS・Kubernetes・HashiCorp Vault など)が盗まれると報告されています(Microsoft)。さらに、盗んだ認証情報で別のパッケージが書き換えられ、依存を通じて他の開発者へ広がる自己増殖の性質があります。
Q. どれくらいのパッケージが影響を受けたのですか?
A. 数字は調査主体・時点で食い違います。Microsoft は「400超」、Microsoft/JFrog は「約440パッケージ・2,200版超」、Aikido は「444パッケージ・1,381版」などと報告しています(いずれも報道・執筆時点)。進行中のため、今後も増減しえます。一つの確定数字としては扱えません。
Q. npm install するだけで危ないのですか?
A. preinstall フックという仕組みにより、インストール時に自動でスクリプトが走ることがあります。そこに悪性処理が仕込まれると、依存を入れる動作が実行トリガーになりえます。対策として、公開直後の版をすぐ取り込まない設定(min-release-age)などが推奨されています(Microsoft)。
Q. 2025年の Shai-Hulud と何が違うのですか?
A. ChainDrop は Shai-Hulud の系譜(進化版)と位置づけられています。自己増殖と認証情報窃取という骨格は共通ですが、指令サーバ(C2)をイーサリアムのスマートコントラクトから取り出す EtherHiding など、より止めにくくする手口が加わったと報告されています。
Q. 個人開発や組み込みでも関係ありますか?
A. あります。Node.js のツールチェーンは個人開発や組み込みの現場でも広く使われ、CI や開発環境は同じ供給網の上にあります。とくに AI コーディングツールに広い権限を与えている場合は、そこが永続化の経路になりうるとの指摘もあります。防御の基本は同じです。