CROSSTalk - ช่องโหว่ใน CPU ของ Intel ที่นำไปสู่การรั่วไหลของข้อมูลระหว่างคอร์

ทีมนักวิจัยจาก Vrije Universiteit Amsterdam ได้ระบุสิ่งใหม่ จุดอ่อน (CVE-2020-0543) ในโครงสร้างไมโครสถาปัตยกรรมของโปรเซสเซอร์ Intel โดยมีความโดดเด่นตรงที่ช่วยให้คุณสามารถกู้คืนผลลัพธ์ของการดำเนินการตามคำสั่งบางอย่างที่ดำเนินการบนคอร์ CPU อื่น นี่เป็นช่องโหว่แรกในกลไกการดำเนินการคำสั่งเก็งกำไรที่ทำให้เกิดการรั่วไหลของข้อมูลระหว่างคอร์ CPU แต่ละตัว (ก่อนหน้านี้การรั่วไหลถูกจำกัดไว้ที่เธรดที่แตกต่างกันของคอร์เดียวกัน) นักวิจัยตั้งชื่อปัญหาว่า CROSSTalk แต่ เอกสารของอินเทล ช่องโหว่นี้เรียกว่า SRBDS (การสุ่มตัวอย่างข้อมูลบัฟเฟอร์การลงทะเบียนพิเศษ)

ความเปราะบางเกี่ยวข้องกับ นำเสนอ ปีที่แล้วในชั้นเรียนของปัญหา MDS (Microarchitectural Data Sampling) และอยู่บนพื้นฐานของการประยุกต์ใช้วิธีการวิเคราะห์ช่องทางด้านข้างกับข้อมูลในโครงสร้างไมโครสถาปัตยกรรม หลักการของการดำเนินงาน CROSSTalk ใกล้จะมีช่องโหว่แล้ว ริดเดิ้ลแต่ต่างกันตรงที่มาของการรั่วไหล
ช่องโหว่ใหม่นี้จัดการการรั่วไหลของบัฟเฟอร์ระดับกลางที่ไม่มีเอกสารก่อนหน้านี้ซึ่งใช้ร่วมกันโดยคอร์ CPU ทั้งหมด

CROSSTalk - ช่องโหว่ใน CPU ของ Intel ที่นำไปสู่การรั่วไหลของข้อมูลระหว่างคอร์

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

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

CROSSTalk - ช่องโหว่ใน CPU ของ Intel ที่นำไปสู่การรั่วไหลของข้อมูลระหว่างคอร์

CROSSTalk - ช่องโหว่ใน CPU ของ Intel ที่นำไปสู่การรั่วไหลของข้อมูลระหว่างคอร์

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


ปัญหา อ่อนแอ โปรเซสเซอร์เดสก์ท็อป โมบายล์ และเซิร์ฟเวอร์ของ Intel ที่หลากหลาย รวมถึง Core i3, i5, i7, i9, m3, Celeron (ซีรีส์ J, G และ N), Atom (ซีรีส์ C, E และ X), Xeon (E3, E5, ตระกูล E7 , W และ D), Xeon Scalable ฯลฯ เป็นที่น่าสังเกตว่า Intel ได้รับแจ้งถึงช่องโหว่ในเดือนกันยายน 2018 และในเดือนกรกฎาคม 2019 มีการจัดหาต้นแบบการหาประโยชน์เพื่อสาธิตการรั่วไหลของข้อมูลระหว่างคอร์ CPU แต่การพัฒนาการแก้ไขล่าช้าเนื่องจากความซับซ้อนในการใช้งาน การอัปเดตไมโครโค้ดที่นำเสนอในวันนี้จะแก้ไขปัญหาโดยการเปลี่ยนลักษณะการทำงานของคำสั่ง RDRAND, RDSEED และ EGETKEY เพื่อเขียนทับข้อมูลในบัฟเฟอร์ที่ใช้ร่วมกันเพื่อป้องกันไม่ให้ข้อมูลตกค้างตกค้างอยู่ที่นั่น นอกจากนี้ การเข้าถึงบัฟเฟอร์จะถูกหยุดชั่วคราวจนกว่าเนื้อหาจะถูกอ่านและเขียนใหม่

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

ที่มา: opennet.ru

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