cloudflare-turnstile

2 개의 포스트

cloudflare

Precursor 소개: 지속적인 클라이언트 측 신호를 통한 에이전트형 행동 탐지 (새 탭에서 열림)

Cloudflare의 Precursor는 개별 요청이나 챌린지 결과가 아니라 웹사이트 전체 세션에서 나타나는 행동 패턴을 지속적으로 분석해 인간과 봇·에이전트 트래픽을 구분하는 클라이언트 측 검증 시스템이다. Turnstile이 로그인·가입·결제 같은 특정 시점의 검증을 담당한다면, Precursor는 사용자 여정 전반의 신호를 수집해 탐지 정확도를 높이고 불필요한 챌린지를 줄인다. 봇이 실제 브라우저와 JavaScript를 사용하더라도 장시간 일관된 인간 행동을 모방하기는 어렵다는 점이 핵심이다. ### 기존 봇 탐지의 가시성 한계 - Cloudflare는 하루 1조 건이 넘는 요청과 인터넷의 20% 이상에서 얻은 네트워크 신호를 활용한다. - Turnstile은 CAPTCHA 대체 수단에서 위험 기반 관리형 챌린지로 발전했으며, 하루 약 30억 회 실행된다. - 하지만 로그인, 가입, 결제처럼 중요한 순간에만 검증하면 애플리케이션 전체 여정에서 사용자가 어떻게 행동했는지는 충분히 파악하기 어렵다. - Precursor는 이 공백을 메우기 위해 세션 전체의 상호작용을 지속적으로 관찰한다. ### Precursor의 역할 - 동적으로 삽입되는 JavaScript가 방문자의 행동 신호를 수집한다. - 수집된 신호는 실시간으로 Cloudflare의 봇 방어 시스템에 반영된다. - Turnstile을 대체하는 기능이 아니라, Enterprise Bot Management에서 선택적으로 함께 사용하는 보완 기능이다. - 짧은 시간 동안 정상적으로 보이는 자동화도 세션 전체의 일관된 행동 패턴에서는 이상 징후를 드러낼 수 있다. - 공격자는 전체 세션을 인간처럼 시뮬레이션해야 하므로 자동화 개발·유지·대규모 운영 비용이 증가한다. - 정상 사용자는 공격적인 챌린지를 덜 받으면서도 보호 수준을 유지할 수 있다. ### 인간 행동과 봇 행동의 차이 - 인간의 마우스 움직임은 단순한 무작위 노이즈가 아니라 물리적·인지적 제약을 따른다. - 손목과 팔의 회전 범위 때문에 움직임이 일정한 곡선이나 호 형태를 보인다. - 화면의 요소를 인지한 뒤 클릭하기까지 인지 처리 시간이 발생한다. - 손 떨림으로 인해 미세한 생리학적 진동이 나타난다. - 봇은 다음과 같은 패턴을 보이기 쉽다. - 두 지점 사이를 직선으로 이동한다. - 수학적으로 이상적인 베지어 곡선을 따른다. - 지나치게 정확하게 클릭한다. - 동일한 속도와 리듬으로 반복한다. - 마우스를 항상 원점으로 되돌리는 등 기계적인 동작을 보인다. - 개별 동작 하나만 보면 정상처럼 보일 수 있지만, 세션 전체에서 이동 경로·속도·대기 시간·수정 동작의 반복을 관찰하면 인간과 자동화의 차이가 커진다. - 마우스 이동 외에도 키보드 활동, 포커스 변화, 페이지 가시성 등이 함께 분석된다. ### 데이터 수집 및 전송 - Precursor가 활성화되면 Cloudflare가 네트워크를 통과하는 HTML 응답에 경량 스크립트를 자동 삽입한다. - 별도의 네트워크 설정이나 외부 임베드가 필요 없다. - 스크립트는 응답마다 동적으로 조립되고 난독화되며, 기존 애플리케이션 로직에 영향을 주지 않도록 설계된다. - 다음과 같은 이벤트를 수집한다. - 포인터 이동 - 키보드 활동 - 입력 요소의 포커스 변화 - 페이지 가시성 변화 - 이벤트는 압축된 형식으로 직렬화되어 메모리에 임시 저장된다. - 일정 간격으로 버퍼의 데이터가 평가 계층으로 전송된다. ### 엣지 기반 행동 평가 - Cloudflare 엣지 서버는 수신한 Precursor 데이터를 역직렬화해 행동 입력으로 변환한다. - 여러 평가기(evaluator)가 각자 필요한 데이터 스트림을 분석하고 탐지 레지스트리에 신호를 추가한다. - 평가기는 단일 이벤트보다 서로 다른 신호 간의 상관관계를 확인한다. - 포인터 활동이 실제 페이지 가시 시간과 일치하는지 검사한다. - 키보드 입력이 텍스트 필드 포커스 상태에서 발생했는지 확인한다. - 개별 평가 결과는 통합된 탐지 신호로 변환되어 세션의 봇 점수와 판정에 반영된다. ### 세션 단위 분석 - Precursor 데이터는 요청 단위가 아니라 세션 범위에서 누적된다. - 페이지를 새로고침하거나 새로운 챌린지를 시작해도 기존 행동 서명을 쉽게 초기화할 수 없다. - 세션 메타데이터는 다음과 같은 후속 분석에도 사용된다. - 섀도 모드 휴리스틱 - 세션 분석 - 예측된 완료 상태와 실제 완료 상태의 비교 - 세션 비정상 종료(delinqency) 관련 휴리스틱 - 엣지에서 관찰된 정보는 탐지 개선과 세션 봇 점수 조정에 활용된다. - Cloudflare는 요청별 분석에서 방문자 전체 여정을 보는 방식으로 확장하기 위해 Security Analytics에 세션 기반 뷰를 도입한다. ### 개인정보 보호 설계 - 자동화와 악성 행위를 식별하는 데 필요한 최소한의 신호만 수집한다. - 키보드 활동은 실제 입력한 키가 아니라 입력 시점의 타이밍과 리듬으로 기록된다. - 개별 행동 자체보다 여러 행동의 집계된 패턴을 평가한다. - 수집된 행동 신호는 Cloudflare 내부 봇 탐지 시스템에서 사용된다. - 고객 대시보드에 노출되지 않으며, 사용자 계정·로그인 신원·영구 프로필과 연결되지 않는다. ### 실용적인 결론 Precursor는 CAPTCHA를 더 복잡하게 만드는 접근보다, 사용자 세션 전체에서 축적되는 행동 일관성을 탐지 신호로 활용하는 방식이다. 봇 방어가 필요한 서비스는 Turnstile로 중요한 순간을 보호하면서 Precursor로 전체 여정을 분석하면, 정상 사용자에 대한 마찰을 줄이고 장기적으로 정교한 자동화 공격의 비용과 불안정성을 높일 수 있다.

cloudflare

인터넷에서 가장 많이 본 (새 탭에서 열림)

클라우드플레어는 매일 76억 회 이상 노출되는 인터넷의 대표적 UI인 '턴스타일(Turnstile)'과 '챌린지 페이지'를 사용자 중심으로 전면 개편했습니다. 인공지능 발전에 따른 보안 위협 증가로 보안 확인 횟수가 급증함에 따라, 사용자 좌절감을 줄이고 전 세계 수십억 명에게 일관된 경험을 제공하기 위해 정보 아키텍처를 표준화하고 기술적 복잡성을 직관적인 디자인으로 통합했습니다. ## 기존 UI의 문제점과 리디자인의 필요성 - **보안 인증의 급격한 증가**: 봇 공격이 정교해지면서 보안 확인 횟수가 연평균 58.1%씩 증가하여 2025년 기준 일일 53.5억 건에 달하게 되었고, 이는 사용자 피로도 증가로 이어졌습니다. - **불일치하는 사용자 경험**: 기존 UI는 에러 메시지가 지나치게 기술적이거나 모호했으며, 위젯과 풀페이지(Challenge Page) 간의 레이아웃과 시각 언어가 통일되지 않아 사용자가 상황을 파악하기 어려웠습니다. - **불분명한 피드백 루프**: 사용자가 불만을 표출하거나 오류를 보고하는 피드백 옵션이 모호하게 설계되어, 실제 문제 해결에 필요한 유의미한 데이터를 수집하는 데 한계가 있었습니다. ## 디자인 감사 및 사용자 여정 분석 - **포괄적 상태 점검**: 모든 에러 시나리오와 상호작용 상태를 전수 조사하여 기술적 복잡함과 사용자 편의성 사이의 간극을 확인했습니다. - **엣지 케이스의 일반화**: 수십억 명이 사용하는 도구인 만큼, 극소수의 예외 상황도 실제로는 수만 명에게 영향을 미치는 주요 케이스로 간주하고 모든 문화권과 기술 숙련도를 포용하도록 설계했습니다. - **감정 기반 여정 지도**: 사용자가 보안 확인을 만나는 순간부터 에러 발생, 최종 통과에 이르기까지의 감정 변화를 추적하여 가장 좌절감이 큰 지점을 개선 포인트로 잡았습니다. ## 통합 정보 아키텍처 구축 - **"생각하게 하지 마(Don't Make Me Think)" 원칙**: 사용자가 인터페이스를 해석하거나 고민할 필요가 없도록 시각적 계층 구조를 완전히 단순화했습니다. - **구조적 통일성**: 소형 위젯인 턴스타일과 전체 화면인 챌린지 페이지에 동일한 구조적 패턴을 적용하여, 버튼 위치나 설명 텍스트, 도움말 링크의 배치를 표준화했습니다. - **창의성보다 일관성**: 개별적인 디자인 창의성보다는 엄격한 프레임워크를 우선시하여, 사용자가 어떤 기기나 환경에서도 익숙하게 보안 인증을 마칠 수 있도록 제약 조건을 설계에 반영했습니다. 보안 인증과 같은 필수적인 마찰 구간에서는 기술적 완벽함만큼이나 사용자의 인지 부하를 줄이는 디자인 표준화가 중요합니다. 대규모 서비스를 운영한다면 모든 사용자가 직관적으로 이해할 수 있도록 정보 아키텍처를 통일하고, 에러 메시지에서 기술적 전문용어를 배제하여 명확한 가이드를 제공하는 것이 사용자 이탈을 막는 핵심 전략이 될 것입니다.