RT-O10: AI 사기 주문 탐지 + 자동 차단

🎯 OMS-단계 사기란?Cards · Address · Return Abuse

카드 도용·재고 매도(Resale)·반품 남용(Return Abuse) 같은 OMS-단계 사기는 결제 게이트웨이의 3DS 인증만으로는 잡히지 않는다. 결제는 통과하지만 배송지가 바뀌거나, 동일 디바이스에서 단시간에 다수 주문이 일어나거나, 반품을 반복적으로 악용해 환불을 받아내는 패턴이 그것이다.

RT-O10은 6개 feature를 입력으로 하는 Gradient Boosted Tree분류기를 1차 게이트로 두고, 화이트/블랙리스트·속도(velocity) 룰셋과 디바이스 fingerprint를 결합한다. 사기 확률 fraud_prob ≥ 0.85면 자동 차단, 0.60 ~ 0.85는 검토 큐로 에스컬레이트, < 0.60은 정상 통과시킨다. 판정 결과와 인간 운영자의 최종 판단은 재학습 corpus에 누적되어 모델이 매주 갱신된다.

🧭 사기 탐지 의사결정 파이프라인5 stages · feature → GBT → rule → decision → learn
STEP 1
feature_collect

주문/결제/디바이스/이력에서 6개 feature 추출. order_amount · ship_to_billing_diff · new_address_flag · device_fingerprint · velocity_1h · return_abuse_score.

STEP 2
gbt_score

Gradient Boosted Tree (LightGBM/XGBoost) predict_probafraud_prob ∈ [0,1] 산출.

STEP 3
rule_overlay

화이트리스트(VIP)/블랙리스트(IP·BIN)/속도(velocity) 룰을 덧씌워 모델 점수를 보정.

STEP 4
decision

≥0.85 block · 0.60~0.85 review · <0.60 pass 3분기.

STEP 5
learn_log

결정 결과 + 인간 판정(검토 큐 처리)을 재학습 corpus에 누적, 주 1회 모델 재학습.

🐍 사기 탐지 분류기 (Python)
# Gradient Boosting 기반 사기 분류기
fraud_features = [
    "order_amount",            # 주문 금액
    "ship_to_billing_diff",    # 배송지/결제지 불일치 여부
    "new_address_flag",        # 처음 사용 주소
    "device_fingerprint",      # 기기 ID 이력
    "velocity_1h",             # 1시간 내 주문 횟수
    "return_abuse_score",      # 반품 남용 점수
]
fraud_prob = fraud_model.predict_proba(features)[:, 1]
if fraud_prob > 0.85: auto_block()
elif fraud_prob > 0.60: escalate_to_review()
➗ 점수·평가 지표precision · recall · AUC · 4개 가중 그룹
fraud_prob = σ(GBT(features))
precision = TP / (TP + FP) , recall = TP / (TP + FN)
# AUC = ROC 곡선 아래 넓이. 0.5=random, 1.0=perfect. 6월 4주차 0.972.
AUC ≈ 0.972FPR1.0TPR
addr .25ship_to_billing_diff + new_address_flag · 배송지 신뢰도 관련 가중 그룹
dev .25device_fingerprint · 기기 ID 일치/신규 여부, 재방문 디바이스는 정상 신호
vel .25velocity_1h · 1시간 내 동일 사용자/카드/IP 주문 빈도
abuse .25return_abuse_score + order_amount · 반품 남용 이력 + 금액 이상치

예) 신규 주소(new_address_flag=1) + 결제지 불일치(ship_to_billing_diff=1) + 1시간 내 5건(velocity_1h=5) → GBT 출력 0.93으로 자동 차단. 반대로 VIP 고객이 출장 중 신규 디바이스로 주문한 경우, dev 그룹은 위험 신호이지만 abuse/vel/addr이 모두 낮아 검토 큐로 분기 후 운영자 판정으로 통과시킨다.

🔬 Feature SHAP 영향력XGBoost SHAP avg · 6월 학습셋 N=128k 주문
featureSHAP avg방향의미
ship_to_billing_diff+0.34사기 ↑결제지/배송지 불일치 시 가장 강한 사기 신호
velocity_1h+0.28사기 ↑1시간 내 다수 주문 = 카드 테스트/대량 매도 패턴
return_abuse_score+0.21사기 ↑반복 반품·환불 이력의 누적 점수
new_address_flag+0.16사기 ↑처음 등장한 배송지(드롭 포인트 가능성)
device_fingerprint−0.11정상 ↑재방문 디바이스 매칭 시 정상 가산 (음의 SHAP)
order_amount+0.09사기 ↑고가 주문일수록 사기 확률 소폭 증가

SHAP 값은 GBT가 각 feature를 사기 점수에 얼마나 기여했는지 평균낸 값이다.ship_to_billing_diff가 0.34로 가장 강하게 사기 방향으로 기여하고, device_fingerprint는 음수(-0.11)로 정상 판정 방향으로 작용한다. 이는 재방문 디바이스가 강한 정상 신호임을 의미한다.

참고문헌
[1] 김지훈 외, "OMS 사기 주문 탐지 모델과 자동 차단 정책", IntraLogis 사내 보고서, 2026.06
[2] Chen, T., Guestrin, C. "XGBoost: A Scalable Tree Boosting System", KDD 2016
[3] Lundberg, S.M., Lee, S. "A Unified Approach to Interpreting Model Predictions (SHAP)", NeurIPS 2017
[4] Yoo, J. et al. "Fraud Detection in E-Commerce: A Survey", IEEE Access, 2022
[5] PCI Security Standards Council, PCI DSS v4.0, 2022
[6] 한국인터넷진흥원(KISA), 전자상거래 사기 패턴 가이드, 2024
[7] EMVCo, 3-D Secure 2.0 Protocol Specification, Visa/Mastercard, 2023