본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 05. 29. 16:00

reCAPTCHA 점수 0.9 달성! Chromium을 C++ 수준에서 개조한 「CloakBrowser」가 놀랍다

요약

CloakBrowser는 Chromium의 C++ 소스 코드를 직접 수정하여 봇 탐지를 우회하는 브라우저입니다. reCAPTCHA v3에서 0.9점이라는 인간 수준의 점수를 기록하며, 마우스와 키보드 동작을 인간처럼 에뮬레이션하는 기능을 제공합니다.

핵심 포인트

  • Chromium C++ 소스 수준에서 58곳을 수정하여 탐지 우회
  • reCAPTCHA v3 점수 0.9 달성 및 Cloudflare 통과
  • 마우스 곡선, 키보드 입력 간격 등 인간 행동 패턴 에뮬레이션
  • Playwright 및 Puppeteer의 드롭인 대체재로 활용 가능

브라우저 자동화 스크립트를 작성해 본 적이 있는 사람이라면 누구나 경험하는 악몽이 있습니다.

Cloudflare의 "로봇이 아닙니다" 체크. Google reCAPTCHA의 가차 없는 낮은 점수. 공들여 작성한 스크립트가 도중에 멈추고 데이터 수집에 실패합니다. playwright-stealth를 넣고, JS 오버라이드(JS override)를 추가하고, Chrome 업데이트로 인해 망가지지 않기를 기도하는 —— 그런 늪 같은 반복입니다.

최근 GitHub에서 22,000 스타를 획득한 CloakBrowser는 이 문제에 대한 접근 방식이 근본적으로 다릅니다.

Chromium의 C++ 소스 코드 수준에서 58곳의 수정을 가하여, 바이너리(binary)로서 컴파일한 "탐지되지 않는 브라우저"입니다.

통상적으로 Playwright나 Puppeteer로 조작되는 브라우저에는 navigator.webdriver = true라는 플래그가 설정됩니다. CloakBrowser는 이를 C++ 수준에서 false로 하드코드(hard-code) 했습니다. 그 외에도 57곳의 수정이 이루어졌습니다.

실제 테스트 데이터가 충격적입니다:

테스트일반 PlaywrightCloakBrowser
reCAPTCHA v3 점수0.1 (봇 판정)0.9 (인간 수준)
Cloudflare Turnstile (비대화형)실패통과
Cloudflare Turnstile (관리형)실패통과
FingerprintJS탐지통과
BrowserScan탐지정상 (4/4)
ShieldSquare차단통과

reCAPTCHA v3 점수 0.9는 인간 수준입니다. 서버 사이드(server-side)에서 검증된 진짜 점수입니다. 동일한 코드에서 브라우저 바이너리만 교체했을 뿐인데 결과가 이 정도로 달라진다는 사실은 놀랍습니다.

시그널일반 PlaywrightCloakBrowser
navigator.webdrivertruefalse
navigator.plugins.length05
window.chromeundefinedobject
UA 문자열HeadlessChromeChrome/146.0.0.0
CDP 탐지탐지미탐지
TLS 지문 (TLS fingerprint)불일치Chrome과 동일
Canvas 지문 (Canvas fingerprint)이상정상
WebGL 렌더러 (WebGL renderer)SwiftShader실제 GPU
AudioContext오실레이터 불일치정상

58곳의 수정은 Canvas 지문, GPU 파라미터, 오디오 컨텍스트(audio context), 폰트, 화면 파라미터, 네트워크 타이밍 등 거의 모든 탐지 포인트를 커버하고 있습니다.

지문(fingerprint) 대책만으로는 불충분합니다. 행동 특성 또한 봇 탐지의 중요한 판단 자료입니다.

기계는 직선적으로 마우스를 움직이고 순식간에 글자를 입력합니다. 인간의 커서 이동에는 곡선과 미세한 떨림이 있으며, 타이핑에는 글자마다 사고 시간이 있습니다.

CloakBrowser의 humanize=True는 이것들을 완벽하게 에뮬레이트(emulate)합니다:

  • 🖱️ 마우스 조작: 베지에 곡선 경로 + 자연스러운 지터(jitter) + 타겟 직전에서의 감속
  • ⌨️ 키보드 입력: 한 글자씩, 인간다운 "생각 중"인 간격을 삽입
  • 📜 스크롤: 가속 → 정속 → 감속의 리듬

모든 마우스, 키보드, 스크롤 API가 humanize 활성화 시 완전히 교체됩니다.

CloakBrowser는 **Playwright의 드롭인 대체재(drop-in replacement)**로 설계되었습니다:

# Python
pip install cloakbrowser
# Node.js
...

최초 실행 시 약 200MB의 Chromium 바이너리를 자동으로 다운로드하여 로컬에 캐시합니다. 두 번째 실행부터는 즉시 기동됩니다.

사용법은 Playwright와 완전히 동일합니다:

from cloakbrowser import sync_api
browser = sync_api.launch(humanize=True)
page = browser.new_page()
...

단 3줄입니다.

CloakBrowser는 주요 AI 에이전트 프레임워크와 호환됩니다:

프레임워크Stars지원 여부
browser-use70K+
...

AI 에이전트가 실제 환경에서 작동함에 따라, 브라우저야말로 에이전트의 주요 접점이 되고 있습니다. 항공권 예약, 자동 테스트, 모델 훈련용 데이터 수집 —— 이 모든 것이 브라우저를 경유합니다.

하지만 대부분의 웹사이트는 AI 구동 브라우저를 봇(Bot)으로 간주하여 차단합니다. CloakBrowser는 이 "마지막 퍼즐 조각"을 채워주는 존재입니다.

CloakBrowser에는 **브라우저 프로필 매니저(Browser Profile Manager)**도 내장되어 있습니다. Multilogin, GoLogin, AdsPower와 같은 상용 안티 디텍션(Anti-detection) 브라우저의 셀프 호스팅 대체재로 기능하며, 프로필마다 독립된 지문 시드(Fingerprint Seed), 쿠키(Cookie), 스토리지(Storage)를 유지합니다.

바이너리 라이선스: Python/JS 래퍼(Wrapper)는 MIT 라이선스이지만, 바이너리 자체는 "무료 이용 가능·재배포 불가" -
최초 다운로드: ~200MB, 캐시 이후에는 불필요 -
완벽하지 않음: DataDome, Akamai, PerimeterX와 같은 고도화된 서비스는 계속 진화 중입니다. 현재 라운드는 CloakBrowser가 승리하고 있지만, 이는 군비 경쟁과 같습니다 -
Windows SmartScreen: 최초 실행 시 경고가 나타날 수 있음 (바이너리는 서명됨)

CloakBrowser는 브라우저 자동화의 개념을 근본적으로 바꾸었습니다.

"기존 브라우저 위에 JS 해킹을 덧씌우는" 것이 아니라, "처음부터 탐지되지 않는 브라우저를 소스 레벨에서 구축하는" 접근 방식입니다.

22K 스타라는 숫자는 커뮤니티가 이 방향성을 지지하고 있다는 증거입니다. AI 에이전트가 실제 웹과 상호작용하기 위한 필수적인 인프라가 되어가고 있습니다.

GitHub: github.com/CloakHQ/CloakBrowser

문서(Documentation): cloakbrowser.com

Docker: Docker Hub에서 프리빌드(Pre-built) 이미지 공개 중

대상 독자: 웹 스크레이핑(Web Scraping) 및 브라우저 자동화 관련 엔지니어, AI 에이전트 개발자, Playwright/Puppeteer 사용자

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
1

댓글

0