新たなMagecart攻撃、StripeをマルウェアのC2として悪用

正規のクラウドサービスを悪用して検知を回避する、新手のMagecartキャンペーンが確認されました。攻撃者はJavaScriptスキマーをStripeの顧客メタデータ内に格納し、Google Tag Manager経由で被害者のチェックアウトページへ配信する手口を用いています。

この手法により、Stripeは任意コードの指令サーバー(C2)かつ盗んだカード情報の永続的な窃取先として機能します。しかも、ECサイトが日常的に信頼し、ほとんどブロックしないドメイン(googletagmanager.comおよびapi.stripe.com)を利用するため、非常に巧妙です。

攻撃チェーンは3つの段階に分かれています。まず第1段階として、正規に見せかけたGoogle Tag Managerコンテナ(GTM-P6KZMF63などが例として確認)を、カスタムタグとして被害サイトに埋め込みます。

このコンテナにはURLに「checkout」を含むページ上で動作する小型ローダーが含まれており、攻撃者のStripeアカウントから特定の顧客レコードを取得し、複数のメタデータフィールドに分割して格納されたスキマーを結合し、new Function()を使って組み立てたペイロードを実行します。

スキマーはStripeのメタデータ上にステージングされているため、攻撃者は各被害サイトのGTMタグを再注入・改変することなく、いつでも悪意あるコードを更新できます。

第2段階では、実行されたスキマーがチェックアウトフローにフックします(SansecはMagentoおよびAdobe Commerce向けのマークアップに合わせたセレクタを確認しています)。

チェックアウトボタンのクリックを待ち受け、カード番号・有効期限・CVV、そして請求先情報や注文情報など広範なフィールドを抽出し、固定キーでXORエンコードして連結した上で末尾にマーカーを付加し、固定キーでlocalStorageにデータを書き込みます。

MagecartによるStripe C2の悪用

Sansecは、Stripe上でスキマーを直接稼働させるMagecartファミリーを発見しました。スキマー自体はネットワーク経由での窃取処理を行わないため、フットプリントが小さく、多くのランタイム監視をすり抜けます。

第3段階では、GTMコンテナ内で動作するローダーが窃取を担います。ページロードの1秒後、その後は60秒ごとにlocalStorageのデータを読み出して分割し、攻撃者のアカウントに新規作成したStripe顧客のメタデータフィールドとしてPOSTします。

攻撃者のスクリプトにはsk_test_で始まるStripeシークレットキーがハードコードされています。これはクライアントサイドのコードにシークレットキーが含まれてはならないため、侵害の明白な証拠と言えます。

盗まれたカード情報は1件ごとに「顧客」エントリとしてStripe APIから参照可能な状態で記録されます。これにより、攻撃者はほとんどのセキュリティ対策が許可するドメインの背後に、検索可能で永続的なデータストアを確保できます。

Sansecが収集したサンプルには、Stripeのサンプルデータ(メールアドレス:[email protected]、請求書プレフィックス:WLUFUAQS)が再利用されており、悪意ある顧客レコードは2025年12月24日に作成されていました。このことから、このキャンペーンは2025年末から活動していたことがわかります。

ローダーの亜種はStripeの代わりにGoogle Firestoreを使用しており、正規のボット対策トラフィックに似せたパスでプロジェクトドキュメントにペイロードを読み書きします。

いずれの亜種も、主要クラウドエンドポイントへの信頼を悪用することで、未知のスキマードメインのみをフラグ立てするContent Security Policyのルールやネットワークフィルターをすり抜けます。

この手法には重大な運用上の影響があります。api.stripe.comおよびgoogletagmanager.comを許可リストに含むCSPやアクセス制御ではこれらの通信をブロックできず、リクエスト自体が正規かつ適切な形式であるため、クラウドAPIへの外部通信のスキャンだけでは悪意を検出できません。

現実的な対策としては、sk_test_またはsk_live_で始まる文字列がクライアントサイドに存在する場合は即座に侵害の指標として扱うこと、GTMコンテナとサードパーティタグを定期的に監査すること、そして専門のスキマー検出ツールでストアをスキャンすることが挙げられます。

Sansecは特に、Sansec Shieldを導入して悪用試行をブロックするとともに、eComscanを用いて注入されたスキマー・バックドア・不正な変更を検出することを推奨しています。

サイト運営者は認証情報をローテーションし、不審なGTMコンテナやタグを削除した上で、api.stripe.comやfirestore.googleapis.comへの直接アクセスがないかフロントエンドコード全体を監査してください。

攻撃者のインフラは正規のクラウドAPIに依存しているため、防御側は許可リストの管理と行動・完全性チェックを組み合わせる必要があります。具体的には、不審なAPIキーのブロックまたは厳重な監視、GTMタグ編集権限の信頼できる担当者への限定、そして外部スクリプトの出所を展開前に検証することが重要です。

翻訳元: https://gbhackers.com/magecart-abuses-stripe-c2/

ソース: gbhackers.com