npmパッケージとunpkgミラーを悪用、偽Cloudflare認証ページへ誘導するフィッシング攻撃が判明
要点
-
セキュリティ企業OX Securityが、24個のnpmパッケージを悪用したフィッシングキャンペーンを報告した。
-
攻撃者はパッケージ内に単一のHTMLファイルを配置し、CDNミラー「unpkg」を通じて信頼された正規ドメイン上に偽のCloudflare認証画面を構築していた。
-
防御側のブロックを回避するため、無料のキー・バリューストア「KeyVal」をデッド・ドロップ・リゾルバとして悪用し、転送先URLを動的に取得する手口が確認された。
-
調査時点の転送先は正規のChatGPTサイトだったが、攻撃者の設定次第でフィッシングインフラへ即座に誘導可能な状態だった。
-
セキュリティ企業のOX Securityは2026年8月25日、JavaScriptのパッケージ管理システム「npm」に登録された24個のパッケージが悪用され、偽のCloudflare認証ページをホストするフィッシング基盤として利用されていたことを明らかにした。攻撃者は開発者の端末へ直接マルウェアを感染させるのではなく、npmとそのミラー配信サービスを無料のWebホスティング領域として悪用していたという。信頼された正規ドメインのURLから、ユーザーを外部のフィッシングインフラへと誘導する手口が確認されている。
信頼されたミラーサービス「unpkg」を無料ホスティングとして悪用
OX Securityの研究者であるモシェ・シマン・トブ・ブスタン(Moshe Siman Tov Bustan)氏とヴィタリー・チェプルコ(Vitalii Chepurko)氏の分析によると、今回のキャンペーンで確認されたnpmパッケージには、実質的に単一のHTMLファイルしか含まれていなかったという。パッケージ自体をダウンロード・インストールしても、開発者のマシンに直接危害を加えるコードは含まれていない。
しかし、npmパッケージをCDN経由で直接配信するミラーサービス「unpkg」などに同期されると状況が一変する。「unpkg[.]com/<パッケージ名>@1.0.0/index.html」といったURLにアクセスするだけで、ブラウザ上に正規のCloudflareによるCAPTCHA認証(人間かボットかを判定する仕組み)を装った偽ページが完全にレンダリングされて表示される状態になっていた。
攻撃者の狙いは、開発環境を狙う直接的なサプライチェーン攻撃ではなく、信頼性の高い正規ドメインであるunpkgのインフラを、検出されにくい安全なフィッシングページの保管・公開場所として利用することにあったと研究者は指摘している。
発見された24個のパッケージと誘導の仕組み
OX Securityが公開した悪意あるnpmパッケージのリストは以下の通りで、一部は報告時点でもダウンロード可能な状態にあった。
- bgzxcuite2
- prezdentkxheiw
- egair0810
- mnteckets
- airdzticket
- egypt0811
- passport811
- vxhjkseuiaqkb
- ndmushdkeqe
- ndmxchdjxn2
- ndmfguyhoxc3
- mjsdqwocvn
- m2fcsfyjkuxb
- m3fdfocdoewn
- @worrisome/reutil
- testdgdbcsd
- tesgfvbncsdbcv
- mndsxcusiwlk1
- mn2adskhweox
- mn3sadkoiewu
- mn4xcouzvhus
- mbxcnsuwgs1
- skxcmwuncbg2
- mobiwaefhxc3
これらのパッケージによって生成されたリンクを開いた被害者には、偽のCloudflare検証画面が表示される。被害者が画面の指示に従って操作を進めると、攻撃者が制御する「ClickFix」型(偽のエラーや検証画面を表示してユーザーに悪意ある操作を実行させる手口)のインフラをはじめとする外部サイトへ転送され、最終的にマルウェアの展開など予期せぬ被害につながる仕組みとなっていた。
検知回避のため正規サービス「KeyVal」をDDRとして悪用
HTMLファイル内には、偽のCAPTCHAプロンプトを表示するロジックに加え、外部サーバーへリクエストを送信するJavaScriptが組み込まれていた。
初期のバージョンでは、Microsoftのログインページを模倣したタイポスクワッティング(有名ドメインに似せた偽ドメイン)のURL「login[.]microsofte[.]live」へリクエストを送信していた。しかし、このドメインがGoogle ChromeのSafe Browsingブロックリストに追加されて遮断されると、攻撃者は即座に別の手法へ切り替えたという。
新たな通信先として悪用されたのが、REST API経由でキーと値のペアを保存・取得できる無料のパブリックKey-Valueストア「KeyVal(api.keyval[.]org)」である。攻撃者はこの正規サービスを「デッド・ドロップ・リゾルバ(DDR:正規のWebサービスを中継地として悪用し、通信先情報を隠蔽・取得する手法)」として利用し、被害者をリダイレクトさせるURLをKeyVal経由で抽出・デコードする構成に変更していた。
OX Securityの研究者によると、調査時点のリモートロジックはユーザーを正規のChatGPTのWebサイトへ転送する設定になっていたが、攻撃者側の設定変更によってClickFixやその他のフィッシングドメインへの誘導にいつでも転用できる状態だったと説明されている。
繰り返されるCDN悪用とミラーに残る永続性のリスク
正規のパッケージレジストリやCDNを悪用するアプローチは今回が初例ではない。2025年10月にはセキュリティ企業のSocketが、unpkg.comのCDNを悪用して認証情報窃取ページへリダイレクトさせていた175個のnpmパッケージ(キャンペーン名「Beamglea」)の詳細を報告している。
OX Securityは、攻撃者がマルウェアを配布するだけでなく、正規のインフラをペイロードやデータの保管場所として利用する新たな手法を次々と開拓していると警鐘を鳴らしている。
同社は「マルウェアを実行端末から直接データを盗み出すコードとしてのみ捉えていると、インフラの悪用や、npmとそのミラーを無料ストレージとして利用する手口、そして公式ストアから削除された後もミラー上に残り続ける永続性といった側面を見落とすことになる」と述べている。