Magecartハッカー、Ethereumスマートコントラクトを悪用し40以上のオンラインストアからカード情報を窃取

HexMageと名付けられたMagecartキャンペーンが、少なくとも15カ国にまたがる40以上のeコマース店舗を侵害し、Ethereumスマートコントラクトを決済カードスキマーの耐障害性の高い配信手段として利用していることが分かりました。

この攻撃は、従来型のクライアントサイド決済情報窃取と、Ethereumのテストネット「Sepolia」を通じてスキマーのインフラを隠蔽・ローテーションさせる「EtherHiding」を組み合わせたものです。

悪意あるコードはストア自体に注入されるため、広告経由でアクセスした訪問者だけでなく、侵害されたチェックアウトページに到達したすべての顧客が被害に遭う可能性があります。

このキャンペーンは主にWooCommerceサイトを標的としていますが、研究者らはPrestaShop、Magento、標準的なWordPressインストールでも感染を確認しています。

Confiantは、被害を受けた25店舗、20件のSepoliaコントラクト、スキミングスクリプトのホスティングに使われた20のドメインを分析しました。

これらのコントラクトはすべて同一の所有者ウォレット(0x88361C914Bb0942da9a1b7Bb396a7513C1917aee)に紐づいており、このウォレットは2026年3月から7月にかけて少なくとも144件の同型コントラクトをデプロイしていました。8月23日時点では、デプロイ済みコントラクトは156件に達しています。

HexMageの攻撃者はまず加盟店のサーバーを侵害し、チェックアウトページに軽量なJavaScriptローダーを追加します。注入されたコードは、見覚えのあるGTM形式のコメントとBase64で難読化された設定データを備えた偽のGoogle Tag Managerブロックの中に隠されています。

しかし、正規のGTMスニペットとは異なり、この不正なブロックはgoogletagmanager.com/gtm.jsを読み込みません。代わりに、正規のjsDelivr CDNからWeb3ライブラリのethers.jsを取得します。

そして、Ethereumのテストネット「Sepolia」向けの公開エンドポイントである0xrpc.ioにJSON-RPCリクエストを送信します。

ローダーは、攻撃者が管理するスマートコントラクト上で、誰でもアクセス可能なgetText()関数を呼び出します。

Image comments to look benign (Source : Confiant).”>

このコントラクトは、スキマー全体を直接配信するのではなく、使い捨ての配信用ドメインのホスト名を返す仕組みになっています。

ブラウザはそのホスト名とハードコードされたパスを組み合わせ、最終的なJavaScriptスキマーを密かに読み込みます。

この設計により、攻撃者が残す痕跡は最小限に抑えられます。侵害されたチェックアウトページには当初、悪意あるドメインがハードコードされていないため、静的解析や従来のIOCベースのブロックでは検知しにくくなっています。

Confiantは、広告エコシステムをマルバタイジング(不正広告)の観点からスキャンしている過程でこのMagecart活動を特定しました。被害を受けた加盟店は正規の広告を配信していましたが、広告技術のテレメトリによって、それらのチェックアウトページがサーバーサイドで侵害されていることが明らかになりました。

防御側がペイロードのホストをブロックしても、攻撃者はスマートコントラクト内に保持している値を更新したり、別のコントラクトをデプロイしたりするだけで対応でき、加盟店のウェブサイトを再度侵害する必要はありません。

Magecartキャンペーン

EtherHidingは通常、偽のブラウザ更新、ClickFix型の誘導、インフォスティーラーなど、マルウェア配信に関連付けられる手法です。

マルウェア解析ツール

この手法は、スマートコントラクトのストレージを分散型のデッドドロップとして悪用するもので、ブラウザベースのマルウェアが読み取り専用のブロックチェーンクエリを通じてペイロード、設定データ、コマンド&コントロールのアドレスを取得できるようにします。

Image

HexMageは、この同じ手法をMagecartによる不正行為に応用しています。最終段階のスクリプトは、加盟店の正規のカード決済入力フィールドを上書きまたは置き換え、カード番号、有効期限、CVV、カード名義人名、請求先メールアドレスなど、チェックアウト時のデータを窃取します。

その後、窃取した情報をBase64でエンコードして外部に送信し、購入手続きが通常通り完了できるよう、元の決済インターフェースを復元します。

このスキマーは個々の決済ゲートウェイに合わせて調整されており、Stripe、PayPal、ePay、PhonePe、HyperPayや各地域の決済プロセッサーになりすますことができます。

研究者らはまた、このマルウェアがWordPress管理者のログインを検知すると実行を回避する傾向があることも突き止めました。これにより、加盟店が通常のテスト作業中に不正なチェックアウトページに気づく可能性を低くしています。

Image

これらのコントラクトは、攻撃者が管理するテキストストレージとして機能し、公開のgetText()関数とowner()関数を公開しています。保存された値を更新できるのは署名済みトランザクションを行えるウォレット所有者のみですが、誰でもウォレットやオンチェーン取引なしにその内容を読み取ることができます。

この透明性のおかげで、研究者らは実際の通信で観測されたコントラクトを起点に、より広範な攻撃者インフラを辿ることができました。

Confiantは、コントラクト内にプレーンなBase64エンコードのホスト名と、暗号化されたホスト名のエンベロープの両方を発見しています。

配信用ドメインには、bloodthornkeep、ashenravenfort、nightstalkerwatch、voidwalkerforgeといった、ダークファンタジー風の命名パターンがしばしば使われています。

このキャンペーンには、ブロックチェーンからの取得を完全に省略し、Base64から完全なスキマーURLを直接デコードする2つ目のローダーの亜種も含まれています。

このフォールバック機構があるため、防御側はEthereumのJSON-RPC通信や想定外のethers.jsインポートの検知だけに頼ることはできません。

セキュリティチームは、Web3ライブラリを読み込んでいたり、公開ブロックチェーンのRPCエンドポイントと通信していたり、gtm.jsをリクエストしないGTM風のコードを含んでいたりするチェックアウトページを調査すべきです。

さらに、サーバーサイドのウェブサイト変更の確認、管理者アカウントや脆弱なプラグインの監査、決済テンプレート内の不正なJavaScriptの点検、未承認のスクリプトや不正な送信先通信を制限するコンテンツセキュリティポリシー(CSP)の導入も行うべきです。

加盟店にとって、HexMageはMagecartに関する重要な現実、すなわち決済情報の窃取は正規サイトへの信頼がすでに確立された後、購入者のブラウザ内で発生するという事実を改めて浮き彫りにしています。

ブロックチェーンを基盤としたステージング方式はインフラの破壊をより困難にしますが、その公開性ゆえに、防御側がコントラクトやウォレット、関連する配信ホストを大規模に洗い出す機会も生まれています。

★ 削減すべきセキュリティツールはどれか? 1ページで採点 – 「継承されたセキュリティスタック」ガイドをダウンロード

ソーシャルセキュリティ保護

翻訳元: https://gbhackers.com/magecart-campaign-3/

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