วิศวกรกูเกิลอ่านค่าใน iframe ของเว็บอื่นได้สำเร็จ จากการสังเกตเวลาเรนเดอร์ CSS3 Blend Mode

by lew
2 June 2018 - 18:11

Ruslan Habalov วิศวกรความปลอดภัยของกูเกิลรายงานถึงการโจมตีเบราว์เซอร์ ด้วยการอ่านค่าใน iframe ที่เป็นเนื้อหาของเว็บอื่น เช่น เฟซบุ๊กที่ปกติแล้ว แม้เราจะเห็นชื่อผู้ใช้ในเฟซบุ๊กของเราเองผู้ตามเว็บต่างๆ ที่ฝังกล่องเฟซบุ๊กเอาไว้ (ด้านขวาของ Blognone) แต่ตัวเว็บหลักจะไม่สามารถอ่านค่าในกล่องเฟซบุ๊กได้

การโจมตีนี้อาศัยข้อมูลรอบข้าง (side-channel) โดยอาศัยการสังเกตเวลาเรนเดอร์ iframe เหล่านี้ เมื่อ iframe เหล่านี้ถูกดัดแปลงสีด้วยฟีเจอร์ Blend Mode ของ CSS3

CSS3 อนุญาตให้เรนเดอร์เลย์เยอร์ต่างๆ ซ้อนกันในรูปแบบต่างๆ เช่น การซ้อนไปเฉยๆ, คูณค่าสีแต่ละเลย์เยอร์ (multiply) เป็นต้น การเรนเดอร์เหล่านี้บางกรณีต้องคำนวณสูงมาก เช่น การซ้อนแบบ saturation, และ luminosity การโจมตีอาศัยการกรองค่าสีออกมาทีละแม่สี แล้วซ้อนเลย์เยอร์ saturation เข้าไปอีกมากกว่า 200 ชั้น เพื่อให้การคำนวณนานพอที่จะวัดค่าได้ เมื่อค่อยๆ วัดค่าออกมาจะทำให้เว็บหลักมี iframe จากเว็บอื่นอยู่ภายในสามารถอ่านค่าภายในออกมาได้ เช่น การอ่านว่าผู้ใช้กดไลค์หรือยังใช้เวลา 0.5 วินาที, อ่านชื่อผู้ใช้เฟซบุ๊กใช้เวลา 20 วินาที, และอ่านภาพโปรไฟล์ใช้เวลา 5 นาที

ช่องโหว่นี้ถูกพบโดย Ruslan และ Max May ในช่วงเวลาเหลื่อมกัน โดย Max รายงานการโจมตีนี้ตั้งแต่เดือนมีนาคม 2017 (เริ่มแพตช์พฤษภาคม 2017) ส่วน Ruslan พบการโจมตีนี้ช่วงเดือนพฤษภาคม ทาง Chrome นั้นแก้ช่องโหว่นี้ไปแล้วตั้งแต่ Chrome 63 และไฟร์ฟอกซ์เพิ่งแก้ไข (เนื่องจากมีปัญหาในการสื่อสาร) ในเดือนพฤษภาคมที่ผ่านมา

การโจมตีโดยอาศัยข้อมูลรอบข้างเริ่มมีผลมากกว่าการทดสอบในแล็บเช่นสมัยก่อน เช่นการโจมตี Meltdown/Spectre ก็เป็นการโจมตีที่อาศัยข้อมูลระยะเวลาทำงานของซีพียู

ที่มา - Evonide

ตัวอย่าง Mix Blend Mode จาก Mozilla

Blognone Jobs Premium