~/blog/bypassing-anti-bot-protection-guide

안티봇 방어 시스템 이해하기: 2026년 실전에서 통하는 방법

anti-botcloudflareakamaiweb-scrapingreverse-engineering

안티봇 방어는 군비 경쟁과도 같습니다. 이런 시스템을 매일 우회하는 프로덕션 스크래퍼를 만드는 실무자로서, 방어 시스템이 실제로 무엇을 검사하고 합법적인 우회 기법은 어떤 모습인지 현장의 시각에서 정리해봤습니다.

탐지 레이어

최신 안티봇 시스템은 여러 레이어로 동작합니다. 이 레이어들을 이해하는 것이 안정적인 우회의 핵심입니다:

레이어 1: IP 평판

가장 단순한 검사입니다. 안티봇 서비스는 알려진 데이터센터 IP 대역, VPN 종료 노드, 그리고 이전에 플래그가 지정된 IP의 데이터베이스를 유지합니다.

검사 항목:

  • 이 IP가 AWS, GCP, Azure 또는 알려진 호스팅 제공업체에서 나온 것인가?
  • 이 IP가 이전에 봇 활동으로 플래그된 적이 있는가?
  • 최근 이 IP에서 얼마나 많은 요청이 발생했는가?

대응 방법: Apify Proxy나 Bright Data 같은 서비스의 레지덴셜 프록시는 실제 ISP 소속 IP 주소를 제공하므로, IP 수준에서는 일반 사용자와 구분이 불가능합니다.

레이어 2: TLS 핑거프린팅

여기서부터 흥미로워집니다. 모든 HTTP 클라이언트는 다음 요소를 기반으로 한 고유한 TLS 핸드셰이크 시그니처를 가집니다:

  • 지원하는 암호 스위트와 그 순서
  • TLS 확장과 그 순서
  • 지원하는 TLS 버전
  • ALPN 프로토콜

표준 axiosrequests 라이브러리는 실제 브라우저와 일치하지 않는 TLS 핑거프린트를 가지므로 누가 봐도 “봇"임을 드러냅니다. Akamai와 Cloudflare 같은 서비스는 모든 브라우저 버전에 대한 핑거프린트 데이터베이스를 유지합니다.

대응 방법: (제 Shopify 스크래퍼가 사용하는) got-scraping 같은 라이브러리와 전용 TLS 클라이언트는 브라우저급 TLS 핑거프린트를 모방할 수 있습니다. 제 Sephora EU 스크래퍼는 브라우저급 TLS 핑거프린팅으로 Akamai WAF를 우회합니다.

레이어 3: HTTP/2 핑거프린팅

TLS를 넘어, HTTP/2 설정도 클라이언트 유형을 드러냅니다:

  • SETTINGS 프레임 파라미터(헤더 테이블 크기, 최대 동시 스트림 수)
  • WINDOW_UPDATE 프레임 값
  • 우선순위 트리 구조
  • 헤더 압축(HPACK) 패턴

각 브라우저는 고유한 HTTP/2 설정을 가지고 있습니다. Chrome, Firefox, Safari는 이 수준에서 모두 다르게 보입니다.

레이어 4: JavaScript 챌린지

Cloudflare의 “브라우저 확인 중” 페이지와 유사한 챌린지들은 다음과 같은 작업을 수행하는 JavaScript를 실행합니다:

  • 브라우저 API 확인(canvas, WebGL, AudioContext)
  • 실행 타이밍 측정
  • DOM 속성 검증
  • 챌린지 응답을 서버로 전송

대응 방법: 헤드리스 브라우저(Playwright, Puppeteer)는 이런 챌린지를 네이티브로 실행합니다. 핵심은 헤드리스 브라우저가 자동화 신호를 노출하지 않도록 하는 것입니다(자세한 내용은 아래에서 다룹니다).

레이어 5: 행동 분석

가장 정교한 레이어입니다. 이 시스템들은 다음을 분석합니다:

  • 마우스 움직임 패턴(너무 직선적이면 = 봇)
  • 스크롤 행동(맨 아래로 즉시 스크롤 = 봇)
  • 행동 간 시간 간격(너무 일정하면 = 봇)
  • 탐색 패턴(둘러보지 않고 곧바로 상품 페이지로 이동 = 의심스러움)
  • 요청 주기(완벽하게 균일한 간격 = 봇)

방어 시스템 프로파일: 상대를 파악하라

Cloudflare

주로 사용되는 곳: 중소규모 사이트, 블로그, API

Cloudflare는 여러 단계의 방어 수준을 제공합니다:

  • Basic — IP 평판 + 레이트 리밋. 요청 속도를 지키는 데이터센터 프록시로 대개 충분합니다.
  • Managed Challenge — JavaScript 챌린지 + Turnstile. 브라우저나 챌린지 솔버가 필요합니다.
  • Enterprise/Bot Management — 전면적인 행동 분석 + 핑거프린팅. 레지덴셜 프록시와 정교한 핑거프린팅이 필요합니다.

Akamai Bot Manager

주로 사용되는 곳: 대형 이커머스(Sephora EU, 주요 리테일러)

Akamai는 다음과 같은 이유로 우회하기 가장 까다로운 시스템 중 하나입니다:

  • 공격적인 TLS 핑거프린팅
  • 클라이언트 측 JavaScript를 통한 센서 데이터 수집
  • 세션 단위 행동 분석
  • 쿠키 무결성 검증

Akamai에 대한 제 접근법: 브라우저급 TLS 핑거프린팅 + 게스트 토큰 관리 + 사람의 브라우징을 모방하는 요청 페이싱입니다.

Datadome

주로 사용되는 곳: 이커머스, 티켓 판매

Datadome은 다음에 집중합니다:

  • JavaScript를 통한 디바이스 핑거프린팅
  • 의심스러운 트래픽에 대한 CAPTCHA 챌린지
  • 실시간 행동 스코어링

PerimeterX(현 HUMAN)

주로 사용되는 곳: 리테일, 금융 서비스

공격적인 JavaScript 챌린지와 행동 분석으로 잘 알려져 있습니다.

합법적 우회 아키텍처

안정적이고 지속적인 데이터 추출이 필요한 프로덕션 시스템을 위해, 제가 사용하는 아키텍처 패턴을 소개합니다:

1. API 우선 접근

방어 시스템을 우회하려 시도하기 전에, WAF를 아예 거치지 않는 API 경로가 있는지 먼저 확인하세요. 많은 방어 시스템은 API 라우트가 아니라 브라우저를 대상으로 하는 엔드포인트에만 적용됩니다.

Sephora 스크래퍼는 모든 웹 URL을 API 호출로 변환합니다. 이 API 엔드포인트는 모바일 앱을 위해 설계되었기 때문에 웹사이트보다 방어 수준이 약합니다.

2. 세션 워밍

데이터 페이지로 곧장 이동하지 마세요. 현실적인 브라우징 세션을 구축하세요:

1Visit homepage → Browse categories → View product listing → Access product detail

각 단계가 세션의 신뢰도를 쌓아갑니다. 안티봇 시스템은 실제 사용자 행동과 일치하는 패턴을 보게 됩니다.

3. 핑거프린트 일관성

이 부분이 중요합니다: 핑거프린트는 내부적으로 일관되어야 합니다. TLS는 “Chrome 120"을 가리키는데 User-Agent는 “Chrome 118"을 가리킨다면, 이는 탐지 신호가 됩니다.

다음 항목을 일치시키세요:

  • TLS 핑거프린트
  • HTTP/2 설정
  • User-Agent 헤더
  • Accept-Language 및 기타 헤더
  • JavaScript 브라우저 속성(헤드리스 사용 시)

4. 요청 페이싱

실제 사람은 정확히 1초 간격으로 요청을 보내지 않습니다. 현실적인 변동성을 부여하세요:

  • 요청 간 기본 지연(2~5초)
  • 무작위 지터(±30%)
  • 탐색 이벤트 이후 더 긴 대기
  • 가끔의 “휴지” 구간

5. 우아한 실패 처리

챌린지나 차단에 부딪혔을 때:

  1. 즉시 재시도하지 마세요 — 봇 행동임을 확인시켜줄 뿐입니다
  2. 지수적으로 백오프하세요
  3. 새 세션으로 전환하세요(새 IP + 새 쿠키)
  4. 다른 프록시 지역을 시도하세요
  5. 계속된다면 브라우저 기반 접근 방식으로 전환하세요

더 이상 통하지 않는 방법

  • User-Agent만 바꾸기 — 탐지 시스템은 헤더 하나가 아니라 수십 개의 신호를 검사합니다
  • 무작위 지연만 적용하기 — 제대로 된 핑거프린팅 없이는 타이밍 조절만으로는 소용없습니다
  • 기본 설정의 헤드리스 Chrome — 자동화 신호가 곳곳에서 노출됩니다(navigator.webdriver, 누락된 플러그인, Chrome DevTools Protocol 흔적)
  • 쿠키 재사용 — 최신 시스템은 쿠키를 TLS 핑거프린트와 IP 대역에 결속시킵니다

윤리적 고려사항

안티봇 우회는 하나의 도구입니다. 다른 도구들과 마찬가지로 책임감 있게 쓰일 수도, 무책임하게 쓰일 수도 있습니다.

정당한 사용 사례:

  • 소비자 이익을 위한 가격 비교
  • 공개 데이터를 활용한 시장 조사
  • 접근성 향상(데이터를 구조화된 형식으로 제공)
  • 학술 연구
  • 품질 보증 및 모니터링

항상 준수해야 할 것:

  • robots.txt 지시사항
  • 레이트 리밋(초과할 수 있더라도 초과하지 마세요)
  • 개인정보 보호 규정(GDPR, CCPA)
  • 서비스 이용약관(관할권의 법적 환경을 이해하세요)

제 모든 도구는 레이트 리밋과 프록시 모범 사례를 기본 내장한, 정당한 데이터 추출을 위해 설계되었습니다.


안티봇 시스템을 이해하면 더 나은 크롤링 엔지니어가 될 수 있습니다. 이런 문제들을 안정적으로 처리하는 프로덕션급 스크래퍼가 필요하다면, 제 도구들을 확인하거나 맞춤 작업을 위해 연락해주세요.

whoami
Richard Feng
웹 크롤링 엔지니어, 12년 이상 경력. AI를 위해 클린한 RAG-레디 JSON을 반환하는 프로덕션 스크래퍼를 만듭니다.

이 데이터를 클린한 JSON으로 받고 싶으신가요?

스크래퍼 카탈로그를 둘러보거나, 원하는 소스에 맞는 맞춤 추출기와 RAG 파이프라인 제작을 의뢰하세요.

도구 둘러보기 맞춤 데이터 요청