攻撃者はnpmレジストリとそのミラーを悪用し、Cloudflareのセキュリティ検証ページを装った悪意あるHTMLページをホスティングしている。その後、訪問者を攻撃者が管理するドメイン、またはリモートから変更可能な送信先へリダイレクトする。今回のキャンペーンは、通常のnpmサプライチェーン攻撃とは異なる。研究者が調査したパッケージは、インストール時に開発者の端末へマルウェアを感染させるのではなく、フィッシングページの無料ホスティング基盤として使用されている。
セキュリティ研究者のinf0stacheは7月、この手法を確認した。china_airlinesという名前のパッケージに、偽のCloudflare検証ページが含まれていることを発見したためだ。IntelFusionsも同じ手法を報告し、その後OX Securityは、同一の悪意あるページを含む24個のnpmパッケージを明らかにした。これらはnpmと複数のミラーに分散していた。
ミラーはどのようにフィッシング基盤へ変わるのか?
BleepingComputerは、調査対象となったパッケージの1つがindex.htmlとpackage.jsonの2ファイルしか含んでおらず、HTMLファイルをメインファイルとして定義していることを確認した。UNPKGサービスがこのパッケージをコピーすると、攻撃者が管理するドメインではなく、unpkg.comドメインを介してブラウザーから直接ファイルを開けるようになる。
この利用方法により、悪意あるページはより信頼できる外観を得られ、既知の攻撃者ドメインをブロックするセキュリティツールを回避する助けになる可能性がある。またOX Securityは、npmの公式レジストリから削除された後も、パッケージがミラー上で利用可能な状態に残る可能性があると警告した。
偽の検証と変更可能なリダイレクト
悪意あるページはCloudflareのセキュリティインターフェースを模倣し、正規のTurnstileサービスを組み込んでいる。しかし、検証の成功または失敗にかかわらず、難読化されたJavaScriptが実行され、リダイレクト処理が行われる。研究者によると、7月の初期版はmicrocloud[.]homesへ誘導し、8月にはlogin[.]microsofte[.]liveへのリファラルが確認された。報告によれば、初期の一部のリファラルは正規のMicrosoft Outlookログインページに到達したが、同じ送信先が後に偽のログインページのホスティングに使用される可能性がある。
別のパッケージでは、正規のキー・バリュー格納プラットフォームであるapi.keyval.orgを利用する異なる手法が使われていた。コードはサービスから暗号化された値を取得し、ブラウザー内で復号した後、生成されたリンクへ訪問者をリダイレクトする。これにより攻撃者は、npmパッケージを変更したり再公開したりせずに送信先を変更できる。OXは、調査中に確認した送信先が正規のChatGPTサイトだったと述べたが、後からフィッシングページやマルウェアのダウンロードページへ変更される可能性がある。ただし、BleepingComputerが確認したページはClickFix攻撃を実行しなかった。
なぜこのニュースが重要なのか?
ここで実際に起きている変化は、パッケージをインストールしただけで開発者が感染することではなく、一般的な開発インフラへの信頼を悪用して、ブラウザーに直接表示されるコンテンツを読み込ませることにある。そのためリスクの範囲は、開発チームだけでなく、npmファイルやミラーへの直接リンクを利用するユーザーにも広がる。OX Securityは、npmミラーのドメインから直接HTMLを要求する行為を疑わしい活動として扱うことを推奨している。また、ホスティングされたファイルを更新しなくても、最終的な送信先が変更される可能性がある点にも注意が必要だ。