Credit card theft campaign abuses Stripe to host stolen payment info

新たなMagecartキャンペーンでは、StripeのAPIインフラストラクチャを利用して、クレジットカード情報を盗むペイロードや、チェックアウトページから盗み出されたデータをホストしています。

この悪意のある活動全体は、オンラインストアから暗黙的に信頼されているGoogle Tag ManagerおよびStripeのドメイン(googletagmanager.comおよびapi.stripe.com)に依存しています。

この新しいマルウェアファミリーは、eコマースセキュリティ企業Sansecの研究者によって発見されました。彼らは、悪意のあるコードがGoogle Tag Manager(GTM)コンテナから読み込まれ、それを読み込むすべてのページで実行されることを突き止めました。

image

「ペイロードも盗まれたカード情報も、api.stripe.comを経由して移動します。ストアはデフォルトでこのドメインを許可しているため、スキマーは、本来であれば未知のスキマードメインへのトラフィックをフラグ付けするはずのコンテンツセキュリティポリシー(CSP)ルールやネットワークフィルタをすり抜けてしまうのです」とSansecは述べています。

GTMは、ウェブサイトの所有者がサイトのソースコードを変更することなく、分析、広告、トラッキングに使用されるスクリプトを追加・管理できる管理システムです。

Stripeは、オンラインストアがクレジットカードの決済、顧客注文の管理、請求処理を行うために広く利用されている決済処理プラットフォームです。

Sansec によると、この悪意のあるコードは、一見正当に見える GTM コンテナに埋め込まれており、買い物客がチェックアウトページに到達するとアクティブになり、Stripe の API を特定の顧客レコード(この場合は cus_TfFjAAZQNOYENR)に対してキューに入れます。

レコードのメタデータフィールドから JavaScript コードを読み取り、それを再構築して new Function() を使用して実行します。

このカードスキマーは、Magento/Adobe Commerceのチェックアウトページを標的とし、支払いデータ(クレジットカード番号、有効期限、CVVコード、顧客名)だけでなく、請求先住所、メールアドレス、電話番号の取得を試みます。

Card skimmer code
カードスキマーのコード
出典:Sansec

盗まれたデータは単一の文字列に連結され、XOR 演算を使用して難読化され、即座に外部へ流出されるのではなく、ローカルに保存されます。

データの取得は、ページ読み込み直後およびその後1分ごとに実行される別のルーチンによって行われます。このルーチンでは、データブロブを2つに分割し、新しいStripe顧客オブジェクトを作成して、盗んだデータをメタデータフィールドに保存します。

盗まれた支払いカードはすべて、攻撃者の Stripe アカウント内で偽の顧客レコードとなり、Stripe は盗まれたデータの保存バックエンドとなってしまいます。

データのコピーが完了すると、攻撃の痕跡を消し、重複アップロードを防ぐためにローカルファイルは消去されます。

Data exfiltration routine
データ流出ルーチン
出典:Sansec

Sansec は、Stripe の代わりに、データ保存およびリアルタイム検索のためのクラウドデータベースサービスである Google Firestore を使用する攻撃の亜種も発見しました。

このバージョンのキャンペーンでは、ペイロードはbraintree-payment-appというプロジェクト内のtracking/captchaという名前の Firestore ドキュメントから取得されます。盗まれたデータは、別の localStorage キー(_d_data_customer_)に保存されます。

ドキュメント名とプロジェクト名は、マルウェアが正当な決済トラフィックやボット対策トラフィックに紛れ込むのに役立っています。

スキマーを含むStripeの顧客レコードは2025年12月24日に作成されたと報告されており、この攻撃は少なくともその日から活動していた可能性がある。

顧客は、利用限度額が設定されたワンタイム仮想カードを使用することで、このようなリスクから身を守ることができます。