มีการแนะนำช่องโหว่ระดับใหม่ในโปรเซสเซอร์ Intel

อินเทล การตีพิมพ์ ข้อมูลเกี่ยวกับใหม่ ระดับความเปราะบาง ในโปรเซสเซอร์ของพวกเขา - MDS (การสุ่มตัวอย่างข้อมูลทางสถาปัตยกรรมจุลภาค) เช่นเดียวกับการโจมตี Spectre ครั้งก่อน ปัญหาใหม่ๆ อาจทำให้เกิดการรั่วไหลของข้อมูลส่วนตัวจากระบบปฏิบัติการ เครื่องเสมือน และกระบวนการอื่นๆ มีการกล่าวหาว่าปัญหาดังกล่าวได้รับการระบุครั้งแรกโดยพนักงานและพันธมิตรของ Intel ในระหว่างการตรวจสอบภายใน หลังจากนั้นนักวิจัยอิสระได้ให้ข้อมูลเกี่ยวกับปัญหาที่คล้ายกันแก่ Intel โปรเซสเซอร์ AMD และ ARM ไม่ได้รับผลกระทบจากปัญหานี้

จากปัญหาที่ระบุโดยนักวิจัยจากมหาวิทยาลัยเทคนิคแห่งกราซ (ออสเตรีย) ที่พัฒนา การโจมตีช่องด้านข้างที่ใช้งานได้จริง:

  • ZombieLoad (รูปแบบไฟล์ PDF) - ช่วยให้คุณสามารถดึงข้อมูลที่เป็นความลับจากกระบวนการอื่น ระบบปฏิบัติการ เครื่องเสมือน และเครือข่ายที่มีการป้องกัน (TEE, Trusted Execution Environment) ตัวอย่างเช่น ความสามารถในการกำหนดประวัติการเปิดเพจในเบราว์เซอร์ของ Tor ที่ทำงานอยู่ในเครื่องเสมือนอื่นนั้นแสดงให้เห็น เช่นเดียวกับการกำหนดคีย์การเข้าถึงและรหัสผ่านที่ใช้ในแอปพลิเคชัน


  • ริดเดิ้ล (รูปแบบไฟล์ PDF) - ช่วยให้ข้อมูลรั่วไหลระหว่างพื้นที่แยกต่างๆ ในโปรเซสเซอร์ Intel เช่น บัฟเฟอร์การเติม บัฟเฟอร์การจัดเก็บข้อมูล และพอร์ตโหลด ตัวอย่างของการโจมตีจะแสดงเพื่อจัดระเบียบการรั่วไหลจากกระบวนการอื่น ระบบปฏิบัติการ เครื่องเสมือน และเครือข่ายที่ได้รับการป้องกัน ตัวอย่างเช่น แสดงวิธีค้นหาเนื้อหาของแฮชรหัสผ่านรูทจาก /etc/shadow ในระหว่างความพยายามตรวจสอบสิทธิ์เป็นระยะ (การโจมตีใช้เวลา 24 ชั่วโมง)

    นอกจากนี้ ตัวอย่างของการโจมตีโดยใช้ JavaScript และ WebAssembly จะแสดงขึ้นเมื่อเปิดเพจที่เป็นอันตรายในเอ็นจิ้น SpiderMonkey (ในเบราว์เซอร์รุ่นใหม่ที่ทันสมัย ​​การโจมตีดังกล่าวไม่น่าเป็นไปได้เนื่องจากความแม่นยำของตัวจับเวลาที่จำกัดและมาตรการในการป้องกัน Spectre)

  • ออกมาเสีย (รูปแบบไฟล์ PDF) - ทำให้สามารถอ่านข้อมูลที่ระบบปฏิบัติการเขียนเมื่อเร็ว ๆ นี้และกำหนดรูปแบบหน่วยความจำระบบปฏิบัติการเพื่อลดความซับซ้อนของการโจมตีอื่น ๆ
  • การส่งต่อจากร้านค้าสู่การรั่วไหล — ใช้ประโยชน์จากการเพิ่มประสิทธิภาพ CPU สำหรับการทำงานกับบัฟเฟอร์การจัดเก็บข้อมูล และสามารถใช้เพื่อข้ามกลไกการสุ่มพื้นที่ที่อยู่เคอร์เนล (KASLR) เพื่อตรวจสอบสถานะของระบบปฏิบัติการ หรือสำหรับ องค์กร การรั่วไหลร่วมกับอุปกรณ์ตามวิธี Spectre

ระบุ ช่องโหว่:

  • CVE-2018-12126 - MSBDS (Microarchitectural Store Buffer Data Sampling) การกู้คืนเนื้อหาของบัฟเฟอร์การจัดเก็บข้อมูล ใช้ในการโจมตี Fallout ระดับความเป็นอันตรายกำหนดไว้ที่ 6.5 คะแนน (CVSS)
  • CVE-2018-12127 - MLPDS (การสุ่มตัวอย่างข้อมูลพอร์ตโหลดสถาปัตยกรรมไมโคร) การกู้คืนเนื้อหาพอร์ตโหลด ใช้ในการโจมตี RIDL ซีวีเอสเอส 6.5;
  • CVE-2018-12130 - MFBDS (การสุ่มตัวอย่างข้อมูลบัฟเฟอร์การเติมสถาปัตยกรรมไมโคร) การกู้คืนเนื้อหาบัฟเฟอร์การเติม ใช้ในการโจมตี ZombieLoad และ RIDL ซีวีเอสเอส 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory) การกู้คืนเนื้อหาหน่วยความจำที่ไม่สามารถแคชได้ ใช้ในการโจมตี RIDL ซีวีเอสเอส 3.8.

สสาร ระบุปัญหาในความสามารถในการใช้วิธีการวิเคราะห์ด้านข้างกับข้อมูลในโครงสร้างไมโครสถาปัตยกรรมที่แอปพลิเคชันไม่สามารถเข้าถึงได้โดยตรง เรากำลังพูดถึงโครงสร้างระดับต่ำเช่นบัฟเฟอร์การเติม (Line Fill Buffer) บัฟเฟอร์การจัดเก็บข้อมูล (Store Buffer) และพอร์ตโหลด (Load Port) ซึ่งเป็นแบบเอกสารสำเร็จรูปที่เล็กกว่าแคชระดับแรก (L1D) แคชการโหลดข้อมูล ( RDCL ) หรือ L1TF (L1 Terminal Fault) และส่งผลให้มีข้อมูลน้อยลงและได้รับการอัปเดตอย่างเข้มข้นมากขึ้น

มีการแนะนำช่องโหว่ระดับใหม่ในโปรเซสเซอร์ Intel

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

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

โปรเซสเซอร์ใช้พอร์ตโหลดเพื่อรับข้อมูลจากหน่วยความจำหรือระบบย่อย I/O และให้ข้อมูลที่ได้รับไปยังการลงทะเบียน CPU เนื่องจากคุณลักษณะการใช้งาน ข้อมูลจากการดำเนินการดาวน์โหลดเก่าจะยังคงอยู่ในพอร์ตจนกว่าข้อมูลเหล่านั้นจะถูกเขียนทับด้วยข้อมูลใหม่ ซึ่งทำให้สามารถระบุสถานะของข้อมูลในพอร์ตดาวน์โหลดโดยอ้อมโดยการจัดการข้อยกเว้น (ข้อบกพร่อง) และ SSE/AVX/ คำสั่ง AVX-512 ที่โหลดข้อมูลมากกว่า 64 บิต ภายใต้เงื่อนไขดังกล่าว การดำเนินการโหลดจะเปิดเผยค่าข้อมูลเก่าจากโครงสร้างภายในไปยังการดำเนินการที่ต้องพึ่งพาโดยคาดเดา ในทำนองเดียวกัน การรั่วไหลจะถูกจัดระเบียบผ่านบัฟเฟอร์การจัดเก็บข้อมูลซึ่งใช้เพื่อเพิ่มความเร็วในการเขียนไปยังแคช CPU และรวมถึงตารางที่อยู่ ค่า และแฟล็ก ตลอดจนผ่านบัฟเฟอร์การเติมซึ่งมีข้อมูลที่ ยังไม่อยู่ในแคช L1 (แคชพลาด) ในขณะที่กำลังโหลดจากแคชระดับอื่น

มีการแนะนำช่องโหว่ระดับใหม่ในโปรเซสเซอร์ Intel

ปัญหา ส่งผลกระทบ รุ่นโปรเซสเซอร์ Intel ที่ผลิตตั้งแต่ปี 2011 (เริ่มจากรุ่นที่ 6) ในกรณีนี้ ช่องโหว่ของฮาร์ดแวร์จะถูกบล็อกโดยเริ่มจาก Intel Core รุ่นที่ 8 และ 9 บางรุ่น และ Intel Xeon Scalable รุ่นที่ 2 บางรุ่น (คุณสามารถตรวจสอบได้โดยใช้บิต ARCH_CAP_MDS_NO ใน IA32_ARCH_CAPABILITIES MSR) ช่องโหว่ก็มีอยู่แล้ว ตกรอบแล้ว ในระดับเฟิร์มแวร์ ไมโครโค้ด และระบบปฏิบัติการ Intel ประมาณการการสูญเสียประสิทธิภาพหลังจากเปิดใช้งานแพตช์สำหรับผู้ใช้ส่วนใหญ่ น้อยกว่า 3%. เมื่อปิดใช้งานเทคโนโลยี Hyper-Threading ประสิทธิภาพที่ลดลงอาจสูงถึง 9% ในการทดสอบ SPECint_rate_base สูงถึง 11% ในการคำนวณจำนวนเต็มที่ใช้งานอยู่ และสูงถึง 19% เมื่อเรียกใช้แอปพลิเคชัน Java ฝั่งเซิร์ฟเวอร์ (เมื่อเปิดใช้งาน HT เกือบจะ ไม่มีการเสื่อมประสิทธิภาพ) โปรแกรมปรับปรุงมีผลกระทบเพียงเล็กน้อยต่อประสิทธิภาพ I/O

เคอร์เนล Linux ป้องกัน MDS เพิ่ม ในวันนี้ อัพเดท 5.1.2, 5.0.16,
4.19.43, 4.14.119 และ 4.9.176 วิธีการป้องกัน อยู่ระหว่างการก่อสร้าง ในการล้างเนื้อหาของบัฟเฟอร์ไมโครสถาปัตยกรรม ณ เวลาที่ส่งคืนจากเคอร์เนลไปยังพื้นที่ผู้ใช้หรือเมื่อถ่ายโอนการควบคุมไปยังระบบเกสต์ซึ่งใช้คำสั่ง VERW เพื่อให้การป้องกันทำงานได้ จำเป็นต้องรองรับโหมด MD_CLEAR ซึ่งใช้งานในการอัพเดตไมโครโค้ดล่าสุด เพื่อการปกป้องที่สมบูรณ์ ขอแนะนำให้ปิดการใช้งาน Hyper Threading ด้วย เพื่อตรวจสอบความเสี่ยงของระบบในเคอร์เนล Linux เพิ่ม ตัวจัดการ "/sys/devices/system/cpu/vulnerabilities/mds" เพื่อควบคุมการรวมโหมดการบล็อกช่องโหว่ต่างๆ จึงมีการเพิ่มพารามิเตอร์ “mds=” ลงในเคอร์เนล ซึ่งสามารถรับค่า “full”, “full,nosmt” (ปิดใช้งาน Hyper-Threads), “vmwerv” และ "ปิด".

การอัปเดตแพ็คเกจได้เปิดตัวแล้วสำหรับ RHEL и อูบุนตูแต่ยังไม่สามารถใช้งานได้ในขณะนี้ debian, Fedora и SUSE.
การแก้ไขเพื่อป้องกันการรั่วไหลของข้อมูลจากเครื่องเสมือนด้วย เกิดขึ้น สำหรับไฮเปอร์ไวเซอร์ Xen เพื่อปกป้องระบบการจำลองเสมือนที่ออกคำสั่ง L1D_FLUSH ก่อนที่จะถ่ายโอนการควบคุมไปยังเครื่องเสมือนอื่น และเพื่อปกป้อง Intel SGX enclaves การอัพเดตไมโครโค้ดก็เพียงพอแล้ว

ที่มา: opennet.ru

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