GDDRHammer และ GeForge: สองท่าโจมตีใหม่ของ Rowhammer บน GPU

ประเด็นสำคัญ:
  • นักวิจัยพัฒนาเทคนิคเพื่อขยายการโจมตีแบบ Rowhammer บนหน่วยความจำ GDDR6 ทำให้สามารถเปลี่ยนแปลงข้อมูลได้หลายพันบิต
  • การโจมตี GDDRHammer และ GeForge จะทำการเปลี่ยนแปลงตัวจัดสรรหน่วยความจำเพื่อวางตารางเพจไว้ในเซกเตอร์ที่เสี่ยงต่อการถูกโจมตี
  • การเปลี่ยนแปลงบิตในตารางเพจจะทำให้ผู้โจมตีสามารถเปลี่ยนเส้นทางตัวชี้หน่วยความจำไปยังโครงสร้างที่ผู้โจมตีควบคุมได้
  • ด้วยการแก้ไขฟิลด์การเปิดระบบในรายการตาราง GPU จะสามารถเข้าถึงหน่วยความจำทางกายภาพของโฮสต์ได้โดยตรงทั้งการอ่านและการเขียน
  • ช่องโหว่นี้ส่งผลกระทบต่อรุ่นต่างๆ เช่น RTX 3060 และ RTX A6000 ซึ่งจำเป็นต้องเปิดใช้งาน IOMMU เป็นมาตรการป้องกันหลัก

การโจมตี GPU ของ Rowhammer

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

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

การหลีกเลี่ยงมาตรการบรรเทาและรูปแบบต่างๆ

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

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

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

แนวทางเหล่านี้ก่อให้เกิดผลลัพธ์ที่ยอดเยี่ยม วิธีการของ GeForge ทำให้เกิดการเปลี่ยนแปลงบิต 1,171 จุดใน RTX 3060 สำหรับผู้บริโภค และ 202 จุดใน RTX A6000 สำหรับมืออาชีพในขณะที่ GDDRHammer สามารถทำการเปลี่ยนแปลงได้เฉลี่ย 1,032 ครั้งต่อกิกะไบต์ ซึ่งเพิ่มขึ้นถึง 64 เท่าเมื่อเทียบกับความพยายามครั้งก่อนๆ

การจัดการตารางเพจและการนวดหน่วยความจำ

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

การโจมตี GDDRHammer ใช้การแมปหน่วยความจำร่วมเพื่อโจมตีตัวจัดสรรหน่วยความจำลดช่องว่างระหว่างพื้นที่ตารางเพจและหน่วยความจำที่ผู้ใช้ควบคุม GeForge มุ่งเน้นเฉพาะการทำให้ข้อมูลในไดเร็กทอรี Pages เสียหาย 0 (PD0)

ด้วยการจัดสรรและปลดปล่อยส่วนต่าง ๆ ของหน่วยความจำเสมือนแบบรวม (Unified Virtual Memory) อย่างระมัดระวัง ผู้โจมตีจะสั่งการสร้างโครงสร้าง PD0 ใหม่ไปยังซับเพจขนาด 4 กิโลไบต์ที่เฉพาะเจาะจง เมื่ออยู่ในตำแหน่งที่กำหนดแล้ว กระบวนการจะเปลี่ยนแปลงบิตภายในตัวชี้ที่อยู่ทางกายภาพของรายการ โดยเปลี่ยนเส้นทางไปยังตารางเพจปลอมที่ควบคุมโดยโค้ดที่เป็นอันตรายอย่างสมบูรณ์

การยกระดับสิทธิ์ผ่านทางบัส PCIe

El การควบคุมตารางเพจของการ์ดกราฟิกนั้นเทียบเท่ากับการควบคุมหน่วยประมวลผลกลางของคอมพิวเตอร์โดยตรงรายการในตารางเพจของ NVIDIA มีฟิลด์เปิดเฉพาะที่กำหนดว่าที่อยู่ทางกายภาพที่เกี่ยวข้องนั้นอยู่ในหน่วยความจำภายในของอุปกรณ์หรือในหน่วยความจำของระบบโฮสต์ โดยการแก้ไขช่องนี้ในข้อมูลที่ปลอมแปลงขึ้น การดำเนินการใดๆ การอ่านหรือการเขียนในภายหลัง ข้อมูลที่สร้างโดย GPU จะถูกส่งผ่านบัส PCIe ไปยัง RAM ทางกายภาพโดยตรง ของเจ้าภาพ

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

ความแพร่หลายของฮาร์ดแวร์และมาตรการลดผลกระทบ

Laการทดสอบอย่างละเอียดได้ยืนยันแล้วว่าช่องโหว่นี้พบได้ทั่วไปในฮาร์ดแวร์ปัจจุบันการศึกษาของ GDDRHammer ได้ประเมินการ์ดกราฟิกประสิทธิภาพสูง 25 รุ่น พบว่า 16 จาก 17 รุ่นของ RTX A6000 ที่ใช้สถาปัตยกรรม Ampere มีความเสี่ยงต่อการโจมตีเหล่านี้ แม้ว่าหน่วยความจำแบบแก้ไขข้อผิดพลาด (ECC) จะช่วยลดความน่าเชื่อถือของการโจมตีได้โดยการแก้ไขข้อผิดพลาดระดับบิตเดียว แต่คุณสมบัตินี้ถูกปิดใช้งานโดยค่าเริ่มต้นในการ์ดสำหรับเวิร์กสเตชันหลายรุ่นเนื่องจากส่งผลเสียต่อประสิทธิภาพ และไม่มีอยู่ในการ์ดรุ่นที่วางจำหน่ายทั่วไปเลย

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

สุดท้ายนี้ หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ คุณสามารถศึกษารายละเอียดได้ใน ลิงค์ต่อไปนี้