Precursor: 전체 세션에서 에이전트 행동을 탐지하는 Cloudflare 시스템

9 hours ago 6
  • 로그인·가입·결제 같은 개별 검증 지점만으로는 실제 브라우저와 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 지점을 넘어 나머지 세션과 보호 지점 사이의 활동까지 탐지 범위가 확장됨
Read Entire Article