본문으로 건너뛰기
피드

봇 탐지 전부 통과한다는 Firefox 기반 Playwright 래퍼가 나왔다

security 약 8분
vote
0
댓글
북마크

invisible_playwright는 Playwright와 호환되는 패치된 Firefox로, 브라우저 지문 탐지와 봇 탐지 테스트를 통과한다고 주장하는 오픈소스 프로젝트다. 핵심은 자바스크립트 런타임에서 값을 덮어씌우는 방식이 아니라 Firefox의 Gecko 경로를 C++ 레벨에서 패치해 탐지기가 ‘거짓말 흔적’을 잡기 어렵게 만든다는 점이다. 자동화 탐지, 크롤링 방어, 지문 일관성 설계에 관심 있는 개발자에게는 꽤 자극적인 사례다.

  • 1

    Firefox를 C++ 레벨에서 패치해 Playwright 자동화를 사람 세션처럼 보이게 만든다고 주장

  • 2

    reCAPTCHA v3 점수 0.90, Fingerprint Pro 봇 탐지 실패, CreepJS 거짓말 0개 같은 수치를 제시

  • 3

    Chromium 기반 안티디텍트 브라우저의 자바스크립트 오버라이드 방식이 탐지 가능하다고 비판

  • 4

    WebRTC, Canvas, WebGL, 폰트, 오디오, 시간대, 프록시까지 지문을 일관되게 맞추는 구조를 내세움

  • invisible_playwright는 “탐지 안 되는 Playwright용 Firefox”를 목표로 내건 프로젝트임

    • 패치된 Firefox를 제공하면서도 Playwright 호환성을 100% 유지한다고 주장함
    • 동기·비동기 API를 그대로 쓰고, 기존 Playwright 코드에서 전환도 작게 끝난다는 식으로 설명함
    • 지원 플랫폼은 Windows x86_64와 Linux x86_64
  • 제시한 탐지 테스트 결과가 꽤 세게 나옴

    • Google은 세션을 “사람일 가능성이 매우 높음”으로 분류했고, reCAPTCHA v3 점수는 0.90이라고 주장함
    • Fingerprint Pro에서는 봇 탐지, VPN 플래그, 변조 탐지, 개발자 도구 탐지가 모두 “Not detected”로 나왔다고 함
    • CreepJS의 거짓말 탐지에서도 “0 lies”를 강조함. 안티디텍트 브라우저는 보통 여기서 한두 군데 모순이 나와 점수가 무너진다는 주장임

중요

> 이 글의 핵심은 “값을 숨겼다”가 아니라 “브라우저 전체 지문이 서로 말이 맞는다”는 주장임. 봇 탐지는 단일 필드보다 모순을 잡는 쪽으로 진화하고 있다는 얘기임.

  • 기존 안티디텍트 브라우저의 약점으로 자바스크립트 패치를 지목함

    • 많은 Chromium 기반 도구는 navigator, WebGLRenderingContext.getParameter, Canvas API 같은 값을 주입 스크립트로 덮어쓴다고 설명함
    • 문제는 이런 오버라이드가 Function.prototype.toString(), 프로퍼티 descriptor, 열거 순서, prototype 변조 검사에서 흔적을 남긴다는 것
    • CreepJS 같은 탐지기는 바로 이런 “거짓말 흔적”을 모아 신뢰도를 깎음
  • invisible_playwright는 Firefox를 C++ 레벨에서 패치하는 쪽을 택함

    • 값이 자바스크립트 shim에서 나오는 게 아니라 Gecko의 정상 경로를 통해 반환되도록 만든다는 설명임
    • 그래서 페이지 입장에서는 브라우저가 그냥 자기 값을 말하는 것처럼 보이고, 탐지기가 잡을 오버라이드 흔적이 줄어든다는 논리임
    • Navigator, screen, GPU/WebGL, Canvas, fonts, audio, WebRTC, timezone, DevTools 탐지, SOCKS5 인증까지 여러 레이어를 같이 맞춘다고 함
  • 특히 WebRTC 쪽 디테일이 흥미로움

    • WebRTC의 srflx 주소는 프록시 egress IP로 보이게 하고, host candidate는 사설 LAN 주소처럼 합성한다고 설명함
    • 기본 Firefox는 mDNS 호스트명 같은 세션 단위 신호가 나올 수 있는데, 이것도 탐지기에는 안정적인 fingerprint가 될 수 있음
    • 프로젝트는 이런 후보 값을 스푸핑된 네트워크와 맞춰 바꿔 실제 공인 IP가 새지 않게 한다고 주장함
  • Chromium 기반 자동화가 기본적으로 의심받는다는 시각도 깔려 있음

    • 주거용 프록시를 쓰는 봇 트래픽이 Chromium 계열에 많이 몰려 있어서, 탐지기들이 Chromium 모양 자체를 위험 신호로 가중할 수 있다는 주장임
    • Chromium fork는 Blink, V8, ANGLE 같은 오픈소스 레이어를 가져가도 Chrome의 비공개 구성요소나 릴리스 cadence까지 완전히 맞추기 어렵다고 봄
    • 그래서 이 프로젝트는 Firefox 기반으로 가되, 런타임 덮어쓰기 대신 엔진 레벨에서 일관성을 맞추는 쪽을 선택함
  • 지문 값은 하드코딩이 아니라 preference와 seed로 제어된다고 함

    • 각 세션은 실제 Firefox telemetry에서 뽑은 GPU, 오디오, 폰트 등 약 400개 필드를 기반으로 고유하고 일관된 프로필을 샘플링한다고 설명함
    • seed를 기록하면 같은 GPU, 같은 Canvas hash, 같은 audio context를 재현할 수 있음
    • 특정 GPU 렌더러, 화면 크기, CPU 동시성 같은 값은 pin으로 고정하고 나머지는 seed 기반으로 유지할 수 있다고 함
  • 비교표에서는 상용 안티디텍트 브라우저보다 한 단계 깊게 패치했다고 주장함

    • Multilogin Mimic, GoLogin Orbita, AdsPower, Dolphin Anty 등은 Chromium fork와 자바스크립트 오버라이드 중심이라고 비교함
    • Kameleo나 Multilogin Stealthfox처럼 Firefox 프로필을 제공하는 제품도 런타임 오버라이드 패턴은 비슷하다고 봄
    • 다만 경쟁 제품 점수는 프로젝트 측 자체 테스트 결과라, 그대로 객관적 벤치마크처럼 받아들이긴 조심해야 함

⚠️주의

> 이런 기술은 자동화 테스트 연구에도 쓰일 수 있지만, 서비스 약관 우회나 남용 자동화에도 바로 연결될 수 있음. 방어 관점에서는 “탐지 우회가 가능한 가정”을 두고 설계를 다시 봐야 함.


기술 맥락

  • 이 프로젝트의 선택은 “브라우저 표면만 덮기”가 아니라 “렌더링 엔진 경로에서 일관된 값을 내기”예요. 봇 탐지기가 단순히 navigator.webdriver 하나만 보는 시대가 아니라, 여러 API 값이 서로 모순되는지까지 보니까 이런 접근을 택한 거예요.

  • 자바스크립트 오버라이드는 구현이 쉽지만, 그 자체가 흔적을 남긴다는 문제가 있어요. 함수 문자열, descriptor, 프로퍼티 순서, prototype 변경 같은 메타 정보가 원래 브라우저와 달라지면 탐지기는 “값은 그럴듯한데 말투가 이상하다”는 식으로 잡아낼 수 있거든요.

  • Firefox의 Gecko를 C++ 레벨에서 패치하면 값이 정상 엔진 경로에서 나온 것처럼 보일 수 있어요. 그래서 프로젝트는 Canvas, WebGL, 폰트, 오디오, WebRTC, 시간대, 프록시 같은 레이어를 따로따로 속이는 게 아니라 하나의 지문 프로필로 맞추는 쪽을 강조해요.

  • 방어하는 팀 입장에서는 이게 꽤 불편한 신호예요. 특정 필드 하나로 자동화를 차단하는 규칙은 쉽게 깨질 수 있고, 세션 행동, 계정 평판, 요청 패턴, 서버 쪽 리스크 모델까지 같이 봐야 하는 이유가 여기에 있어요.

이 프로젝트는 공격 도구로도 보일 수 있지만, 방어자 입장에서는 브라우저 지문 탐지가 어디까지 흔들릴 수 있는지 보여주는 테스트 케이스다. ‘navigator 값 몇 개 보면 되겠지’ 수준의 봇 탐지는 점점 설 자리가 없어지고 있다.

댓글

댓글

댓글을 불러오는 중...

security

한양대 에리카와 네이버클라우드, 클라우드·보안·AI 인재 키우는 산학협력 체결

한양대 에리카가 네이버클라우드와 첨단 분야 지역인재 양성과 글로벌 산학협력을 위한 업무협약을 맺었다. 협력 범위는 클라우드, 사이버보안, 블록체인, 개인정보보호, 인공지능(AI), 디지털 전환(DX) 교육·연구 기반 구축까지 포함된다.

security

악성 npm 패키지가 AI 개발도구의 지침 파일과 MCP까지 노리기 시작함

이스트시큐리티가 웹과 탈중앙화금융 개발자를 겨냥한 악성 npm 패키지 캠페인을 포착했어. 공격자는 유명 웹3 도구를 사칭하는 데서 그치지 않고, AI 에이전트가 읽는 프로젝트 지침 파일과 MCP 기반 외부 도구 호출까지 공격 경로로 삼으려 했어.

security

금융권, 앤트로픽 미토스가 찾은 오픈소스 취약점에 긴급 점검 들어감

앤트로픽의 AI 모델 클로드 미토스가 1000개 넘는 오픈소스에서 대량의 취약점 후보를 찾아냈고, 그중 일부가 실제 취약점으로 검증돼 공개됐어. 금융당국은 nginx, wolfSSL, FreeRDP, Ghost 같은 널리 쓰이는 구성요소를 중심으로 금융권에 긴급 자산 점검과 패치 적용을 권고했어.

security

애플이 양자 내성 암호화 검증 코드를 공개했다, 핵심은 수학적 증명

애플이 corecrypto 라이브러리의 포스트 양자 암호화 구현과 검증 코드를 GitHub에 공개했다. ML-KEM, ML-DSA 구현과 형식 검증 접근을 공개해 보안 연구자들이 직접 검토할 수 있게 했고, 이 기술은 25억 대 이상 활성 기기에서 쓰이는 암호화 기반과 연결된다.

security

라라벨 번역 패키지 태그가 통째로 바뀌었다, 개발자 비밀값 털리는 공급망 공격

전 세계 라라벨 개발자가 쓰는 Laravel-Lang 패키지가 공격을 받아 Git 태그가 악성 버전을 가리키도록 바뀌었다. 5월 22일 약 90분 동안 4개 저장소의 태그가 교체됐고, 감염된 패키지는 AWS 키, GitHub 토큰, Stripe 시크릿, 암호화폐 지갑 복구 구문, SSH 개인키 등을 노렸다.