5 คะแนน โดย GN⁺ 2025-11-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ฟาวิคอน (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

วัตถุประสงค์และเบื้องหลังของโครงการ

  • ที่เก็บโค้ดนี้จัดทำขึ้นเพื่อ การศึกษาและการสาธิต โดยมีเป้าหมายเพื่อ ยกระดับการตระหนักรู้ด้านความปลอดภัย เกี่ยวกับความเป็นไปได้ของการติดตามผ่านฟาวิคอน
  • แรงบันดาลใจมาจาก งานวิจัยของ University of Illinois Chicago และ บทความของ heise.de
  • โครงการนี้มี เดโมพอร์ทัล ที่สร้างเสร็จภายใน 2 วัน เป็นส่วนหนึ่งของงานวิจัยส่วนบุคคล

อื่น ๆ

  • ผู้พัฒนาเป็นนักศึกษาอายุ 20 ปีจากเยอรมนี ที่สนใจด้าน การออกแบบซอฟต์แวร์และความปลอดภัยด้านไอที
  • โครงการเผยแพร่บน GitHub และสามารถรันได้ในสภาพแวดล้อม Docker หรือ Node.js
  • ประเด็นนี้ได้รับการรายงานโดย สื่อหลักอย่าง Vice, Gizmodo, TechRadar, Schneier.com

1 ความคิดเห็น

 
GN⁺ 2025-11-17
ความคิดเห็นจาก Hacker News
  • ดูเหมือนว่าปัญหานี้จะมีมานานแล้ว ใน Safari มักเกิดกรณีที่ favicon ของบางเว็บไซต์แสดงผิดอยู่บ่อย ๆ
    เช่น ใน Reddit กลับขึ้น favicon ของ Ars Technica
    • ในกรณีของฉัน ไอคอน Hacker News ถูกตรึงเป็นไอคอนเว็บพยากรณ์อากาศ
      แม้อัปเดต iOS แล้วก็ยังเหมือนเดิม และยังคงอยู่ทั้งในโปรไฟล์หรือ โหมดไม่ระบุตัวตน
    • แคช favicon ของ Safari อยู่ได้นานเกินไป
      ถ้าจะบังคับให้รีเฟรช ต้องปรับนาฬิกาของระบบไปข้างหน้าหลายปี
    • นึกว่ามีแค่ฉันคนเดียว แต่ดูเหมือนว่า แคช UI เสียหาย
      บน MacBook เป็นแบบนี้มาหลายปีแล้วเลยยอมแพ้ไปเอง
    • บน Chrome มือถือก็มีการแสดง favicon ของ HN ผิดเหมือนกัน
    • ใน Firefox ก็มีบั๊กแบบเดียวกันเกิดขึ้นเป็นบางครั้ง
  • ดีใจที่ Brave แพตช์ปัญหานี้แล้ว
  • เคยมีการพูดถึงเรื่องนี้มาก่อนแล้วด้วย (2021) — เธรดคอมเมนต์ที่เกี่ยวข้อง
  • ไม่แน่ใจว่าไลฟ์เดโมต้องให้ทำอะไร
    บน iOS Safari ตัวนับวิ่งจาก 1 ถึง 18 แล้วก็กลับไปรีไดเร็กต์ใหม่ ติดอยู่ใน ลูปไม่สิ้นสุด
    • เราได้รายงานปัญหานี้ระหว่างทำงานวิจัย และหลังจากนั้น ก็ถูกแก้ไขแล้ว
    • บน Android/Firefox หลังครบ 18 ครั้งแรก ระบบแสดง ID เฉพาะของฉัน แล้วพอกดปุ่มลองอีกครั้งก็วนกลับเข้าไปในลูปเดิม
  • น่าจะต้องเติม (2023) ไว้ในชื่อเรื่อง
    • จริง ๆ แล้วอาจจะเป็น (2021) มากกว่าก็ได้ สงสัยว่าเก่าขนาดนี้แล้วยัง ไม่ได้รับการแก้ไขอีกหรือ
  • บน macOS Safari มีอาการที่ เรียก favicon บ่อยมาก ทุกครั้งที่เปิดหน้าแท็บใหม่
    นี่เป็นพฤติกรรมที่ไม่พึงประสงค์ เลยกำลังคิดว่าจะลบรายการโปรดทิ้งหรือบันทึกไว้เป็น HTML ดี
    ปกติฉันใช้ หน้าต่างส่วนตัว เป็นหลัก และสังเกตเห็นเรื่องนี้ได้เพราะ Little Snitch
  • มีการถกเถียงที่เกี่ยวข้องคือ "Tales of Favicons and Caches: Persistent Tracking in Modern Browsers" (มกราคม 2021, 53 คอมเมนต์)
  • ฉันใช้ สภาพแวดล้อมเบราว์เซอร์บน VM แบบไม่คงสภาพ
    เป็นชุด qemu + cage + firefox โดยอิมเมจจะถูกลบทิ้งเมื่อปิด
    มันช้าแต่สบายใจกว่าในแง่ความปลอดภัย จะทำเป็นคอนเทนเนอร์ก็ได้ แต่ฉันกังวลที่เบราว์เซอร์ เข้าถึงเคอร์เนลของโฮสต์ ได้
    การจะควบคุมด้วยนโยบาย eBPF ก็ซับซ้อนเกินไป เลยแยกด้วย VM ไปเลย
    • ฉันก็เคยลองอะไรคล้าย ๆ กัน แต่ในสภาพแวดล้อม VM มักจะเจอ แคปช่า บ่อย
      เช่น มีการตรวจจับลักษณะอย่างตัวเรนเดอร์ SwiftShader หรือการไม่มีฟอนต์
      ต่อให้พยายามปลอมสิ่งเหล่านี้ การทำอย่าง ปรับแต่ง canvas noise ก็ถูกจับได้เร็วอยู่ดี ถ้ามีวิธีแก้ก็อยากให้ช่วยแชร์
    • เป็นแนวทางที่น่าสนใจ ไม่ทราบว่ามี เอกสารอธิบายเรื่องนี้ ไหม
  • ฉันก็เห็นเหมือนกันว่ามีแต่ตัวนับจาก 1/18 ไปจน 18/18 แล้วรีเฟรชใหม่
    รู้สึกเหมือนเสียเวลาไปประมาณ 20 วินาที
  • น่าเสียดายที่ กลไกการโจมตี ไม่ได้อธิบายไว้อย่างละเอียดใน GitHub repository และลิงก์ไปยังงานวิจัยก็เสีย