ช่องโหว่นี้เกิดจากคุณสมบัติการปรับแต่งหน่วยความจำในโปรเซสเซอร์ Intel
อีกครั้ง มีการค้นพบช่องโหว่ในระบบดำเนินการคำสั่งเชิงคาดเดาของโปรเซสเซอร์ Intelและในครั้งนี้ นักวิจัยของ Google ได้ประกาศว่าเขาได้ระบุช่องโหว่ใหม่ (จัดอยู่ในหมวดหมู่แล้ว CVE-2022-40982) เรียกว่า «ความตกต่ำ»
Downfall เป็นช่องโหว่ที่ทำให้สามารถระบุเนื้อหาของ XMM, YMM และการลงทะเบียนเวกเตอร์ ZMM ซึ่งก่อนหน้านี้ใช้โดยกระบวนการอื่นเมื่อดำเนินการคำสั่ง AVX บนแกน CPU เดียวกัน
เกี่ยวกับ Downfall
กล่าวถึงความเปราะบางว่า ผู้โจมตีที่ไม่มีสิทธิพิเศษ ด้วยความสามารถในการรันโค้ดของคุณเองบนระบบ อาจใช้ช่องโหว่ในการรั่วไหลของข้อมูลจากกระบวนการของผู้ใช้รายอื่น เคอร์เนลระบบ วงล้อม Intel SGX ที่แยกออกมา และเครื่องเสมือน
รีจิสเตอร์เวกเตอร์ที่กรองได้ถูกนำมาใช้กันอย่างแพร่หลายในการเข้ารหัส ฟังก์ชันการคัดลอกหน่วยความจำ และการประมวลผลสตริง ตัวอย่างเช่น รีจิสเตอร์เหล่านี้ใช้ในไลบรารี Glibc ในฟังก์ชัน memcpy, strcmp และ strlen เหนือสิ่งอื่นใด จากมุมมองเชิงปฏิบัติ ช่องโหว่นี้อาจถูกใช้เพื่อระบุข้อมูลที่ประมวลผลในคำสั่ง AES-NI หรือ REP-MOVS (ใช้ในฟังก์ชัน memcpy) ในกระบวนการอื่นๆ ซึ่งอาจทำให้คีย์เข้ารหัส ข้อมูลสำคัญ และรหัสผ่านของผู้ใช้รั่วไหลได้
ช่องโหว่ปรากฏในโปรเซสเซอร์ Intel ซึ่งสนับสนุนชุดคำสั่งขยาย AVX2 และ AVX-512 (หมายความว่ามีผลกับโปรเซสเซอร์รุ่นที่ 6 ถึง 11) ในขณะที่โปรเซสเซอร์ Intel ที่ใช้ Alder Lake, Raptor Lake และ Sapphire Rapids microarchitectures ดูเหมือนจะไม่ได้รับผลกระทบ
เช่นเดียวกับช่องโหว่ Zenbleed ที่เพิ่งค้นพบซึ่งส่งผลกระทบต่อโปรเซสเซอร์ AMD Zen2 ใน Downfall สาเหตุของช่องโหว่คือการรั่วไหลของข้อมูลจากไฟล์บันทึกซึ่งใช้เพื่อแบ่งปันเนื้อหาบันทึกในทุกแอปพลิเคชัน บนแกน CPU เดียวกัน
การรั่วไหลเกิดจากการถ่ายโอนข้อมูลเชิงคาดเดาเมื่อดำเนินการคำสั่ง GATHERที่มีอยู่ในส่วนขยาย AVX2 และ AVX-512 และออกแบบมาเพื่อให้เข้าถึงข้อมูลที่แตกต่างกันในหน่วยความจำได้อย่างรวดเร็ว ในระหว่างการดำเนินการคำสั่ง GATHER ข้อมูลเก่าในไฟล์รีจิสเตอร์จะถูกใช้ในการดำเนินการเชิงคาดเดาของคำสั่งที่ขึ้นต่อกัน ข้อมูลนี้ไม่ได้สะท้อนโดยตรงในบันทึกซอฟต์แวร์ แต่สามารถระบุได้โดยใช้เทคนิคการโจมตีช่องทางด้านข้างที่ออกแบบมาสำหรับการโจมตี Meltdown เช่น การแยกวิเคราะห์ข้อมูลที่เหลือในแคช CPU
เพื่อใช้ประโยชน์จาก Downfall เทคนิคการโจมตีได้รับการพัฒนาเรียกว่าการสุ่มตัวอย่างข้อมูล (GDS) และมีการเผยแพร่ต้นแบบการหาประโยชน์เพื่อแยกคีย์เข้ารหัสจากกระบวนการของผู้ใช้รายอื่น รั่วไหลของข้อมูลหลังจากคัดลอกไปยังเคอร์เนล Linux โดยฟังก์ชัน memcpy และสกัดกั้นอักขระที่พิมพ์ทิ้งไว้ในการลงทะเบียนเวกเตอร์หลังจากกระบวนการอื่นทำงาน ตัวอย่างเช่น แสดงให้เห็นถึงความสามารถในการกำหนดคีย์ AES ที่ใช้ในการเข้ารหัสข้อมูลในกระบวนการของผู้ใช้รายอื่นโดยใช้ไลบรารี OpenSSL
วิธีการนี้มีประสิทธิภาพสูง: โดยทำการทดลองกับคีย์ที่แตกต่างกัน 100 คีย์ คีย์ AES-100 128% และคีย์ AES-86 256% ถูกกำหนดโดยระยะเวลาของความพยายามแต่ละครั้งเพื่อกำหนดไม่เกิน 10 วินาที ในระบบคลาวด์ การโจมตีสามารถใช้เพื่อระบุข้อมูลที่กำลังประมวลผลในเครื่องเสมือนอื่นๆ เป็นไปได้ว่าช่องโหว่นี้อาจถูกโจมตีโดยเรียกใช้โค้ด JavaScript ในเว็บเบราว์เซอร์
ควรจะกล่าวว่าฉันntel ค้นพบเกี่ยวกับปัญหาเมื่อปีที่แล้ว (ตรงกับเดือนสิงหาคม) และช่องโหว่ดังกล่าวได้รับการเปิดเผยต่อสาธารณะในปีนี้ที่การประชุม BlackHat USA เท่านั้น และการแก้ไขเพื่อป้องกันช่องโหว่นั้นรวมอยู่ในการอัปเดตเคอร์เนล Linux ที่หลากหลายแล้วตั้งแต่เวอร์ชัน 6.4.9 6.1.44 ถึง 4.14.321
นอกจากนี้ ท่ามกลางมาตรการที่เป็นไปได้เพื่อหลีกเลี่ยงผลกระทบด้านลบของการป้องกันช่องโหว่ Downfall ต่อประสิทธิภาพ มีการกล่าวถึงการเปลี่ยนแปลงในคอมไพเลอร์เพื่อปิดการใช้งานคำสั่ง GATHER หรือเพิ่มคำสั่งทันทีหลัง GATHER LFENCE ซึ่งปิดใช้งานการระงับการดำเนินการคำสั่งที่ตามมาก่อนที่การกระทำก่อนหน้าทั้งหมดจะเสร็จสิ้น
สำหรับระบบที่ไม่มีการแก้ไขเฟิร์มแวร์ การสนับสนุนสำหรับส่วนขยาย AVX ทั้งหมดจะถูกปิดใช้งาน ในขณะที่ส่วนการอัปเดตไมโครโค้ดของ Intel ยังให้ความสามารถในการใช้อินเทอร์เฟซ MSR เพื่อเลือกปิดใช้งานการป้องกันเฟิร์มแวร์ในบริบทของแต่ละกระบวนการ
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียดได้ในไฟล์ ลิงค์ต่อไปนี้