หากถูกโจมตี ข้อบกพร่องเหล่านี้อาจทำให้ผู้โจมตีเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต หรือก่อให้เกิดปัญหาโดยทั่วไป
ล่าสุดมีข่าวดังกล่าว พบช่องโหว่ในการดำเนินการระยะไกลใน ชั้น ชิมซึ่งใช้กันอย่างแพร่หลายใน Linux ส่วนใหญ่สำหรับการบูตที่ได้รับการตรวจสอบในโหมดการบูตที่ปลอดภัยของ UEFI
ช่องโหว่ดังกล่าวได้รับการจัดหมวดหมู่ไว้แล้วภายใต้ "CVE-2023-40547" และได้รับการประเมินด้วยคะแนน 8.3 ในระดับ CVSS ก่อให้เกิดความเสี่ยงที่สำคัญ รวมถึงความเป็นไปได้ของการเรียกใช้โค้ดจากระยะไกล และการละเลยกลไกการบูตที่ปลอดภัยของ Linux
ช่องโหว่อยู่ในข้อบกพร่องในโค้ดสำหรับการดาวน์โหลดไฟล์ผ่าน HTTP อนุญาตให้ประมวลผลการตอบสนองที่ไม่ถูกต้องที่สร้างโดยเซิร์ฟเวอร์ HTTP ที่ Shim เข้าถึงได้ จุดบกพร่องนี้สามารถถูกโจมตีโดยผู้โจมตีที่ควบคุมเซิร์ฟเวอร์ HTTP เพื่อส่งคืนการตอบสนองที่สร้างขึ้น ซึ่งจะส่งผลให้มีการควบคุมการเขียนไปยังบัฟเฟอร์นอกขอบเขต และอนุญาตให้มีการเรียกใช้โค้ดในช่วงแรกของกระบวนการโหลด
สาระสำคัญของช่องโหว่นี้อยู่ในโหมด HTTPBoot ใน Shim ที่อนุญาตให้ดาวน์โหลดไฟล์ผ่าน HTTP ซึ่งจะกู้คืนไฟล์ด้วยตัวโหลด ซึ่งเรียกว่าในขั้นตอนต่อไปของกระบวนการบูต
เมื่อทำการดาวน์โหลด ไฟล์ผ่าน HTTP, Shim จัดสรรบัฟเฟอร์สำหรับข้อมูลที่ได้รับ ตามขนาดที่ระบุในส่วนหัว HTTP "Content-Length" อย่างไรก็ตาม, ปัญหาเกิดขึ้นเมื่อได้รับค่าที่น้อยกว่าในส่วนหัว Content-Length ซึ่งนำไปสู่การสิ้นสุดของคำขอที่ถูกเขียนไปยังหน่วยความจำนอกขอบเขตบัฟเฟอร์ที่จัดสรร ทำให้เกิดช่องโหว่
เพื่อบรรเทาช่องโหว่โดยไม่ต้องอาศัยการเพิกถอนลายเซ็นดิจิทัล มีการกล่าวถึงว่า สามารถใช้กลไก SBAT ได้ซึ่งเข้ากันได้กับ GRUB2, shim และ fwupd ใน Linux ที่ใช้มากที่สุด
SBAT ได้รับการพัฒนาร่วมกับ Microsoft โดยเกี่ยวข้องกับการเพิ่มข้อมูลเมตาเพิ่มเติมให้กับไฟล์ปฏิบัติการของคอมโพเนนต์ UEFI เช่น ผู้ผลิต ผลิตภัณฑ์ ส่วนประกอบ และข้อมูลเวอร์ชัน ข้อมูลเมตาที่ระบุนี้ได้รับการรับรองด้วยลายเซ็นดิจิทัล และสามารถรวมไว้ในรายการส่วนประกอบที่อนุญาตหรือต้องห้ามสำหรับ UEFI Secure Boot ได้อย่างอิสระ
มันควรจะกล่าวว่าเขาช่องโหว่ได้รับการแก้ไขแล้วในการเปิดตัว Shim 15.8อย่างไรก็ตาม เพื่อให้มั่นใจถึงการป้องกันการโจมตีผ่าน Shim อย่างสมบูรณ์ จำเป็นต้องได้รับการรับรองเวอร์ชันใหม่จาก Microsoft และถูกนำไปใช้ในลีนุกซ์รุ่นต่างๆ
แม้ว่าปัญหาก็คือหากไม่เพิกถอนลายเซ็นของเวอร์ชันก่อนหน้า วิธีแก้ปัญหาก็ไม่สมเหตุสมผล เนื่องจากผู้โจมตีสามารถใช้อุปกรณ์สำหรับบู๊ตที่มี Shim เวอร์ชันที่มีช่องโหว่เพื่อประนีประนอมการบูตที่ปลอดภัยของ UEFI แต่การเพิกถอนลายเซ็นจะทำให้ไม่สามารถตรวจสอบการบูตของการแจกแจงที่ยังคงใช้ Shim เวอร์ชันก่อนหน้าต่อไปได้
สุดท้ายนี้ เป็นเรื่องที่ควรค่าแก่การกล่าวถึงว่า นอกเหนือจากการแก้ไขช่องโหว่หลักที่กล่าวมาข้างต้นแล้ว Shim 15.8 ยังแก้ไขปัญหาด้านความปลอดภัยหลายประการอีกด้วย สำคัญน้อยกว่าที่สามารถนำไปใช้ประโยชน์ได้ในพื้นที่ ปัญหาด้านความปลอดภัยเหล่านี้ถูกระบุด้วยตัวระบุ CVE ต่อไปนี้:
- CVE-2023-40548: ปัญหานี้เกี่ยวข้องกับจำนวนเต็มล้นในฟังก์ชัน Verify_sbat_section ซึ่งอาจทำให้เกิดบัฟเฟอร์ล้นบนระบบ 32 บิต
- CVE-2023-40546: การอ่านหน่วยความจำนอกขอบเขตเกิดขึ้นเมื่อรายงานข้อความแสดงข้อผิดพลาดผ่านฟังก์ชัน LogError()
- CVE-2023-40549: การอ่านหน่วยความจำนอกขอบเขตอื่นเกิดขึ้นเมื่อประมวลผลไฟล์ PE ที่จัดทำขึ้นเป็นพิเศษในฟังก์ชัน Verify_buffer_authenticode()
- CVE-2023-40550: เกี่ยวข้องกับหน่วยความจำที่อ่านออกจากบัฟเฟอร์ในฟังก์ชัน Verify_buffer_sbat()
- CVE-2023-40551: การอ่านหน่วยความจำนอกขอบเขตเกิดขึ้นเมื่อแยกวิเคราะห์ไฟล์ MZ
ช่องโหว่นี้เน้นย้ำถึงความสำคัญของการแก้ไขจุดอ่อนในการใช้งานโปรโตคอลความปลอดภัย โดยเฉพาะอย่างยิ่งในระบบที่สำคัญ เช่น กระบวนการบูตอย่างปลอดภัยในลีนุกซ์
สุดท้ายแต่ไม่ท้ายสุด ตามที่เราทำอยู่เสมอ เราขอแนะนำให้ผู้ใช้ใช้แพตช์และการอัปเดตที่เกี่ยวข้องเพื่อลดความเสี่ยงที่เกี่ยวข้องกับช่องโหว่นี้ และปกป้องระบบของตนจากการโจมตีที่อาจเกิดขึ้น
ถ้าคุณเป็น สนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ คุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.