【ITニュース解説】18 Popular Code Packages Hacked, Rigged to Steal Crypto

2025年09月09日に「Krebs on Security」が公開したITニュース「18 Popular Code Packages Hacked, Rigged to Steal Crypto」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

週20億回以上利用される人気のJavaScriptパッケージ18個が、開発者のフィッシング被害により改ざんされ、暗号資産を盗むコードが仕込まれた。攻撃はすぐに鎮圧されたが、便利な外部コードの利用にはサプライチェーン攻撃のリスクが伴うことを示す事件となった。(119文字)

ITニュース解説

現代のソフトウェア開発が抱える脆弱性を象徴する事件が発生した。世界中の開発者が利用する18の人気JavaScriptコードパッケージがハッキングされ、暗号資産を盗み出すための悪意あるソフトウェアが一時的に仕込まれた。これらのパッケージは合計で週に20億回以上もダウンロードされるほど広く普及しており、被害が爆発的に拡大する寸前であった。

この事件を理解するためには、まず現代のソフトウェア開発の仕組みを知る必要がある。現在のシステムやアプリケーション開発は、ゼロからすべてのプログラムを書くのではなく、多くの場合、既製の「部品」を組み合わせて効率的に行われる。この「部品」にあたるのが、「パッケージ」や「ライブラリ」と呼ばれるコードの集合体である。特に、ウェブサイトやウェブアプリケーションで広く使われるプログラミング言語であるJavaScriptには、便利な機能を提供するパッケージが無数に存在し、その多くはオープンソースソフトウェアとして公開されている。オープンソースとは、プログラムの設計図であるソースコードが公開され、誰でも自由に利用、改変、再配布できる仕組みを指す。世界中の有志の開発者が協力してパッケージを開発・維持しており、他の開発者は「npm (Node Package Manager)」のようなプラットフォームを通じて、これらのパッケージを簡単に自分のプロジェクトに導入できる。

今回の事件の発端は、これら人気のオープンソースパッケージを維持・管理する「メンテナー」と呼ばれる開発者の一人が、フィッシング詐欺の被害に遭ったことだった。フィッシング詐欺とは、正規のサービスを装った偽のメールやウェブサイトを用いて、IDやパスワードといった重要な認証情報を盗み出す手口である。攻撃者は、この詐欺によってメンテナーのアカウントを乗っ取り、正規の管理者になりすました。そして、正規のパッケージのアップデートを装い、暗号資産を盗み出すための悪意あるコードを埋め込んで再配布したのである。

この手口は「ソフトウェアサプライチェーン攻撃」と呼ばれるもので、近年のサイバーセキュリティにおける最も深刻な脅威の一つとされている。製品が消費者に届くまでの工程をサプライチェーンと呼ぶが、ソフトウェア開発においても、完成したアプリケーションがユーザーに届くまでに、様々なツールや外部のパッケージが利用される。サプライチェーン攻撃は、最終製品であるアプリケーションそのものではなく、その開発過程で利用される構成要素、つまり「部品」を汚染することで、その部品を利用するすべてのソフトウェアに影響を及ぼそうとする。部品工場で製造されたネジに欠陥があれば、そのネジを使った自動車や飛行機すべてが危険に晒されるのと同じ原理である。何も知らない開発者が、いつものようにパッケージの更新を行うと、悪意のあるコードが自動的に自身の開発環境や、開発中のアプリケーションに組み込まれてしまう。今回の事件では、週に20億回も利用される部品が標的となったため、もし発見が遅れていれば、被害は瞬く間に世界中の無数のシステムへと拡散していた可能性があった。

幸いなことに、今回の攻撃は比較的早期に発見され、悪意のあるコードはパッケージから除去された。攻撃の目的が、開発者やそのソフトウェアの利用者から暗号資産を盗むという、比較的限定的なものであったことも、被害の拡大が抑制された一因と考えられる。しかし、専門家たちは、この事件が決して軽視できるものではないと警鐘を鳴らしている。もし攻撃者が、暗号資産の窃取ではなく、企業のシステムを停止させデータを人質に取るランサムウェアや、機密情報を外部に送信するスパイウェアといった、より破壊的で検知しにくい不正プログラムを仕込んでいた場合、その影響は計り知れないものになっていただろう。

この事件は、システムエンジニアを目指す者にとって、多くの重要な教訓を含んでいる。第一に、オープンソースのパッケージを利用する利便性の裏には、常にセキュリティ上のリスクが存在することを認識しなければならない。導入するパッケージの信頼性を確認し、更新時には変更内容を注意深くレビューする姿勢が求められる。第二に、開発者自身のセキュリティ意識の重要性である。今回の事件の発端は、メンテナー個人のアカウント情報が盗まれたことであった。強固なパスワードの設定や、パスワードだけに頼らない多要素認証(MFA)の導入といった基本的なセキュリティ対策を徹底することが、自分自身を守るだけでなく、ソフトウェア開発のサプライチェーン全体を守ることにも繋がる。便利なツールやライブラリに依存する現代のソフトウェア開発において、そのサプライチェーンの安全性をいかに確保していくかは、個々の開発者から業界全体に至るまで、すべての関係者にとっての喫緊の課題である。