มีการระบุช่องโหว่อื่นในโปรเซสเซอร์ AMD ที่ทำให้เกิดการโจมตี Meltdown

ทีมนักวิจัยจากมหาวิทยาลัยเทคนิคกราซ (ออสเตรีย) และ Helmholtz Center for Information Security (CISPA) ได้เปิดเผยข้อมูลเกี่ยวกับช่องโหว่ (CVE-2021-26318) ในโปรเซสเซอร์ AMD ทั้งหมดที่ทำให้สามารถดำเนินการ Meltdown-class ได้ การโจมตีช่องทางด้านข้าง (เริ่มแรกสันนิษฐานว่าโปรเซสเซอร์ AMD ไม่ได้รับผลกระทบจากช่องโหว่ Meltdown) ในทางปฏิบัติ การโจมตีสามารถใช้เพื่อสร้างช่องทางการสื่อสารที่ซ่อนอยู่ ติดตามกิจกรรมในเคอร์เนล หรือรับข้อมูลเกี่ยวกับที่อยู่ในหน่วยความจำเคอร์เนล เพื่อเลี่ยงการป้องกัน KASLR ในขณะที่ใช้ประโยชน์จากช่องโหว่ในเคอร์เนล

AMD พิจารณาว่าไม่เหมาะสมที่จะใช้มาตรการพิเศษเพื่อป้องกันปัญหา เนื่องจากช่องโหว่ เช่นเดียวกับการโจมตีที่คล้ายกันที่ค้นพบในเดือนสิงหาคม มีประโยชน์เพียงเล็กน้อยในสภาวะจริง ถูกจำกัดด้วยขอบเขตปัจจุบันของพื้นที่ที่อยู่ของกระบวนการ และจำเป็นต้องมีการมีอยู่บางอย่าง ลำดับคำสั่ง (แกดเจ็ต) สำเร็จรูปในเคอร์เนล เพื่อสาธิตการโจมตีนี้ นักวิจัยได้โหลดโมดูลเคอร์เนลของตนเองพร้อมกับอุปกรณ์ที่เพิ่มเข้ามาโดยไม่ตั้งใจ ในสภาวะจริง ผู้โจมตีสามารถใช้ เช่น การเปิดช่องโหว่ในระบบย่อย eBPF เป็นประจำเพื่อทดแทนลำดับที่จำเป็น

เพื่อป้องกันการโจมตีประเภทใหม่นี้ AMD ขอแนะนำให้ใช้เทคนิคการเข้ารหัสที่ปลอดภัยซึ่งช่วยป้องกันการโจมตี Meltdown เช่น การใช้คำสั่ง LFENCE นักวิจัยที่ระบุปัญหาแนะนำให้เปิดใช้งานการแยกตารางหน้าหน่วยความจำ (KPTI) ที่เข้มงวดมากขึ้น ซึ่งก่อนหน้านี้ใช้สำหรับโปรเซสเซอร์ Intel เท่านั้น

ในระหว่างการทดลอง นักวิจัยจัดการรั่วไหลข้อมูลจากเคอร์เนลไปยังกระบวนการในพื้นที่ผู้ใช้ด้วยความเร็ว 52 ไบต์ต่อวินาที เนื่องจากมีอุปกรณ์ในเคอร์เนลที่ทำการดำเนินการ “ถ้า (offset < data_len) tmp = LUT[ข้อมูล[ชดเชย] * 4096];” มีการเสนอวิธีการหลายวิธีในการดึงข้อมูลผ่านช่องทางด้านข้างซึ่งไปสิ้นสุดในแคชระหว่างการดำเนินการเก็งกำไร วิธีแรกขึ้นอยู่กับการวิเคราะห์ความเบี่ยงเบนในเวลาดำเนินการของคำสั่งโปรเซสเซอร์ “PREFETCH” (การดึงข้อมูลล่วงหน้า+เวลา) และวิธีที่สองเกี่ยวกับการเปลี่ยนแปลงการเปลี่ยนแปลงในการใช้พลังงานเมื่อดำเนินการ “PREFETCH” (การดึงข้อมูลล่วงหน้า+พลังงาน)

โปรดจำไว้ว่าช่องโหว่ Meltdown แบบคลาสสิกนั้นขึ้นอยู่กับข้อเท็จจริงที่ว่าในระหว่างการดำเนินการตามคำสั่งเชิงคาดเดาโปรเซสเซอร์สามารถเข้าถึงพื้นที่ข้อมูลส่วนตัวแล้วละทิ้งผลลัพธ์เนื่องจากสิทธิ์ที่ตั้งไว้ห้ามการเข้าถึงดังกล่าวจากกระบวนการผู้ใช้ ในโปรแกรม บล็อกที่ดำเนินการแบบเก็งกำไรจะถูกแยกออกจากรหัสหลักโดยสาขาที่มีเงื่อนไข ซึ่งในเงื่อนไขจริงจะเริ่มทำงานเสมอ แต่เนื่องจากข้อเท็จจริงที่ว่าคำสั่งแบบมีเงื่อนไขใช้ค่าที่คำนวณได้ซึ่งตัวประมวลผลไม่ทราบในระหว่างการดำเนินการยึดเอาเสียก่อน รหัสตัวเลือกสาขาทั้งหมดจะถูกดำเนินการแบบเก็งกำไร

เนื่องจากการดำเนินการที่ดำเนินการเชิงคาดเดาจะใช้แคชเดียวกันกับคำสั่งที่ดำเนินการตามปกติ จึงเป็นไปได้ในระหว่างการดำเนินการเชิงคาดเดาเพื่อตั้งค่าเครื่องหมายในแคชที่สะท้อนถึงเนื้อหาของแต่ละบิตในพื้นที่หน่วยความจำส่วนตัว จากนั้นในโค้ดที่ดำเนินการตามปกติเพื่อกำหนดค่าผ่านทางจังหวะเวลา การวิเคราะห์เข้าถึงข้อมูลที่แคชและไม่ใช่แคช

ที่มา: opennet.ru

เพิ่มความคิดเห็น