전체 글

봇 탐지는 행동 분석으로 진화했다. 대부분의 스크래퍼는 제자리에 머물러 있다.

봇 탐지가 IP 차단에서 TLS 지문, 브라우저 신호, 행동 분석으로 전환되었다. 대부분의 스크래핑 환경은 잘못된 대상과 싸우고 있다.

지난 1월, 1,600만 건의 request가 IP 차단의 종말을 증명했다

2026년 1월, 한 대형 이커머스 플랫폼이 암표 거래(scalping) 공격을 받았다. 390만 개의 고유 IP 주소에 걸쳐 1,600만 건의 request가 분산되어 유입되었다. IP별 rate limit으로는 이를 막을 수 없었다. 이 공격이 성공한 것은 정교한 코드 때문이 아니었다. 엄청난 수의 IP로 인해 기존의 탐지 방식이 무력화되었기 때문이다 (SecurityBoulevard, March 2026).

이 사건은 안티봇 업계가 오랫동안 주장해 온 사실을 증명했다. IP 평판만으로는 인간과 봇을 구분할 수 없다는 점이다. 방어자가 진화했다면, 스크래퍼도 진화해야 한다.

IP 차단을 대체한 3가지 레이어

현대의 봇 탐지는 3가지 레이어에서 작동한다. 오직 첫 번째 레이어만 IP와 관련이 있다.

네트워크 핑거프린팅. request가 서버에 도달하기 전에, TLS "Client Hello" 패킷이 request를 생성하는 HTTP 라이브러리를 식별하는 시그니처(JA3 또는 JA4로 알려짐)를 생성한다. Python의 requests 라이브러리, Go의 기본 클라이언트, Node.js의 fetch 등은 각각 고유한 핑거프린트를 생성한다. 안티봇 시스템은 단 하나의 header를 읽기도 전에 이를 확인한다. TLS 시그니처가 실제 브라우저와 일치하지 않으면 연결 단계에서 차단된다 (Reddit r/programming).

브라우저 핑거프린팅. 이제 사이트들은 브라우저 환경에서 300개 이상의 신호를 확인한다. Canvas 렌더링, WebGL 출력, 오디오 컨텍스트, 설치된 폰트, 화면 해상도, 시간대, GPU 정보 등이 이에 해당한다. User-Agent 문자열은 이 수많은 신호 중 가장 중요도가 낮은 신호에 불과하다. Cloudflare, Akamai, DataDome은 페이지가 로드되기 전에 실행되는 JavaScript 챌린지를 통해 이러한 신호들을 수동적으로 수집한다 (ScrapingBee, 2026).

행동 분석. 이는 가장 최근에 도입된 레이어이며 우회하기가 가장 어렵다. 안티봇 시스템은 이제 마우스 움직임, 스크롤 속도, 클릭 패턴, 타이핑 리듬, 상호작용 간의 타이밍을 추적한다. 실제 인간은 마우스를 완벽한 직선으로 움직이지 않는다. 멈칫하거나, 버튼을 지나치거나, 불규칙하게 스크롤한다. 봇은 이런 행동을 전혀 하지 않거나, 혹은 너무 완벽하게 수행한다 (r/webdev, 2026).

대부분의 스크래핑 팀은 잘못된 대상과 싸우고 있다

불편한 진실은 대부분의 스크래핑 팀이 여전히 IP 인프라에 주로 투자하고 있다는 점이다. 더 큰 proxy 풀, 주거용 IP, 로테이팅 게이트웨이 등이 대표적이다. 물론 이러한 투자가 무의미한 것은 아니다. IP 평판은 여전히 수많은 신호 중 하나로서 중요하다.

하지만 TLS 핑거프린트가 "Python 스크립트"라고 외치고 있거나, headless 브라우저가 navigator.webdriver를 통해 자동화 플래그를 노출하고 있다면 주거용 IP를 10,000개 구매해도 도움이 되지 않는다. 잘못된 레이어에 돈을 쓰고 있는 것이다.

34개의 프로덕션 스크래퍼를 구축한 한 개발자가 이 문제에 대해 기고했다 (Dev|Journal, March 2026). 튜토리얼 수준의 스크래핑과 실제 프로덕션에서 작동하는 스크래핑의 차이는 DOM 셀렉터가 아니라 TLS 핑거프린트와 마우스 움직임을 분석하는 안티봇 시스템에 의해 결정된다는 것이다. 튜토리얼은 HTML 파싱을 가르치지만, 프로덕션은 탐지로부터 살아남는 법을 가르친다.

상황은 더 악화되고 있다. Browserless의 State of Web Scraping 2026 보고서에 따르면, 안티봇 시스템이 headless Chrome과 일반 Chrome 간의 구체적인 핑거프린트 차이를 분류해 두었기 때문에 표준 headless 브라우저가 실제 브라우저보다 더 자주 차단되는 것으로 나타났다. 그 격차는 줄어들지 않고 있다.

만약 스크래퍼가 계속 작동을 멈추는데 오직 proxy 로테이션만 살펴보고 있다면, 완전히 잘못된 부분을 고치고 있는 것일 수 있다.

Cloudflare 변수

Cloudflare는 이러한 변화의 양면에 모두 걸쳐 있기 때문에 특별히 언급할 가치가 있다.

그들의 Bot Management 제품은 모든 request에 대해 행동 분석을 실행하며, 수십 가지 신호를 기반으로 방문자에게 1~99점의 점수를 부여한다. Turnstile(보이지 않는 CAPTCHA 대체 기술)은 방문자가 얼마나 인간처럼 보이는지에 따라 챌린지 난이도를 동적으로 조정한다 (Cloudflare docs).

동시에 Cloudflare는 자체 AI 크롤링 인프라를 출시했다. 커뮤니티는 이러한 아이러니를 주목했다 (Reddit r/cybersecurity).

이것이 실질적으로 의미하는 바는 다음과 같다. 2026년 현재 Cloudflare로 보호되는 사이트는 스크래핑하기가 가장 어려우며, 전체 웹사이트의 약 20%가 그들의 네트워크 뒤에 존재한다. 스크래핑 전략이 행동 탐지를 고려하지 않는다면, 접근 가능한 웹의 5분의 1을 잃게 되는 것이다.

2026년에 실제로 작동하는 방식

성공적인 스크래퍼들은 세 가지 특징을 공유한다.

첫째, 실제 브라우저의 TLS 핑거프린트와 일치시킨다. curl-impersonate 같은 도구는 Chrome이나 Firefox의 정확한 TLS 시그니처를 복제하여 탐지가 시작되기도 전에 이를 방지한다. header 스푸핑을 아무리 많이 하더라도 일치하지 않는 JA3 해시를 해결할 수는 없다.

둘째, 실제 브라우저 환경(또는 설득력 있게 실제와 유사한 환경)을 실행한다. 기본 설정의 headless Chrome이 아니다. 자신이 주장하는 User-Agent와 일치하는 일관된 핑거프린트를 가진 실제 브라우저 인스턴스를 사용한다.

셋째, 보호된 사이트의 경우 인간과 유사한 행동 노이즈를 추가한다. 무작위 지연만으로는 충분하지 않다. 작업 간의 타이밍은 현실적인 분포를 따라야 하며, 마우스 이동 경로는 자연스러워 보이는 곡선과 멈춤을 포함해야 한다.

따라서 아키텍처가 전환되었다. 더 많은 IP를 확보하는 것이 핵심이 아니다. 각 request를 Chrome을 사용하는 실제 사용자와 구별할 수 없게 만드는 것이 핵심이다.

탐지 군비 경쟁의 가속화

안티봇 벤더들은 고객사 네트워크 전반에 걸쳐 위협 인텔리전스를 실시간으로 공유하기 시작했다. 한 사이트에서 새로운 봇 패턴을 감지하면, 네트워크 내의 다른 모든 사이트가 몇 분 내에 이를 학습한다 (SecurityBoulevard, March 2026). 이는 각 사이트의 방어 체계가 독립적으로 작동하던 과거 모델에서의 근본적인 변화다.

우리는 이것이 자체 구축한 스크래핑 인프라의 비용이 계속해서 상승할 것임을 의미한다고 생각한다. 새로운 탐지 신호가 나타날 때마다 대응을 위한 엔지니어링 시간이 소요되며, 그 주기는 점점 빨라지고 있다. 인프라 수준에서 탐지 대응을 처리하는 팀(스마트 proxy 라우팅, 브라우저 핑거프린팅, TLS 매칭)이 문제 해결을 위해 단순히 IP만 계속 투입하는 팀보다 더 나은 성능을 발휘할 것이다.

질문해야 할 것은 proxy가 더 필요한가가 아니다. 여러분의 request가 대상 서버에 도달하기도 전에 인간처럼 보이는가이다.