브라우저 파비콘을 이용한 지문 추적 기술 ‘Supercookie’
(github.com/jonasstrehle)- 파비콘(favicon) 캐시를 이용해 웹사이트 방문자에게 고유 식별자를 부여하는 추적 기법으로, 사용자가 캐시나 쿠키를 삭제해도 식별 정보가 유지됨
- 이 방식은 시크릿 모드, VPN, 광고 차단기 사용 시에도 작동하며, 브라우저 재시작이나 시스템 재부팅 후에도 지속됨
- 브라우저가 파비콘을 요청하거나 캐시에서 불러오는 패턴 조합을 통해 고유한 식별 번호를 생성함
- Chrome, Firefox, Safari, Edge 등 주요 브라우저와 모바일 브라우저가 이 취약점의 영향을 받음
- 브라우저 보안 및 개인정보 보호 측면에서 파비콘 캐시 관리의 중요성이 부각됨
Supercookie 개요
- Supercookie는 파비콘 캐시(F-Cache) 를 이용해 사용자를 식별하는 기술
- 파비콘은 웹사이트의 작은 아이콘으로, 브라우저 주소창이나 북마크 목록에 표시됨
- 브라우저는 파비콘을 빠르게 표시하기 위해 별도의 로컬 데이터베이스(F-Cache)에 저장함
- F-Cache에는 방문 URL, 파비콘 ID, TTL(유효 기간) 정보가 포함됨
- 이 구조를 악용하면, 특정 URL 경로별 파비콘 요청 여부를 조합해 고유한 브라우저 패턴을 생성할 수 있음
위협 모델
- 웹서버는 브라우저가 파비콘을 새로 요청하는지 여부를 통해 이전에 방문한 적이 있는지 판단 가능
- 캐시에 파비콘이 없으면 서버에 GET 요청이 발생하고, 있으면 요청이 생략됨
- 여러 경로의 파비콘 요청 상태를 조합하면 브라우저별 고유 식별 번호를 생성할 수 있음
- 이 식별자는 쿠키 삭제, 캐시 초기화, VPN 사용, 헤더 조작 등 기존 추적 방지 조치에도 영향을 받지 않음
기존 쿠키와의 비교
- 표에 따르면 Supercookie는 100% 식별 정확도를 가지며,
- 시크릿 모드 감지, 캐시·쿠키 삭제 후에도 지속, 여러 창 간 식별, 안티트래킹 소프트웨어 우회가 가능함
- 반면 일반 쿠키는 이러한 기능을 지원하지 않음
영향받는 브라우저
-
Chrome, Safari, Edge, Firefox 등 주요 브라우저가 취약함
- Chrome: Windows, macOS, Linux, Android에서 영향
- Safari: macOS, iOS에서 영향
- Edge: Windows, macOS, Android에서 영향
- Firefox: 일부 플랫폼에서 시크릿 모드 시 다른 지문 생성
- Brave: 최신 버전에서는 대부분 차단됨
- 이전 버전의 Brave(1.14.0)와 Firefox(<84.0)는 이 공격에 취약함
확장성과 성능
- 리디렉션 경로 수(N)를 조정해 2^N개의 고유 사용자를 구분 가능
- 구분 가능한 사용자가 많아질수록 읽기·쓰기 시간이 증가함
- N의 길이를 동적으로 조정해 리디렉션 수를 최소화할 수 있음
방어 방법
- 가장 확실한 방법은 파비콘 캐시를 완전히 비활성화하거나 수동으로 삭제하는 것
- Chrome(macOS):
~/Library/Application Support/Google/Chrome/Default/Favicons및Favicons-journal삭제 - Chrome(Windows):
C:\Users\username\AppData\Local\Google\Chrome\User Data\Default삭제 - Safari(macOS):
~/Library/Safari/Favicon Cache내용 삭제 - Edge(macOS):
~/Library/Application Support/Microsoft Edge/Default/Favicon및Favicons-journal삭제
- Chrome(macOS):
프로젝트 목적 및 배경
- 본 저장소는 교육 및 시연용으로 제작되었으며, 파비콘을 이용한 추적 가능성에 대한 보안 인식 제고가 목적
- 영감은 University of Illinois Chicago 연구 논문과 heise.de 기사에서 비롯됨
- 프로젝트는 개인 연구의 일환으로 2일 만에 구현된 데모 포털 포함
기타
- 개발자는 독일 출신 20세 학생으로, 소프트웨어 디자인 및 IT 보안 분야에 관심을 가짐
- 프로젝트는 GitHub에서 공개되어 있으며, Docker 또는 Node.js 환경에서 실행 가능
- 관련 보도는 Vice, Gizmodo, TechRadar, Schneier.com 등 주요 매체에서 다뤄짐
댓글과 토론
Hacker News 의견
- 예전부터 이런 문제가 있었던 것 같음. Safari에서 특정 사이트의 파비콘이 잘못 표시되는 경우가 자주 있음
예를 들어 Reddit에서 Ars Technica의 파비콘이 뜨는 식임- 내 경우엔 Hacker News 아이콘이 날씨 사이트 아이콘으로 고정되어 있음
iOS 업데이트 이후에도 그대로고, 프로필이나 시크릿 모드에서도 계속 유지됨 - Safari의 파비콘 캐시가 너무 오래 유지됨
강제로 새로 고치려면 시스템 시계를 몇 년 뒤로 돌려야 함 - 나만 그런 줄 알았는데, UI 캐시가 손상된 것 같음
MacBook에서 몇 년째 이러길래 그냥 포기했음 - 모바일 Chrome에서도 HN 파비콘이 잘못 표시됨
- Firefox에서도 가끔 같은 버그가 발생함
- 내 경우엔 Hacker News 아이콘이 날씨 사이트 아이콘으로 고정되어 있음
- Brave가 이 문제를 패치했다니 반가움
- 예전 논의(2021년)도 있었음 — 관련 댓글 스레드
- 라이브 데모가 뭘 해야 하는지 모르겠음
iOS Safari에서 1부터 18까지 카운터가 돌다가 다시 리다이렉트되는 무한 루프에 빠짐- 우리가 논문 작업 중에 이 문제를 보고했고, 그 후 수정되었음
- Android/Firefox에서는 처음 18회 후 내 고유 ID가 표시되었고, 다시 시도 버튼을 누르면 같은 루프에 빠졌음
- 제목에 (2023)을 추가해야 할 듯함
- 사실 (2021)이 맞을지도 모르겠음. 이렇게 오래됐는데 아직 수정이 안 된 건가 궁금함
- macOS Safari가 새 탭 페이지를 열 때마다 파비콘을 자주 불러오는 현상이 있음
이건 원치 않는 동작이라 즐겨찾기를 지우거나 HTML로 저장해둘까 고민 중임
주로 프라이빗 윈도우를 쓰는데, Little Snitch 덕분에 이걸 발견했음 - 관련 토론으로 "Tales of Favicons and Caches: Persistent Tracking in Modern Browsers" (2021년 1월, 53개 댓글)이 있음
- 나는 비영속 VM 기반 브라우저 환경을 씀
qemu + cage + firefox 조합으로, 종료 시 이미지가 삭제됨
속도는 느리지만 보안상 안심됨. 컨테이너화도 가능하지만 브라우저가 호스트 커널에 접근하는 게 불안함
eBPF 정책으로 제어하려는 것도 복잡해서 그냥 VM으로 격리함- 나도 비슷한 시도를 했는데, VM 환경에서는 캡차가 자주 뜸
예를 들어 SwiftShader 렌더러나 폰트 부재 같은 특징이 탐지됨
이런 걸 속이려 해도 캔버스 노이즈 조작 같은 건 금방 들킴. 혹시 해결책이 있으면 공유해줬으면 함 - 흥미로운 접근임. 혹시 이 내용을 문서화한 자료가 있는지 궁금함
- 나도 비슷한 시도를 했는데, VM 환경에서는 캡차가 자주 뜸
- 나도 1/18부터 18/18까지 카운터만 돌고 새로고침되는 걸 봤음
20초 정도 허비한 기분임 - 공격 메커니즘이 GitHub 저장소에 구체적으로 설명돼 있지 않고, 논문 링크도 깨져 있어서 아쉬움
- 논문 저자인데, 올바른 링크는 https://www.cs.uic.edu/~polakis/papers/favicon.pdf 임
- 참고로 관련 데모는 supercookie.me/workwise 에서 볼 수 있음