นักวิจัย Google เจาะระบบความปลอดภัย CPU ของ AMD เปิดตัว Zentool สำหรับการจัดการไมโครโค้ด

BigGo Editorial Team
นักวิจัย Google เจาะระบบความปลอดภัย CPU ของ AMD เปิดตัว Zentool สำหรับการจัดการไมโครโค้ด

นักวิจัยด้านความปลอดภัยของ Google ได้ค้นพบช่องโหว่ที่สำคัญในระบบความปลอดภัยของไมโครโค้ด CPU ของ AMD ซึ่งทำให้สามารถควบคุมพฤติกรรมของโปรเซสเซอร์ได้อย่างสมบูรณ์ ทีมวิจัยได้เปิดตัว Zentool ซึ่งเป็นโปรแกรมอรรถประโยชน์ที่ช่วยให้ผู้ใช้สามารถวิเคราะห์ จัดการ และสร้างแพตช์ไมโครโค้ดสำหรับโปรเซสเซอร์ AMD Zen

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

ช่องโหว่ด้านความปลอดภัย

ปัญหาความปลอดภัยนี้ส่งผลกระทบต่อโปรเซสเซอร์ AMD ตั้งแต่ Zen1 จนถึง Zen4 โดยสถานะช่องโหว่ของ Zen5 ยังอยู่ระหว่างการตรวจสอบ ตามความเห็นจากนักวิจัย ข้อผิดพลาดที่สำคัญของ AMD คือการใช้คีย์ตัวอย่างจาก AES-CMAC RFC เป็นคีย์ที่ใช้ในการเซ็นจริง การมองข้ามนี้ทำให้โมเดลความปลอดภัยทั้งหมดที่ป้องกันไมโครโค้ด CPU ล้มเหลว

การเข้ารหัส/ลายเซ็นใดๆ ที่สามารถถูกแฮกได้ด้วยซอฟต์แวร์บนฮาร์ดแวร์ราคาไม่แพงก็คือ: ใช้ไม่ได้แล้ว

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

ข้อมูลสำคัญเกี่ยวกับช่องโหว่ไมโครโค้ดของ AMD

  • ฮาร์ดแวร์ที่ได้รับผลกระทบ: โปรเซสเซอร์ AMD Zen1 ถึง Zen4
  • ช่องโหว่: การใช้คีย์ตัวอย่างจาก AES-CMAC RFC สำหรับการเซ็นไมโครโค้ด
  • เครื่องมือที่เปิดตัว: Zentool - เครื่องมือจัดการไมโครโค้ดของ AMD Zen
  • การแก้ไข: AMD ได้ออกการแก้ไขโดยใช้ฟังก์ชันแฮชที่ปลอดภัยแบบกำหนดเองควบคู่กับการอัปเดต AMD Secure Processor
  • ทีมวิจัย: ทีมความปลอดภัยฮาร์ดแวร์ของ Google (Josh Eads, Matteo Rizzo, Kristoffer Janke, Eduardo Vela Nava, Tavis Ormandy, Sophie Schmiege และคนอื่นๆ)

ความสามารถของ Zentool

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

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

ผลกระทบและการบรรเทา

AMD ได้ออกการแก้ไขที่ปรับเปลี่ยนกระบวนการตรวจสอบไมโครโค้ดให้ใช้ฟังก์ชันแฮชที่ปลอดภัยแบบกำหนดเอง สิ่งนี้จับคู่กับการอัปเดต AMD Secure Processor ที่ช่วยให้มั่นใจว่ากระบวนการตรวจสอบแพตช์ได้รับการอัปเดตก่อนที่คอร์ x86 จะพยายามติดตั้งไมโครโค้ดที่ถูกแก้ไข

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

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

ข้อพิจารณาด้านจริยธรรมและกฎหมาย

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

มีการกล่าวถึงงานวิจัยทางวิชาการก่อนหน้านี้เกี่ยวกับไมโครโค้ด CPU ของ AMD K8 และ K10 เป็นตัวอย่าง ซึ่งนักวิจัยสามารถทำลายการเข้ารหัส (ที่อธิบายว่าคล้ายกับการสลับข้อมูล) และเปิดตัวเครื่องมือโดยไม่มีผลทางกฎหมายจาก AMD

ทีมความปลอดภัยด้านฮาร์ดแวร์ของ Google ที่อยู่เบื้องหลังงานนี้ประกอบด้วย Josh Eads, Matteo Rizzo, Kristoffer Janke, Eduardo Vela Nava, Tavis Ormandy, Sophie Schmiege และคนอื่นๆ งานของพวกเขาต่อยอดจากงานวิจัยก่อนหน้านี้ รวมถึงบทความ Reverse Engineering x86 Processor Microcode โดย Koppe และคณะ จาก Ruhr-Universitat Bochum

อ้างอิง: Zentool -- AMD Zen Microcode Manipulation Utility