กลุ่มของ นักวิจัยจากมหาวิทยาลัยเวอร์จิเนียและแคลิฟอร์เนียได้นำเสนอการโจมตีรูปแบบใหม่ ไปยังโครงสร้างสถาปัตยกรรมขนาดเล็กของโปรเซสเซอร์ Intel และ AMD
วิธีการโจมตีที่เสนอ มีความเกี่ยวข้องกับการใช้แคชกลางของการดำเนินการขนาดเล็ก (micro-op cache) ในโปรเซสเซอร์ซึ่งสามารถใช้เพื่อดึงข้อมูลที่ตัดสินในระหว่างการดำเนินการคำสั่งเชิงคาดเดา
เป็นที่สังเกตว่า วิธีการใหม่มีประสิทธิภาพดีกว่าการโจมตีของ Spectre v1 อย่างมาก ในแง่ของประสิทธิภาพทำให้ยากต่อการตรวจจับการโจมตีและไม่ถูกปิดกั้นโดยวิธีการป้องกันการโจมตีผ่านช่องทางด้านข้างที่มีอยู่ซึ่งออกแบบมาเพื่อป้องกันช่องโหว่ที่เกิดจากการดำเนินการตามคำสั่งโดยคาดเดา
ตัวอย่างเช่นการใช้คำสั่ง LFENCE จะบล็อกการรั่วไหลในขั้นตอนหลังของการดำเนินการเก็งกำไร แต่ไม่ได้ป้องกันการรั่วไหลผ่านโครงสร้างสถาปัตยกรรมขนาดเล็ก
วิธีนี้มีผลกับโปรเซสเซอร์ Intel และ AMD รุ่นที่วางจำหน่ายตั้งแต่ปี 2011 รวมถึง Intel Skylake และ AMD Zen ซีพียูสมัยใหม่แบ่งคำสั่งโปรเซสเซอร์ที่ซับซ้อนออกเป็นไมโครปฏิบัติการแบบ RISC ที่ง่ายขึ้น ซึ่งแคชไว้ในแคชแยกต่างหาก
แคชนี้ โดยพื้นฐานแล้วแตกต่างจากแคชระดับบนสุดไม่สามารถเข้าถึงได้โดยตรงและทำหน้าที่เป็นบัฟเฟอร์สตรีมเพื่อเข้าถึงผลลัพธ์ของการถอดรหัสคำแนะนำ CISC ลงในโครงสร้างจุลภาคของ RISC ได้อย่างรวดเร็ว
อย่างไรก็ตามนักวิจัย ได้พบวิธีสร้างเงื่อนไขที่เกิดขึ้นระหว่างความขัดแย้งในการเข้าถึงแคช และอนุญาตให้ตัดสินเนื้อหาของแคชของการดำเนินการขนาดเล็กโดยการวิเคราะห์ความแตกต่างของเวลาดำเนินการของการกระทำบางอย่าง
แคช micro-op บนโปรเซสเซอร์ Intel ถูกแบ่งส่วนโดยสัมพันธ์กับเธรดของ CPU (Hyper-Threading) ในขณะที่โปรเซสเซอร์ AMD Zen ใช้แคชที่ใช้ร่วมกัน ซึ่งสร้างเงื่อนไขสำหรับการรั่วไหลของข้อมูลไม่เพียง แต่ภายในเธรดเดียวของการดำเนินการเท่านั้น แต่ยังรวมถึงระหว่างเธรดต่างๆใน SMT (การรั่วไหลของข้อมูลเป็นไปได้ระหว่างโค้ดที่รันบนคอร์ตรรกะที่แตกต่างกันของ CPU)
นักวิจัยได้เสนอวิธีการพื้นฐาน เพื่อตรวจจับการเปลี่ยนแปลงแคชของไมโครออปและสถานการณ์การโจมตีต่างๆที่อนุญาตให้สร้างช่องทางการส่งข้อมูลที่แอบแฝงและใช้รหัสที่มีช่องโหว่เพื่อกรองข้อมูลที่เป็นความลับทั้งภายในกระบวนการเดียว (ตัวอย่างเช่นเพื่อจัดระเบียบกระบวนการข้อมูลรั่วไหลเมื่อเรียกใช้ครั้งที่สาม -party code ในเอ็นจิน JIT และเครื่องเสมือน) และระหว่างเคอร์เนลและกระบวนการในพื้นที่ผู้ใช้
ด้วยการจัดเตรียมรูปแบบของการโจมตี Spectre โดยใช้แคช micro-op นักวิจัยสามารถบรรลุปริมาณงานที่ 965.59 Kbps โดยมีอัตราความผิดพลาด 0.22% และ 785.56 Kbps เมื่อใช้การแก้ไขข้อผิดพลาดในกรณีที่มีการรั่วไหลภายในหน่วยความจำเดียวกัน ที่อยู่. และระดับสิทธิ์
ด้วยการรั่วไหลซึ่งครอบคลุมระดับสิทธิ์ที่แตกต่างกัน (ระหว่างเคอร์เนลและพื้นที่ผู้ใช้) ปริมาณงานคือ 85,2 Kbps พร้อมการแก้ไขข้อผิดพลาดเพิ่มเติมและ 110,96 Kbps พร้อมอัตราข้อผิดพลาด 4%
เมื่อโจมตีโปรเซสเซอร์ AMD Zen ทำให้เกิดการรั่วไหลระหว่างคอร์ของ CPU แบบลอจิคัลที่แตกต่างกันปริมาณงานคือ 250 Kbps โดยมีอัตราข้อผิดพลาด 5,59% และ 168,58 Kbps พร้อมการแก้ไขข้อผิดพลาด เมื่อเทียบกับวิธี Spectre v1 แบบคลาสสิกการโจมตีใหม่เร็วขึ้น 2,6 เท่า
การลดการโจมตีด้วยแคช micro-op คาดว่าจะต้องมีการเปลี่ยนแปลงที่ลดประสิทธิภาพมากกว่าเมื่อเปิดใช้งานการป้องกัน Spectre
ในฐานะการประนีประนอมที่ดีที่สุดจึงเสนอให้ปิดกั้นการโจมตีดังกล่าวโดยไม่ปิดการใช้งานแคช แต่ในระดับของการตรวจสอบความผิดปกติและกำหนดสถานะแคชทั่วไปของการโจมตี
เช่นเดียวกับการโจมตีของ Spectre การจัดการการรั่วไหลของเคอร์เนลหรือกระบวนการอื่น ๆ จำเป็นต้องมีการเรียกใช้สคริปต์บางอย่าง (แกดเจ็ต) ในด้านของกระบวนการที่เป็นเหยื่อซึ่งนำไปสู่การดำเนินการตามคำสั่งเชิงคาดเดา
พบอุปกรณ์ดังกล่าวประมาณ 100 เครื่องในเคอร์เนลลินุกซ์และจะถูกลบออก แต่มักพบโซลูชันเพื่อสร้างอุปกรณ์เหล่านี้เช่นอุปกรณ์ที่เกี่ยวข้องกับการเปิดใช้โปรแกรม BPF ที่สร้างขึ้นเป็นพิเศษในเคอร์เนล
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.