Blacksmith - การโจมตีครั้งใหม่กับหน่วยความจำ DRAM และชิป DDR4

ทีมนักวิจัยจาก ETH Zurich, Vrije Universiteit Amsterdam และ Qualcomm ได้เผยแพร่วิธีการโจมตี RowHammer ใหม่ซึ่งสามารถเปลี่ยนแปลงเนื้อหาของแต่ละบิตของ Dynamic Random Access Memory (DRAM) การโจมตีนี้มีชื่อรหัสว่า Blacksmith และระบุว่าเป็น CVE-2021-42114 ชิป DDR4 จำนวนมากที่ติดตั้งการป้องกันวิธีการคลาส RowHammer ที่รู้จักก่อนหน้านี้มีความอ่อนไหวต่อปัญหา เครื่องมือสำหรับทดสอบระบบของคุณเพื่อหาช่องโหว่ได้รับการเผยแพร่บน GitHub

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

เพื่อป้องกัน RowHammer ผู้ผลิตชิปเสนอกลไก TRR (Target Row Refresh) ซึ่งป้องกันการเสียหายของเซลล์ในแถวที่อยู่ติดกัน แต่เนื่องจากการป้องกันนั้นขึ้นอยู่กับหลักการของ "ความปลอดภัยโดยความสับสน" จึงไม่สามารถแก้ปัญหาได้ที่ รูต แต่ได้รับการปกป้องจากกรณีพิเศษที่ทราบเท่านั้น ซึ่งทำให้ง่ายต่อการค้นหาวิธีเลี่ยงการป้องกัน ตัวอย่างเช่น ในเดือนพฤษภาคม Google เสนอวิธี Half-Double ซึ่งไม่ได้รับผลกระทบจากการป้องกัน TRR เนื่องจากการโจมตีส่งผลกระทบต่อเซลล์ที่ไม่ได้อยู่ติดกับเป้าหมายโดยตรง

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

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

วิธีการนี้มีประสิทธิภาพมากกว่าวิธีที่เสนอไว้ก่อนหน้านี้อย่างมากในการเลี่ยงผ่าน TRR - นักวิจัยจัดการเพื่อให้เกิดความผิดเพี้ยนของบิตในชิปหน่วยความจำ DDR40 ที่แตกต่างกันทั้งหมด 4 ตัวที่เพิ่งซื้อโดย Samsung, Micron, SK Hynix และผู้ผลิตที่ไม่รู้จัก (ผู้ผลิตคือ ไม่ได้ระบุไว้ใน 4 ชิป) สำหรับการเปรียบเทียบ วิธี TRRespass ที่เสนอโดยนักวิจัยคนเดียวกันก่อนหน้านี้มีประสิทธิภาพกับชิปเพียง 13 จาก 42 ตัวที่ทดสอบในขณะนั้น

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

ตัวอย่างที่เป็นประโยชน์ ได้แก่ วิธีการใช้ Blacksmith เพื่อเปลี่ยนเนื้อหาของรายการในตารางหน้าหน่วยความจำ (PTE, รายการตารางหน้า) เพื่อรับสิทธิ์เคอร์เนล ซึ่งทำให้คีย์สาธารณะ RSA-2048 ที่เก็บไว้ในหน่วยความจำใน OpenSSH เสียหาย (คุณสามารถนำคีย์สาธารณะเข้ามาได้ เครื่องเสมือนของบุคคลอื่นเพื่อจับคู่คีย์ส่วนตัวของผู้โจมตีเพื่อเชื่อมต่อกับ VM ของเหยื่อ) และข้ามการตรวจสอบข้อมูลรับรองโดยการแก้ไขหน่วยความจำของกระบวนการ sudo เพื่อรับสิทธิ์รูท ขึ้นอยู่กับชิป การโจมตีจะใช้เวลาตั้งแต่ 3 วินาทีไปจนถึงหลายชั่วโมงในการเปลี่ยนบิตเป้าหมายหนึ่งรายการ

นอกจากนี้ เรายังสังเกตเห็นการเผยแพร่เฟรมเวิร์ก LiteX Row Hammer Tester แบบเปิดสำหรับทดสอบวิธีป้องกันหน่วยความจำจากการโจมตีคลาส RowHammer ซึ่งพัฒนาโดย Antmicro สำหรับ Google เฟรมเวิร์กนี้อิงตามการใช้ FPGA เพื่อควบคุมคำสั่งที่ส่งโดยตรงไปยังชิป DRAM อย่างสมบูรณ์ เพื่อกำจัดอิทธิพลของตัวควบคุมหน่วยความจำ มีการเสนอชุดเครื่องมือใน Python สำหรับการโต้ตอบกับ FPGA เกตเวย์ที่ใช้ FPGA ประกอบด้วยโมดูลสำหรับการถ่ายโอนข้อมูลแพ็กเก็ต (กำหนดรูปแบบการเข้าถึงหน่วยความจำ), Payload Executor, ตัวควบคุมที่ใช้ LiteDRAM (ประมวลผลตรรกะทั้งหมดที่จำเป็นสำหรับ DRAM รวมถึงการเปิดใช้งานแถวและการอัปเดตหน่วยความจำ) และ CPU VexRiscv การพัฒนาของโครงการได้รับการเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 รองรับแพลตฟอร์ม FPGA หลากหลาย รวมถึง Lattice ECP5, Xilinx Series 6, 7, UltraScale และ UltraScale+

ที่มา: opennet.ru

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