ไม่กี่สัปดาห์ที่ผ่านมา เราได้แบ่งปันข่าวคราวเกี่ยวกับเรื่องนี้บนบล็อก ช่องโหว่ EntrySign ซึ่งช่วยให้หลีกเลี่ยงกลไกการตรวจสอบลายเซ็นดิจิทัลในระหว่างการอัปเดตไมโครโค้ดในโปรเซสเซอร์ AMD
อะไรก็ตาม ในตอนแรกดูเหมือนว่าจะเป็นข้อบกพร่องที่จำกัดเฉพาะรุ่น Zen 1 ถึง Zen 4 ปัจจุบันขยายไปสู่ชิปรุ่นปัจจุบันเช่น Ryzen 9000, EPYC 9005, Ryzen AI 300 และ Ryzen 9000HX ข้อบกพร่องนี้ทำให้สามารถปรับเปลี่ยนไมโครโค้ด CPU ได้ภายใต้เงื่อนไขบางประการโดยการข้ามกลไกการตรวจสอบลายเซ็นดิจิทัล ซึ่งส่งผลกระทบอย่างร้ายแรงต่อความปลอดภัยของระบบเสมือนจริง
ต้นตอของปัญหา มันอยู่ในไฟล์ การใช้อัลกอริทึม CMAC อย่างไม่เหมาะสม ในระหว่างกระบวนการตรวจสอบไมโครโค้ด เอเอ็มดี โดยปกติจะใช้คีย์ RSA ส่วนตัว เพื่อลงนามเนื้อหาการอัพเดตเหล่านี้ในรูปแบบดิจิทัลและคีย์สาธารณะที่รวมอยู่ในแพตช์เพื่อตรวจสอบความถูกต้องของไมโครโค้ด ในขณะที่กำลังโหลด อย่างไรก็ตาม แฮชคีย์สาธารณะที่ควรรับประกันความสมบูรณ์นี้ได้ถูกสร้างขึ้นโดยใช้ AES-CMAC ซึ่งเป็น MAC แบบเข้ารหัสที่ไม่เหมือนกับฟังก์ชันแฮชที่แข็งแกร่ง ตรงที่ไม่มีการรับประกันว่าจะไม่เกิดการชนกัน
การออกแบบนี้ นอกจากนี้ AMD ยังใช้คีย์เข้ารหัสทั่วไปอีกด้วย สำหรับซีพียูทั้งหมดของคุณตั้งแต่ Zen 1ช่วยให้นักวิจัยสามารถดึงคีย์จากโปรเซสเซอร์ที่ได้รับผลกระทบได้ และนำกลับมาใช้ใหม่เพื่อจัดการแพทช์ไมโครโค้ดบนคอมพิวเตอร์เครื่องอื่น น่าแปลกใจที่คีย์นี้ตรงกับตัวอย่างสาธารณะของแนวทางการเข้ารหัส NIST SP 800-38B ซึ่งแสดงให้เห็นถึงการใช้แนวทางการเข้ารหัสที่ดีอย่างไม่ระมัดระวัง
ไมโครโค้ดปลอม ลายเซ็นถูกต้อง
จากจุดอ่อนนี้ นักวิจัยสามารถสร้างคีย์สาธารณะที่สร้างแฮชแบบเดียวกับคีย์ดั้งเดิมของ AMD ได้ซึ่งพวกเขา อนุญาตให้สร้างแพทช์ปลอมที่สามารถหลีกเลี่ยงการควบคุมความสมบูรณ์ได้- การปะทะกันเหล่านี้เกิดขึ้นได้โดยการแทรกบล็อกเพิ่มเติมที่ส่วนท้ายของไมโครโค้ด ซึ่งดูเหมือนสุ่มแต่ได้รับการคำนวณอย่างรอบคอบ ช่วยให้ลายเซ็นดิจิทัลยังคงไม่บุบสลาย วิธีนี้ช่วยให้สามารถเปลี่ยนแปลงพฤติกรรมภายในของโปรเซสเซอร์ได้ โดยไม่ต้องส่งสัญญาณเตือน
กระบวนการนี้ได้รับการอำนวยความสะดวกโดยเครื่องมือวิเคราะห์ เช่น Zentool ชุดยูทิลิตี้โอเพนซอร์สที่ช่วยให้คุณศึกษาไมโครโค้ดของ AMD และเตรียมแพตช์ที่ปรับเปลี่ยนแล้ว หากต้องการให้การโจมตีประเภทนี้เกิดขึ้นจริง ผู้โจมตีจะต้องมีสิทธิ์ระดับ Ring 0 นั่นคือ การเข้าถึงระบบปฏิบัติการในระดับสูงสุด ซึ่งสามารถทำได้ในสภาพแวดล้อมเสมือนจริง หากไฮเปอร์ไวเซอร์ถูกบุกรุก หรือผ่านการกำหนดค่าเทคโนโลยีที่ไม่ปลอดภัย เช่น VT-x หรือ AMD-V
ผลกระทบต่อ AMD SEV และการจำลองเสมือนที่ปลอดภัย
นอกเหนือจากการจัดการไมโครโค้ดแล้ว EntrySign ยังก่อให้เกิดภัยคุกคามโดยตรงต่อ AMD SEV (Secure Encrypted Virtualization) และส่วนขยาย SEV-SNP (Secure Nested Paging) ซึ่งเป็นเทคโนโลยีที่ออกแบบมาเพื่อรับรองความสมบูรณ์และความลับของเครื่องเสมือน แม้จะเผชิญกับการโจมตีจากไฮเปอร์ไวเซอร์หรือระบบโฮสต์ก็ตาม ช่องโหว่นี้ทำให้เกิดการแทรกแซงรีจิสเตอร์โปรเซสเซอร์ที่ได้รับการป้องกัน แก้ไขตารางเพจแบบซ้อน และเปลี่ยนแปลงพฤติกรรมของระบบแขก ส่งผลให้ความปลอดภัยลดลงอย่างมาก
มาตรการตอบสนองและบรรเทาผลกระทบของ AMD
ต้องเผชิญกับสถานการณ์นี้ AMD เริ่มแจกจ่ายอัพเดตไมโครโค้ดเพื่อแก้ไขจุดบกพร่องแล้วหรือถึงแม้ว่าในระบบที่ใช้ SEV-SNP ก็จำเป็นต้องอัปเดตเฟิร์มแวร์โมดูล SEV ด้วย ซึ่งต้องมีการอัปเดต BIOS บริษัทได้ส่งแพ็คเกจใหม่ให้กับผู้ผลิตแล้ว เรียกว่า ComboAM5PI 1.2.0.3c AGESA แต่คาดว่าแพตช์ขั้นสุดท้ายอาจต้องใช้เวลาหลายสัปดาห์หรือหลายเดือนจึงจะพร้อมใช้งานให้ผู้ใช้ปลายทาง
นอกจากนี้แล้ว วิศวกรของ AMD เสนอแพตช์สำหรับเคอร์เนล Linux เพื่อบล็อกการโหลดไมโครโค้ด อย่างไม่เป็นทางการ มาตรการนี้มีวัตถุประสงค์เพื่อป้องกันการแพร่กระจายของแพทช์ที่แก้ไขโดยบุคคลที่สาม เช่น แพทช์ที่สร้างโดยผู้ที่ชื่นชอบจากชิ้นส่วน BIOS ที่ถูกแยกออกมา ในระหว่างนี้ขอแนะนำอย่างยิ่งให้รอการอัปเดต BIOS อย่างเป็นทางการและหลีกเลี่ยงการติดตั้งเวอร์ชันที่ไม่ผ่านการตรวจสอบ
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียดได้ในไฟล์ ลิงค์ต่อไปนี้