신용카드 절도 캠페인, 도난 결제 정보 저장에 Stripe 악용

발행: (2026년 6월 5일 AM 05:47 GMT+9)
6 분 소요

Source: Bleeping Computer

Overview

새로운 Magecart 캠페인이 Stripe의 API 인프라를 악용해 신용카드 정보를 탈취하는 페이로드를 호스팅하고, 결제 페이지에서 유출된 데이터를 저장하고 있습니다. 이 악성 행위는 Google Tag Manager(GTM)와 Stripe 도메인—googletagmanager.comapi.stripe.com—을 이용하는데, 이 도메인들은 많은 온라인 상점에서 기본적으로 신뢰됩니다.

전자상거래 보안 업체 Sansec의 연구원들은 악성 코드가 GTM 컨테이너에서 로드되어 해당 컨테이너를 포함한 모든 페이지에서 실행된다는 사실을 발견했습니다.

“페이로드와 탈취된 카드 모두 api.stripe.com을 통해 이동합니다. 상점들은 이 도메인을 기본적으로 허용하기 때문에, 스키머가 콘텐츠 보안 정책(CSP) 규칙과 알려지지 않은 스키머 도메인에 대한 네트워크 필터를 우회합니다.” – Sansec

How the Attack Works

GTM as a Delivery Mechanism

GTM은 웹사이트 소유자가 사이트 소스 코드를 수정하지 않고도 분석, 광고, 추적용 스크립트를 추가·관리할 수 있게 해줍니다. 공격자는 정식 GTM 컨테이너처럼 보이는 곳에 악성 코드를 삽입합니다. 쇼핑객이 결제 페이지에 도달하면 컨테이너는 다음을 수행합니다:

  1. 특정 고객 레코드(예: cus_TfFjAAZQNOYENR)에 대한 Stripe API를 호출합니다.
  2. 해당 레코드의 메타데이터 필드에 저장된 JavaScript 코드를 읽어옵니다.
  3. 코드를 재조합한 뒤 new Function()을 통해 실행합니다.

Card Skimmer

이 스키머는 Magento/Adobe Commerce 결제 페이지를 표적으로 하며 다음 정보를 탈취합니다:

  • 신용카드 번호, 유효기간, CVV
  • 카드 소유자 이름
  • 청구 주소, 이메일 주소, 전화번호


카드 스키머 코드 – 출처: Sansec

Local Storage and Obfuscation

탈취된 데이터는 하나의 문자열로 결합된 뒤 XOR 연산으로 난독화되고, 즉시 유출되지 않고 localStorage에 로컬로 저장됩니다.

Exfiltration Routine

페이지 로드 직후와 매분마다 별도의 루틴이 실행됩니다:

  1. 저장된 데이터 블롭을 절반으로 나눕니다.
  2. 새로운 Stripe 고객 객체를 생성합니다.
  3. 탈취된 데이터를 새 고객의 메타데이터 필드에 저장합니다.

각 탈취된 결제 카드는 공격자의 Stripe 계정에 가짜 고객 레코드로 저장되어 Stripe를 저장 백엔드로 활용합니다. 데이터를 복사한 뒤에는 로컬 파일을 삭제해 흔적을 지우고 중복 업로드를 방지합니다.


데이터 유출 루틴 – 출처: Sansec

Variant Using Google Firestore

Sansec은 Stripe 대신 Google Firestore를 이용하는 변종도 확인했습니다:

  • 페이로드는 braintree-payment-app 프로젝트의 tracking/captcha라는 Firestore 문서에서 가져옵니다.
  • 탈취된 데이터는 다른 localStorage 키(_d_data_customer_)에 저장됩니다.

문서와 프로젝트 이름은 정상적인 결제 및 봇 방지 트래픽에 섞여 보이도록 선택되었습니다.

Timeline

스키머가 포함된 Stripe 고객 레코드는 2025년 12월 24일에 생성되었으며, 이는 캠페인이 최소 해당 날짜부터 활동했음을 시사합니다.

Mitigation Recommendations

  • 온라인 구매 시 일회용 가상 카드를 사용하고 한도 설정을 적용합니다.
  • 알려진 신뢰 도메인만 허용하도록 **콘텐츠 보안 정책(CSP)**을 엄격히 적용합니다.
  • GTM 컨테이너를 정기적으로 감사하여 무단 또는 의심스러운 태그가 없는지 확인합니다.
  • 이상한 고객 생성이나 메타데이터 업데이트가 있는지 Stripe API 사용량을 모니터링합니다.
  • 비정상적인 new Function() 실행 및 이상한 localStorage 활동을 탐지할 수 있는 보안 도구를 도입합니다.
0 조회
Back to Blog

관련 글

더 보기 »