OLS Community

พบช่องโหว่ใน Shim Bootloader ที่กระทบต่อความปลอดภัยของผู้ใช้งาน Linux!

พบช่องโหว่ใน Shim Bootloader กระทบจ่อผู้ใช้งาน Linux

Shim bootloader หนึ่งใน Open-Source ขนาดเล็กที่ได้รับการดูแลโดย Red Hat ออกแบบมาเพื่ออำนวยความสะดวกในกระบวนการ Secure Boot บนคอมพิวเตอร์ที่ใช้ Unified Extensible Firmware Interface (UEFI)

ช่องโหว่ที่พบในครั้งนี้ คือ CVE-2023-40547 ซึ่งถูกค้นพบโดย Bill Demirkapi นักวิจัยด้านความปลอดภัยของ Microsoft ที่ได้ออกมาเปิดเผยเมื่อวันที่ 24 มกราคม 2024


ข้อบกพร่องของ Shim bootloader นี้เกิดขึ้นในส่วนการบูตอิมเมจผ่าน HTTP (httpboot.c)

Shim bootloader จะต้องมีการจอง Buffer ให้ไฟล์ที่ได้รับผ่านทางโปรโตคอล HTTP หรือโปรโตคอลอื่น ซึ่งขนาดจะระบุใน HTTP header ที่ทำให้ผู้โจมตีสามารถสร้างคำขอ HTTP ที่จัดทำขึ้นเป็นพิเศษเพื่อทำให้เกิดการ Out-of-Bounds Write กระบวนการนี้อาจทำให้ผู้โจมตีสามารถโจมตีระบบได้โดยการรันโค้ดก่อนที่ระบบปฏิบัติการจะโหลด ซึ่งไม่ผ่านกลไกความปลอดภัยของ Kernel

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

นอกจากนี้ผู้โจมตีที่อยู่ในระดับท้องถิ่นสามารถแก้ไขตัวแปร EFI หรือ EFI Partition โดยใช้ Live Linux USB เพื่อเปลี่ยนลำดับการบูตและโหลด Shim ที่อันตราย โดยสามารถลอบรันโค้ดได้โดยไม่ต้องปิดใช้งาน Secure Boot และในกรณีที่ผู้โจมตีอยู่ในเครือข่ายเดียวกันสามารถใช้ PXE เพื่อโหลด Shim ที่อันตรายได้โดยใช้ช่องโหว่ดังกล่าว


ผู้ใช้งาน Linux ป้องกันได้อย่างไร ?

จากเหตุการณ์ดังกล่าว RedHat ได้ทำการออกโค้ดคอมมิตเพื่อแก้ไขในวันที่ 5 ธันวาคม 2023 ซึ่ง Linux ที่ใช้ Shim และรองรับ Secure Boot จำเป็นต้องนำโค้ดไปแก้ไข โดยค่ายที่มีความเกี่ยวข้องในเหตุการณ์นี้ เช่น Red Hat, Debian, Ubuntu และ SUSE โดยผู้ใช้ควรอัปเดต Shim เวอร์ชันล่าสุด v15.8 ขึ้นไป

Eclypsium ยังได้อธิบายเพิ่มเติมว่า ผู้ใช้ Linux ต้องอัปเดต UEFI Secure Boot DBX เพื่อเพิ่มค่ารวม Hash ของ Shim ที่มีช่องโหว่และทำการ Sign ในเวอร์ชันที่ได้รับแพตช์ด้วย Microsoft Key ที่ถูกต้อง โดยเมื่อทำการอัปเดต Shim เป็นเวอร์ชัน 15.8 แล้ว จะต้องใช้คำสั่ง ‘fwupdmgr update’ (fwupd) อีกด้วย แต่ Linux ในหลายๆ ค่าย สามารถทำผ่าน GUI ได้เช่นกัน

ที่มา : https://www.bleepingcomputer.com/news/security/critical-flaw-in-shim-bootloader-impacts-major-linux-distros/