ช่องโหว่ที่สำคัญใน GRUB2 bootloader ที่ช่วยให้คุณข้าม UEFI Secure Boot ได้

ในบูตโหลดเดอร์ GRUB2 เปิดเผย 8 ช่องโหว่ อันตรายที่สุด ปัญหา (CVE-2020-10713) ซึ่งมีชื่อรหัสว่า BootHole ให้โอกาส ข้ามกลไก UEFI Secure Boot และติดตั้งมัลแวร์ที่ไม่ได้รับการยืนยัน ลักษณะเฉพาะของช่องโหว่นี้คือการกำจัดช่องโหว่นั้นไม่เพียงพอในการอัปเดต GRUB2 เนื่องจากผู้โจมตีสามารถใช้สื่อที่สามารถบู๊ตได้กับเวอร์ชันที่มีช่องโหว่รุ่นเก่าที่รับรองโดยลายเซ็นดิจิทัล ผู้โจมตีสามารถบุกรุกกระบวนการตรวจสอบได้ไม่เพียงแต่ใน Linux เท่านั้น แต่ยังรวมถึงระบบปฏิบัติการอื่นด้วย Windows.

ปัญหาสามารถแก้ไขได้ด้วยการอัพเดตระบบเท่านั้น รายการเพิกถอนใบรับรอง (dbx, UEFI Revocation List) แต่ในกรณีนี้ ความสามารถในการใช้สื่อการติดตั้งเก่ากับ Linux จะหายไป ผู้ผลิตอุปกรณ์บางรายได้รวมรายการใบรับรองการเพิกถอนที่อัปเดตไว้ในเฟิร์มแวร์แล้ว ในระบบดังกล่าว เฉพาะรุ่น Linux ที่อัปเดตเท่านั้นที่สามารถโหลดได้ในโหมด UEFI Secure Boot

เพื่อกำจัดช่องโหว่ในการแจกจ่าย คุณจะต้องอัปเดตตัวติดตั้ง, บูตโหลดเดอร์, แพ็คเกจเคอร์เนล, เฟิร์มแวร์ fwupd และเลเยอร์ shim เพื่อสร้างลายเซ็นดิจิทัลใหม่สำหรับพวกเขา ผู้ใช้จะต้องอัปเดตอิมเมจการติดตั้งและสื่อที่ใช้บู๊ตได้อื่นๆ รวมถึงโหลดรายการเพิกถอนใบรับรอง (dbx) ลงในเฟิร์มแวร์ UEFI ก่อนที่จะอัพเดต dbx เป็น UEFI ระบบยังคงมีช่องโหว่โดยไม่คำนึงถึงการติดตั้งการอัพเดตในระบบปฏิบัติการ

ช่องโหว่ ซึ่งก่อให้เกิด บัฟเฟอร์ล้นที่สามารถนำไปใช้เพื่อรันโค้ดที่กำหนดเองในระหว่างกระบวนการบู๊ต
ช่องโหว่เกิดขึ้นเมื่อแยกวิเคราะห์เนื้อหาของไฟล์การกำหนดค่า grub.cfg ซึ่งโดยปกติจะอยู่ใน ESP (พาร์ติชันระบบ EFI) และสามารถแก้ไขได้โดยผู้โจมตีที่มีสิทธิ์ของผู้ดูแลระบบ โดยไม่ละเมิดความสมบูรณ์ของไฟล์ shim ที่เซ็นชื่อและไฟล์ปฏิบัติการ GRUB2 เพราะว่า ข้อผิดพลาด ในโค้ดตัวแยกวิเคราะห์การกำหนดค่า ตัวจัดการสำหรับข้อผิดพลาดในการแยกวิเคราะห์ร้ายแรง YY_FATAL_ERROR แสดงเฉพาะคำเตือน แต่ไม่ได้ยุติโปรแกรม ความเสี่ยงของช่องโหว่จะลดลงเนื่องจากความจำเป็นในการเข้าถึงระบบแบบมีสิทธิพิเศษ อย่างไรก็ตาม ปัญหาอาจจำเป็นต้องแนะนำรูทคิทที่ซ่อนอยู่หากมีการเข้าถึงอุปกรณ์ทางกายภาพ (หากเป็นไปได้ที่จะบูตจากสื่อของคุณเอง)

ลีนุกซ์ส่วนใหญ่ใช้ระบบปฏิบัติการขนาดเล็ก ชั้นชิมลงนามแบบดิจิทัลโดย Microsoft เลเยอร์นี้จะตรวจสอบ GRUB2 ด้วยใบรับรองของตัวเอง ซึ่งช่วยให้นักพัฒนาระบบแจกจ่ายไม่จำเป็นต้องมีเคอร์เนลและการอัปเดต GRUB ทุกตัวที่ได้รับการรับรองโดย Microsoft ช่องโหว่นี้ช่วยให้สามารถดำเนินการโค้ดของคุณในขั้นตอนหลังจากการตรวจสอบชิมสำเร็จโดยการเปลี่ยนเนื้อหาของ grub.cfg แต่ก่อนที่จะโหลดระบบปฏิบัติการ ให้เข้าสู่ห่วงโซ่แห่งความไว้วางใจเมื่อโหมด Secure Boot ทำงานและได้รับการควบคุมเต็มรูปแบบ ในกระบวนการบูตเพิ่มเติม รวมถึงการโหลด OS อื่น การปรับเปลี่ยนส่วนประกอบของระบบปฏิบัติการ และการป้องกันแบบบายพาส ออกโรง.

ช่องโหว่ที่สำคัญใน GRUB2 bootloader ที่ช่วยให้คุณข้าม UEFI Secure Boot ได้

ช่องโหว่อื่น ๆ ใน GRUB2:

  • CVE-2020-14308 — บัฟเฟอร์ล้นเนื่องจากขาดการตรวจสอบขนาดของพื้นที่หน่วยความจำที่จัดสรรใน grub_malloc
  • CVE-2020-14309 - จำนวนเต็มล้นใน grub_squash_read_symlink ซึ่งอาจนำไปสู่การเขียนข้อมูลเกินบัฟเฟอร์ที่จัดสรร
  • CVE-2020-14310 - จำนวนเต็มล้นใน read_section_from_string ซึ่งสามารถนำไปสู่การเขียนข้อมูลเกินบัฟเฟอร์ที่จัดสรร
  • CVE-2020-14311 - จำนวนเต็มล้นใน grub_ext2_read_link ซึ่งอาจนำไปสู่การเขียนข้อมูลเกินบัฟเฟอร์ที่จัดสรร
  • CVE-2020-15705 — อนุญาตให้คุณโหลดเคอร์เนลที่ไม่ได้ลงนามระหว่างการบู๊ตโดยตรงในโหมด Secure Boot โดยไม่ต้องใช้เลเยอร์ shim
  • CVE-2020-15706 - เข้าถึงพื้นที่หน่วยความจำที่ว่างแล้ว (ใช้งานฟรี) เมื่อกำหนดฟังก์ชันใหม่ขณะรันไทม์
  • CVE-2020-15707 — จำนวนเต็มล้นในตัวจัดการขนาดเริ่มต้น

มีการเผยแพร่การอัปเดตแพ็คโปรแกรมแก้ไขด่วนสำหรับ debian, อูบุนตู, RHEL и SUSE. สำหรับด้วง2 เสนอ ชุดแพทช์

ที่มา: opennet.ru

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