- Stripe APIをGoogle Tag Manager経由で悪用
- 侵害されたMagentoサイトのチェックアウト情報をスキミング
- 盗んだカード情報をapi.stripe.com経由で外部送信
サイバー犯罪者がStripeをマルウェアのホスティング基盤として悪用し、オンラインショッピング利用者の決済情報を窃取する新たな攻撃が確認されました。サイバーセキュリティ研究機関のSansecが今週、このキャンペーンを発見したと報告しています。
Sansecによると、攻撃者は特定のMagento/Adobe Commerceストアのウェブサイトに侵入し、悪意あるGoogle Tag Manager(GTM)コンテナを埋め込んだとのことです。
購入者がそのサイトを訪問すると、ブラウザはGoogleのサーバーからGTMコンテナを読み込みます。そしてチェックアウト画面に進んだ際、GTMのコードがStripeのAPIにリクエストを送信する仕組みになっています。
情報窃取の手口
GTMは、サイトのコードを直接変更することなく、トラッキングや分析ツールなど各種スクリプトを管理できる無料ツールです。GTMは広く普及しているため、googletagmanager.comからコードを読み込む動作はまったく正常に見え、何ら怪しまれることはありません。
Stripeはインターネット上での金融取引を処理するオンライン決済プラットフォームであるため、一見しただけでは不審な点はありません。しかし実際には、GTMが攻撃者によって管理されたStripeの顧客レコードを取得します。そのレコードの中には悪意あるJavaScriptのコードが断片として含まれており、ウェブサイトはそれらをダウンロードして一つの動作するスクリプトに再組み立てし、ブラウザ上で実行します。こうしてStripeはマルウェアコードの「保管庫」として機能させられています。
このスクリプトが起動すると、チェックアウトページを「監視」し始めます。被害者がカード情報を入力すると、カード番号・CVV・氏名・住所などのすべての情報がスクリプトによってコピーされます。
その後、盗んだデータをすぐに攻撃者へ送信するのではなく、マルウェアはまずすべての窃取情報を一つの文字列に結合し、XOR難読化を施してブラウザのローカルストレージに保存します。次に偽のStripe顧客オブジェクトを作成し、窃取したデータを二つのチャンクに分割して攻撃者のStripeアカウントに新しい顧客オブジェクトとしてアップロードします。
「ペイロードと盗み出されたカード情報は、いずれもapi.stripe.comを経由して転送されます。各サイトはこのドメインをデフォルトで許可しているため、スキマーは未知のスキマードメインへのトラフィックを検知するはずのコンテンツセキュリティポリシーやネットワークフィルターをすり抜けてしまいます」と、Sansecは説明しています。