อินเทลเผยแพร่ช่องโหว่ L1 Terminal Fault ที่เป็นชุดช่องโหว่ 3 รายการ เปิดทางให้แฮกเกอร์สามารถอ่านข้อมูลที่ไม่สามารถอ่านได้ตามปกติ โดยอาศัยคุณสมบัติ speculative execution หรือการรันคำสั่งแบบคาดเดาล่วงหน้าของซีพียู แบบเดียวกับ Spectre หรือ Meltdown
ช่องโหว่ L1TF คิดลึกกว่า Spectre/Meltdown ลงไปอีกขั้นด้วยการอาศัยกลไก page table ที่แปลงค่าตำแหน่งหน่วยความจำ ให้กลายเป็นค่า address จริงของฮาร์ดแวร์ โดยหากหน้า page นั้นๆ ไม่มีอยู่ในตัวซอฟต์แวร์ก็จะได้รับ exception เป็น page fault กลับขึ้นมา แต่ในความเป็นจริงซีพียูกลับอ่านค่าหน่วยความจำ ณ ตำแหน่งนั้นขึ้นมาล่วงหน้าแแล้ว เมื่อใช้เทคนิค FLUSH+RELOAD แบบเดียวกับ Meltdown ก็สามารถรู้ค่าของหน่วยความจำเป้าหมายได้
ช่องโหว่นี้มี 3 รูปแบบหลัก ได้แก่
ในกรณีของ Hyper-V ฟีเจอร์ป้องกันการใช้คอร์ปะปนกัน เรียกว่า core scheduler ปิดการทำงานเป็นค่าเริ่มต้น และรองรับเฉพาะ Windows Server 2016 ขึ้นไป ในกรณีที่ใช้ระบบ hypervisor ที่ไม่รองรับ ทางออกที่เหลือคือการปิด hyperthread ทิ้ง เพื่อให้ใช้ 1 คอร์ต่อ 1 เธรดเท่านั้น ซึ่งจะกระทบประสิทธิภาพเครื่องค่อนข้างมาก
ระหว่างนี้คงต้องรออัพเดตและสำรวจว่าระบบ hypervisor ใดรองรับการแก้ปัญหาแบบใดและเปิดใช้งานกันอย่างไรบ้าง
ที่มา - Intel, Oracle, Microsoft Technet
Comments
กระทบเฉพาะการใช้ Hypervisor ของ server ใช่มั้ยอ่ะ ไม่ค่อยเคลียทางฝั่งผู้ใชทั่วไป
สรุปผู้ใช้ทั่วไปที่ไม่ได้ใช้ระบบ Hypervisor ก็โดนอ่านข้อมูลได้เหมือนกันหรือเปล่าอ่ะเนี่ย และสุดท้ายผู้ใช้ทั่วไปต้องโดนปิด hyperthread ด้วยหมือนกันหรือเปล่า เห็น 1 กับ 2 ก็กรี๊ดแล้ว
เท่าที่อ่านคือใครทำ VM แล้วไม่มีระบบป้องกันการใช้ CPU ร่วมโดนหมดครับเพราะ Hyperthred มันทำให้ 1 core ทำงานเหมือนสองคอร์จำลองแล้วใช้ L1 ร่วมกัน ทำให้การใช้ vCPU โดนแน่ๆ แต่ไม่แน่ว่าคนที่ไม่ใช้ VM เลยจะโดนกระทบไหม
Deja Vu แฮะ เพราะเคยอ่านรายงานว่ามีช่องโหว่แบบเดียวกันหลังจาก Intel ขาย CPU ที่มี Hyperthreading ได้ไม่นาน แถมตอนนั้นบางโปรแกรมจะทำงานช้ามากหากเปิด Hyperthreading เพราะอีก thread มันไปลบ cache ของอีก thread ที่ทำงานคู่กัน ทำให้ thread ที่โดนลบต้องดึงข้อมูลเข้า cache ใหม่ตลอดครับ
แล้ว AMD เป็นยังไงบ้างนี่โดนด้วยมั้ย?
ห่วงโซ่