BHI เป็นช่องโหว่ระดับ Spectre ใหม่ในโปรเซสเซอร์ Intel และ ARM

กลุ่มนักวิจัยจาก Vrije Universiteit Amsterdam ได้ระบุช่องโหว่ใหม่ในโครงสร้างไมโครสถาปัตยกรรมของโปรเซสเซอร์ Intel และ ARM ซึ่งเป็นเวอร์ชันขยายของช่องโหว่ Spectre-v2 ซึ่งช่วยให้สามารถข้ามกลไกการป้องกัน eIBRS และ CSV2 ที่เพิ่มให้กับโปรเซสเซอร์ . ช่องโหว่นี้ได้รับการตั้งชื่อหลายชื่อ: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) และ Spectre-BHB (CVE-2022-23960) ซึ่งอธิบายอาการต่างๆ ของ ปัญหาเดียวกัน (BHI - การโจมตีที่ส่งผลต่อสิทธิ์ในระดับที่แตกต่างกัน เช่น กระบวนการผู้ใช้และเคอร์เนล BHB - การโจมตีที่ระดับสิทธิ์เดียวกัน เช่น eBPF JIT และเคอร์เนล)

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

ช่องโหว่นี้ปรากฏในโปรเซสเซอร์ Intel ปัจจุบันส่วนใหญ่ ยกเว้นโปรเซสเซอร์ตระกูล Atom ในบรรดาโปรเซสเซอร์ ARM นั้น Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 และชิป Cortex-R บางตัวอาจได้รับผลกระทบจากปัญหานี้ จากการวิจัยพบว่าช่องโหว่ดังกล่าวไม่ปรากฏในโปรเซสเซอร์ AMD เพื่อขจัดปัญหา มีการเสนอวิธีการซอฟต์แวร์หลายวิธีเพื่อป้องกันช่องโหว่ ซึ่งสามารถใช้ได้ก่อนที่การป้องกันฮาร์ดแวร์จะปรากฏใน CPU รุ่นต่อๆ ไป

หากต้องการบล็อกการโจมตีผ่านระบบย่อย eBPF ขอแนะนำให้ปิดการใช้งานตามค่าเริ่มต้นความสามารถสำหรับผู้ใช้ที่ไม่มีสิทธิ์ในการดาวน์โหลดโปรแกรม eBPF โดยการเขียน 1 ลงในไฟล์ “/proc/sys/kernel/unprivileged_bpf_disabled” หรือเรียกใช้คำสั่ง “sysctl -w kernel unprivileged_bpf_disabled=1” หากต้องการบล็อกการโจมตีด้วยอุปกรณ์ ขอแนะนำให้ใช้คำสั่ง LFENCE ในส่วนของโค้ดที่อาจนำไปสู่การดำเนินการเชิงคาดเดา เป็นที่น่าสังเกตว่าการกำหนดค่าเริ่มต้นของลีนุกซ์รุ่นส่วนใหญ่มีมาตรการป้องกันที่จำเป็นเพียงพอที่จะบล็อกการโจมตี eBPF ที่นักวิจัยแสดงให้เห็นแล้ว คำแนะนำของ Intel สำหรับการปิดใช้งานการเข้าถึง eBPF ที่ไม่มีสิทธิพิเศษนั้นเป็นค่าเริ่มต้นตั้งแต่เคอร์เนล Linux 5.16 และจะถูกส่งกลับไปยังสาขาก่อนหน้า

ตามแนวคิดแล้ว BHI เป็นเวอร์ชันขยายของการโจมตี Spectre-v2 ซึ่งเพื่อหลีกเลี่ยงการป้องกันเพิ่มเติม (Intel eIBRS และ Arm CSV2) และจัดระเบียบข้อมูลรั่วไหล จึงมีการใช้การทดแทนค่าใน Branch History Buffer ซึ่งใช้ใน CPU เพื่อปรับปรุงการคาดการณ์ การแตกแขนงความแม่นยำโดยคำนึงถึงประวัติของการเปลี่ยนแปลงในอดีต ในระหว่างการโจมตีผ่านการยักย้ายที่มีประวัติการเปลี่ยนแปลงเงื่อนไขจะถูกสร้างขึ้นสำหรับการทำนายการเปลี่ยนแปลงที่ไม่ถูกต้องและการดำเนินการตามคำแนะนำที่จำเป็นโดยคาดเดาซึ่งผลลัพธ์จะจบลงในแคช

ยกเว้นการใช้ Branch History Buffer แทน Branch Target Buffer การโจมตีใหม่จะเหมือนกับ Spectre-v2 หน้าที่ของผู้โจมตีคือการสร้างเงื่อนไขว่าที่อยู่เมื่อดำเนินการเก็งกำไรจะถูกพรากไปจากพื้นที่ของข้อมูลที่กำหนด หลังจากดำเนินการข้ามทางอ้อมแบบเก็งกำไร ที่อยู่การกระโดดที่อ่านจากหน่วยความจำจะยังคงอยู่ในแคช หลังจากนั้นวิธีใดวิธีหนึ่งในการกำหนดเนื้อหาของแคชสามารถใช้เพื่อดึงข้อมูลตามการวิเคราะห์การเปลี่ยนแปลงเวลาในการเข้าถึงที่แคชและไม่แคช ข้อมูล.

ที่มา: opennet.ru

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