안티봇 시스템의 진화
현대의 안티봇 시스템은 단순한 IP 차단을 훨씬 넘어선 정교한 탐지 메커니즘을 사용합니다. Cloudflare, Akamai, PerimeterX(현 HUMAN), DataDome과 같은 서비스는 다층적 방어 전략을 구현합니다.
IP 기반 탐지
IP 평판 데이터베이스
MaxMind, IP2Location 같은 서비스가 모든 IP를 분류합니다:
- IP 유형 분류 — 레지덴셜, 데이터센터, 모바일, VPN으로 분류
- ASN 분석 — IP가 속한 ASN이 호스팅 회사인지 ISP인지 확인
- 악용 이력 — 과거 스팸, 스크래핑, 공격에 사용된 이력 추적
- 지역 정보 — IP의 지리적 위치와 다른 신호의 일관성 확인
속도 제한
단일 IP에서의 요청 빈도를 모니터링합니다. 임계값을 초과하면 CAPTCHA, 일시 차단 또는 영구 차단이 적용됩니다.
TLS 핑거프린팅
JA3/JA4 해시
TLS 핸드셰이크 중 클라이언트가 전송하는 파라미터(지원 암호 스위트, 확장, 타원 곡선)로 고유한 핑거프린트를 생성합니다:
- JA3 — ClientHello 메시지의 MD5 해시
- JA4 — JA3의 확장 버전으로 더 정밀한 식별
Python requests나 curl은 Chrome/Firefox와 다른 TLS 핑거프린트를 가지므로 봇으로 식별됩니다.
대응 전략
실제 브라우저의 TLS 핑거프린트를 모방하는 라이브러리(curl-impersonate, tls-client)를 사용하거나 헤드리스 브라우저를 사용합니다.
HTTP/2 핑거프린팅
HTTP/2 연결의 SETTINGS 프레임, 헤더 순서, 우선순위 설정이 클라이언트를 식별하는 데 사용됩니다. 각 브라우저는 고유한 HTTP/2 핑거프린트를 가집니다.
브라우저 핑거프린팅
JavaScript를 실행하여 브라우저 환경을 검사합니다:
- Navigator 속성 — navigator.webdriver, navigator.plugins 등
- Canvas 핑거프린트 — HTML5 Canvas 렌더링 결과의 고유성
- WebGL 핑거프린트 — GPU 렌더링 특성
- Screen 속성 — 화면 해상도, 색상 깊이
- Audio 핑거프린트 — AudioContext API 출력
행동 분석
- 요청 패턴 — 일정한 간격, 순차적 URL 접근, 비자연스러운 탐색 경로
- 마우스/키보드 이벤트 — 인간의 상호작용 부재
- 스크롤 행동 — 페이지 스크롤 없이 콘텐츠 접근
- 세션 이상 — 쿠키 없는 접근, 비정상적 세션 길이
JavaScript 챌린지
Cloudflare의 관리형 챌린지는 JavaScript를 실행하여 브라우저 환경을 검증합니다. 단순한 HTTP 클라이언트는 이를 통과할 수 없습니다.
대응 전략 요약
| 탐지 기법 | 대응 전략 |
|---|---|
| IP 평판 | 레지덴셜/모바일 프록시 사용 |
| TLS 핑거프린팅 | 브라우저 모방 라이브러리 사용 |
| HTTP/2 핑거프린팅 | 실제 브라우저 사용 |
| 브라우저 핑거프린팅 | 스텔스 플러그인 적용 |
| 행동 분석 | 무작위 지연, 자연스러운 패턴 |
| JS 챌린지 | 헤드리스 브라우저 사용 |
핵심 요약
- 안티봇 시스템은 다층적 탐지 메커니즘을 사용합니다.
- IP 평판은 첫 번째 방어선 — 레지덴셜 프록시로 우회합니다.
- TLS 핑거프린팅은 HTTP 클라이언트를 식별 — 브라우저 모방이 필요합니다.
- 행동 분석은 자동화를 감지 — 자연스러운 패턴이 필요합니다.
- 효과적인 스크래핑은 프록시, 적절한 도구, 현실적인 행동의 조합입니다.






