LVI เป็นการโจมตีประเภทใหม่ต่อกลไกการดำเนินการเชิงคาดเดาใน CPU

ที่ตีพิมพ์ ข้อมูลเกี่ยวกับการโจมตีประเภทใหม่ แอลวีไอ (การฉีดค่าโหลด, CVE-2020-0551) บนกลไกการดำเนินการเก็งกำไรใน CPU ของ Intel ซึ่งสามารถใช้เพื่อรั่วไหลคีย์และข้อมูลลับจากกลุ่ม Intel SGX และกระบวนการอื่นๆ

การโจมตีประเภทใหม่ขึ้นอยู่กับการจัดการโครงสร้างจุลภาคแบบเดียวกับที่ใช้ในการโจมตี MDS (การสุ่มตัวอย่างข้อมูลทางสถาปัตยกรรมจุลภาค) อสุรกายและการล่มสลาย. ในขณะเดียวกัน การโจมตีใหม่จะไม่ถูกบล็อกโดยวิธีการป้องกันการล่มสลาย, Spectre, MDS และการโจมตีอื่น ๆ ที่คล้ายกันที่มีอยู่ การป้องกัน LVI ที่มีประสิทธิภาพจำเป็นต้องเปลี่ยนแปลงฮาร์ดแวร์กับ CPU เมื่อจัดระเบียบการป้องกันโดยทางโปรแกรม โดยการเพิ่มคำสั่ง LFENCE โดยคอมไพเลอร์หลังจากการดำเนินการโหลดแต่ละครั้งจากหน่วยความจำ และแทนที่คำสั่ง RET ด้วย POP, LFENCE และ JMP โอเวอร์เฮดจะถูกบันทึกมากเกินไป - ตามที่นักวิจัยระบุว่า การป้องกันซอฟต์แวร์ที่สมบูรณ์จะนำไปสู่การลดลง ประสิทธิภาพ 2-19 เท่า

ความยากลำบากส่วนหนึ่งในการปิดกั้นปัญหาถูกชดเชยด้วยความจริงที่ว่าในปัจจุบัน การโจมตีเป็นไปตามทฤษฎีมากกว่าการปฏิบัติจริง (การโจมตีนั้นเป็นไปได้ในทางทฤษฎี แต่ยากมากที่จะนำไปใช้ และทำซ้ำได้ในการทดสอบสังเคราะห์เท่านั้น)
อินเทล จัดสรร ปัญหามีระดับอันตรายปานกลาง (5.6 เต็ม 10) และ ปล่อยออกมา อัปเดตเฟิร์มแวร์และ SDK สำหรับสภาพแวดล้อม SGX ซึ่งพยายามบล็อกการโจมตีโดยใช้วิธีแก้ปัญหา วิธีการโจมตีที่นำเสนอในปัจจุบันใช้ได้กับโปรเซสเซอร์ Intel เท่านั้น แต่ความเป็นไปได้ในการปรับ LVI สำหรับโปรเซสเซอร์อื่นๆ ที่สามารถโจมตีแบบ Meltdown ได้นั้นไม่สามารถตัดทิ้งได้

ปัญหาดังกล่าวได้รับการระบุเมื่อเดือนเมษายนปีที่แล้วโดยนักวิจัย Jo Van Bulck จากมหาวิทยาลัย Leuven หลังจากนั้นด้วยการมีส่วนร่วมของนักวิจัย 9 คนจากมหาวิทยาลัยอื่น ๆ วิธีการโจมตีขั้นพื้นฐาน XNUMX วิธีได้รับการพัฒนา ซึ่งแต่ละวิธีช่วยให้มีวิธีการเฉพาะเจาะจงมากขึ้น ตัวเลือก. ในเดือนกุมภาพันธ์ปีนี้ นักวิจัยจาก Bitdefender เองก็เช่นกัน ค้นพบ หนึ่งในรูปแบบการโจมตี LVI และรายงานไปยัง Intel ตัวแปรการโจมตีมีความโดดเด่นด้วยการใช้โครงสร้างไมโครสถาปัตยกรรมที่แตกต่างกัน เช่น บัฟเฟอร์การจัดเก็บข้อมูล (SB, Store Buffer), บัฟเฟอร์การเติม (LFB, Line Fill Buffer), บัฟเฟอร์สวิตช์บริบท FPU และแคชระดับแรก (L1D) ที่ใช้ก่อนหน้านี้ ในการโจมตีเช่น ZombieLoad, ริดเดิ้ล, ออกมาเสีย, LazyFP, ลางบอกเหตุ и Meltdown.

LVI เป็นการโจมตีประเภทใหม่ต่อกลไกการดำเนินการเชิงคาดเดาใน CPU

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

LVI เป็นการโจมตีประเภทใหม่ต่อกลไกการดำเนินการเชิงคาดเดาใน CPU

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

ข้อยกเว้น "ช่วยเหลือ" ซึ่งแตกต่างจากข้อยกเว้น "ข้อบกพร่อง" จะได้รับการจัดการภายในโดยโปรเซสเซอร์โดยไม่ต้องเรียกตัวจัดการซอฟต์แวร์ ความช่วยเหลือสามารถเกิดขึ้นได้ เช่น เมื่อบิต A (Accessed) หรือ D (Dirty) ในตารางเพจหน่วยความจำจำเป็นต้องได้รับการอัปเดต ปัญหาหลักในการดำเนินการโจมตีกระบวนการอื่นคือวิธีเริ่มต้นการช่วยเหลือโดยการจัดการกระบวนการของเหยื่อ ขณะนี้ยังไม่มีวิธีที่เชื่อถือได้ในการทำเช่นนี้ แต่เป็นไปได้ว่าจะพบได้ในอนาคต จนถึงขณะนี้ความเป็นไปได้ในการโจมตีได้รับการยืนยันแล้วสำหรับกลุ่ม Intel SGX เท่านั้น สถานการณ์อื่น ๆ เป็นไปตามทฤษฎีหรือทำซ้ำได้ในสภาวะสังเคราะห์ (ต้องเพิ่มอุปกรณ์บางอย่างลงในโค้ด)

LVI เป็นการโจมตีประเภทใหม่ต่อกลไกการดำเนินการเชิงคาดเดาใน CPU

LVI เป็นการโจมตีประเภทใหม่ต่อกลไกการดำเนินการเชิงคาดเดาใน CPU

เวกเตอร์การโจมตีที่เป็นไปได้:

  • การรั่วไหลของข้อมูลจากโครงสร้างเคอร์เนลสู่กระบวนการระดับผู้ใช้ การป้องกันเคอร์เนล Linux จากการโจมตี Spectre 1 รวมถึงกลไกการป้องกัน SMAP (Supervisor Mode Access Prevention) ช่วยลดโอกาสที่จะเกิดการโจมตี LVI ได้อย่างมาก การเพิ่มการป้องกันเพิ่มเติมให้กับเคอร์เนลอาจจำเป็น หากมีการระบุวิธีการโจมตี LVI ที่ง่ายกว่าในอนาคต
  • ข้อมูลรั่วไหลระหว่างกระบวนการต่างๆ การโจมตีจำเป็นต้องมีโค้ดบางชิ้นในแอปพลิเคชันและคำจำกัดความของวิธีการในการส่งข้อยกเว้นในกระบวนการเป้าหมาย
  • การรั่วไหลของข้อมูลจากสภาพแวดล้อมโฮสต์ไปยังระบบแขก การโจมตีถูกจัดประเภทว่าซับซ้อนเกินไป โดยต้องมีขั้นตอนที่ยากต่อการปฏิบัติและการคาดการณ์กิจกรรมในระบบ
  • ข้อมูลรั่วไหลระหว่างกระบวนการในระบบแขกที่แตกต่างกัน เวกเตอร์การโจมตีใกล้เคียงกับการจัดระเบียบข้อมูลรั่วไหลระหว่างกระบวนการต่างๆ แต่ยังต้องมีการจัดการที่ซับซ้อนเพิ่มเติมเพื่อหลีกเลี่ยงการแยกระหว่างระบบของแขก

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


ที่มา: opennet.ru

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