2025年9月8日、npmエコシステムは過去最高レベルのサプライチェーン攻撃の一つを経験しました。綿密に計画されたフィッシング キャンペーンを通じて、「パッケージ毒物犯」と呼ばれる未知の攻撃者は、npmの最も人気のある18個のパッケージを侵害し、週間ダウンロード数合計25億以上に影響を与えました。これらのパッケージに注入された悪質なコードは、ネットワークトラフィックを操作して、複数のブロックチェーンネットワーク全体の暗号通貨トランザクションをインターセプトおよびリダイレクトしました。少数の眼力の鋭い開発者の警戒心と迅速なコミュニティ対応のおかげで、壊滅的な事件となる可能性があったものは数時間以内に封じ込められました。これは、単純なフィッシング メールがいかにしてJavaScriptエコシステム全体をほぼ毒殺し、どのようにして阻止されたかの物語です。
数百万件を侵害したフィッシング詐欺
月曜日の朝、2025年9月8日
週間3億ダウンロードを誇るchalkパッケージのメンテナーであるJosh Junonは、[email protected]からメールを受け取ります。このメッセージは合法的に見えます:npmは全ユーザーに2要素認証(2FA)認証情報を更新するよう要求しており、古い2FAを持つアカウントは2025年9月10日から一時的にロックされると警告しています。
メールは専門的に見えます。ドメインは一見すると正しいように思えます。このリクエストは理にかなっています。セキュリティ更新は日常的なことです。Joshは「2FAを今すぐ更新」リンクをクリックします。
その朝の後の方 – アカウント ロックアウト
2FA更新プロセスに見えたものを完了した後、Joshはnpmアカウントからログアウトされます。ログイン試行に失敗します。パスワード リセット メールは届きません。恐ろしい現実が明らかになります。アカウントが侵害されたのです。
午後 – 匿名のチップ
セキュリティ研究者Derek Heldは、NPM上の非常に人気のあるいくつかのパッケージが不審な動作を開始したという匿名の開発者からチップを受け取ります。彼はinfosec.exchangeで自分のアカウントにそれについて書いて、他の開発者に警告します。並行して、研究者Charlie Eriksenも不審な動作を発見し、Josh Junonにアカウントがハッキングされたことを通知します。

このポイントで情報が広がり始めます。GitHubのIssue、Twitter DM、世界中の開発者からの熱烈なメール:「なぜchalkがアップデートされた?」「バージョン5.6.1に難読化されたコードがある!」「chalkが侵害されたのか?」
Joshは、数百万人に信頼されているパッケージが悪質なコードをエコシステム全体にプッシュするのを無力に見守ります。自分のアカウントにさえアクセスできず、停止することもできず、NPMからサポートを受けるまでに数時間かかります。
パッケージ毒物犯がどのように動作したか
フィッシング インフラストラクチャ
パッケージ メンテナーに対するフィッシング キャンペーンを開始するために使用されたドメイン npmjs[.]help は、わずか数日前の2025年9月5日に購入されました。このドメインは、公式のNPMウェブサイトを完璧に模倣しています:
このなりすまし サイトには、被害者のデータを websocket-api2.publicvm[.]com に送信する偽のログイン フォームが含まれていました。このサービスは一時的な仮想マシンを提供し、脅威行為者によってよく使用されます。
マルウェア
注入されたコードは、ネットワーク トラフィックとアプリケーション APIの両方をターゲットにしています。fetch、XMLHttpRequest、ウォレット API(window.ethereum、Solanaプロバイダーなど)などの重要なブラウザ関数をフックすることで、ユーザーと暗号相互作用の間にそっと自分自身を位置付けます。
そこから、3つの主要なアクションを実行します:
- ウォレット活動を監視する
- 暗号ウォレット(MetaMask、Solana、Tronなど)が使用されていることを検出します。
- API呼び出しとトランザクション ペイロードを監視して、ウォレット アドレス、承認、または転送に類似したものを検出します。
- 送信先を書き換える
- トランザクション内の正規な暗号アドレスを攻撃者制御のアドレスに置き換えます。
- Ethereum、Bitcoin、Solana、Litecoin、Tron、Bitcoin Cashを含む複数のブロックチェーンをサポートします。
- 文字列の類似性チェックを使用して「そっくりなアドレス」を使用し、ユーザーが微妙なスワップに気付くのを難しくします。
3. 署名前のトランザクションをハイジャックする
- 受信者、承認、transferFromコール、DEXスワップ ターゲットなどのEthereumトランザクション パラメータを変更します。
- Solanaの場合、pubkeyとアカウント参照を置き換えて、資金をそっと別の場所にリダイレクトします。
- UIが正しく見えても、署名されているトランザクションは既に侵害されています。
なぜこんなに危険なのか
単純なバックドアをドロップする従来のサプライチェーン攻撃とは異なり、このマルウェアはスタックの複数のレイヤーで動作します:
- ブラウザ レベル:API呼び出しとネットワーク応答をインターセプトします。
- ウォレット レベル:署名直前のトランザクションを改ざんします。
- ユーザー インターフェース レベル:侵害されたトランザクションが被害者にとって正常に見えることを保証します。
その結果、ユーザーは信頼できるアドレスに資金を送信したり、正規なコントラクトを承認したりしていると信じることができますが、実際には、資金は複数のチェーン全体の攻撃者制御ウォレットにリダイレクトされています。
最終的な考え
パッケージ毒物犯攻撃は、不快な真実を明らかにしています。フォーチュン500企業、政府機関、および重要インフラストラクチャのセキュリティは、ボランティア メンテナーの肩にかかっており、彼らは最小限のサポートで益々高度な攻撃に直面しています。Josh Junon氏は、他の数千人のメンテナーと同様に、chalk は週間3億回ダウンロードされており、無数の本番システムの依存関係です。しかし、彼をはじめとするメンテナーはこの作業を余暇に行っており、多くの場合報酬はなく、エンタープライズ セキュリティ チームやプロの最先端の犯罪者から身を守るのに役立つ訓練へのアクセスがありません。
今回のペイロードは暗号通貨ウォレットをターゲットにしていましたが、同じ攻撃ベクトルでランサムウェア、データ ステーラー、またはバックドアを配信できます。npmパッケージは完全なユーザー権限で実行されます。SSHキー、AWS認証情報、ソースコード、本番システムへのアクセスがあります。ボランティアが国家レベルのディフェンダーのセキュリティ専門知識を持つことを期待していながら、リソースを何も与えていない。メンテナーへの適切な資金提供、セキュリティ インフラストラクチャ、およびサポートを通じてこのシステムの失敗に対処するまで、私たちは1通のフィッシング メール遠いところにいます。問題はメンテナーではなく、彼らをさらしている仕組みです。
Koiはこの問題を解決するために構築されました。当社のプラットフォームは、実務者とエンタープライズに、NPM、Chrome Web Store、VS Code、Hugging Face、Homebrew、その他のエコシステムから何をもたらすかを発見、評価、制御する能力を与えます。今日、世界最大級の銀行、フォーチュン50企業、および最先端の技術企業の一部は、このエコシステムの拡大攻撃面を縮小し、可視性を実現し、プロアクティブにガバナンスを確立するプロセスを自動化するためにKoiに依存しています。
その仕組みを見たい場合、または行動を起こす準備ができている場合は、デモを予約するか、当社に連絡してください。
もっと共有することがあるので、お楽しみにしていてください。
IOCs
侵害されたパッケージ
これらは現在侵害されていることが知られているパッケージです。インシデントはまだ進行中であるため、リストは更新される可能性があります。
ドメイン
翻訳元: https://www.koi.ai/blog/npm-supply-chain-attack-package-poisoner