본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 20. 20:52

ChromiumFish: 내장 AI 에이전트를 갖춘 지문 방지(fingerprint-hardened) Chrome

요약

ChromiumFish는 Linux 환경에서도 Windows Chrome처럼 보이도록 지문 방지(fingerprint-hardened) 기능을 갖춘 Chromium 포크입니다. C++ 레벨에 내장된 AI 에이전트를 통해 외부 자동화 흔적 없이 브라우저를 제어할 수 있습니다.

핵심 포인트

  • C++ 레벨의 마스킹으로 WebGL, 폰트, 플랫폼 등 정교한 지문 탐지 우회
  • CDP나 Playwright 같은 외부 제어 방식이 아닌 브라우저 내장 AI 에이전트 탑재
  • 외부 자동화 채널을 사용하지 않아 봇 탐지 시스템으로부터 높은 은닉성 제공
  • Python 및 Node용 Playwright 즉시 지원 및 OpenAI 호환 도구 호출 가능

저는 Python 및 Node용 Playwright를 즉시 지원하며, C++ 레벨에서 내장 AI 에이전트(AI Agent) 지원을 갖춘 지문 방지(fingerprint-hardened) Chromium 포크(fork)인 ChromiumFish를 제작했습니다.

여러분 대부분이 실행되는 순간 Chromium임을 알아챌 것이라는 점을 알고 있습니다. 그건 당연한 반응입니다. 하지만 안심하세요. 이 포크는 Windows 머신에서 실행되는 평범한 Chrome인 것처럼 보이도록 최선을 다합니다.

제작 이유

요약하자면: Linux 환경에서 브라우저를 실행하면 곳곳에 지문(fingerprints)이 남습니다.

User-Agent 문자열을 원하는 만큼 바꿀 수 있겠지만, 그것은 쉬운 부분입니다. 더 어려운 부분은 User-Agent가 커버하지 못하는 모든 것입니다. WebGL 렌더러(renderer) 문자열은 실제 Windows Chrome이 보고할 ANGLE/Direct3D 문자열 대신 조용히 "Mesa" 또는 "llvmpipe"라고 말합니다. navigator.platformLinux x86_64라고 말합니다. 폰트 스택(font stack)도 다릅니다. 오디오 및 캔버스(canvas) 렌더링은 웬만한 지문 채취(fingerprinting) 스크립트가 잡아낼 수 있는 미묘하게 잘못된 방식으로 출력됩니다. 이 중 어느 것도 단독으로는 눈에 띄지 않지만, 이것들을 쌓아 올리면 결론은 명확해집니다: 이것은 Linux에서 실행되는 Chrome이며, 이는 보통 봇(bot)임을 의미합니다.

이것이 ChromiumFish가 해결하려는 문제의 전체 카테k토리입니다. JavaScript 레이어에서 한 번에 하나의 신호를 패치하는 대신(패치 자체가 지문이 될 수 있습니다), 마스킹(masking)이 브라우저 더 깊은 곳에서 이루어지므로 탐지기가 보는 표면이 실제 Windows Chrome이 노출하는 것과 일치하게 됩니다.

AI 에이전트

내장된 AI 에이전트(AI Agent)도 있습니다. 하지만 이것이 현재 떠돌아다니는 다른 모든 "브라우저용 AI 에이전트"와 어떻게 다를까요?

The native agent clearing a bot-check and completing a four-step checkout from one plain-language task (4× speed).

가장 큰 차이점은 그것이 _어디에 존재하는가_입니다. 대부분의 설정에서는 에이전트가 CDP 또는 Playwright를 통해 외부에서 브라우저를 제어합니다. 문제는 CDP 사용은 탐지 가능하며, Playwright는 자체적인 흔적을 남긴다는 점입니다. 즉, 당신을 인간처럼 보이게 하려는 바로 그 요소가 당신의 정체를 드러내는 요소가 됩니다.

ChromiumFish는 핵심적인 AI 도구들을 브라우저 내부의 C++ 레벨로 내려보냅니다. 이는 CDP/Playwright 레이어에 위치한 계측(instrumentation)보다 탐지하기 훨씬 어렵게 만드는데, 탐지기가 알아챌 수 있는 외부 자동화 채널이 활성화되지 않기 때문입니다.

도구 호출(tool calling)을 지원하는 OpenAI 호환 제공업체 및 모델이라면 무엇이든 지정할 수 있으므로, 특정 벤더에 종속되지 않습니다.

canvas-bridge (숙련된 사용자를 위한 기능)

이 기능은 캔버스 핑거프린팅(canvas fingerprinting)이 강력한 역할을 수행하는, 더 까다로운 봇 완화(bot-mitigation) 설정들을 다루는 사람들을 위한 것입니다.

캔버스는 현존하는 가장 신뢰할 수 있는 탐지 수단 중 하나입니다. 왜냐하면 머신이 캔버스에 그림을 그릴 때 생성하는 정확한 픽셀은 하단의 GPU, 드라이버 및 OS에 따라 달라지기 때문입니다. 동일한 캔버스를 렌더링하는 Linux 환경과 Windows 환경은 매번 서로 다른 해시(hash) 값을 생성합니다. JavaScript만으로는 더 명백한 흔적을 남기지 않고 이를 속이기가 사실상 불가능합니다.

따라서 canvas-bridge는 이를 속이지 않습니다. 대신 실제 Windows 머신에서 캔버스를 렌더링하고 그 결과를 소켓 연결(socket connection)을 통해 Chrome으로 전송합니다. 이 픽셀들은 실제 Windows에서 그려졌기 때문에 실제 Windows 픽셀입니다. 만약 캔버스 핑거프린팅이 당신이 계속해서 마주치는 장벽이라면, 이것이 바로 당신을 위한 해결책입니다.

이 기능은 선택 사항(opt-in)이며 다른 기능보다 설정 과정이 다소 복잡하기 때문에 "숙련된 사용자(advanced users)"라는 라벨이 붙었지만, 까다로운 시나리오에서는 자연스럽게 섞여 들어가느냐 아니면 차단되느냐를 결정짓는 차이를 만들어냅니다.

설치 방법

pip와 npm을 통해 Python 및 Node 모두에서 사용할 수 있습니다. 래퍼(wrapper)를 사용하고 싶지 않다면, 빌드된 바이너리(built binary)를 가져와서 원하는 어떤 프레임워크로든 제어하거나, 전체를 직접 빌드할 수도 있습니다.

이 프로젝트는 완전히 오픈 소스(open-source)이며 MIT 라이선스를 따릅니다.

Repo: https://github.com/arman-bd/chromiumfish

한번 사용해 보시고, 여러분이 시도하는 어떤 작업들에 대해 이 브라우저가 어떻게 버텨내는지 의견을 들려주시면 감사하겠습니다. 이슈(Issues)와 풀 리퀘스트(PRs)는 언제나 환영합니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0