거래 사기를 탐지하는 데 사용하는 SQL 패턴
요약
본 글은 거래 사기 탐지에 사용되는 SQL 패턴들을 논하며, 실제 카드 결제 환경의 복잡성과 현실적인 제약 사항(예: 가격 책정의 다양성, 국경 이동의 빈번함)을 지적합니다. 필자는 제시된 방법론들이 지나치게 단순화되었거나 추측에 기반하고 있으며, 특히 AI가 잘 처리해야 할 영역임에도 불구하고 SQL 패턴으로만 접근하는 한계를 비판합니다. 전반적으로 글의 내용이 모순되고 품질이 낮으며, LLM(Large Language Model) 생성 콘텐츠일 가능성이 높다고 평가합니다.
핵심 포인트
- 거래 사기 탐지 기준은 현실적인 결제 환경과 복잡성을 고려해야 하며, 단순한 SQL 패턴만으로는 한계가 있다.
- 가격의 정밀성이나 특정 시간대 거래 여부 같은 휴리스틱(heuristic) 기반 접근법은 오탐(False Positive) 비용을 유발할 수 있어 신중해야 한다.
- 사기 탐지 시스템 설계 시, 데이터 출처와 맥락에 맞는 구체적인 규칙과 예외 처리가 필수적이다.
- 이러한 유형의 글들은 내용의 모순성이나 과도하게 일반화된 주장을 통해 LLM 생성 콘텐츠일 가능성이 높다.
실제 카드 소유자가 정확히 $1.00짜리를 거의 사지 않는다는 기준은 판매자가 가격을 어떻게 정하느냐에 달린 것 아닌가 싶음
훔친 신용카드를 테스트하려고 웹사이트에서 뭔가를 살 때 구매자가 가격을 마음대로 정할 수는 없음
또한 미국처럼 가격에 세금이 포함되지 않는 상황에 너무 맞춰 생각하는 듯하고, 다른 지역에서는 딱 떨어지는 가격이 매우 흔함
글의 다른 기준들도 잘 작동할지 의문임. 예를 들어 최근 90일 안에 평소 2건 이상 거래하던 시간대 밖에서 거래한 사람을 표시한다면 사람 절반쯤이 걸리지 않겠나 싶음
복잡한 전문 지식을 지나치게 단순한 SQL 질의로 풀어낸 글인지, 전부 추측과 창작인지 불분명함. “거래 사기를 잡는 데 쓰는 여섯 가지 SQL 패턴”과 “여기에는 내가 실제로 작업했거나 본 내용이 없다”는 문장이 서로 충돌함
“평소 시간대 밖 거래”는 꽤 기초적인 기준으로 보임
보통 새벽 2시에 주유, 커피, 간식을 사지는 않지만, 아주 드물게 그런 일을 할 때는 개인적인 비상상황일 가능성이 크고 그 와중에 은행에 전화하고 싶지는 않음
기회주의적 도둑도 그 시간에 활동할 수 있다는 건 알지만, 오탐 비용도 분명 존재함
그보다 더 나쁨. 내 경험상 커피는 보통 딱 떨어지는 금액인 경우가 많고, 주유할 때 일부러 딱 맞는 금액을 넣는 사람도 있음
또 10, 20, 50유로처럼 미리 정한 금액을 요구하는 주유소도 있음
어느 날 밤 술집에서 배가 고파 감자칩 한 봉지를 사려 했는데 카드 최소 결제 금액이 £5라고 해서 그냥 £5로 결제해 달라고 했음
그런데 사기로 의심된다며 카드가 막혔고 꽤 짜증났음. 새벽 2시에 취한 상태로 처리하고 싶은 일이 아니었음
어쩌면 나 자신으로부터 보호해 준 것일 수도 있지만 그래도 불편했음
지금도 쓰이는지는 모르겠지만, 예전에는 호텔이나 렌터카 같은 곳에서 방 예약이나 차량 대여 전에 $1.00 거래로 신용카드 유효성을 확인하는 경우가 있었음
이 방식은 테스트 거래에 약간의 흔들림값을 넣으면 쉽게 우회 가능하고, 제대로 된 통계 분석으로 쉽게 개선할 수도 있음
그리고 거의 100% 정확도를 기대하지 않는 이런 휴리스틱 패턴 인식이야말로 AI가 잘해야 하는 영역 아닌가 싶음
“10분 안의 국경 통과는 국제 조직”이라는 기준은 유럽의 국경 인접 지역에 사는 평범한 사람들에게도 해당될 수 있음
카드 비대면 거래는 제외한다고 해도, 모든 가맹점 위치가 정확히 설정되어 있고 모든 판매가 오프라인 매장에서 일어나며 이동 판매 같은 건 없고 모든 거래가 온라인으로 처리된다고 잘못 가정하는 듯함
몇 주 전 미국에서 캐나다로 넘어갈 때도 아마 10분 정도였음
끝까지 읽어보면 내용이 비어 있고 서로 모순되는 조언이 드러남. 거의 확실히 LLM 생성 글 같음
“당신의 팀”은 어떤 패턴 하나에도 의존하면 안 된다고 하면서도, 패턴 1만으로도 “유용한 양의 사기”를 드러낼 수 있다고 함
“팀의 모든 분석가가 그것들, 즉 윈도 함수가 생기면 사용할 것이고, 다음 사기 패턴을 추가하는 일이 프로젝트가 아니게 된다” 같은 이상한 문장도 있음
또 거의 모든 예제가 IS NULL을 쓰지 않는데도 IS NULL 필터링이 적용되지 않을 수 있다는 관련성 낮은 논의가 나오고, 유일하게 쓰는 예제도 다른 맥락임
전반적으로 품질이 낮고 너무 긴 글임
Hacker News, 이건 짚고 넘어가야 함
“Fixel Smith”는 AI가 만든 인물이고, 글은 사기 분석과 거의 관련이 없음. 이 이름은 음악가(1), 소설가(2), 사기 분석가(3), 인플루언서(4) 등 상상할 수 있는 거의 모든 정체성으로도 쓰임
220점 넘게 받고 댓글도 70개가 넘는데, 이 글이 꽤 가짜라는 걸 알아차린 사람이 거의 없고 AI 생성 인물이라는 점을 본 사람은 없음
Hacker News가 최근 이런 저품질 AI 투고를 올려주는 답답한 습관이 생긴 듯함
이 AI 홍수가 커뮤니티의 판단력에 대한 불편한 진실을 드러내는 건지, 아니면 기존 방어 장치의 실패라서 바꾸기만 하면 되는 건지 궁금해짐
휴대폰으로 글을 확인하다가 댓글만 살짝 봤음. 어떤 글이 AI 생성인지 편집된 것인지 항상 판단하기 쉽지는 않지만, 여기서는 인용문만 봐도 첫눈에 분명했음
모든 댓글이 선의로 작성됐다고 가정하면, 여기서조차 AI 문해력이 낮다는 건 꽤 걱정스러움
대충 봐도 매우 다작하는 개인이거나 봇처럼 보임
소설은 분석 글과 거의 관련이 없고, 분석 글들은 LLM 문체를 띠는 듯해서 전체가 수상함. 원문의 주제가 사기라는 점을 생각하면 아이러니함
대부분의 사람들이 읽는 글의 작성자를 습관적으로 조사한다고 하면 오히려 더 놀랄 것 같음
솔직히 나는 보통 바이라인조차 보지 않고, 사이트의 다른 부분은 더더욱 안 봄
이건 분명 실제로 존재하는 글임. 당연히 LLM이 쓴 것처럼 보이지만, 글에 대해 할 수 있는 최악의 비판이 LLM처럼 보인다는 것뿐이라면 실질적인 비판이 없는 셈일 수도 있음
내용이 지어낸 것인지 아닌지는 불분명하지만, LLM이 썼는지 소설인지 추측하지 않고도 글의 내용을 비판할 수 있음. 훨씬 더 구체적인 결함이 많음
우리는 오픈소스 보안 프레임워크 tirreno를 개발하고 있음
여기서 설명한 접근에는 의문이 듦. 예를 들어 불가능한 이동은 정당하고 널리 쓰이는 기법이지만, 이는 IP 주소 기반의 온라인 사용자 행동과 관련 있음
tirreno에는 IP가 Apple Relay나 VPN/Tor에서 온 것이 명확한 경우를 위한 별도 규칙이 있고, 그것들은 별도의 플래그임
일부 또는 전체 예제가 LLM 생성이라고 봄. 맥락이 뒤섞여 있고, 카드 결제에서 GPS 위치를 대량으로 수집하는 곳은 실제로 없기 때문임
이건 “근거 데이터 없이 SQL 질의로 인코딩한 규칙 기반 로직”에 가깝음
임계값은 잔뜩 있지만, 그 임계값이 의미 있다는 데이터는 없음
“거래 데이터의 사기 탐지는 대부분 SQL이지, 머신러닝도 그래프 데이터베이스도 Gartner가 올해 띄우는 무엇도 아니다”라는 식의 단정은 프로그램 무결성 업무 전체를 다루는 경우에나 정당화될 수 있음
문제 영역을 해결한다면 더 단순하고 거친 방식이 나을 수도 있음
핀테크 고객은 보통 지금 일어나는 거래가 사기인지 알고 싶어 하고, 고차원 데이터에 대해 몇 밀리초 안에 답을 원함. 관계형 데이터베이스가 이런 실시간 제약을 맞추기 어려운 규모의 작업이고, 대신 과거 데이터 적재 같은 다른 용도로 쓰임
그래서 인메모리 데이터베이스, 스트림 처리 엔진, 그리고 머신러닝까지 등장함
그래도 글쓴이의 일부 지점은 타당하고, 특히 잡음 많은 알림을 다루는 문제는 성능 엔지니어링을 넘어선 일반 문제라 다음 글이 기대됨
내 경험상 설명한 것은 더 구체적으로는 사기 탐지보다 사기 예방이라고 부르는 편이 맞음. 성숙한 구성에서는 둘 다 공존하고 서로 보완함
예방에서는 항상 지연 시간 요구사항, 사용 가능한 데이터, 불완전한 사용자 행동 그림에 제약을 받음. 머신러닝과 규칙으로 빠른 결정을 내려 대부분의 경우를 처리하지만, 그런 제약 때문에 모든 사기를 정확히 막을 수는 없음
탐지는 그 이후의 결과를 다룸. 분석가 팀이 승인된 거래를 분석해 사기 징후를 찾는 경우가 일반적임. 차지백이나 고객 불만 같은 외부 신호가 없는 사기 유형에서는 특히 중요함. 플랫폼 무결성이 그런 예이고, 핀테크의 자금세탁 방지 시스템도 사기를 찾아 나서야 함
둘이 보완적이라는 이유는, 탐지된 거래가 다음 예방 모델을 학습하고 평가하는 레이블이 되기 때문임
시카고에서 카드가 긁히고 7분 뒤 로스앤젤레스에서 다시 긁히면 둘 중 하나는 가짜라고 했는데, 온라인 쇼핑에서는 어떻게 작동하는지 궁금함
소파에 앉아 Amazon에서 물건을 사면 주소는 어디로 등록되나?
또 부부가 온라인 계정을 공유하고, 한 명은 여행 중에 저장된 카드 정보로 구매하는 경계 사례도 가능해 보임
카드를 긁거나 꽂거나 탭하는 것은 카드 대면 거래임. 온라인 쇼핑처럼 카드 번호를 입력하는 것은 카드 비대면 거래임
소매업체와 은행은 이 차이를 구분할 수 있음
거래 메타데이터로 구분할 수 있음. 신용카드 회사에서 일해 봤음
시스템이 카드 대면과 카드 비대면을 구분한다고 알고 있음
“이 방식은 이력이 쌓일 때까지 작동하지 않고, 신규 계정에는 기준선이 없다”는 건 과소평가된 고객 경험 요소임
새 고객이거나 새로운 패턴을 보일 때 카드가 거절되면 소프트웨어가 잘한다고 느껴짐
하지만 내가 인증한 과거 이력이 있는데도 거래를 거절하면, 순진하고 편집증적인 알고리즘 때문에 짜증남
은행의 유인은 사기를 줄이는 것임
사기 거래는 결국 취소나 환불로 은행이 손실을 떠안게 됨. 거절된 거래는 화난 고객 한 명을 만들 뿐이고, 고객은 불평한 뒤 금방 잊음. 그래서 외부화된 비용의 부담은 고객에게 감
따라서 은행은 더 조심하는 쪽으로 오류를 내고, 오탐이 있더라도 거래를 거절할 유인이 있음
머신러닝의 핵심은 이런 규칙을 데이터에서 배우는 것 아닌가 싶음
맞는 접근은 머신러닝 모델로 사기와 대응되는 패턴을 찾고, 그중 말이 되는 것이 있는지 평가하는 것이라고 봄. 그러면 새 가설을 발견할 수도 있음
설명 가능하고 결정적으로 반복 개선할 수 없는 것은 금융 거래 거절 업무에 너무 위험함
인간 분석가는 특정 거래가 왜 거절됐는지, 그리고 불리한 결정을 피하려면 무엇을 다르게 했어야 하는지를 컴플라이언스 팀에 5분짜리 이메일 하나로 설명할 수 있어야 함
머신러닝으로 한 문제를 고치면 아직 뚜렷하지 않은 새 문제 두 개가 생기는 경우가 많음. 시간이 지나며 바뀔 때 회귀나 예상 못 한 부작용 측면에서는 SQL이 대체로 놀랄 일이 적음
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기