ハッカーがMagentoのCMSブロックを悪用してオンラインストアに感染、マルウェア検知を回避

ハッカーがMagentoのCMSブロックにJavaScriptを埋め込み、侵害したストアフロントへのアクセスを維持しています。しかも、セキュリティスキャナーには悪意あるレスポンスを選択的に隠す仕組みを備えています。

Ethicalhacking tools

このドメインは2026年10月6日に登録され、翌日の夜には感染したストアに現れました。被害を受けた83店舗のうち60店舗は、以前から同じ攻撃者のインフラを読み込んでいました。その中には、2025年10月以降に感染した34店舗も含まれます。

この重複は、10月の感染のすべてが新たな脆弱性によるものではなく、侵害が継続していることを示しています。

攻撃者はローダーをMagentoのcms_blockデータベーステーブルに保存します。悪意あるJavaScriptは、正規のストアフロントコンテンツを経由してページに入り込みます。

Sansecのチェッカー「eComscan」は、このキャンペーン全体で148のサーバーインストール環境にこの埋め込みを確認しました。ただし、テーマファイルやcore_config_dataからは一度も見つかっていません。

10月の最初の実装は、外部スクリプトと永続化の仕組みを組み合わせたものでした。この仕組みは、ブラウザのlocalStorageのキーfpCodeからJavaScriptを読み出します。

読み出したコードは一時的な要素のonclick属性に格納され、その要素をプログラムでクリックします。これにより、eval()を呼び出さずにペイロードを実行します。

3月の亜種は実行後にキャッシュしたペイロードを削除していましたが、今回のバージョンは保持し続けます。

そのため、ローダーのドメインが利用できなくなったりブロックされたりしても、過去に配信されたコードは、感染したページを次に表示した際に実行される可能性があります。

ストアフロントの埋め込みを削除すればこの実行経路は止まりますが、攻撃者が持つ根本的なアクセス権まで排除できるわけではありません。

Sansecはこのキャンペーンを特定しました。最新のローダードメインdeepveindrilling.comは、ほぼすべてがMagentoで稼働する83のオンラインストアで確認されています。この一連の攻撃は、2025年7月以降、合計953店舗に影響を及ぼしています。

MagentoのCMSブロック

10月23日、攻撃者は外部スクリプトタグを、インラインのフィンガープリント取得型ローダーに置き換えました。

このローダーはnavigator.webdriver、Seleniumのグローバル変数、ChromeDriverのプロパティを調べます。あわせて、WebGLのGPU情報、プロセッサコア数、メモリ、画面サイズ、タイムゾーン、言語、ブラウザのクライアントヒントも収集します。

これらのシグナルにより、サーバーは訪問者ごとにレスポンスを出し分けられます。urlscan.ioが運用する自動化Chromeセッションは、HTTP 200を受け取ったものの、ページに追加されたコンテンツは確認できませんでした。

Sansecは最新の最終ペイロードを入手できていないため、最終的な機能は確認されていません。

以前のキャンペーンのインフラでは、トラフィック分配システムとして機能する商用の広告トラッカー「Keitaro」を使っていました。

過去のブラウザテレメトリには、crypto-insider.topや、Ledgerに似せたドメインleqdger.clickからスクリプトが読み込まれた記録が残っています。

10月のローダーはKeitaroを使わなくなり、ボットのフィルタリングを配信ロジックに直接組み込んでいます。

この攻撃は、3月に発生したPolyShellの大規模攻撃とつながっています。このとき攻撃者はウェブシェルをアップロードした後、1時間以内に471店舗へローダーを埋め込みました。

Sansecは、この攻撃をPolyShell(CVE-2026-48356)の悪用と関連づけています。さらに、SessionReaper経由でアップロードされたファイル(CVE-2025-54236)と併存するキャンペーンの感染も確認しました。

15か月間で5つのドメイン(出典:Sansec)

コアパッチが未適用だった169のMagentoインストール環境のうち、102では、これらの脆弱性に関連するアップロードファイルが見つかりました。

ただし、パッチを適用するだけでは、すでに起きた侵害を元に戻せません。完全にパッチを適用したMagento 2.4.7-p10のストアでは、不正な管理者アカウントとGSocketバックドアが先に検出されていたにもかかわらず、10月のローダーが埋め込まれました。

管理者はcms_blockとcms_pageのコンテンツから、fpCode、se_referrer、localStorage.getItemを検索してください。ドメイン名がBase64でエンコードされている場合があるためです。

調査では、不審なアップロードファイル、accesson.phpファイル、身に覚えのない管理者アカウント、見慣れないプロセスも確認する必要があります。

Sansecは、バックドアの除去、データベース・管理者・API連携の認証情報のローテーション、APSB26-73とAPSB25-88の適用を推奨しています。公開された侵害指標(IoC)には、現在のドメインと過去のドメインの両方が含まれます。

休眠中の埋め込みも危険なままです。期限切れとなったキャンペーンのドメイン2件が再登録されており、影響を受けたブラウザは新しい所有者が管理するインフラを信頼し続けることになります。その結果、訪問者のリファラーやページタイトルが漏えいします。

侵害指標(IoC)

種別 値
ローダーURL https://deepveindrilling.com/?s=d35c5031
ローダーURL https://deepveindrilling.com/?s=49b7ca5f&fp=
Keitaro URL https://additionalver.com/Mb2z8J
Keitaro URL https://lanhd6549tdhse.top/KZtBscgb

注: IPアドレスとドメインは、誤って名前解決されたりハイパーリンクになったりするのを防ぐため、意図的に無害化(例: [.])しています。元の形式に戻すのは、MISP、VirusTotal、自社のSIEMなど、管理された脅威インテリジェンス基盤の中だけにしてください。

サイバー脅威を被害が出る前に阻止し、MTTRを21分短縮。ANYRUNのSandboxをSOCに統合しましょう。

AuditSecurity

翻訳元: https://gbhackers.com/magento-cms-blocks/

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