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

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

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

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

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

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

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

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

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

เล่นวิดีโอ

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

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster