Cloudflare가 Precursor를 공개하며 봇 탐지의 패러다임을 "개별 검증 지점"에서 "전체 세션 행동 흐름"으로 옮겼습니다. 로그인·가입·결제 같은 민감 지점의 Challenge만으로는 실제 브라우저와 JavaScript를 활용한 정교한 자동화를 가려내기 어려워졌기 때문입니다.

흥미로운 점은 Precursor가 CAPTCHA를 푸는 데서 멈추지 않고, 포인터 호의 곡률·인지 부하 지연·생리적 손떨림처럼 사람의 움직임이 가진 물리·인지적 제약을 세션 전체에 걸쳐 누적 평가한다는 점입니다. 가우시안 노이즈를 추가한 자동화는 개별 클릭을 흉내 낼 수 있지만, 1조 건 이상의 요청을 다루는 네트워크 가시성과 결합하면 모방 비용이 급격히 올라갑니다.
- 로그인·가입·결제 같은 개별 검증 지점만으로는 실제 브라우저와 JavaScript를 활용하는 자동화를 가려내기 어려워지자, Cloudflare는 전체 사용자 여정의 행동 신호를 연속 분석하는 Precursor를 도입함
- HTML 응답에 동적으로 조립된 경량 JavaScript를 삽입해 포인터 이동, 키보드 활동, 포커스, 페이지 표시 상태를 수집하고 엣지 평가와 기존 봇 방어 체계에 실시간 반영함
- 손목 움직임과 인지 지연, 손떨림, 속도·방향·보정 리듬은 직선 이동이나 일정한 속도, 과도한 정밀도를 보이는 자동화가 세션 전체에 걸쳐 복제하기 어려워 세션 단위 판별의 근거가 됨
- 실제 키 입력 대신 타이밍과 리듬만 수집하고, 행동 신호를 사용자 계정이나 영구 프로필에 연결하거나 고객 대시보드에 직접 노출하지 않는 개인정보 보호 설계를 적용함
- Enterprise Bot Management 기능으로 현재 배포 중이며 올해 말 GA 전까지 무료로 사용할 수 있고, 애플리케이션 수정 없이 백그라운드 관찰 또는 미검증 세션에 Challenge를 강제하는 방식으로 운영 가능함
개별 검증 지점에서 전체 세션으로
- 봇 방어는 공격자의 적응과 방어자의 대응이 반복되는 적대적 경쟁으로, Cloudflare는 네트워크 전반의 가시성과 클라이언트 환경의 신호를 함께 활용함
- 전 세계 네트워크에서 하루 1조 건 이상의 요청을 분석해 웹의 20%가 넘는 범위에서 평판, 패턴, 이상 징후를 파악함
- Cloudflare Turnstile은 CAPTCHA 대체재에서 사용자 확인에 필요한 마찰 수준을 조절하는 위험 기반 관리형 Challenge로 발전함
- Turnstile은 로그인, 가입, 결제처럼 민감한 지점에서 하루 약 30억 회 실행되지만, 그 사이를 포함한 전체 사용자 여정에서 사람과 봇이 어떻게 행동하는지는 제한적으로만 파악할 수 있었음
- Precursor는 이 가시성 공백을 메우기 위해 웹 애플리케이션 전반에서 클라이언트 행동 신호를 지속해서 수집하고 세션 단위로 판별함
- Challenge가 제공하던 클라이언트 측 탐지를 애플리케이션 전체로 확장함
- Turnstile을 선택적으로 보완하며, 두 기능 모두 Enterprise Bot Management에 포함됨
짧은 순간보다 모방하기 어려운 행동의 연속성
- 현대 자동화는 JavaScript를 실행하고 실제 브라우저 환경을 사용하며 개별 CAPTCHA도 통과할 수 있어, 짧은 구간에서는 정상 사용자처럼 보일 수 있음
- 세션 전체에서 일관된 인간 행동을 재현하기는 더 어려우며, Precursor는 이러한 행동의 연속성을 사기와 악용 탐지 신호로 활용함
- 각 판단에 더 많은 신호를 추가해 사람과 자동화를 구분하는 정밀도를 높임
- 공격적인 Challenge 의존도를 낮춰 정상 사용자의 불필요한 중단을 줄임
- 봇 개발자는 전체 세션을 모방해야 하므로 자동화를 구축·유지하는 비용이 커지고 대규모 운영의 신뢰성은 낮아짐
인간의 오류와 물리적 제약
- 봇 개발자는 마우스 움직임에 가우시안 노이즈나 균일한 무작위 지연을 추가하지만, 인간의 움직임에는 단순한 잡음 이상의 물리·인지적 제약이 있음
- 손목 회전축: 손목의 가동 범위와 팔뚝 회전 때문에 마우스가 흔히 호 형태로 움직임
- 인지 부하: 체크박스를 본 뒤 클릭하기까지 측정 가능한 지연이 발생함
- 손떨림: 안정된 손에서도 생리적 손떨림 주파수에 따른 진동이 나타남
- 자동화는 직선 보간이나 수학적으로 이상적인 Bézier 곡선을 사용하고, 사람이 재현하기 어려운 정밀도로 클릭하는 경향이 있음
- 예시 자동화 라이브러리는 마우스를 완전한 직선으로 움직이고 항상 원점으로 돌아가며 같은 속도로 반응함
- 반면 사람은 같은 사이트에서도 불규칙한 경로, 작은 보정과 목표 지점 초과, 속도·타이밍·방향 변화를 보임
- 개별 상호작용은 그럴듯해도 세션 전체에서는 행동 패턴의 차이가 드러나며, Precursor는 상호작용이 이어지는 동안 이러한 행동 서명을 포착해 평가함
클라이언트 주입과 신호 수집
- Precursor를 활성화하면 Cloudflare 네트워크를 통과하는 사이트의 HTML 응답에 경량 스크립트가 자동으로 삽입됨
- 추가 설정이나 별도 네트워크 연결, 제3자 임베딩이 필요하지 않음
- 번들은 작고 난독화돼 있으며 응답마다 동적으로 조립됨
- 호스팅된 웹 애플리케이션의 다른 페이지 로직을 방해하지 않도록 설계됨
- 스크립트는 가벼운 이벤트 리스너로 포인터 이동, 키보드 활동, 포커스 변화, 페이지 표시 상태를 포착함
- 이벤트를 압축 형식으로 직렬화해 메모리에 버퍼링함
- 버퍼에 쌓인 데이터는 정기적으로 평가 계층에 전송됨
엣지 평가와 교차 검증
- 엣지 서버는 들어온 Precursor 페이로드를 행동 입력으로 역직렬화하고, 디스패처를 통해 여러 평가기(evaluator) 를 실행함
- 각 평가기는 필요한 Precursor 스트림을 읽고 공유 탐지 레지스트리에 신호를 등록할 수 있음
- 단일 이벤트에 의존하지 않고 서로 다른 데이터를 교차 검증함
- 포인터 활동이 페이지가 표시된 시간과 일치하는지 확인함
- 텍스트 필드에 포커스가 있을 때만 키보드 이벤트가 발생하는지 살펴봄
- 연속해서 들어오는 정보는 개별 탐지 신호로 통합되고, 탐지 가중치를 계산하는 데 활용됨

세션 누적과 후속 탐지 계층
- Precursor 데이터는 세션 범위로 누적되므로, 봇이 페이지를 새로 고치거나 새로운 Challenge부터 다시 시작해도 행동 서명을 초기화할 수 없음
- 세션 메타데이터는 후속 탐지 계층에도 전달됨
- 섀도 모드 휴리스틱과 세션 분석
- 예상 완료와 실제 완료의 비교
- 세션 delinquency 휴리스틱
- 엣지에서 관찰한 정보는 탐지 개선을 위해 기록되며, 세션의 봇 점수를 조정하는 데 사용됨
개인정보 보호 설계
- 이벤트 리스너는 사람의 패턴과 자동화·악용 패턴을 구분하는 데 필요한 최소한의 정보만 수집함
- 키보드 활동에서는 실제 누른 키가 아니라 타이밍과 리듬만 포착함
- 개별 행동보다 집계된 행동 패턴을 평가함
- 행동 신호는 Cloudflare의 봇 탐지 시스템 내부에서만 사용됨
- 고객 대시보드에 직접 노출되지 않음
- 사용자 계정, 로그인 신원, 영구 프로필과 연결되지 않음
- 이를 통해 정상 사용자에게 가해지는 마찰을 줄이면서 행동 평가를 지속해서 갱신함
세션 기반 Security Analytics
- Security Analytics에는 개별 요청이 아닌 전체 방문자 여정을 보여주는 세션 기반 보기가 추가됨
- 대시보드에서 다음 질문을 조사할 수 있음
1. 사이트의 일반적인 세션은 어떤 모습인가
2. 예상 행동에서 벗어나는 지점은 어디인가
3. 시간의 흐름에 따라 자동화 징후를 보이는 세션은 무엇인가
- 요청 단위 분석으로는 포착하기 어려웠던 요청 사이의 행동도 분석 대상이 됨
- Precursor 데이터는 기존 봇 점수, Challenge 판단, 보안 규칙으로 직접 전달되므로 추가된 세션 맥락을 기존 방어 체계에서 바로 활용할 수 있음
향후 확장과 활성화 방법
- Precursor는 전체 애플리케이션으로 봇 탐지를 확장하기 위한 기반이며, Cloudflare는 다음 영역을 계속 확대할 계획임
- 보안에 활용하는 행동 신호의 범위와 깊이
- 세션 수준 정보가 봇 관리 보호에 미치는 방식
- 세션 데이터를 시각화하고 조치하는 새로운 방법
- 봇이 발전할수록 탐지도 고립된 검증 지점에서 벗어나 전체 사용자 활동 흐름을 다뤄야 함
- 현재 Cloudflare 대시보드에서 영역별로 Precursor를 활성화할 수 있으며, 올해 말 GA 출시 전까지 무료로 제공됨
- 세션 검증 강도는 두 가지 방식으로 선택 가능함
- 마찰이 낮은 모드에서는 백그라운드에서 행동을 관찰함
- 완전히 검증된 세션이 필요하면 기존 세션이 없을 때 Challenge를 강제함
- 활성화 즉시 기존 봇 방어가 강화되며 애플리케이션 변경은 필요하지 않음
- Bot Management나 Turnstile을 이미 사용한다면 기존 Challenge 지점을 넘어 나머지 세션과 보호 지점 사이의 활동까지 탐지 범위가 확장됨
한국 시장에서의 시사점
한국 전자상거래·금융·게임사에서도 봇 자동화는 이미 checkout rush, 매크로 작업, 어뷰징 거래의 형태로 등장하고 있습니다. Turnstile + Bot Management를 도입해 민감 지점을 방어해왔지만, 그 사이를 흐르는 사용자 여정의 행동 신호는 비어 있었습니다.
Precursor 같은 세션 단위 평가는 API 호출·헤드리스 자동화·정교한 매크로의 진입 비용을 크게 끌어올립니다. 특히 키 입력의 타이밍/리듬만 수집하고 실제 키 값을 기록하지 않는 개인정보 보호 설계는, 정보통신망법·개인정보보호법을 준수해야 하는 한국 사업자에게도 적용 가능성이 높습니다 — "동작 패턴은 보되 신원은 보지 않는다"는 원칙은 로그 항목 설계에 그대로 활용 가능합니다.
올해 말 GA 전까지 무료로 배포되는 만큼, 한국 CSP·클라우드 사업자도 자체 행위 기반 봇 방어 로직을 강화할 수 있는 윈도우입니다. 백그라운드 관찰 모드로 시작해 운영 리스크를 가늠한 뒤, 검증이 필요한 세션에 Challenge를 강제하는 2단계 활성화 전략이 현실적입니다.
원문: GeekNews #31437 · 출처: Cloudflare Blog
📰 원본 출처 · https://news.hada.io/topic?id=31437 (#N=31437)
이 글은 GeekNews(긱뉴스)에 게제된 글을 기반으로 작성되었습니다. 원본의 라이선스와 저작권은 원작자에게 있습니다.