ซอฟต์แวร์ป้องกัน LVI ของ Google แสดงผลสำเร็จ 14 เท่า

โซล่า บริดจ์ จาก Google предложил สำหรับชุดคอมไพเลอร์ LLVM ซึ่งเป็นแพตช์ที่มีการใช้งานการป้องกัน SESES (Speculative Execution Side Effect Suppression) ซึ่งช่วยบล็อกการโจมตีกลไกการดำเนินการเชิงคาดเดาใน CPU ของ Intel เช่น แอลวีไอ. วิธีการป้องกันถูกนำไปใช้ในระดับคอมไพเลอร์และขึ้นอยู่กับการเพิ่มคำสั่งของคอมไพเลอร์เมื่อสร้างรหัสเครื่อง เลฟเฟนซ์ซึ่งจะถูกแทรกก่อนคำสั่งอ่านหรือเขียนหน่วยความจำแต่ละคำสั่ง รวมถึงก่อนคำสั่งสาขาแรกในกลุ่มคำสั่งที่สิ้นสุดบล็อก

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

ในการทดสอบที่ดำเนินการ การใช้การป้องกัน SESES สำหรับแพ็คเกจ BoringSSL ส่งผลให้จำนวนการดำเนินการต่อวินาทีที่ดำเนินการโดยไลบรารีลดลง 14 เท่า - ประสิทธิภาพของเวอร์ชันที่ได้รับการป้องกันของไลบรารีนั้นโดยเฉลี่ยเพียง 7.1% ของ เวอร์ชันที่ไม่มีการป้องกัน (ความแปรผันขึ้นอยู่กับการทดสอบจาก 4% ถึง 23% )

สำหรับการเปรียบเทียบ เสนอ ก่อนหน้านี้ สำหรับ GNU Assembler กลไกที่ทำการทดแทน LFENCE หลังจากการดำเนินการโหลดหน่วยความจำแต่ละครั้ง และก่อนที่คำสั่งสาขาบางคำสั่งจะแสดงประสิทธิภาพลดลงประมาณ 5 เท่า (22% ของโค้ดที่ไม่มีการป้องกัน) วิธีการป้องกันก็เช่นกัน เสนอ и ดำเนินการ โดยวิศวกรของ Intel แต่ผลการทดสอบประสิทธิภาพของมันยังไม่ได้เผยแพร่ ในขั้นต้น นักวิจัยที่ระบุการโจมตี LVI คาดการณ์ว่าประสิทธิภาพจะลดลง 2 ถึง 19 เท่าเมื่อใช้การป้องกันเต็มรูปแบบ

ที่มา: opennet.ru

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