5 điểm bởi GN⁺ 2025-11-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đây là kỹ thuật theo dõi gán định danh duy nhất cho khách truy cập website bằng cách lợi dụng bộ nhớ đệm favicon, và thông tin nhận dạng vẫn được giữ lại ngay cả khi người dùng xóa cache hoặc cookie
  • Cách này vẫn hoạt động khi dùng chế độ ẩn danh, VPN, trình chặn quảng cáo, đồng thời tiếp tục tồn tại sau khi khởi động lại trình duyệt hoặc khởi động lại hệ thống
  • Trình duyệt tạo mã nhận dạng duy nhất thông qua tổ hợp mẫu giữa việc yêu cầu favicon hoặc tải từ cache
  • Các trình duyệt lớn như Chrome, Firefox, Safari, Edge và cả trình duyệt di động đều bị ảnh hưởng bởi lỗ hổng này
  • Từ góc độ bảo mật trình duyệt và quyền riêng tư, tầm quan trọng của việc quản lý cache favicon đang được nhấn mạnh

Tổng quan về Supercookie

  • Supercookie là công nghệ nhận diện người dùng bằng bộ nhớ đệm favicon (F-Cache)
    • Favicon là biểu tượng nhỏ của website, hiển thị trên thanh địa chỉ hoặc trong danh sách dấu trang của trình duyệt
    • Trình duyệt lưu favicon trong một cơ sở dữ liệu cục bộ riêng (F-Cache) để hiển thị nhanh hơn
  • F-Cache chứa thông tin về URL đã truy cập, ID favicon và TTL (thời gian hiệu lực)
  • Nếu bị lạm dụng, cấu trúc này có thể kết hợp trạng thái yêu cầu favicon theo từng đường dẫn URL cụ thể để tạo ra mẫu trình duyệt duy nhất

Mô hình đe dọa

  • Máy chủ web có thể xác định người dùng đã từng truy cập trước đó hay chưa thông qua việc trình duyệt có gửi yêu cầu favicon mới hay không
    • Nếu favicon không có trong cache, trình duyệt sẽ phát sinh yêu cầu GET tới máy chủ; nếu đã có, yêu cầu sẽ bị bỏ qua
  • Khi kết hợp trạng thái yêu cầu favicon ở nhiều đường dẫn, có thể tạo ra mã định danh duy nhất cho từng trình duyệt
  • Định danh này không bị ảnh hưởng bởi các biện pháp chống theo dõi hiện có như xóa cookie, khởi tạo lại cache, dùng VPN hoặc chỉnh sửa header

So sánh với cookie truyền thống

  • Theo bảng so sánh, Supercookie có độ chính xác nhận dạng 100%, đồng thời
    • có thể phát hiện chế độ ẩn danh, duy trì sau khi xóa cache·cookie, nhận diện giữa nhiều cửa sổ, và vượt qua phần mềm chống theo dõi
  • Trong khi đó, cookie thông thường không hỗ trợ các khả năng này

Các trình duyệt bị ảnh hưởng

  • Chrome, Safari, Edge, Firefox cùng nhiều trình duyệt lớn khác đều dễ bị khai thác
    • Chrome: bị ảnh hưởng trên Windows, macOS, Linux, Android
    • Safari: bị ảnh hưởng trên macOS, iOS
    • Edge: bị ảnh hưởng trên Windows, macOS, Android
    • Firefox: trên một số nền tảng sẽ tạo dấu vân tay khác khi ở chế độ ẩn danh
    • Brave: trong các phiên bản mới nhất, phần lớn đã được chặn
  • Các phiên bản Brave cũ hơn (1.14.0) và Firefox (<84.0) dễ bị tấn công bởi phương thức này

Khả năng mở rộng và hiệu năng

  • Có thể phân biệt 2^N người dùng duy nhất bằng cách điều chỉnh số lượng đường dẫn chuyển hướng (N)
  • Số lượng người dùng có thể phân biệt càng lớn thì thời gian đọc·ghi càng tăng
  • Có thể điều chỉnh động độ dài của N để giảm thiểu số lần chuyển hướng

Cách phòng vệ

  • Cách chắc chắn nhất là vô hiệu hóa hoàn toàn cache favicon hoặc xóa thủ công
    • Chrome(macOS): xóa ~/Library/Application Support/Google/Chrome/Default/FaviconsFavicons-journal
    • Chrome(Windows): xóa C:\Users\username\AppData\Local\Google\Chrome\User Data\Default
    • Safari(macOS): xóa nội dung trong ~/Library/Safari/Favicon Cache
    • Edge(macOS): xóa ~/Library/Application Support/Microsoft Edge/Default/FaviconFavicons-journal

Mục đích và bối cảnh của dự án

  • Kho lưu trữ này được tạo ra cho mục đích giáo dục và trình diễn, nhằm nâng cao nhận thức bảo mật về khả năng theo dõi bằng favicon
  • Ý tưởng được lấy cảm hứng từ bài nghiên cứu của University of Illinois Chicagobài viết trên heise.de
  • Dự án còn bao gồm cổng demo được triển khai chỉ trong 2 ngày như một phần của nghiên cứu cá nhân

Khác

  • Nhà phát triển là một sinh viên 20 tuổi đến từ Đức, quan tâm đến thiết kế phần mềm và bảo mật CNTT
  • Dự án được công khai trên GitHub và có thể chạy trong môi trường Docker hoặc Node.js
  • Nội dung liên quan đã được đưa tin bởi Vice, Gizmodo, TechRadar, Schneier.com và các hãng truyền thông lớn khác

1 bình luận

 
GN⁺ 2025-11-17
Ý kiến trên Hacker News
  • Có vẻ như vấn đề này đã tồn tại từ lâu. Trên Safari khá thường xuyên xảy ra trường hợp favicon của một trang bị hiển thị sai
    Ví dụ như trên Reddit lại hiện favicon của Ars Technica
    • Với tôi thì biểu tượng Hacker News bị kẹt thành biểu tượng của một trang thời tiết
      Sau các bản cập nhật iOS vẫn vậy, và nó tiếp tục xuất hiện cả trong hồ sơ lẫn chế độ ẩn danh
    • Bộ nhớ đệm favicon của Safari tồn tại quá lâu
      Muốn ép làm mới thì phải chỉnh đồng hồ hệ thống nhảy lên vài năm sau
    • Tôi cứ tưởng chỉ mình gặp, nhưng có vẻ bộ nhớ đệm UI đã bị hỏng
      MacBook của tôi bị thế này mấy năm rồi nên giờ đành bỏ cuộc
    • Trên Chrome di động, favicon của HN cũng bị hiển thị sai
    • Trên Firefox đôi khi cũng xuất hiện lỗi tương tự
  • Thật vui khi thấy Brave đã vá vấn đề này
  • Trước đây cũng đã có thảo luận (2021) — chuỗi bình luận liên quan
  • Tôi không hiểu bản demo trực tiếp yêu cầu phải làm gì
    Trên Safari iOS, bộ đếm chạy từ 1 đến 18 rồi lại bị chuyển hướng, rơi vào vòng lặp vô hạn
    • Chúng tôi đã báo cáo vấn đề này trong lúc thực hiện bài báo, và sau đó nó đã được sửa
    • Trên Android/Firefox, sau 18 lần đầu tiên thì ID duy nhất của tôi được hiển thị, nhưng khi bấm thử lại thì vẫn rơi vào vòng lặp tương tự
  • Có lẽ nên thêm (2023) vào tiêu đề
    • Thực ra có khi phải là (2021). Tôi thắc mắc là nó đã tồn tại lâu như vậy mà vẫn chưa được sửa sao
  • Trên Safari macOS có hiện tượng thường xuyên tải favicon mỗi khi mở trang tab mới
    Đây là hành vi tôi không mong muốn nên đang cân nhắc xóa bookmark hoặc lưu chúng thành HTML
    Tôi chủ yếu dùng cửa sổ riêng tư, và phát hiện ra chuyện này nhờ Little Snitch
  • Có một cuộc thảo luận liên quan là "Tales of Favicons and Caches: Persistent Tracking in Modern Browsers" (tháng 1 năm 2021, 53 bình luận)
  • Tôi dùng môi trường trình duyệt dựa trên VM không bền vững
    Kết hợp qemu + cage + firefox, và ảnh đĩa sẽ bị xóa khi thoát
    Chạy chậm nhưng yên tâm hơn về bảo mật. Cũng có thể dùng container, nhưng tôi không thoải mái khi trình duyệt truy cập kernel của máy chủ
    Việc cố kiểm soát bằng chính sách eBPF cũng quá phức tạp nên tôi cứ cách ly bằng VM
    • Tôi cũng từng thử cách tương tự, nhưng trong môi trường VM thì captcha xuất hiện khá thường xuyên
      Ví dụ như các đặc điểm như bộ dựng SwiftShader hay việc thiếu font sẽ bị phát hiện
      Dù có cố ngụy trang những thứ này thì các cách như can thiệp nhiễu canvas cũng nhanh chóng bị lộ. Nếu có giải pháp thì mong bạn chia sẻ
    • Cách tiếp cận này khá thú vị. Không biết có tài liệu nào ghi chép lại nội dung này không
  • Tôi cũng thấy nó chỉ đếm từ 1/18 đến 18/18 rồi làm mới lại
    Cảm giác như đã lãng phí khoảng 20 giây
  • Hơi tiếc là cơ chế tấn công không được mô tả cụ thể trong kho GitHub, còn liên kết đến bài báo thì bị hỏng