추적되는 신호
최신 핑거프린트는 일반적으로 다음 신호를 조합합니다.- User-Agent 및 Accept 헤더. 가장 명확한 출발점입니다. UA의
HeadlessChrome은 자동화임을 드러냅니다. - 캔버스 핑거프린트. 사이트가 브라우저에 숨겨진 캔버스 요소를 렌더링하도록 요청한 뒤 출력을 해시합니다. GPU, 드라이버, OS 조합에 따른 미세한 렌더링 차이가 기기별로 안정적인 서명을 만듭니다.
- WebGL 핑거프린트. 렌더러 문자열, 공급업체 문자열, 지원 확장 프로그램을 조합하면 GPU와 드라이버 스택을 강력하게 식별할 수 있습니다.
- 글꼴 목록. 브라우저가 렌더링할 수 있는 글꼴과 그 순서는 세션 하나를 식별할 만큼 고유한 경우가 많습니다.
- 화면 및 뷰포트. 해상도, 색 농도, 기기 픽셀 비율입니다. 배율이 200%인
1366×768데스크톱은2560×1440Retina 디스플레이와 다른 핑거프린트를 가집니다. - 시간대 및 언어.
Intl.DateTimeFormat과navigator.languages에서 얻습니다. - 오디오 컨텍스트. 오디오 렌더링도 캔버스와 마찬가지로 기기별 핑거프린트가 가능한 출력을 만듭니다.
- 플러그인, navigator 속성, 하드웨어 동시성. 개별 영향은 작지만 조합 가능한 신호입니다.
navigator.webdriver. 관리되지 않은 자동화를 확실하게 드러내는 신호입니다.
스크래퍼가 핑거프린트를 유출하는 이유
대표적인 실패 방식은 세 가지입니다.- 동일한 기본 ID 반복. 기본 Puppeteer 인스턴스가 10,000개 세션을 실행하면서 같은 캔버스 해시, WebGL 문자열, 글꼴 목록을 제시하면, 서로 다른 10,000명의 “사용자”가 한 기기의 핑거프린트를 공유하게 됩니다. 탐지하기 매우 쉽습니다.
- 실제 사용자가 만들지 않는 일반 값. 비어 있는
navigator.plugins, 표준 Linux/Chrome 렌더링과 비트 단위까지 같은 캔버스 출력, 일반적인 시스템 글꼴이 빠진 글꼴 목록은 실제 Chrome 사용자에게서 나타나지 않는 이상 징후입니다. - 신호 간 불일치.
en-US와America/New_York을 표방하면서 러시아 IP를 사용하는 경우, iPhone User-Agent와 데스크톱 뷰포트를 함께 쓰는 경우, macOS 전용 글꼴을 포함한 Windows 핑거프린트가 이에 해당합니다. 탐지 계층은 내부 모순을 찾습니다.
핑거프린트 관리
해결책은 각 실패 방식에 직접 대응합니다.- 세션별 고유성. 각 작업 인스턴스는 서로 다른 캔버스 해시, WebGL 렌더러, 글꼴 목록 등 고유한 핑거프린트를 제시해야 합니다. 그래야 서로 다른 “사용자”에서 같은 핑거프린트가 반복되지 않습니다.
- 세션 내 일관성. 하나의 세션 안에서는 핑거프린트가 안정적으로 유지되어야 합니다. 세션 도중에 바뀌는 것 자체가 탐지 신호입니다.
- IP와 지리적으로 일치. 핑거프린트의 시간대, 언어, Accept-Language 헤더는 프록시 IP의 지역과 일치해야 합니다. 동유럽 IP에는 기본
en-US가 아니라 동유럽 핑거프린트를 연결하세요. - 무작위가 아닌 현실적인 값. 순수하게 무작위 값으로 조합한 핑거프린트도 이상 징후입니다. 사람이 사용하지 않는 특이한 값이 아니라 일반적인 GPU 문자열, 그럴듯한 글꼴 목록, 보편적인 화면 크기 등 현실의 핑거프린트 분포에서 선택해야 합니다.
Octoparse의 핑거프린팅 접근 방식
Octoparse는 헤디드 중심 런타임이 헤드리스 도구보다 적은 신호를 노출한다는 본래의 장점에 더해 브라우저 핑거프린트를 능동적으로 관리합니다. 모든 작업에서 동일한 기본 ID를 반복하는 대신 세션마다 고유하고 현실적인 핑거프린트 프로필을 제시하여, 고정 핑거프린트 설정으로는 충족할 수 없는 세션별 고유성 요건을 해결합니다. 사용자가 외부 핑거프린트 서비스를 직접 연결하지 않아도 헤디드 방식에서 오는 “수동적” 스텔스와 핑거프린트 다양성에서 오는 “능동적” 스텔스를 모두 런타임이 처리합니다. 핑거프린트 관리는 Octoparse의 행동 시뮬레이션과 함께 작동합니다. 런타임은 세션마다 서로 다른 실제 사용자처럼 보이고, 페이지에 진입한 뒤에도 실제 사용자처럼 행동합니다.필요한 상황
능동적 핑거프린트 관리는 정적 사이트와 기본적인 봇 탐지에는 과한 방법일 수 있지만 더 강력한 방어 체계에서는 그 가치를 발휘합니다.- 가벼운 방어. 기본 헤디드 방식만으로 대부분 처리할 수 있습니다.
- 중간 수준의 방어(속도 제한 + 기본 탐지). 다른 계층에 문제가 없다면 기본값으로도 대체로 충분합니다.
- 강력한 방어(Cloudflare, DataDome, HUMAN, Akamai Bot Manager). 필수입니다. 세션마다 고유하고 현실적인 핑거프린트가 없으면 다른 모든 부분이 자연스러워도 수천 명의 “사용자”에서 같은 ID가 반복되어 스크래퍼가 차단됩니다.