우리가 몰랐던 '카드 크리킹'의 실체와 대처법 : 무작위 신용카드 해킹
결제는 시스템이 허용했고, 피해는 당신이 감당한다 ??

카드 크리킹의 충격적인 실체
"카드번호를 마구 넣어서 결제를 한다고?" 처음 들으면 터무니없는 얘기처럼 들립니다. 16자리 숫자를 아무렇게나 조합해서 인터넷에서 쓰다 보면 어느 순간 성공한다는 얘기니까요. 말이 안 되는 소리 같지만, 실제로 지금 이 순간도 자동화된 봇이 수백만 개의 카드번호를 조합하고 결제를 시도하고 있습니다. 이런 해킹 수법을 "카드 크리킹(Carding)"이라고 부릅니다.
카드 크리킹의 정교한 수법
우리가 상상하는 단순한 '무작위 숫자 대입'은 실제 공격 방식과는 완전히 다릅니다. 카드번호는 특정 구조를 따라 생성되기 때문에, 해커들은 이 구조를 활용합니다.
신용카드 번호의 구조는 다음과 같습니다:
- 총 16자리 중 앞 6자리는 BIN(Bank Identification Number)으로, 발급 카드사와 종류를 나타냅니다. 예를 들어 VISA는 4로 시작하고, MasterCard는 5로 시작합니다.
- 다음 9자리는 고유한 사용자 식별값입니다.
- 마지막 1자리는 수학적 검증을 위한 Luhn 알고리즘 체크 디지트입니다.
즉, 해커들은 완전한 랜덤이 아닌 유효한 조합만을 생성해서 시도합니다. 이를 "BIN 공격(BIN attack)"이라고 부릅니다. 예를 들어 512345******1234처럼 BIN은 고정하고, 나머지 숫자를 무작위로 조합합니다. 그리고 Luhn 알고리즘으로 마지막 자리까지 맞춰 자동화된 스크립트로 수만 건을 웹사이트에 입력합니다. 이중 단 1개만 통과해도, 누군가의 카드가 해킹당하는 셈입니다.
카드 크리킹의 진화: 더 교묘해지는 방식
최근의 카드 크리킹은 단순히 카드번호를 추측하는 것을 넘어 더욱 정교해졌습니다. 현대 카드 크리커들은 다음과 같은 발전된 기술을 사용합니다:
- 분산 네트워크 활용: 여러 IP 주소와 기기를 사용하여 추적을 피하고 보안 시스템의 차단을 우회합니다.
- 머신러닝 알고리즘: 어떤 카드번호 패턴이 성공할 가능성이 높은지 학습하여 효율성을 높입니다.
- 초소액 검증: 먼저 1원 같은 소액으로 카드의 유효성을 검증한 후, 성공한 카드에 대해 더 큰 금액의 거래를 시도합니다.
- 유효기간 및 CVC 무차별 대입: 카드번호뿐만 아니라 유효기간과 보안코드까지 동시에 무차별 대입합니다.
"근데 카드 사용자 : 내 이름은 도대체 어떻게 알아?"라는 의문
놀랍게도 많은 온라인 결제 시스템에서는 카드 소유자 이름을 제대로 검증하지 않습니다. 이름란에 'John Smith', 'Test User', 'aaa' 같은 걸 넣어도 그냥 통과되는 곳이 많습니다. 이는 사용자의 잘못이 아니라 시스템의 무책임함입니다.
일부 결제 게이트웨이에서는 유효한 카드번호, 유효기간, CVC 번호만 있으면 실제 카드 소유자와 아무 상관없는 결제가 가능합니다. 이 구조를 노리고 크리커들은 활동하는 것입니다.
또한 일부 크리커들은 다크웹이나 텔레그램 등지에서 유출된 카드 정보를 구매해 사용합니다. 이름, 카드번호, 주소, 전화번호, CVC까지 포함된 정보들을 "풀즈(fullz)"라고 부르며, 이미 털린 정보로 피해자들이 모르는 사이 계속 결제가 시도되고 있습니다.
카드 크리킹의 경제학: 범죄자들의 수익 모델
카드 크리킹은 단순한 해킹을 넘어 체계적인 범죄 비즈니스 모델로 발전했습니다. 성공률이 낮더라도 규모의 경제로 수익을 창출하는 구조입니다.
예를 들어, 100만 개의 카드번호 조합을 시도해 그중 0.01%만 성공해도 100개의 유효한 카드 정보를 얻게 됩니다. 각 카드당 평균 수십만 원의 불법 거래가 이루어진다면, 범죄자들은 수천만 원의 부당이득을 취할 수 있습니다.
더 심각한 것은 이렇게 획득한 카드 정보가 다크웹에서 재판매되어 2차, 3차 피해로 이어진다는 점입니다. 한 번 유출된 카드 정보는 여러 범죄자들에 의해 반복적으로 악용될 수 있습니다.
일반 사용자가 카드 크리킹을 막을 수 있을까?
결론부터 말하면, 우리가 직접적으로 해킹을 막는 건 불가능합니다.
왜냐하면 해커는 우리 카드가 아니라 결제 시스템의 허점을 공략하는 것이기 때문입니다. 하지만 그렇다고 해서 완전히 무방비 상태일 필요는 없습니다. 오히려 우리를 '비효율적인 타겟'으로 만드는 전략이 실질적인 방어가 됩니다.
지금 당장 할 수 있는 현실적인 보안 수칙
- 해외결제 차단
대부분의 크리킹은 해외 쇼핑몰을 노립니다. 카드사 앱에서 평소엔 해외결제를 차단해두고, 필요할 때만 잠깐 켜는 습관을 들이세요. - 가상 카드번호 사용
삼성페이, 토스, 일부 카드사에서 제공하는 가상 카드번호 서비스를 활용하세요. 유효기간이 짧고, 사용 한도를 직접 설정할 수 있어 피해를 최소화할 수 있습니다. - 실시간 결제 알림 켜기
'1원 (또는 1센트) 테스트 결제'를 가장 먼저 탐지할 수 있는 방법입니다. 금액에 상관없이 모든 결제에 대해 알림을 받도록 설정하세요. - 카드사 보안 서비스 활용
3D Secure, 안심클릭 등은 귀찮게 느껴질 수 있지만, 크리킹 공격에 대한 결제 거부율이 매우 높습니다. - 결제 한도 설정
온라인 결제 한도를 앱에서 최소화해두면, 피해가 발생해도 그 규모를 제한할 수 있습니다. - 직접 카드번호 입력 줄이기
네이버페이, 카카오페이 같은 중개 서비스를 활용하면 직접적인 카드 정보 노출을 줄일 수 있습니다.
디지털 시대의 불균형: 개인 보안의 한계
우리는 이제 '내 정보'를 내가 완전히 지킬 수 없는 시대에 살고 있습니다. 은행, 통신사, 쇼핑몰 등 다른 주체들이 내 정보를 관리하고 있지만, 이들이 보안을 헐겁게 하면 내가 아무리 보안에 신경 써도 의미가 없어집니다.
그래서 중요한 건 "보안 인프라의 공동 책임"입니다.
그리고 개인은 '그 구조 안에서 최대한 안전한 구역'을 선택하고 머무는 지혜가 필요합니다.
결론: 비효율을 선택하는 현명한 방어
카드 해킹은 먼 이야기 같지만, 사실 우리 모두는 매일 수천 번의 공격 대상이 되고 있습니다. '나는 무력하다'라고 느껴질 수 있지만, 오늘 카드사 앱 하나 열고 설정 몇 개만 바꾸면, 당신은 이미 해커에게는 너무 '귀찮은 타깃'이 됩니다.
해커는 효율을 원합니다. 그러니 우리도 무력함 대신, 비효율을 선택합시다. 그게 지금 우리가 할 수 있는 최고의 방어입니다.
완벽한 보안은 없지만, 현명한 예방은 가능합니다.
