ChatGPT, Cloudflare Turnstile로 봇을 잡다: 기술적 분석 공개!
ChatGPT는 Cloudflare Turnstile을 사용하여 봇(Bot)을 감지하며, 이는 브라우저 지문(Browser Fingerprint)을 넘어 React 애플리케이션 상태(Application State)까지 검증함
Turnstile은 55개의 속성을 수집하며, 브라우저, Cloudflare 네트워크, React 애플리케이션의 세 계층(Three Layers) 데이터를 활용함
분석 결과, Turnstile의 암호화는 단순 XOR 방식이며, 키(Key)가 코드 내에 포함되어 있어 보안 취약점을 드러냄
커뮤니티에서는 이러한 봇 감지 시스템이 데이터 미저장 정책(Zero-Retention Policy)과 모순된다는 비판과 함께, AI 업계의 위선(Hypocrisy)을 지적함
Cloudflare Turnstile의 3단계 봇 감지
ChatGPT의 Cloudflare Turnstile은 브라우저 지문(Browser Fingerprint) 외에도 React 애플리케이션 상태(Application State)를 검증하여 봇을 탐지한다. 구체적으로, 브라우저(Browser), Cloudflare 네트워크(Cloudflare Network), React 애플리케이션(React Application)의 세 계층에서 55개의 속성을 수집한다. 특히, __reactRouterContext, loaderData, clientBootstrap과 같은 React 내부 데이터를 활용하여 실제 애플리케이션 실행 여부를 확인한다. 이는 단순한 브라우저 흉내내기(Spoofing)를 넘어선 정교한 봇 감지 기술이다.
Turnstile의 암호화 방식과 보안 취약점
Turnstile은 2단계 암호화를 사용하지만, XOR 연산(XOR Operation)과 코드 내에 포함된 키(Key)로 인해 보안 취약점을 드러낸다. 첫 번째 단계는 p 토큰(p token)을 사용한 XOR이며, 두 번째 단계는 5개의 부동 소수점(Float) 리터럴을 키로 사용한다. 이러한 단순한 암호화 방식은 분석을 어렵게 만들 뿐, 근본적인 보안을 제공하지 못한다. 데이터 미저장 정책(Zero-Retention Policy)을 표방하는 ChatGPT가 이러한 봇 감지 시스템을 사용하는 것은 아이러니하다는 비판이 제기된다.
Turnstile의 기술적 구성 요소
Turnstile은 28개의 연산 코드(Opcode)를 가진 커스텀 VM(Custom VM)을 사용하며, 55개의 속성을 수집한다. 수집되는 속성은 WebGL, 화면 정보, 하드웨어 정보, 폰트 측정, DOM 프로빙, 스토리지(Storage) 등이다. 또한, Signal Orchestrator는 키 입력, 마우스 움직임, 스크롤 패턴 등을 모니터링하며, Proof of Work(PoW)는 봇의 컴퓨팅 자원 사용을 요구한다. 이러한 다양한 기술을 통해 봇을 탐지하려는 시도가 이루어진다.
커뮤니티의 비판과 AI 업계의 위선
커뮤니티에서는 ChatGPT의 봇 감지 시스템이 데이터 미저장 정책(Zero-Retention Policy)과 모순된다는 비판이 제기된다. 또한, AI 업계가 봇 감지를 위해 복잡한 기술을 사용하는 것에 대한 비판도 존재한다. 특히, PoW(Proof of Work)를 통해 컴퓨팅 자원을 요구하는 방식은 AI 업계의 위선을 보여주는 사례로 언급된다. 이러한 비판은 AI 기술의 윤리적 측면과 투명성에 대한 중요성을 강조한다.