# 웹 봇과 봇 탐지 기술의 짧은 역사

> Clean Markdown view of GeekNews topic #21761. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=21761](https://news.hada.io/topic?id=21761)
- GeekNews Markdown: [https://news.hada.io/topic/21761.md](https://news.hada.io/topic/21761.md)
- Type: news
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-07-01T10:11:01+09:00
- Updated: 2025-07-01T10:11:01+09:00
- Original source: [sinja.io](https://sinja.io/blog/bot-or-not)
- Points: 26
- Comments: 0

## Summary

웹 봇 vs. 탐지 기술은 **끊임없는 진화와 대응의 싸움**이며, 정적 지문·행동 분석·AI 기반 탐지까지 다양한 기법이 혼합 활용되고 있습니다. 봇 개발자와 서비스 운영자 양쪽은 최신 탐지 트렌드와 대응 방법에 대한 이해가 필수여서 한번 읽어두면 좋은 글입니다.

## Topic Body

- Web Bot은 **HTTP 클라이언트 단순 요청부터 실제 브라우저 자동화**까지 발전해왔으며, 이에 맞서 **Bot 탐지 기법도 지속적으로 정교해짐**  
- **IP 평판, TCP/TLS/브라우저 환경 지문, 자바스크립트 기반 행위 분석** 등 다양한 기술이 봇 탐지에 활용됨  
- Headless 브라우저, 프록시, User-Agent 변조 등 **봇 우회 기법**은 발전하지만, 탐지 알고리듬도 함께 진화해 양자간 ‘고양이와 쥐’ 게임이 계속됨  
- 최근에는 **행동 데이터 기반 AI 모델**을 활용한 고도화된 행동 분석까지 결합, 봇 탐지가 한층 복잡해짐  
- CAPTCHA, 프록시 탐지, Proof-of-Work, 행동 기반 인증 등 **다층 방어 체계**가 일반화되고 있음  
  
---  
  
### 도입: 웹 봇과 탐지 기술의 진화  
  
- 웹 봇은 단순한 크롤러·자동화 스크립트부터, 실제 사용자처럼 행동하는 고도화된 프로그램까지 다양한 유형 존재  
- 검색 엔진, 아카이브 봇 등 유익한 봇도 있지만, 스팸·불법 스크래핑 등 문제적 활용도 많음  
- 사이트 운영자들은 초창기부터 봇과의 싸움을 이어왔으며, **탐지·우회 기법이 동시에 고도화**됨  
  
### 가장 단순한 봇: HTTP 클라이언트  
  
- `curl`, `wget` 등 단순 HTTP 클라이언트로 사이트에 요청을 보내는 방식이 가장 기본적인 봇임  
- 모든 HTTP 클라이언트는 `User-Agent` 헤더에 자신을 노출하므로, 사이트는 손쉽게 탐지·차단 가능  
- User-Agent를 브라우저로 위조해도, 브라우저는 추가적인 헤더(언어, 인코딩 등)를 포함하므로, 완벽한 위장이 아니면 여전히 탐지됨  
  
### IP 평판 및 프록시  
  
- 서버는 **IP 주소**를 활용해 봇을 탐지함. 특히 클라우드·데이터센터 IP 대역은 봇/자동화 트래픽으로 인식되어 신뢰도가 낮음  
- 프록시 없이 운영하면 금방 차단되므로, **주거지/모바일 프록시**로 IP를 우회해야 하고, 이를 위해 비용이 듦  
- 사이트는 IP 평판, 프록시 포트(1080 등) 오픈 여부, IP 대역, 접속 패턴 등을 적극적으로 점검함  
- IP 차단을 우회하기 위해 **회전 프록시(rotating proxy)**, 모바일 프록시 등이 활용됨  
  
### TCP 지문(TCP Fingerprinting)  
  
- HTTP 요청 전 **TCP 연결**을 맺을 때, 운영체제별로 TCP 패킷 구성 방식이 달라 이를 분석해 OS를 식별할 수 있음  
- User-Agent와 실제 OS(TCP 지문)가 불일치할 경우, 봇/위장 트래픽으로 판단됨  
- 프록시 서버도 TCP 지문에 영향을 미칠 수 있어, 프록시 선택시 OS 일치 여부 고려 필요  
  
### TLS 지문(TLS Fingerprinting)  
  
- **TLS 핸드셰이크** 과정에서 지원 암호화 방식, 버전, 확장 등이 브라우저/OS별로 다름  
- TLS 지문을 통해 브라우저, 운영체제, 라이브러리 종류를 추정하고 User-Agent와 교차 검증 가능  
  
### 자바스크립트 탐지  
  
- 서버는 응답 전, 또는 페이지 로드 후 **JavaScript로 클라이언트 환경·행동 정보를 추가 수집**함  
- 봇이 JavaScript를 실행하지 않으면 곧바로 탐지되며, 봇도 **Selenium, Puppeteer, Playwright** 등 브라우저 자동화 도구를 이용해 대응함  
- 단순 HTTP 요청 수준에서 브라우저 자동화로 진화 중  
  
### Headless 브라우저와 탐지  
  
- Headless 모드(창 없는 Chrome 등)는 봇 개발에 필수적이나, `navigator.webdriver` 등 고유 속성, 빈 플러그인 리스트 등 다양한 차이점으로 탐지가 가능함  
- 각종 속성을 패치해 위장할 수 있으나, **수십 개 힌트**를 모두 처리해야 하고, 새로운 탐지 포인트가 계속 등장함  
- 2023년부터 도입된 **New Headless 모드**는 실제 Chrome과 동일 엔진을 사용해 탐지가 더 어려워짐  
  
### 오케스트레이션 프레임워크 탐지 및 IPC  
  
- Selenium, Playwright 등 자동화 프레임워크는 고유 플래그·옵션, 브라우저 버전, 환경 구성에서 특이점을 노출함  
- 예시: `--disable-ipc-flooding-protection` 등 플래그는 봇 환경을 식별하는 단서가 됨  
- 일부 JS 함수(예: `window.history.pushState`)를 과도하게 호출해 IPC flood 상태 유도 및 탐지 가능  
  
### 프록시 탐지: JS 기반 고도화  
  
- **Latency(지연 측정)**: WebSocket 등으로 측정한 전체 지연과 TCP 지연 차이를 비교해 프록시 존재 여부 확인  
- **WebRTC Leak**: 브라우저의 WebRTC를 이용해 실제 클라이언트 IP를 얻고, HTTP 요청 IP와 비교해 불일치시 프록시/봇 의심  
- **DNS Leak**: 자바스크립트에서 임의의 서브도메인 요청 → DNS 서버 위치/IP를 통해 비정상적 패턴(국가 불일치 등) 탐지  
- **Timezones**: 브라우저의 타임존과 IP 위치 비교로 프록시 사용·위장 탐지  
  
### 캡차(Captcha)와 인증  
  
- **Captcha**는 봇 탐지/차단 목적의 별도 인증으로, 사람이 해결 가능한 문제(글자 인식, 클릭 등)로 구성됨  
- 최근에는 **Proof-of-Work 기반 캡차**(연산 작업 부과), **행동 기반 캡차**(단순 클릭, 행동 분석 결합)가 도입됨  
- 대다수 봇은 **저가의 외부 캡차 솔버 서비스**를 활용해 캡차를 우회함  
  
### 단순/고급 행동 분석  
  
- **행동 분석**은 마우스 움직임, 키 입력 패턴, 클릭 위치·속도 등 인간 행동 특유의 비효율성과 다양성을 분석함  
    - 예시: 마우스 곡선 이동, 클릭 딜레이, 키 입력 간 시간 차, 모바일 기기 orientation/motion 이벤트 등  
    - 봇은 직선 이동, 일정/빠른 타이핑, 비현실적 반응 속도 등에서 쉽게 드러남  
- **고급 행동 분석**은 대규모 인간·봇 행동 데이터를 수집·학습해, AI/머신러닝으로 미세 패턴까지 식별  
    - 예: 마우스 이동 궤적, 키스트로크 간 미묘한 시간 차, 페이지 탐색 패턴 등 복합적 데이터 기반 분류  
  
### 결론 및 시사점  
  
- 웹 봇 vs. 탐지 기술은 **끊임없는 진화와 대응의 싸움**이며, 정적 지문·행동 분석·AI 기반 탐지까지 다양한 기법이 혼합 활용됨  
- 각종 우회·위장 기법에도 불구하고, 서비스 운영자는 **다층적 탐지 체계, 실시간 행동 분석, AI 모델 등으로 대응**하며 지속적 업그레이드가 필요함  
- 봇 개발자는 완벽한 위장 환경을 구성하는 데 한계가 있으며, 최신 탐지 트렌드와 대응 방법에 대한 이해가 필수적임

## Comments



_No public comments on this page._
