学生向けプロキシに偽装した148個のnpmパッケージ、訪問者のブラウザをDDoSボットネットに悪用していたことが判明
要点
-
公開ソフトウェアリポジトリのnpmにおいて、学生向けネットワーク制限回避ツールに偽装して訪問者のブラウザをDDoS攻撃の踏み台にする148個のパッケージが発見された。
-
開発者を標的とする通常のサプライチェーン攻撃とは異なり、学校のネット制限を回避しようとプロキシサイトを訪れた学生などの一般ユーザーをボットネットの構成員として悪用していた。
-
偽装されたパッケージはインストール時には動作せず、ブラウザでプロキシサイトのタブを開いている間だけバックグラウンドで悪意あるコードをロードし、標的に大量のデータを送りつける。
-
先行調査では単なるアドウェアと見なされていたが、JFrogのコード解析により、水面下でHTTPやWebSocketを用いた組織的な攻撃コードが実行されていた実態が明らかになった。
-
ソフトウェアのプログラム部品を共有・管理する公開リポジトリ「npm」に登録された148個のパッケージが、学生向けのネットワーク制限回避プロキシ(通信を中継してアクセス制限をすり抜ける仕組み)に偽装され、アクセスしたユーザーのブラウザをDDoS攻撃(大量のデータを送信してシステムを機能停止させる攻撃)用のボットネット(攻撃者の制御下にある感染端末のネットワーク)に変えていたことが明らかになった。セキュリティ企業JFrogが調査結果を公表した。このキャンペーンは2026年5月の約2週間にわたり活発に行われていたという。
-
通常のサプライチェーン攻撃(ソフトウェアの依存関係などを狙うサイバー攻撃)では、パッケージのインストール時に開発者の資格情報などを盗み出すが、今回の攻撃はビルド環境では実行されず、ユーザーがブラウザで偽装プロキシサイトを開いている間だけ動作する特異な設計だったという。
-
発見されたパッケージは「charlie-kirk」などの名前で公開され、「Lucide」というプロキシアプリを搭載していた。サイトはオンライン家庭教師サービスのように偽装され、実際に学校の制限を回避してゲーム等にアクセスできるため、学生などのユーザーは気づかずにタブを開いたまま利用し、その裏で攻撃の踏み台にされていたとされる。
-
先行して5月に公開されたSafeDep社の報告では、これら141個のパッケージは、広告表示やアクセス追跡を行うアドウェア(広告を強制表示して収益を得るソフトウェア)の一種と見なされていたが、これは表面上の挙動に基づく分析だった。
-
しかし、JFrogがさらに詳細な調査を進めたことで、水面下で動いていた本格的な攻撃機能が判明した。JFrogの調査チームは、このアプリのエントリコードである5.4MBの巨大な1行のJavaScriptを難読化解除し、2万行を超える解析可能なコードを復元した。さらに、Wayback Machine(過去のウェブページを保存しているインターネットアーカイブサービス)から過去のデータを回収して検証したところ、画面が表示される前に、2つの悪意あるモジュールが実行される仕組みになっていたことが判明した。
-
1つ目のモジュール「G2」は、外部のサーバーからプログラムを読み込んで実行するリモートコードローダーである。このモジュールはGitHubからCDN(インターネット上でデータを効率よく配信する仕組み)経由でコードを取得していたが、安全性の検証であるSRIチェック(サブリソースの整合性を検証するセキュリティ機能)を一切行わず、プロキシサイト自身の権限で任意のコードを実行可能にしていたという。
-
5月下旬のアーカイブデータによると、G2は標的のサーバーに向けて大量のPOSTリクエストを送信するHTTPフラッド攻撃(大量のWebリクエストを送信して標的のサーバーをダウンさせる攻撃)を行っていた。応答を待たずに送信を繰り返すため、訪問者1人あたり毎秒約2MBのアップロードが発生しており、1000人がサイトを開いているだけで毎秒約2GBのトラフィックが標的に集中する状態だったと説明している。
-
2つ目のモジュール「I2」は、双方向通信を行うための規格であるWebSocketを用いて、指定されたサーバーに接続を開く仕組みだ。Wispプロトコル(1つの接続経路で複数のネットワーク接続を中継する通信規格)を利用し、100ミリ秒ごとに接続開始と切断のパケットを高速で送信し続け、リモートサーバーを標的に攻撃を行っていたとされる。
-
今回攻撃に悪用されたWispプロトコルは、学校や企業のネットワーク制限をすり抜けるためのブラウザプロキシ開発において、軽量で効率的な通信手段として広く普及している規格である。