サイバーセキュリティ
NPMサプライチェーン攻撃: 何が起きたかと対処方法

暗号通貨業界と世界全体は最近、セキュリティ専門家がNode.jsエコシステムを標的としたサプライチェーン攻撃を特定し、最大18のnpmパッケージがすでに侵害されたことが判明した際、驚きの瞬間を経験しました。
これは、これらの少数のパッケージが週に何十億ものダウンロード数を誇っているためです。
ソフトウェアパッケージはサードパーティソフトウェアを配布するために使用されます。パッケージマネージャーを通じて外部ソースから取得されることが多く、通常はソースコード、ライブラリ、ドキュメント、そしてソフトウェアの構築と実行に必要なその他のファイルが含まれます。
現在、マルウェアを含むパッケージが正規のものに偽装していますが、実際にはソフトウェアを感染させることを目的とした悪意のあるものです。システムに侵入すると、悪意のあるパッケージ内のマルウェアはファイルを改ざんし、データを盗み取り、さらには攻撃者の意のままにシステム全体を乗っ取ることさえできます。
Pythonや.NETなど他の主要なオープンソースエコシステムも同様に攻撃に対して脆弱ですが、JavaScriptの広範な使用により、特にサイバー犯罪者に対して露出が高くなっています。
Node.jsはJavaScript上に構築されたオープンソースのランタイム環境で、開発者がウェブブラウザ外でコードを実行できるようにします。
従来、主にウェブページをインタラクティブにするために知られるインタプリタ型プログラミング言語は、ブラウザ内でのクライアントサイドウェブ開発に主に使用されていましたが、Node.jsはJavaScriptの利用範囲をサーバーサイドやその他のアプリケーションへと拡張しました。
Node.jsを使用すると、開発者はウェブサーバー、API、ツールなど、迅速でスケーラブルなアプリケーションを構築できます。
npmを通じて利用可能な膨大なオープンソースライブラリとツールのエコシステムの恩恵を受け、開発が簡素化され、さまざまな機能に対するソリューションが提供されます。
Node Package Manager、すなわちnpmは、JavaScript開発における重要なツールで、コードパッケージの検索、構築、管理に使用されます。依存関係の処理、コラボレーションの促進、ワークフローの効率化に役立ちます。
この世界最大のソフトウェアレジストリは3百万以上のコードパッケージを含み、完全に無料で利用できます。
誰でも登録せずにすべてのnpm公開ソフトウェアパッケージをダウンロードできます。オープンソース開発者はnpmを使用してソフトウェアを共有・借用し、多くの組織はプライベート開発の管理に利用しています。
コンピュータにnpmをインストールするには、まずNode.jsをインストールする必要があります。
JavaScript用のパッケージマネージャーはnpm, Inc.(GitHubの子会社)によって維持されており、GitHubは世界有数のソフトウェア開発プラットフォームで、2018年にMicrosoftが75億ドルで買収し、開発者を支援しています。
先週、世界中の1700万人以上の開発者が依存するこのツールが侵害され、インターネット上で一時的にパニックが広がりましたが、専門家が早期に発見し、攻撃者は50ドル以上を盗むことはできませんでした。以下がその経緯です!
2025年9月のNPMサプライチェーン攻撃で何が起きたか
JavaScriptエコシステムで発生した大規模なサプライチェーン攻撃において、ハッカーは複数のnpmパッケージをマルウェアで侵害しました。この攻撃の目的は、無防備なユーザーからデジタル資産を盗むことでした。
特に、開発者「qix」のnpmアカウントがハッキングされました。
Qixはオープンソースメンテナーアカウントで、フィッシング攻撃により侵害されました。このことにより、攻撃者は18の人気npmパッケージに悪意のあるコードを注入できました。これらのパッケージは、フレームワーク、開発者ツール、プロダクションサービスに組み込まれており、週単位で数億回ダウンロードされています。
影響を受けたパッケージには、最も人気のあるchalk、debug、color-name、wrap-ansi、ansi-stylesが含まれ、影響を受けたマイナーなnpmパッケージとしてbackslash、chalk-template、has-ansiがあります。
スワイプしてスクロール →
| パッケージ | 侵害されたバージョン | 対策 |
|---|---|---|
| debug | 4.4.2 | 4.4.2以前に固定; 再インストール; ビルドログをスキャン |
| chalk | 5.6.1 | 5.6.1以前に固定; クリーンビルドを再デプロイ |
| ansi-styles | 6.2.2 | 6.2.2以前に固定; 下流依存関係を監査 |
| ansi-regex | 6.2.1 | 6.2.1以前に固定 |
| strip-ansi | 7.1.1 | 7.1.1以前に固定 |
| wrap-ansi | 9.0.1 | 9.0.1以前に固定 |
| color, color-convert, color-string, color-name | 5.0.1 / 3.1.1 / 2.1.1 / 2.0.1 | 列挙されたバージョン以前に固定; 再ロックして再ビルド |
| has-ansi, supports-color, slice-ansi | 6.0.1 / 10.2.1 / 7.1.1 | 列挙されたバージョン以前に固定 |
| backslash, is-arrayish, error-ex, simple-swizzle, chalk-template, supports-hyperlinks | 0.2.1 / 0.3.3 / 1.3.3 / 0.2.3 / 1.1.1 / 4.1.1 | 列挙されたバージョン以前に固定 |
| duckdb, @duckdb/node-api, @duckdb/node-bindings, @duckdb/duckdb-wasm | 1.3.3 / 1.3.3 / 1.3.3 / 1.29.2 | 列挙されたバージョンを回避; ベンダーの更新を待つ |
影響を受けたすべてのパッケージはnpmレジストリによってすでに削除されています。高価値なオープンソースメンテナーを侵害することで、開発者が使用するすべての依存関係を監査しないため、オープンソースソフトウェア(OSS)エコシステムへの信頼が武器化されました。彼らは使用状況と評判、そしてレジストリのセキュリティに依存しています。

パッケージを侵害するために、ハッカーはフィッシング手法を取ります。攻撃者はまずnpmパッケージメンテナーのアカウントを乗っ取るフィッシングキャンペーンを開始し、侵害されたバージョンをアップロードする前にnpmパッケージに悪意のあるコードを注入しました。
開発者のJosh Junonは、npmを模倣した大規模なキャンペーンの一部であるフィッシングメールの被害者となりました。攻撃者はnpmのログインページを模倣したフィッシングサイトを使用して彼の認証情報を盗み、侵入後すぐにJunonのnpmアカウントのメールアドレスを変更してロックアウトしました。
「こんにちは、はい、ハッキングされました。皆さんごめんなさい、とても恥ずかしいです、」とJunonはHackerNewsに書き、事件を確認しました。彼はnpmだけが影響を受けたと明確にしました:
「最初は正当なものに見えました。言い訳はしません、ただ長い週と慌ただしい朝があり、やるべきことリストから何かを片付けようとしていました。サイトに直接行く代わりにリンクをクリックしてしまうというミスを犯しました。」
フィッシングメールは support [at] npmjs [dot] help から送られ、Junonにリンクをクリックさせるために脅しの手口を使用し、彼をフィッシングサイトへリダイレクトしました。
npmを装って、攻撃者は彼に2FA認証情報の更新を求め、「アカウントセキュリティへの継続的な取り組み」の一環であり、すべてのユーザーにも同様の要求をしていると主張しました。
「当社の記録によると、最後の2FA更新から12か月以上経過しています」とフィッシングメールは述べ、さらに「古い2FA認証情報を持つアカウントは2025年9月10日から一時的にロックされ、不正アクセスを防止します」と付け加えました。
その同じメールは他のパッケージメンテナーや開発者を標的にするためにも使用されました。
影響を受けたパッケージが広く使用されていることを考えると、もし迅速に対処されていなければ、重大なインシデントになる可能性がありました。
Aikido SecurityのCharlie Ericksonは報告書で指摘しています、npmパッケージにウェブサイトのクライアントで実行されるコードが含まれていたため、多くのウェブサイトがこの攻撃による深刻な被害を回避したと述べました。
「このマルウェアは本質的にブラウザベースのインターセプターで、ネットワークトラフィックとアプリケーションAPIの両方をハイジャックします」と彼は攻撃分析で述べました。「危険なのは、複数の層で動作することです: ウェブサイト上に表示されるコンテンツを変更し、API呼び出しを改ざんし、ユーザーのアプリが署名していると信じるものを操作します。インターフェースが正しく見えても、基礎となる取引はバックグラウンドでリダイレクトされ得ます。」
悪意のあるコードは暗号資産を盗むよう設計されていました。攻撃者は文字列をスキャンして暗号ウォレットアドレスを探し、暗号関連アプリケーションで働く者を危険にさらします。
マルウェアはユーザーに気付かれずにブラウザ内で静かに動作し、ウォレットアドレスを書き換えて資金を攻撃者が管理するアカウントへリダイレクトしました。侵害されたシステム上で、Bitcoin (BTC )、Ethereum (ETH )、Solana (SOL )、Tron (TRX )、Litecoin (LTC )、Bitcoin Cash (BCH ) の取引を直接ハイジャックし操作します。
これを実現するために、悪意のあるコードはブラウザのアプリケーションプログラミングインターフェース(API)を監視し、fetchやwindow.ethereumなどのウォレットインターフェースを対象としました。
悪意のあるコードは「ブラウザ内で暗号およびWeb3の活動を静かにインターセプトし、ウォレットのやり取りを操作し、支払い先を写し替えて資金と承認を攻撃者が管理するアカウントへリダイレクトしますが、ユーザーには明確な兆候がありません」とEricksonは述べました。
完了すると、マルウェアは痕跡を隠しつつバックグラウンドに残り、無防備な被害者のネットワーク上で将来の取引を捕捉し続けます。
攻撃の深刻さを受け、ハードウェアウォレット提供者LedgerのCTOであるCharles Guillemetは、オンチェーン取引を確認する際は暗号ユーザーが注意するよう警告しました。影響を受けたパッケージは投稿で指摘したように、すでに10億回以上ダウンロードされています。
彼がコミュニティと共有した大規模なサプライチェーン攻撃は、暗号ソフトウェアウォレットを標的にしており、悪意のあるペイロード「暗号アドレスを瞬時に静かに入れ替えて資金を盗む」ことを行っています。
「ハードウェアウォレットを使用している場合、署名前にすべての取引に注意すれば安全です。ハードウェアウォレットを使用していない場合、当面はオンチェーン取引を控えてください。」
– Guillemet
一方、DefiLlamaという暗号分析プラットフォームの匿名創設者0xngmiはXで、”実際の影響範囲は「すべてのウェブサイト」よりはるかに小さい”と共有しました。リスクがあるのは、マルウェアに感染したnpmパッケージが公開された後に更新されたプロジェクトだけです。それでも、”この問題が収束し、悪質なパッケージがクリーンアップされるまで、暗号ウェブサイトの利用を避ける方が安全です”と付け加えました。
最終的に、ハッカーはこの大規模なサプライチェーン攻撃からわずか50ドル相当の暗号資産しか盗めませんでした。その50ドルはEtherやBrett、Andyなどのミームコインを含んでいます。

しかし、これは何よりも運が良かったと言えるでしょう。暗号インテリジェンスプラットフォームSecurity AllianceはXで次のように指摘しました:
「これはもっと深刻になる可能性がありました。永続性に焦点を当てた開発者マシンを標的としたステルス的に展開されたバックドアは、どれだけ長くレーダーから外れたままでいられるか分かりません。」
それ以来、多くの暗号アプリケーション、例えばAave、Uniswap、Ledger、Jupiter、MetaMask、Phantom、Blastなどが、npm攻撃から安全であることをユーザーに通知しています。
攻撃は失敗に終わったものの、開発者にとって最大限のセキュリティを確保するためには自分のコードベースを超える必要があるという厳しい教訓です。信頼され広く使用されているソフトウェア依存関係でさえ、いつでも侵害され得ます。
ここで、GitHubやnpmなどのコーディングプラットフォームも、広く使用されているパッケージの安全性を確保するためにさらに取り組む必要があります。
「より人気のあるパッケージは、インターネット上のどこかからランダムに取得されたのではなく、信頼できる出所から来たことを証明する必要があります。」
– Eriksen

結局のところ、コードリポジトリの侵害は開発者にとって極めて破滅的であり、そのようなインシデントの結果としてプロジェクト全体を放棄せざるを得なくなることがあります。
このインシデントは、今日のソフトウェアエコシステムがいかに相互接続され、脆弱であるかを示す証です。単一の侵害されたアカウントが攻撃者に大規模な影響力を与えるため、開発プロセスのすべての段階でサプライチェーンセキュリティ対策を強化することが重要です。
急速に増加するマルウェア脅威からの保護
マルウェア脅威が増加し、攻撃がますます高度かつ標的化されている中、ユーザーが教育を受け、すべてのプラットフォームで常に警戒することが重要です。
マルウェア(悪意のあるソフトウェア)は、実際に最も一般的なサイバー攻撃の一つです。ここで、攻撃者は被害者が侵害されたことに気付かないまま、アクセスを取得したり被害者のコンピュータに損害を与えることを目的としてソフトウェアコードやプログラムを開発します。
毎年、世界中で何十億ものマルウェア攻撃が様々なデバイスやOSで発生しています。マルウェアを使用して、サイバー犯罪者はデバイスだけでなく企業ネットワーク全体を人質に取ります。
被害者のデバイスへの不正アクセスを得ることで、攻撃者はログイン認証情報、クレジットカード番号、その他の貴重な情報などのデジタル資産や機密データを盗みます。企業が大量の個人データを保有しているため、マルウェア攻撃はますますビジネスを標的にしており、ハッカーはそれを利用して多額の金銭を脅し取ります。
データによると、組織の大多数(59%)が2024年にこのような攻撃を受けました。小規模企業も安全ではなく、昨年は47%がランサムウェアに感染しました。その間、平均身代金支払いは500%増加し、200万ドルに達しました。
マルウェア攻撃からの平均復旧コストも上昇し、273万ドルに達しています。現在インターネットが直面している最大の脅威の一つはマルウェアであり、コンピュータシステムとユーザーに害を与えることだけを目的とした様々な形態を取ります。
ウイルス、ランサムウェア、トロイの木馬、ワーム、スパイウェア、アドウェア、暗号ジャッキングはすべて異なるタイプのマルウェアです。これらはすべて、ネットワークへの不正アクセスやコンピュータシステムへの損害を与えるよう設計されています。
攻撃の根本原因に関しては、32%で最大の要因は脆弱性の悪用で、次いで認証情報の侵害(29%)と悪意のあるメール(23%)です。
では、どうすればこの常に存在する脅威から身を守れるでしょうか?最も基本的で簡単なステップは、常にコンピュータとソフトウェアを最新の状態に保つことです。また、インターネット上のほぼすべてのものをクリックしないことが重要です。特に暗号ユーザーはリンクに疑いを持ち、確信の持てないものは絶対にダウンロードしないようにしましょう。
メールの添付ファイルも同様です。疑わしいメールを開く際は注意し、ファイル共有は最小限に抑えてください。デバイスにアンチウイルスソフトをインストールしておくことが賢明です。
不可避であるものの、組織は防御を強化することでマルウェア攻撃に備えることができます。最も簡単な方法は、強力なパスワード、マルチファクタ認証、VPNを使用することで、個人もこれらを活用してより効果的に自分を守れます。
組織はデバイスを常に監視し、疑わしい活動の兆候を検出し、脆弱性を評価し、ペネトレーションテストを実施する必要があります。一方、ネットワークから切り離されたドライブに機密データのバックアップを取ることで、マルウェア攻撃からの復旧に役立ちます。
従業員はこのような攻撃をより的確に見分け、インシデント対応計画を持ち、マルウェア脅威が疑われた際に連絡先を把握することで迅速に対応できるよう訓練が必要です。
ゼロトラストネットワークアーキテクチャを活用することで、企業は不正なデータや資産へのアクセスを防げます。ゼロトラストでは、ユーザーは決して信頼されず、常に検証されます。
今日のハイパーデジタルな生活において、これらの実践は相互接続が進む世界の危険から自分自身を守るのに役立ちます。
悪意のあるパッケージから身を守る際、一般的なマルウェア対策の推奨事項はnpm攻撃にも当てはまりますが、エコシステムがオープンで小規模パッケージの再利用が多く、依存関係ツリーが大きいため特に脆弱であることから、追加の具体的な注意点も必要です。
この深刻な脅威から身を守るためには、インストール前にパッケージが信頼できるか必ず二重チェックする必要があります。パッケージの完全性を検証すれば、依存関係ツリーが改ざんされていないことが保証されます。
不正の兆候を探す際、パッケージのソースや所有者に加えて、メンテナーに加えられた変更も確認してください。また、パッケージの機能と必要性を調べることも検討すべきです。
新たな脅威を継続的に監視し、対策に役立つ助言を提供するセキュリティツールを使用してください。npm auditを実行すれば、プロジェクトの依存関係に既知の脆弱性があるかチェックできます。また、デプロイ前に自動化されたセキュリティスキャンを実装すれば、レビューと承認を受けたコードだけが本番環境に入ります。
最新のマルウェア攻撃から身を守るためには、package.jsonのoverrides機能を使って、影響を受けたパッケージを最も安全なバージョンに固定する必要があります。
npm auditを実行するか、ソフトウェア構成分析(SCA)ツールを使用して、依存関係ツリー内の影響を受けたバージョンをチェックしてください。ビルドログ、開発環境、外部トラフィックを確認し、疑わしい活動の指標(IoC)を監視します。
サイバー攻撃に対抗した上位5社のリストはこちらをご覧ください。
最終考察: オープンソース依存関係の強化
インターネット上の脅威は絶えず増加し、ますます高度化しています。
攻撃者が新たな攻撃ベクトルに転向し、リソースの乏しいプロジェクトを標的にする中、開発者、企業、ユーザーは脅威が顕在化するのを待つのではなく、積極的な対策を講じることが重要です。なぜなら、たった一つの弱いリンクがシステム全体をダウンさせる可能性があるからです。
新たな脅威に関する情報を常に把握し、ソフトウェアサプライチェーンを継続的に監査し、脅威を監視することで、変化し続けるサイバーリスクから真に自分たちを守ることができます。












