Fortress – 차단되지 않은 에이전트 트래픽을 위한 스텔스 Chromium 브라우저
Fortress – 차단되지 않은 에이전트 트래픽을 위한 스텔스 Chromium 브라우저
Fortress는 자동화 에이전트가 차단되지 않도록 하는 스텔스 Chromium 환경을 제공합니다
Fortress는 헤드리스 또는 자동화 브라우저의 특징적인 서명을 숨기도록 설계된 수정된 Chromium 빌드를 제공하는 오픈‑소스 프로젝트입니다. 이러한 서명을 마스킹함으로써 Fortress는 웹 스크래핑, 테스트 및 기타 자동화 작업이 차단하거나 트래픽을 제한하는 안티‑봇 방어를 우회하도록 합니다.
핵심 문제는 최신 안티‑봇 서비스가 표준 헤드리스 Chromium을 탐지한다는 점입니다
웹사이트는 점점 더 navigator.webdriver 확인, Chrome 확장 프로그램 검사, 타이밍 이상 현상 분석 등과 같은 지문 기술을 사용해 헤드리스 브라우저를 식별하고 차단합니다. 브라우저가 플래그되면 요청이 제한되고, CAPTCHA가 제공되며, 연결이 완전히 종료되어 자동화 워크플로가 중단됩니다.
Fortress는 이러한 문제를 Chromium에 직접 안티‑지문 패치를 삽입함으로써 해결합니다
Fortress는 다음과 같은 패치를 포함해 소스에서 Chromium을 컴파일합니다:
navigator.webdriver플래그를 제거하거나 무작위화합니다.- 일반적인 user‑agent 문자열 및 플랫폼 식별자를 위조합니다.
- 자동화를 드러내는 DevTools 프로토콜을 비활성화하거나 난독화합니다.
- 타이밍 정보를 무작위화해 인간의 상호작용을 모방합니다.
이러한 변경 사항은 바이너리에 포함되므로, 일반적인 Selenium, Playwright, Puppeteer API를 통해 Chromium을 실행하는 스크립트는 추가 설정 없이 스텔스 동작을 상속받습니다.
Fortress 시작하기
- 리포지토리 클론
git clone https://github.com/tiliondev/fortress.git cd fortress - 브라우저 빌드 (Chromium 빌드 의존성이 설치된 최신 Linux/macOS 환경 필요):
./build.sh # 스크립트가 Chromium 소스를 가져오고 스텔스 패치를 적용합니다 - 자동화 스크립트 실행 – 빌드된 바이너리 경로를 사용합니다:
동일한 바이너인은from selenium import webdriver options = webdriver.ChromeOptions() options.binary_location = "$(pwd)/out/Release/chrome" driver = webdriver.Chrome(options=options) driver.get("https://example.com")executablePath옵션을 지정하면 Playwright나 Puppeteer에서도 사용할 수 있습니다.
커뮤니티 반응 및 제한 사항
HN 게시물은 37표와 47개의 댓글을 받아 큰 관심을 보여주었습니다. 하지만 현재 댓글 스레드는 비어 있어 외부 검증이나 보고된 이슈는 아직 없습니다. 잠재적인 제한 사항은 다음과 같습니다:
- 유지 보수 부담: 패치를 Chromium 상위 버전과 동기화하려면 지속적인 노력이 필요합니다.
- 플랫폼 지원: 리포지토리는 주로 Linux/macOS를 목표로 하며, Windows 사용자는 빌드 스크립트를 수정해야 할 수 있습니다.
- 법적 고려사항: Chromium 바이너리를 수정하면 라이선스 준수에 영향을 줄 수 있으니, Chromium 라이선스와 제3자 구성 요소를 검토해야 합니다.
Fortress와 기존 스텔스 라이브러리 사용 시점 비교
기존 JavaScript 라이브러리(예: puppeteer-extra-plugin-stealth)는 표준 Chromium 바이너리에 런타임 패치를 적용합니다. Fortress는 컴파일 시점에 이러한 패치를 삽입한다는 점에서 차이가 있습니다. 이는:
- 브라우저가 이미 스텔스 상태로 시작되므로 런타임 오버헤드가 감소합니다.
- 수정 사항이 Chromium 업데이트에 의해 되돌려질 가능성이 낮아 지문 표면이 더 안정적입니다.
- 어떤 자동화 프레임워크와도 바로 사용할 수 있는 단일 바이너리를 제공합니다.
빠른 스크립트 수준 솔루션이 필요하다면 런타임 플러그인으로 충분할 수 있습니다. 일관성과 성능이 중요한 대규모 스크래핑 작업이라면 Fortress와 같은 컴파일된 스텔스 브라우저가 더 신뢰할 수 있습니다.
결론
Fortress는 일반적인 자동화 지문을 제거한 강화된 Chromium 빌드를 제공하여 에이전트가 안티‑봇 시스템에 차단되지 않고 작동하도록 합니다. 스텔스 패치를 브라우저 바이너리에 직접 통합함으로써 런타임 플러그인에 비해 성능 친화적인 대안을 제공하지만, 사용자는 빌드 업데이트와 플랫폼 호환성을 스스로 관리해야 합니다.