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

> Clean Markdown view of GeekNews topic #31437. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31437](https://news.hada.io/topic?id=31437)
- GeekNews Markdown: [https://news.hada.io/topic/31437.md](https://news.hada.io/topic/31437.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-07-15T00:36:33+09:00
- Updated: 2026-07-15T00:36:33+09:00
- Original source: [blog.cloudflare.com](https://blog.cloudflare.com/introducing-precursor/)
- Points: 1
- Comments: 1

## Topic Body

- 로그인·가입·결제 같은 개별 검증 지점만으로는 실제 브라우저와 JavaScript를 활용하는 자동화를 가려내기 어려워지자, Cloudflare는 **전체 사용자 여정의 행동 신호**를 연속 분석하는 Precursor를 도입함
- HTML 응답에 동적으로 조립된 경량 JavaScript를 삽입해 포인터 이동, 키보드 활동, 포커스, 페이지 표시 상태를 수집하고 **엣지 평가와 기존 봇 방어 체계**에 실시간 반영함
- 손목 움직임과 인지 지연, 손떨림, 속도·방향·보정 리듬은 직선 이동이나 일정한 속도, 과도한 정밀도를 보이는 자동화가 세션 전체에 걸쳐 복제하기 어려워 **세션 단위 판별**의 근거가 됨
- 실제 키 입력 대신 타이밍과 리듬만 수집하고, 행동 신호를 사용자 계정이나 영구 프로필에 연결하거나 고객 대시보드에 직접 노출하지 않는 **개인정보 보호 설계**를 적용함
- **Enterprise Bot Management** 기능으로 현재 배포 중이며 올해 말 GA 전까지 무료로 사용할 수 있고, 애플리케이션 수정 없이 백그라운드 관찰 또는 미검증 세션에 Challenge를 강제하는 방식으로 운영 가능함

---

### 개별 검증 지점에서 전체 세션으로
- 봇 방어는 공격자의 적응과 방어자의 대응이 반복되는 적대적 경쟁으로, Cloudflare는 네트워크 전반의 가시성과 클라이언트 환경의 신호를 함께 활용함
  - 전 세계 네트워크에서 하루 **1조 건 이상의 요청**을 분석해 웹의 20%가 넘는 범위에서 평판, 패턴, 이상 징후를 파악함
  - [Cloudflare Turnstile](https://developers.cloudflare.com/turnstile/)은 CAPTCHA 대체재에서 사용자 확인에 필요한 마찰 수준을 조절하는 위험 기반 관리형 Challenge로 발전함
- Turnstile은 로그인, 가입, 결제처럼 민감한 지점에서 하루 약 **30억 회** 실행되지만, 그 사이를 포함한 전체 사용자 여정에서 사람과 봇이 어떻게 행동하는지는 제한적으로만 파악할 수 있었음
- [Precursor](https://developers.cloudflare.com/cloudflare-challenges/precursor)는 이 가시성 공백을 메우기 위해 웹 애플리케이션 전반에서 클라이언트 행동 신호를 지속해서 수집하고 세션 단위로 판별함
  - [Challenge](https://developers.cloudflare.com/cloudflare-challenges/)가 제공하던 클라이언트 측 탐지를 애플리케이션 전체로 확장함
  - Turnstile을 선택적으로 보완하며, 두 기능 모두 **Enterprise Bot Management**에 포함됨

### 짧은 순간보다 모방하기 어려운 행동의 연속성
- 현대 자동화는 JavaScript를 실행하고 실제 브라우저 환경을 사용하며 개별 CAPTCHA도 통과할 수 있어, 짧은 구간에서는 정상 사용자처럼 보일 수 있음
- 세션 전체에서 일관된 인간 행동을 재현하기는 더 어려우며, Precursor는 이러한 **행동의 연속성**을 사기와 악용 탐지 신호로 활용함
  - 각 판단에 더 많은 신호를 추가해 사람과 자동화를 구분하는 정밀도를 높임
  - 공격적인 Challenge 의존도를 낮춰 정상 사용자의 불필요한 중단을 줄임
  - 봇 개발자는 전체 세션을 모방해야 하므로 자동화를 구축·유지하는 비용이 커지고 대규모 운영의 신뢰성은 낮아짐

### 인간의 오류와 물리적 제약
- 봇 개발자는 마우스 움직임에 **가우시안 노이즈**나 균일한 무작위 지연을 추가하지만, 인간의 움직임에는 단순한 잡음 이상의 물리·인지적 제약이 있음
  - **손목 회전축**: 손목의 가동 범위와 팔뚝 회전 때문에 마우스가 흔히 호 형태로 움직임
  - **인지 부하**: 체크박스를 본 뒤 클릭하기까지 측정 가능한 지연이 발생함
  - **손떨림**: 안정된 손에서도 생리적 손떨림 주파수에 따른 진동이 나타남
- 자동화는 직선 보간이나 수학적으로 이상적인 Bézier 곡선을 사용하고, 사람이 재현하기 어려운 정밀도로 클릭하는 경향이 있음
- 예시 자동화 라이브러리는 마우스를 완전한 직선으로 움직이고 항상 원점으로 돌아가며 같은 속도로 반응함
- 반면 사람은 같은 사이트에서도 불규칙한 경로, 작은 보정과 목표 지점 초과, 속도·타이밍·방향 변화를 보임
- 개별 상호작용은 그럴듯해도 세션 전체에서는 행동 패턴의 차이가 드러나며, Precursor는 상호작용이 이어지는 동안 이러한 **행동 서명**을 포착해 평가함

### 클라이언트 주입과 신호 수집
- Precursor를 활성화하면 Cloudflare 네트워크를 통과하는 사이트의 HTML 응답에 **경량 스크립트**가 자동으로 삽입됨
  - 추가 설정이나 별도 네트워크 연결, 제3자 임베딩이 필요하지 않음
  - 번들은 작고 난독화돼 있으며 응답마다 동적으로 조립됨
  - 호스팅된 웹 애플리케이션의 다른 페이지 로직을 방해하지 않도록 설계됨
- 스크립트는 가벼운 이벤트 리스너로 포인터 이동, 키보드 활동, 포커스 변화, 페이지 표시 상태를 포착함
  - 이벤트를 압축 형식으로 직렬화해 메모리에 버퍼링함
  - 버퍼에 쌓인 데이터는 정기적으로 평가 계층에 전송됨

### 엣지 평가와 교차 검증
- 엣지 서버는 들어온 Precursor 페이로드를 행동 입력으로 역직렬화하고, 디스패처를 통해 여러 **평가기(evaluator)** 를 실행함
- 각 평가기는 필요한 Precursor 스트림을 읽고 공유 탐지 레지스트리에 신호를 등록할 수 있음
- 단일 이벤트에 의존하지 않고 서로 다른 데이터를 교차 검증함
  - 포인터 활동이 페이지가 표시된 시간과 일치하는지 확인함
  - 텍스트 필드에 포커스가 있을 때만 키보드 이벤트가 발생하는지 살펴봄
- 연속해서 들어오는 정보는 개별 탐지 신호로 통합되고, 탐지 가중치를 계산하는 데 활용됨

### 세션 누적과 후속 탐지 계층
- Precursor 데이터는 **세션 범위**로 누적되므로, 봇이 페이지를 새로 고치거나 새로운 Challenge부터 다시 시작해도 행동 서명을 초기화할 수 없음
- 세션 메타데이터는 후속 탐지 계층에도 전달됨
  - 섀도 모드 휴리스틱과 세션 분석
  - 예상 완료와 실제 완료의 비교
  - 세션 delinquency 휴리스틱
- 엣지에서 관찰한 정보는 탐지 개선을 위해 기록되며, 세션의 [봇 점수](https://developers.cloudflare.com/bots/concepts/bot-score/)를 조정하는 데 사용됨

### 개인정보 보호 설계
- 이벤트 리스너는 사람의 패턴과 자동화·악용 패턴을 구분하는 데 필요한 **최소한의 정보**만 수집함
  - 키보드 활동에서는 실제 누른 키가 아니라 타이밍과 리듬만 포착함
  - 개별 행동보다 집계된 행동 패턴을 평가함
- 행동 신호는 Cloudflare의 봇 탐지 시스템 내부에서만 사용됨
  - 고객 대시보드에 직접 노출되지 않음
  - 사용자 계정, 로그인 신원, 영구 프로필과 연결되지 않음
- 이를 통해 정상 사용자에게 가해지는 마찰을 줄이면서 행동 평가를 지속해서 갱신함

### 세션 기반 Security Analytics
- Security Analytics에는 개별 요청이 아닌 전체 방문자 여정을 보여주는 **세션 기반 보기**가 추가됨
- 대시보드에서 다음 질문을 조사할 수 있음
  1. 사이트의 일반적인 세션은 어떤 모습인가
  2. 예상 행동에서 벗어나는 지점은 어디인가
  3. 시간의 흐름에 따라 자동화 징후를 보이는 세션은 무엇인가
- 요청 단위 분석으로는 포착하기 어려웠던 **요청 사이의 행동**도 분석 대상이 됨
- Precursor 데이터는 기존 봇 점수, Challenge 판단, 보안 규칙으로 직접 전달되므로 추가된 세션 맥락을 기존 방어 체계에서 바로 활용할 수 있음

### 향후 확장과 활성화 방법
- Precursor는 전체 애플리케이션으로 봇 탐지를 확장하기 위한 기반이며, Cloudflare는 다음 영역을 계속 확대할 계획임
  - 보안에 활용하는 행동 신호의 범위와 깊이
  - 세션 수준 정보가 봇 관리 보호에 미치는 방식
  - 세션 데이터를 시각화하고 조치하는 새로운 방법
- 봇이 발전할수록 탐지도 고립된 검증 지점에서 벗어나 **전체 사용자 활동 흐름**을 다뤄야 함
- 현재 Cloudflare 대시보드에서 영역별로 [Precursor를 활성화](https://dash.cloudflare.com/?to=/:account/:zone/security/settings)할 수 있으며, 올해 말 GA 출시 전까지 무료로 제공됨
- 세션 검증 강도는 두 가지 방식으로 선택 가능함
  - 마찰이 낮은 모드에서는 백그라운드에서 행동을 관찰함
  - 완전히 검증된 세션이 필요하면 기존 세션이 없을 때 Challenge를 강제함
- 활성화 즉시 기존 봇 방어가 강화되며 애플리케이션 변경은 필요하지 않음
- Bot Management나 Turnstile을 이미 사용한다면 기존 Challenge 지점을 넘어 나머지 세션과 보호 지점 사이의 활동까지 탐지 범위가 확장됨

## Comments



### Comment 61799

- Author: neo
- Created: 2026-07-15T00:36:35+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48893446) 
- Cloudflare가 차단과 허용 양쪽에서 **봇의 판정자**로 자리 잡는 모습은 우려스러우며, 인터넷 전체에도 건강하지 않아 보임
  - 반대로 보면 Cloudflare는 **유료 크롤링(pay for crawl)** 의 길을 닦고 있으며, 이는 고귀하고 야심 찬 목표라고 생각함  
    거의 20년간 광고보다 나은 콘텐츠 제작자 보상 수단이 필요하다고 lament해 왔는데, 이것이 그 답이 될 수 있음  
    Anthropic과 OpenAI가 도용한 콘텐츠 위에 세워졌다는 비판도 계속돼 왔으므로, 이 현실을 외면하면서 양쪽 모두를 바랄 수는 없음
  - 경쟁 서비스를 만드는 일은 **Cloudflare의 경쟁사들**에게 달려 있음
  - Cloudflare는 자사가 운영하는 서비스에 선택적으로 켤 수 있는 **보호 계층**을 제공할 뿐임  
    제공 범위가 너무 넓다는 것인지, 비슷한 서비스를 아무도 제공하지 않는다고 보는 것인지 이런 포괄적인 비판만으로는 이해하기 어려움
  - 평범한 사업 활동일 뿐이며, 소비자가 **지갑으로 투표**해야 함

- Cloudflare가 에이전트 제품을 판매하면서 동시에 웹의 **에이전트 사용을 차단**하는 듯한 서비스를 내놓는 건 다소 묘하게 느껴짐  
  마우스 경로 외에도 훨씬 많은 신호를 쓰겠지만, 터치스크린이나 ThinkPad 트랙포인트 같은 비전통적 입력 장치에서는 이미 판별이 까다로울 수 있음  
  접근성 마우스 도구 사용자를 봇으로 오인하면 심각하지만, 이를 예외 처리하면 에이전트 브라우징의 우회로가 될 수도 있음  
  그래도 에이전트 봇의 남용과 스팸을 줄인다는 점에서는 거의 확실히 좋은 방향임
  - **좋은 봇과 나쁜 봇**을 구분하면 덜 이상함  
    좋은 봇이 쓸 서비스를 제공하면서 나쁜 봇은 차단하도록 도울 수 있음  
    봇이 마우스 움직임을 어설프게 흉내 낸다면 강력한 이상 신호가 되며, 좋은 봇이라면 `robots.txt`를 따르고 봇이라는 사실을 숨기지 않을 것임
  - 상점에 **보호비를 파는 조직폭력배**와 조금 비슷하게 느껴짐

- 6년 전 hCaptcha에서 이 모든 기능을 구현했음  
  사람과 봇을 구분하는 데 그치지 않고, 같은 사람이 여러 계정을 만들거나 여러 신용카드를 시험할 때 나타나는 **키보드·마우스 행동**까지 식별했음  
  Cloudflare가 2020년 hCaptcha로 전환했을 때 이런 악용 탐지가 포함됐고, 2022년 hCaptcha를 떠날 때는 이미 자체 구현한 줄 알았음
  - reCAPTCHA v3도 비슷하지 않았나 싶음. **백그라운드에서 조용히 감시**한다는 것이 주요 홍보 포인트였던 것으로 기억함

- 페이지에서 접근성을 검색해도 결과가 없으니, 이런 **마우스 움직임 점성술**이 시각장애인과 키보드 전용 사용자를 인터넷의 상당 부분에서 완전히 배제할 것 같음
  - 시각장애인과 키보드 전용 사용자는 익명 인터넷에서 배제될 가능성이 큼  
    로그인해서 **익명성을 포기**하면 봇이 아니라고 간주할 것 같음
  - 마우스 움직임은 적절한 가중치를 받는 여러 신호 중 하나일 것으로 보이지만, 실제 해당 사용자들의 피드백을 확인하고 싶음
  - Cloudflare는 이미 허용 목록에 없는 서구권 밖 사용자에게 오토바이 식별을 몇 분씩 강요하므로, 소수의 **시각장애인 접근성**을 크게 걱정할 것 같지 않음
  - 문서에는 “Mouse movement is just one example of the signals Precursor evaluates”라고 세 번 나옴. 즉 **마우스 움직임은 여러 신호 중 하나**임
  - 스마트폰 중심으로 서비스를 설계하면서 스마트폰이 없는 고령자와 장애인을 배제한 것과 같음  
    일부 지역에서는 스마트폰 없이는 항공편 체크인조차 못 해 **여행 자체가 불가능**하지만, 대부분 이를 당연하게 받아들임

- **에이전트 탐지**는 새롭게 형성되는 분야이며 앞으로 훨씬 중요해질 것임  
  관련 제품으로 Foil([https://usefoil.com/](<https://usefoil.com/>)), Kasada [https://www.kasada.io/](<https://www.kasada.io/>), DataDome([https://datadome.co/](<https://datadome.co/>)), Castle([https://castle.io/](<https://castle.io/>)), Fingerprint([https://fingerprint.com/](<https://fingerprint.com/>)), HUMAN([http://humansecurity.com/](<http://humansecurity.com/>)), 사실상 reCAPTCHA의 후속인 Google Cloud Fraud Defense([https://cloud.google.com/security/products/fraud-defense?hl=...](<https://cloud.google.com/security/products/fraud-defense?hl=en>)), Cloudflare Precursor가 있음  
  현재 주요 용도는 자동화된 크리덴셜 스터핑, 가짜 계정과 무료 체험 악용 및 그에 따른 Twilio SMS 비용, 결제 사기, LLM 스크래핑, 티켓·운동화 자동 매점매석 방지임  
  어떤 용도가 기업 수요를 주도할지 궁금하며, 에이전트를 무조건 차단하지 않고 탐지 후 **에이전트 전용 경로**로 보내 사용자를 대신해 웹을 탐색하고 작업할 수 있기를 바람
  - 봇 차단을 무력화하는 제품으로 [https://brightdata.com/](<https://brightdata.com/>), [https://www.zenrows.com/](<https://www.zenrows.com/>), [https://www.capsolver.com/](<https://www.capsolver.com/>), [https://scrapfly.io/](<https://scrapfly.io/>)도 있음  
    수억 개의 가정용 IP, 사람과 유사한 브라우저 지문, 커스텀 브라우저 바이너리를 제공하며 Turnstile, reCAPTCHA v3, Kasada, DataDome, AWS WAF 등이 등장하면 자동으로 우회함
  - Darwinium(darwinium.com)도 비슷한 제품임  
    **프로파일링과 단계 전환 확률**을 결합해, 지불 거절 위험이 있는 결제 같은 디지털 자산의 특정 영역만 에이전트에게 추가 인증을 요구하거나 차단할 수 있게 함  
    현재 Precursor는 같은 사이트에서 여러 문서를 가져가는 스크래핑 탐지에 더 집중하는 듯함

- 봇이나 에이전트가 사람의 커서 움직임을 흉내 내는 **미세한 흔들림**을 추가하면 무엇으로 막을 수 있는지 궁금함  
  다른 신호도 쓰겠지만, 이 신호만큼은 봇이 조금만 정교해져도 쉽게 우회할 수 있어 보임
  - 이를 우회하려면 약간이 아니라 상당한 정교함이 필요함  
    기본적인 기계학습 군집화만으로도 봇의 마우스·키보드·터치 행동을 사람과 구분할 수 있지만, 시선 추적 같은 보조 기능을 쓰는 장애인도 차별할 가능성이 큼  
    한 손만 사용하는 사람의 행동은 전형적인 사용자와 크게 다를 수 있으며, 현재 미국에서는 California·Illinois·NY 외 지역에서 ADA 집행도 미약함  
    Cloudflare처럼 영향력이 큰 기업은 장애인이 이런 **행동 분석**의 피해를 보지 않도록 보수적으로 필터링해야 함  
    “봇일 가능성 점수만 제공하며 임계값은 각 웹사이트가 정한다”고 책임을 넘긴 뒤, 장애인 차단은 사이트가 임계값을 너무 엄격하게 정한 탓이라고 해서는 안 됨  
    이 규모에서는 결정의 2차·3차 효과까지 책임져야 함  
    이 데이터는 봇뿐 아니라 성별, 주손, 대략적인 나이, 키 입력 패턴에 따른 모국어, 부상과 회복 과정, 정신·신체 장애까지 구분할 수 있음  
    사이트 탐색 방식으로 ADHD, 조현병, Parkinson병, 약물 사용과 치료 효과까지 추정할 수 있으므로, 이 모든 신호에서 전형적인 사람과 같은 군집에 들도록 흉내 내기는 매우 어려움
  - 단순한 무작위 흔들림이 아니라 **사람의 커서 움직임을 닮은 흔들림**을 합성해야 하므로 대단히 어려움
  - 2027년에는 흔들림 생성, 사전 계획, 사후 검증, Cloudflare의 역흔들림 대응에 얼마나 많은 토큰을 쓰게 될지 궁금함
  - CAPTCHA를 실패시키려고 일부러 흔들림 판별을 이겨 보려 하지만, 한 번도 성공하지 못했는데 계속 시도하게 됨
  - 기술적으로 막는 것은 없지만 Cloudflare가 훨씬 많은 실제 흔들림 데이터를 보유했으므로 시작부터 불리함  
    단기적으로 통할 수 있어도 시간이 지나면 뚜렷한 패턴이 드러나며, 특정 사이트와 레이아웃별 흔들림 데이터도 다양해서 **인위적 모방**을 쉽게 잡아낼 수 있음

- 같은 사용자도 입력 장치에 따라 움직임이 달라짐  
  업무용 PC에서는 마우스, 개인 노트북에서는 터치패드, 업무용 노트북에서는 ThinkPad 트랙포인트를 사용하므로 한 사람에게 **세 가지 행동 프로필**이 생김  
  AI의 움직임과는 다르겠지만 마우스 움직임 지문이 또 하나의 관문이 된다면 흥미로운 이상치가 많이 나타날 수 있음

- Cloudflare는 인터넷을 보호하는 척하지 말아야 함  
  [https://developers.cloudflare.com/browser-run/quick-actions/...](<https://developers.cloudflare.com/browser-run/quick-actions/scrape-endpoint/>)  
  이 회사는 **담배를 팔면서 병원도 짓는 기업**과 같음

- Cloudflare가 내 손목 상태 데이터를 보험사에 파는 날이 기대됨. 우리가 스스로 만든 **감시 지옥**이 참 훌륭함

- 최근 Cloudflare의 **오탐** 때문에 세션에서 로딩만 계속되고 실제 페이지로 넘어가지 않는 일이 자주 생김  
  계속 감으로 코딩한 새 해결책을 매일 출시한다면 서비스 품질에도 악영향이 갈까 우려됨
  - 사용자 에이전트, IP 주소, 브라우저 확장 프로그램 중 하나가 원인일 수 있음
  - 지역 ISP 광회선을 쓸 때보다 **Starlink**에서 훨씬 자주 차단 대상으로 판정됨
