핵심 요약
- 환금성이 높은 상품을 다룬다면 계정당 일일 결제 한도, 동일 카드/기기 차단, 고위험 IP 차단 — 이 3가지 임계치 룰만 세워도 FDS 없이 대형 부정결제 사고의 80%를 막아요.
- 새벽 시간대 반복 결제, 한 계정에 카드 3개 이상 등록, 서로 다른 아이디인데 같은 기기/IP — 이 세 가지가 핵심 이상 징후예요.
- 차지백(카드사 대금 환수)에 맞서려면 서비스 이용 내역, 접속 환경 기록, 과거 결제 이력을 기획 단계부터 로그로 남기는 설계가 필수예요. 증빙 없이는 돈을 뺏기고 수수료까지 부담해요.
1우리 서비스가 부정결제 타겟이 되는 이유와 반드시 잡아야 할 징후
부정결제가 발생하는 원인을 이해하면 공격자가 노리는 '환금성'의 허점을 파악하고 운영 우선순위를 정할 수 있어요. 여기서 환금성이란 결제로 얻은 상품이나 서비스를 다시 현금으로 되돌릴 수 있는 용이함을 뜻해요. 기프트카드, 게임 아이템, 디지털 쿠폰, 편의점 상품권처럼 환금성이 높은 상품은 공격자가 가장 먼저 노리는 대상이고, 반대로 맞춤 제작 상품이나 본인 인증이 필요한 서비스는 환금성이 낮아 상대적으로 우선순위가 밀려요. 그래서 기획자는 우리 서비스에서 환금성이 높은 상품이나 기능이 무엇인지부터 먼저 파악해야 해요. 부정결제는 주로 현금화가 쉬운 상품을 노리지만, 최근에는 계정 탈취(Account Takeover)를 통해 환금성이 낮아 보이는 일반 구독 서비스나 이커머스에서도 빈번하게 발생해요.
실제 사고 사례: B사(디지털 굿즈 판매)
B사는 신규 가입자에게 첫 결제 할인을 제공하는 프로모션을 진행했어요. 공격자는 도난 카드 수십 장을 확보한 뒤, 수백 개의 가짜 계정을 만들어 소액 결제를 반복했어요. 한 번에 큰 금액을 결제하면 카드사 필터링에 걸릴 것을 우려해 '소액 다회 결제' 전략을 쓴 거예요. B사는 결제 건수가 늘어나는 것을 보고 '프로모션이 성공적'이라고 판단했지만, 한 달 뒤 1,000만 원 규모의 차지백 폭탄을 맞았어요.
먼저 주목해야 할 3가지 이상 징후
부정결제는 일반적인 사용자 패턴과 명확히 다른 족적을 남겨요. 이를 운영 룰로 정의하는 것이 기획자의 첫 번째 역할이에요.
- 시간대와 빈도: 새벽 1시~5시 사이, 특정 사용자가 10분 이내에 3회 이상 결제를 시도하는 경우.
- 카드 정보의 다양성: 한 명의 사용자 계정에 3개 이상의 서로 다른 카드 번호가 등록되어 결제가 시도되는 경우. (도난 카드 테스트 목적이 커요)
- 기기 및 IP 중복: 서로 다른 아이디인데 접속 기기 정보(Device ID)나 IP 주소가 동일한 상태에서 연속 결제가 일어나는 경우.
2리소스가 부족한 초기 팀도 즉시 적용할 수 있는 3가지 방어 규칙
초기 팀 3가지 방어 규칙
| 룰 | 기준 | 동작 |
|---|---|---|
| 1. 일일 한도 | 계정당 일일 5회 또는 50만 원 | 초과 시 결제 차단 |
| 2. 카드/기기 차단 | 30분 내 5회 실패 | 해당 카드/기기 24시간 차단 |
| 3. 고위험 IP | 해외/VPN 접속 감지 | 본인인증 강화 |
거창한 FDS(이상거래탐지 시스템)를 도입할 여력이 없다면 기획자가 정의한 몇 가지 임계치 설정만으로 대형 사고의 80%를 막을 수 있어요. 이 기준은 개발자에게 전달하여 시스템 임계치로 반영해요.
룰 1: 계정당 일일 누적 결제 한도 설정
- 내용: 한 계정에서 하루에 결제할 수 있는 최대 금액과 횟수를 제한해요.
- 예시: 일 최대 5회, 누적 50만 원 초과 시 결제 즉시 차단 및 관리자 알림.
- 효과: 공격자가 도난 카드를 확보하더라도 한 계정에서 대량의 돈을 빼가는 것을 물리적으로 지연시켜요.
룰 2: 동일 카드/기기 기반 차단 정책
- 내용: 특정 카드 번호나 특정 기기에서 결제 실패가 단시간 내 반복되면 해당 정보를 '블랙리스트'로 자동 등록해요.
- 예시: 30분 내 결제 실패 5회 발생 시 해당 카드/기기 24시간 결제 금지.
- 효과: 도난 카드의 유효성을 확인하기 위해 무작위로 결제를 시도하는 '카드 스무핑' 공격을 차단해요.
룰 3: 고위험 IP 및 국가 접속 차단
- 내용: 서비스 주 타겟 국가가 아닌 곳에서 대량 접속이 들어오거나, VPN을 통한 우회 접속이 확인될 경우 결제 단계에서 본인 인증을 강화해요.
- 효과: 해외에서 시도되는 대규모 봇 결제를 원천 봉쇄해요.
3카드사 대금 환수 요구에 승소하기 위한 증빙 데이터 설계
차지백(Chargeback) 통지를 받았을 때 즉각 제출할 수 있는 이용 기록 로그를 설계해두면 억울하게 결제 대금을 뺏기고 수수료까지 부담하는 일을 방지해요. 차지백은 카드 소유주가 "이 결제는 내가 한 것이 아니에요"라고 주장하며 카드사에 대금 환수를 요청하는 제도예요. 이때 카드사는 우선 가맹점에서 돈을 가져간 뒤, 가맹점에 정당한 결제였음을 증명하라고 요구해요.
차지백 프로세스와 운영 액션
- 차지백 통지 접수: PG사를 통해 카드사의 이의 제기가 전달돼요.
- 증빙 자료 제출: 가맹점은 7~14일 이내에 정당 거래임을 증빙해야 해요.
- 판정: 카드사가 자료를 검토해 '승인'하면 돈을 돌려받지만, '기각'되면 대금은 증발하고 차지백 수수료(건당 수만 원)까지 가맹점이 부담해요.
미리 설계해둘 증빙 로그
카드사가 요구하는 증빙은 까다로워요. 단순히 "서버에 결제 완료라고 떴어요"라는 기록만으로는 부족하며, 아래 데이터가 로그로 남고 있어야 승소 확률이 높아져요.
- 서비스 이용 내역: 결제 이후 사용자가 실제로 콘텐츠를 소비했거나, 배송이 완료되었다는 증명(송장 번호 등).
- 접속 환경 기록: 결제 당시의 IP 주소, 기기 정보, 회원가입 시 본인 인증 여부.
- 과거 결제 이력: 해당 사용자가 이전에도 정상적으로 결제하고 서비스를 이용한 적이 있는지 여부.
기획자는 개발 시작 전에 이러한 데이터가 DB에 적절히 쌓이고 있는지, 관리자 페이지에서 추출 가능한지 반드시 확인해야 해요.
4라이브 전 부정결제 방지 정책 최종 점검
운영 정책과 개발 환경이 상호 보완적으로 준비되었는지 체크리스트로 확인하여 실제 사고 발생 시 대응 지연을 없애요.
정책 설계 체크리스트
- 우리 서비스의 평균 결제 금액을 고려한 '계정당 일일 결제 한도'가 설정되었는가?
- 새벽 시간대나 비정상 빈도의 결제 발생 시 담당자에게 슬랙(Slack) 등으로 즉시 알림이 오는가?
- 이용약관에 '부정거래 의심 시 서비스 이용을 제한하거나 결제를 취소할 수 있어요'는 명확한 근거 조항이 있는가?
- 관리자 화면에서 특정 아이디나 카드를 즉시 결제 차단(블랙리스트) 처리하는 기능이 있는가?
구현 체크리스트
- 결제 시 사용자의 IP, Device ID, User-Agent 정보가 결제 로그와 매칭되어 저장되는가?
- 결제 실패 시 발생하는 에러 코드(잔액 부족, 분실 카드 등)를 통계적으로 모니터링할 수 있는가?
- 차지백 증빙을 위해 필요한 '상품 이용/배송 상태 데이터'를 한 번에 추출할 수 있는가?
다음 단계
부정결제 대응 룰을 세웠다면, 이제 운영 루틴과 취소·환불 기준까지 같이 맞춰 사고 대응 체계를 완성해야 해요.
추천 콘텐츠
결제 사고 90% 줄이는 운영자용 일일·주간·월간 체크리스트 사고 전후로 어떤 지표를 꾸준히 모니터링해야 하는지 정리해요.
취소와 환불 헷갈리면 돈이 샌다: 운영 정책 5가지 기준 취소와 환불 처리 기준을 명확히 해야 차지백 대응도 덜 흔들려요.
바로 참고할 문서
- 개발 문서: 부트페이 개발자 센터
