FingerprintJS เปิดเผยบั๊กบน IndexedDB API ใน Safari 15 ที่ทำให้เว็บไซต์มุ่งร้ายสามารถดู ติดตามประวัติเข้าเว็บของผู้ใช้ และดู Google User ID ของผู้ใช้ได้ มีผลทั้งบน Mac, iOS และ iPadOS
บั๊กนี้ทำให้เว็บไซต์สามารถมองเห็นชื่อดาต้าเบสบน IndexedDB ของโดเมนใดก็ได้ ไม่ใช่แค่ดาต้าเบสที่สร้างโดยชื่อโดเมนของตัวเอง และชื่อดาต้าเบสที่หลุดนี้ก็สามารถนำไปหาประวัติการเข้าเว็บไซต์ได้โดยการเก็บรายละเอียดชื่อดาต้าเบสของเว็บไซต์ชั้นนำแต่ละเว็บ แล้วใช้ lookup table เทียบ
ข้อจำกัดของช่องโหว่นี้คือเว็บมุ่งร้ายจะเช็คได้ว่าผู้ใช้เคยเข้าเว็บปลายทางหรือไม่ เว็บปลายทางต้องเป็นเว็บที่สร้าง IndexedDB เองเท่านั้น ซึ่งทาง FingerprintJS ระบุว่าในรายการเว็บ Alexa 1,000 เว็บแรก มีอยู่ 30 กว่าเว็บที่สร้าง IndexedDB เองโดยผู้ใช้ไม่ได้เข้าใช้ฟีเจอร์อะไรเป็นพิเศษ
อีกปัญหาหนึ่งคือเมื่อผู้ใช้ล็อกอินเข้าสู่บัญชี Google บน Safari ตัว Google services ก็จะสร้างดาต้าเบสใน IndexedDB ไว้หนึ่งรายการต่อหนึ่งแอคเคาท์ที่ล็อกอินไว้ โดยชื่อดาต้าเบสนั้นจะไปตรงกับเลข Google User ID ของผู้ใช้
เมื่อเว็บไซต์ต่างๆ สามารถดูชื่อดาต้าเบสของผู้ใช้ได้ แปลว่าเว็บที่มุ่งร้ายก็สามารถรู้ Google User ID ของผู้ใช้ได้ และเลข Google User ID นี้ ก็สามารถถูกนำไปใช้สร้าง API request ส่งไปยัง Google services เพื่อขอข้อมูลส่วนตัวอื่นของผู้ใช้ได้เช่นกัน
ใน เว็บตัวอย่างที่ FingerprintJS สร้าง ตัวเว็บจะสามารถดึงภาพโปรไฟล์บนบัญชี Google ของผู้ใช้ได้ และมี lookup table ไว้เทียบประวัติการเข้าชมเว็บไซต์ประมาณ 30 เว็บ ถ้าใครอยากทดสอบ ลองเปิด เว็บไซต์ตัวอย่าง นี้ใน Safari 15 แล้วเช็คดูว่าเว็บนี้สามารถดึงข้อมูลอะไรจาก Safari ของคุณได้บ้าง
FingerprintJS ระบุว่าแจ้งบั๊กนี้ไปใน WebKit Bug Tracker แล้ว ตั้งแต่วันที่ 28 พฤศจิกายน ปี 2021 เป็นบั๊กหมายเลข 233548 แต่ปัจจุบันยังไม่ได้รับการแก้ไข คงต้องรอดูต่อไปว่า Apple จะดำเนินการเมื่อไร
ที่มา - FingerprintJS
Comments
บั๊ก IndexDB บน Safari 15 ทำให้เว็บไซต์ดูประวัติเข้าเว็บ และดู Google User ID ของผู้ใช้ได้
IndexDB -> IndexedDB
มีตรงอื่นอีกบางจุดด้วยครับ
เว็บมุ่งร้ายจะเช็ตได้ว่า >> เว็บมุ่งร้ายจะเช็คได้ว่า
Safari กับ IndexedDB นี่บ่อยจัง
บั้กนี้โหด ดี
ลองกับ Google Chrome ใน IOS ก็โดนนะครับ T_T
Google Chrome บน iOS มันก็ Safari นั่นแหละครับ
จริงๆ ก็ทุก browser บน iOS นั่นแล
ขยายความให้เข้าใจง่ายได้ไหมครับผมสนใจเรื่องนี้ ผมไม่รู้เรื่องไอที ?
Apple ไม่ยอมให้ browser ที่ใช้ engine ของตัวเองลง store ครับ ดังนั้นทุก browser ที่ใช้บน iPhone, iPad ไม่ว่าจะเป็น Chrome, Firefox, Edge และอะไรก็ตามมันก็คือ Safari เปลี่ยนหน้ากากที่อาจจะมีฟีเจอร์ของหน้ากากมาบ้างเฉยๆ ครับ
เพิ่งรู้เลย นึกว่าตอนนี้ Edge ใน iOS ใช้โครเมี่ยมซะอีก
แล้วถ้าเข้าโดยไม่ login ละครับ ก็จะไม่สร้าง indexed ขึ้นมาใช่ไหมแล้วถ้า logout แล้ว ผลก็ไม่ต่างใช่ไหมครับ เพราะ indexed ถูกสร้างแล้ว
อันนี้ผมไม่รู้นะครับ ?
คิดซะว่า Apple บังคับใช้เครื่องยนต์ที่ชื่อว่า WebKit นะครับ
ไม่น่า Body จะเป็นอะไร (Safari, Chrome)
เครื่องยนต์ก็ยังเป็น WebKit ครับ บน iOS
ถ้าเป็นคนไทย บัค อะไรก็ไม่สน ถ้า บัค เข้าเวบ ขอ Pron ไม่ได้ นี่ เรื่องใหญ่ สำหรับคนไทย