ハッカー、スキャナー回避機能付きコードでオンラインストア953店に感染

攻撃者が、主にMagentoで運営されているオンラインストア953店に、JavaScriptローダーを感染させました。このローダーは進化を重ね、セキュリティスキャナーと本物の買い物客を見分けられるようになっています。

オランダのEコマースセキュリティ企業Sansecの調査によると、このキャンペーンは2025年7月から活動を続けており、これまでに5つのローダー用ドメインを使い回してきました。10月6日に登録された最新のドメインは、83店のコンテンツ管理システム(CMS)ブロックで見つかりました。うち60店では、以前のバージョンのローダーも仕込まれていました。

ローダーはMagentoのcms_blockデータベーステーブルに格納されており、訪問者のブラウザに攻撃者から指示を取得させます。Sansecによると、サーバーはまずリクエストが本物の顧客によるものか、セキュリティスキャナーによるものかを判定します。スキャナーに対しては何も返しません。

最新のローダー、セキュリティスキャナーを選別

10月より前、攻撃者はトラフィック振り分けシステムのKeitaroを利用していました。訪問者ごとに、ペイロードの配信、ブラウザのリダイレクト、何も返さないという3つの対応から選んでいました。

Sansecが10月7日に初めて確認したローダーは、これとは異なり、新しいドメインを直接呼び出し、ブラウザに保存されたコードを再実行する仕組みでした。そのため、一度ペイロードを受け取った訪問者は、ドメインがダウンしたりブロックされたりしても、以降のページ読み込みで同じコードを再び実行することになります。

10月23日の書き換えでは、ブラウザのフィンガープリント機能が加わりました。ブラウザの自動操作の兆候を調べ、ハードウェア情報、画面サイズ、タイムゾーン、言語を収集してから、サーバーが応答を決定します。

スキャンサービスのurlscan.ioが感染ストアを自動ブラウザで読み込んだ際、Sansecは注入されたコンテンツを確認できませんでした。同社は最終的なペイロードをまだ入手できておらず、このキャンペーンの最終目的は依然として不明です。

オンラインストアを狙う悪意あるJavaScriptの関連記事:世界規模のMagecartキャンペーン、6つのカードネットワークを標的に

パッチ適用でも再感染を防げないケースも

Sansecによると、3月の攻撃では、PolyShell(CVE-2026-48356)を介して設置されたウェブシェルを使い、1時間以内に471店へローダーが仕込まれました。コアパッチが1つ以上未適用だった感染済みMagento 2環境169件のうち、102件でPolyShellまたはSessionReaper(CVE-2025-54236)によるファイルアップロードの痕跡が確認されました。

パッチ適用だけでは再感染を防げませんでした。Magento 2.4.7-p10を実行し、すべてのパッチを適用済みだったストアは、クリーンスキャンを通過した1時間後の10月23日に、最新のローダーに感染しました。Sansecは9月の時点で、このストアに不正な管理者アカウントとGSocketのバックドアがあることを確認していました。

Sansecは、販売事業者に次の対策を勧めています。CMSコンテンツ内のローダーを探すこと、管理者アカウントを見直すこと、バックドアを調べること、ストアがクリーンになった後にデータベース、管理者、連携システムの認証情報を更新すること、そして最新のMagentoおよびAdobe Commerceのセキュリティアップデートを適用することです。

同社は、スクリプトを削除しても攻撃者のデータベースへの書き込みアクセスは残ると警告しています。侵入経路が残っている限り、侵害されたストアは再び感染する恐れがあります。

翻訳元: https://www.infosecurity-magazine.com/news/hackers-infect-953-online-stores/

本記事は infosecurity-magazine.com の記事を翻訳・要約したものです。