엣지에서의 사기 탐지: Cloudflare Workers + tracio.ai
요청이 오리진에 도달하기 전에 Cloudflare Workers에서 디바이스 지문 검증을 실행하세요. 엣지에서 5ms 미만의 사기 판정을 내립니다.
전통적인 사기 탐지는 애플리케이션 계층에서 이루어집니다. 요청이 서버에 도착하면, 사기 탐지 API를 호출하고, 응답을 기다린 뒤, 허용할지 차단할지 결정합니다. 이 왕복 과정은 모든 요청에 50~200ms의 지연을 추가하는데, 페이지 로드에는 허용 가능하지만 API 엔드포인트, AJAX 호출, 실시간 상호작용에는 부담이 됩니다.
요청이 오리진 서버에 도달하기 전에 사기 판정을 내릴 수 있다면 어떨까요? 바로 그것이 엣지 컴퓨팅이 가능하게 하는 것이며, 이 패턴을 시연하는 데 사용하는 플랫폼이 Cloudflare Workers입니다.
아키텍처
이 구성은 세 가지 구성 요소로 이루어집니다. 브라우저에서 실행되는 tracio.ai JS SDK(@tracio/sdk), 클라이언트와 오리진 사이에 위치하는 Cloudflare Worker, 그리고 전체 시그널 분석을 백엔드로 전달하는 서명된 tracio.ai 웹훅입니다.
흐름은 다음과 같습니다. JS SDK가 페이지 로드 중 디바이스 시그널을 수집해 tracio.ai로 전송하고, 브라우저에 visitorId를 반환합니다. 백엔드는 봇 분류, 스마트 시그널, 신뢰도 등 전체 식별 결과를 서명된 웹훅을 통해 수신하고 그 판정을 엣지 캐시에 기록합니다. 브라우저는 이후 API 요청에 (헤더 또는 쿠키를 통해) visitorId를 포함합니다. Cloudflare Worker는 각 요청을 가로채 해당 visitorId에 대한 캐시된 판정을 조회하고, 5ms 미만으로 허용/차단 결정을 내립니다.
Worker 구현
Worker는 Cloudflare의 KV 스토리지를 사용해 최근 디바이스 검증 결과의 경량 캐시를 유지하며, 이 캐시는 서명된 tracio.ai 웹훅이 도착할 때 백엔드에 의해 채워집니다. visitorId 헤더가 포함된 요청이 도착하면 Worker는 캐시를 확인합니다. 판정이 캐시되어 있고 방문자가 깨끗하다면(낮은 봇 점수, VPN 없음, 임계값 이상의 신뢰도) 요청은 즉시 통과합니다. 아직 판정이 캐시되지 않았다면, Worker는 웹훅 기반 캐시가 따라잡을 때까지 폴백 정책(보수적인 속도 제한과 함께 통과, 또는 챌린지)을 적용합니다.
핵심 통찰은 검증 캐시가 선제적으로 채워진다는 점입니다. 첫 페이지 로드가 시그널 수집을 유발하고 결과를 캐시합니다. 해당 방문자의 이후 모든 API 호출은 캐시에 적중하므로 tracio.ai로의 왕복이 필요하지 않습니다. 캐시 TTL은 설정 가능하며, 고보안 엔드포인트에는 5분, 일반 콘텐츠에는 30분을 권장합니다.
성능 수치
분당 50,000건의 요청을 Cloudflare Workers로 처리하는 고객을 대상으로 이 아키텍처를 벤치마크했습니다. 결과는 다음과 같습니다.
캐시 적중률: 94%(대부분의 요청은 이미 페이지를 로드한 방문자로부터 옵니다). 엣지 판정 지연(캐시 적중): 중앙값 1.2ms, p99 3.8ms. 엣지 판정 지연(캐시 미스): 중앙값 45ms(tracio.ai로의 API 호출 포함). 오리진 지연 절약: 요청당 중앙값 120ms(서버 측 사기 검사 제거).
94%의 캐시 적중률은 사기 판정의 94%가 오리진 관여 없이 엣지에서 4ms 미만으로 이루어짐을 의미합니다. 나머지 6%는 전체 API 왕복이 필요한 첫 방문 요청입니다.
차단 전략
Worker는 세 가지 차단 전략을 지원하며, 라우트별로 설정할 수 있습니다.
하드 차단: 고위험 방문자(봇 점수 > 0.9, 알려진 자동화 프레임워크)에 대해 즉시 403을 반환합니다. 소프트 차단: X-Tracio-Risk 헤더를 추가하고 오리진이 결정하도록 맡깁니다. 판정에 애플리케이션 계층의 맥락을 활용하고자 할 때 유용합니다. 챌린지: 의심스러운 방문자(중간 정도의 봇 점수, VPN 탐지)를 추가 검증이 필요한 챌린지 페이지로 리디렉션합니다.
프로덕션에서는 소프트 차단으로 시작해 한 주 동안 위험 분포를 모니터링한 뒤, 명백한 사례(알려진 봇, 헤드리스 브라우저, 고신뢰 자동화)에 대해 하드 차단을 활성화할 것을 권장합니다.
비용 분석
Cloudflare Workers 요금은 요청 수와 컴퓨팅 시간을 기준으로 합니다. 분당 5만 건(월 21.6억 건) 기준으로 Worker 비용은 월 약 $500입니다. 이를 지연 절약과 비교해 보세요. 오리진 측 사기 검사 120ms를 제거하면 서버 CPU 사용량이 15~20% 감소하는데, 이는 일반적으로 Worker 비용보다 더 많은 컴퓨팅 비용을 절약합니다.
진정한 가치는 사기 방지에 있습니다. 봇과 부정 요청이 오리진 리소스, 데이터베이스 연결, 다운스트림 API 호출을 소비하기 전에 잡아내는 것입니다. 한 고객은 엣지 기반 사기 탐지를 구현한 후 오리진 서버 수를 12대에서 8대로 줄였습니다. 컴퓨팅의 30%를 소비하던 봇이 오리진에 아예 도달하지 못하게 된 것입니다.