피드로 돌아가기
The Hackers Who Tracked My Sleep Cycle
Dev.toDev.to
Security

API 서비스가 Discord 상태를 모니터링하는 해커의 공격 패턴을 탐지해 카드 테스팅 취약점 방어 기법 6가지를 실증

The Hackers Who Tracked My Sleep Cycle

Frank Fiegel2026년 3월 26일9intermediate

Context

서비스가 새 계정 생성 시 무료 크레딧을 제공하고 결제 수단 추가 시 초과 인출을 허용하는 구조였다. 해커들이 이를 악용해 유효한 결제 수단을 여러 계정에 추가한 후 고가의 LLM 호출(2-3 USD)을 실행해 매일 약 1,000달러 상당의 크레딧을 탈취했다. 더 심각한 것은 공격이 운영자의 수면 주기에 정확히 맞춰져 Discord 상태를 통해 온라인 여부를 체크하고 있었다는 점이다.

Technical Solution

  • Device fingerprinting 도입: 정당한 재방문 사용자는 탐지했으나 악의적 행위자는 쉽게 위조 가능해 낮은 효과
  • IP 주소 차단 구현: 주거용 프록시의 저렴성과 접근성으로 인해 효과 미흡
  • CAPTCHA 적용: 기존 우회 솔루션 다수 존재해 약한 억제 효과만 제공
  • OTP(일회용 비밀번호) 도입: CAPTCHA와 유사하게 많은 우회 솔루션으로 약한 억제 효과만 제공
  • JA4 TLS 지문 인식 기술 적용: TLS 연결 협상 방식으로 클라이언트 식별해 비교적 안정적인 식별자 제공
  • ALTCHA 증명 작업 적용: 요청 제출 전 계산 퍼즐 해결을 요구해 비교적 효과 있으며, 선행 방법과 결합 시 공격자를 충분히 지연시킬 수 있음
  • Rate limiting 적용: 공격 속도 저감 가능하나 정당한 사용자 영향 우려

Impact

개별 방어 기법으로는 공격 차단 불가능했으나, 방법들의 조합을 통해 공격자 접근 비용을 증가시켜 다음 주차 재공격 시도에서 새 계정당 수 센트 이상 확보 불가능하게 제한했다.

Key Takeaway

Card testing 공격 방어는 단일 기법으로는 우회 불가능하게 설계할 수 없으며, 공격자의 ROI를 지속적으로 높이는 비용 구조를 다층 방어 조합으로 구성해야 한다. 계정 생성 인센티브(무료 크레딧)와 결제 초과 인출 허용은 편리성과 보안의 명시적 트레이드오프 지점이다.


신용카드 결제를 처리하는 플랫폼 서비스에서 신규 계정 무료 크레딧 제공 시 결제 수단 추가 후 초과 인출을 허용하지 않거나, 허용하더라도 JA4 지문 + ALTCHA + Rate limiting을 조합해 공격자의 자동화 비용을 높여야 Card testing 취약점으로 인한 Stripe 계정 플래깅을 방지할 수 있다.

원문 읽기