블로그로 돌아가기

안티디텍트 브라우저의 4가지 기술 방식과 선택 기준

안티디텍트 브라우저는 기능 목록만 보면 거의 비슷합니다. 실제 차이는 격리를 어떻게 구현하느냐에 있으며, 이 글은 네 가지 기술 방식을 격리 강도, 파라미터 제어, 자원 부담, 유지보수 비용으로 비교하고 적합한 사용 환경을 정리합니다.

안티디텍트 브라우저를 고를 때 각 업체의 기능표는 거의 비슷해 보입니다. 다중 환경, 독립 핑거프린트, 프록시 연동, 자동화 인터페이스, 팀 협업 같은 항목이 반복됩니다. 여러 제품을 비교하다 보면 이런 목록만으로는 차이를 판단하기 어렵습니다.

실제 차이는 격리를 어떻게 구현하는지에 있습니다. 이는 환경이 얼마나 쉽게 탐지될 수 있는지, 해당 도구에 얼마나 깊게 의존하게 되는지, 장기 유지보수에 얼마나 많은 노력이 필요한지를 결정합니다. 주류 방식은 크게 네 가지로 나눌 수 있습니다.

防关联浏览器的四种技术路线与选型的关键步骤与判断维度示意图

Chromium 코어를 직접 수정

Chromium 소스 코드를 기반으로 2차 개발하고 핑거프린트 변경을 C++ 계층에서 적용하는 방식입니다. 브라우저가 시작될 때 Canvas, WebGL, AudioContext, TLS 같은 신호가 렌더링이나 핸드셰이크 단계에서 설정값에 따라 출력되므로, 페이지 스크립트가 반환값을 나중에 덮어쓸 필요가 없습니다.

격리 강도는 높습니다. 각 환경이 별도의 프로필 디렉터리를 사용하므로 쿠키, 로컬 스토리지, 캐시가 서로 섞이지 않습니다. 파라미터 제어력도 높아 UA 같은 표면적인 필드뿐 아니라 더 낮은 수준의 값까지 다룰 수 있습니다. 대신 로컬에서 완전한 브라우저 프로세스를 실행해야 하므로 메모리 사용량은 실제 브라우저 여러 개를 동시에 실행하는 것과 비슷합니다.

이 방식의 분기점은 유지보수입니다. 브라우저 코어는 계속 발전하므로 업데이트 추종 속도와 버전 전환의 편의성이 2~3년 뒤에도 실용적으로 사용할 수 있는지를 직접 좌우합니다. 자동화 연동은 보통 어렵지 않으며, 대개 로컬 API나 디버깅 포트를 제공해 자동화 프레임워크가 직접 제어할 수 있습니다.

계정 수가 많고 격리 안정성 요구가 높으며 장기적으로 운영하는 팀에 적합합니다.

확장 프로그램으로 파라미터 덮어쓰기

브라우저 확장 프로그램이 페이지에 스크립트를 주입해 navigator 값이나 Canvas 출력 같은 속성을 덮어씁니다. 설치가 빠르고 수정 범위가 작아 아이디어를 빠르게 검증하기 좋습니다.

하지만 스크립트 주입 흔적 자체가 탐지 지점이 될 수 있습니다. 페이지에서 속성이 덮어써졌는지 확인할 수 있기 때문에 격리 강도는 낮거나 중간 수준에 그칩니다. 제어 가능한 범위도 스크립트가 접근할 수 있는 필드로 제한되며, 하드웨어 관련 정보는 거의 바꾸기 어렵습니다. 자원 부담은 매우 작아 일반 브라우저에 확장 프로그램 하나를 추가한 정도입니다. 유지보수는 브라우저 버전에 크게 좌우되어 업데이트 후 확장 프로그램을 다시 작성해야 할 수 있고, 자동화 스크립트와 확장 프로그램이 서로 간섭할 수도 있습니다.

임시 테스트, 계정 수가 매우 적은 경우, 장기 안정성을 우선하지 않는 환경에 적합합니다.

가상 머신과 컨테이너

각 계정에 별도의 시스템이나 컨테이너를 할당합니다. 완전한 가상 머신, 경량 컨테이너, 샌드박스 형태가 될 수 있습니다.

네 방식 가운데 격리 강도가 가장 높습니다. 운영체제 계층에서 환경과 저장소를 분리하므로 기본적으로 공유되지 않습니다. 반면 파라미터 제어력은 평균적인 편입니다. GPU 모델이나 하드웨어 특성은 위조하기 어렵고, 같은 이미지에서 생성한 환경은 동일한 하드웨어 정보가 반복되는 경우가 많습니다. 자원 소모는 가장 크며 시스템 하나마다 비용이 발생합니다. 컨테이너는 더 가볍지만 브라우저에 필요한 구성요소가 많아 디스크 사용량이 빠르게 늘 수 있습니다.

유지보수는 직접 맡아야 합니다. 이미지 업데이트, 스냅샷 관리, 백업 정책을 담당할 사람이 필요합니다. 자동화는 유연해서 이미지 내부에 프레임워크를 설치해 실행할 수 있지만, 작업 스케줄링과 분배 체계는 별도로 구축해야 합니다.

계정 수는 많지 않지만 요구 수준이 매우 높은 팀, 또는 업무 자체가 완전히 독립된 운영체제 환경을 필요로 하는 경우에 적합합니다.

원격 세션(클라우드 환경)

브라우저는 클라우드 호스트에서 실행되고 로컬 장치는 화면을 받아 보며 조작 명령만 전송합니다.

환경이 로컬 장치에 존재하지 않으므로 격리 강도는 자연스럽게 높습니다. 이미지를 통일해서 구성하면 대량 환경에서도 일관성을 유지하기 좋습니다. 로컬 자원 부담은 거의 무시할 수 있고 비용은 클라우드 연산과 대역폭으로 이동하지만, 네트워크 지연에 더 민감해집니다. 업데이트와 유지보수는 서비스 제공자가 중앙에서 처리하므로 편리한 대신 제공자의 운영 속도에도 영향을 받습니다.

이 방식은 일반적으로 API 연동 수준이 가장 높아 대량 스케줄링에 적합합니다. 다만 세션 시간과 최대 동시 실행 수 같은 제한을 관리해야 합니다. 구성원이 여러 지역에 분산된 팀, 필요에 따라 확장하려는 조직, 로컬 장치 관리에 인력을 쓰고 싶지 않은 환경에 잘 맞습니다.

자신의 상황에 맞춰 보기

  • 계정 수가 적고 환경을 완전히 통제하고 싶다면 코어 수정이나 로컬 가상 머신이 더 적합합니다.
  • 여러 사람이 동시에 접속하고 팀원이 여러 지역에 흩어져 있다면 원격 세션이 운영 부담을 줄여 줍니다.
  • 자동화 스크립트 아이디어만 검증하려면 확장 프로그램으로 충분할 수 있지만 장기 솔루션으로 보지는 않는 편이 좋습니다.

장기적으로는 세 가지 질문을 반복해서 확인할 필요가 있습니다. 코어 업데이트를 얼마나 빨리 따라가는가, 변경한 파라미터가 실제로 적용되는가, 네트워크 출구를 도구가 관리하는가 아니면 직접 관리하는가입니다. 마지막 항목은 특히 놓치기 쉽습니다. 환경 격리는 장치 측면만 해결하며 네트워크 출구는 별도로 설정해야 합니다.

계정 규모가 커지면 환경, 네트워크 출구, 구성원 권한을 함께 관리해야 합니다. PurpleMark 같은 도구는 다중 계정 환경 격리와 팀 협업을 한곳에 모아 매일 반복되는 전환과 인수인계에 드는 시간을 줄여 줍니다.

정리

어느 한 방식이 모든 면에서 우월하지는 않습니다. 코어 수정은 유지보수 투입과 맞바꿔 높은 격리 강도와 제어력을 얻고, 가상 머신과 컨테이너는 자원과 인력 비용을 들여 가장 강한 격리를 얻습니다. 확장 프로그램은 가벼움과 맞바꿔 안전 여유가 줄어들며, 원격 세션은 로컬 편의성과 맞바꿔 네트워크 및 서비스 제공자의 운영 속도에 의존하게 됩니다. 가장 타협하기 어려운 항목이 무엇인지 명확하면 선택은 훨씬 쉬워집니다.