Cybersecurity
- 31 ก.ค. 63
-
1285
-
พบช่องโหว่ใน GRUB2 bootloader สามารถรันโค้ดอันตรายได้แม้เปิด Secure Boot
เมื่อวันที่ 29 กรกฎาคม 2563 ทีมนักวิจัยจากบริษัท Eclypsium ได้รายงานช่องโหว่ที่ถูกตั้งชื่อว่า BootHole โดยเป็นช่องโหว่ใน GRUB2 ซึ่งเป็น bootloader ที่นิยมใช้งานในระบบปฏิบัติการ Linux ช่องโหว่ดังกล่าวเปิดโอกาสให้โค้ดอันตรายถูกเรียกขึ้นมาทำงานในขั้นตอนของการบู๊ตระบบปฏิบัติการได้แม้ว่าระบบดังกล่าวจะเปิดการใช้งาน Secure Boot ก็ตาม ผลกระทบที่เกิดขึ้นทำให้ผู้ไม่หวังดีสามารถควบคุมเครื่องคอมพิวเตอร์หรือสั่งรันมัลแวร์ได้โดยการตรวจจับทำได้ยาก
Secure Boot เป็นเทคโนโลยีที่ Microsoft พัฒนาขึ้นมาเพื่อเพิ่มความมั่นคงปลอดภัยในขั้นตอนการโหลดระบบปฏิบัติการขึ้นมาทำงาน โดยหลักการคือโค้ดทั้งหมดที่เกี่ยวข้องกับขั้นตอนการบู๊ตระบบจะต้องถูกเชื่อถือโดยใบรับรองของทาง Microsoft ซึ่งกระบวนการตรวจสอบความถูกต้องของใบรับรองจะใช้ฐานข้อมูลที่อยู่ใน UEFI ร่วมด้วย ขั้นตอนต่อมาคือการตรวจสอบใบรับรองของ bootloader ซึ่งเมื่อผ่านแล้วถึงจะมีการโหลดระบบปฏิบัติการขึ้นมาทำงานต่อไป ขั้นตอนการตรวจสอบในลักษณะนี้มีขึ้นเพื่อป้องกันไม่ให้โค้ดของระบบที่เกี่ยวข้องกับกระบวนการบู๊ตระบบปฏิบัติการถูกแก้ไข ซึ่งอาจเป็นโค้ดที่สร้างความเสียหายให้กับระบบหรือข้อมูลได้
ในกรณีที่ไม่ได้เป็นการบู๊ตระบบปฏิบัติการ Windows ทาง Microsoft ก็เปิดให้ผู้พัฒนา bootloader ของ Linux ขอใบรับรองเพื่อให้ทำงานร่วมกับ Secure Boot ได้ โดยในขั้นตอนนี้จะมีการตรวจสอบใบรับรองกับ 3rd Party CA ผ่านแอปพลิเคชันที่เรียกว่า Shim ซึ่งทำหน้าที่เก็บฐานข้อมูลใบรับรองของผู้พัฒนา หากตรวจสอบแล้วพบว่าใบรับรองถูกต้อง ก็จะมีการโหลด bootloader และ kernel ขึ้นมาทำงานในลำดับถัดไป
หนึ่งใน bootloader ของ Linux ที่ได้รับความนิยมคือ GRUB โดยปัจจุบันเป็นเวอร์ชัน 2 หรือเรียกอีกอย่างว่า GRUB2 ในกระบวนการทำงานของ GRUB จะมีการอ่านข้อมูลการตั้งค่าจากไฟล์ grub.cfg ที่ถูกเก็บอยู่ในพาร์ทิชัน EFI ทางทีมนักวิจัยพบว่า GRUB นั้นไม่ได้มีขั้นตอนตรวจสอบความน่าเชื่อถือของไฟล์ grub.cfg ซึ่งเป็นข้อผิดพลาดในการตรวจสอบขนาดของข้อมูลที่นำมาประมวลผล ทำให้เมื่อมีการอ่านค่าบางอย่างจากไฟล์ grub.cfg ที่มีขนาดข้อมูลใหญ่กว่าที่ตัวแปรของ GRUB จะรองรับได้ จะก่อให้เกิดปัญหา buffer overflow และโค้ดที่เกินออกมานั้นจะถูกนำไปประมวลผลต่อ ทำให้มีความเสี่ยงที่ช่องโหว่นี้จะถูกนำไปใช้เพื่อฝังมัลแวร์ที่จะถูกเรียกขึ้นมาทำงานในทุกครั้งที่มีการโหลดระบบปฏิบัติการได้ เนื่องจากโค้ดดังกล่าวถูกโหลดขึ้นมาตั้งแต่ขั้นตอนของการบู๊ตระบบ ทำให้ตัวโค้ดถูกรันด้วยสิทธิ์ที่อาจสูงกว่าหรือเทียบเท่าระบบฏิบัติการได้ และทำให้การตรวจจับความผิดปกตินั้นทำได้ยาก
ถึงแม้ว่ารูปแบบแนวทางการโจมตีผ่านช่องโหว่นี้จะทำได้ยาก เนื่องจากผู้โจมตีจำเป็นต้องได้สิทธิ์ของผู้ดูแลระบบในการแก้ไขไฟล์ grub.cfg รวมถึงระบบที่จะได้รับผลกระทบนั้นต้องเปิดใช้งาน Secure Boot พร้อมติดตั้ง GRUB เป็น bootloader ทำให้ในทางปฏิบัติแล้วการจะโจมตีผ่านช่องโหว่นี้ให้สำเร็จได้นั้นยังค่อนข้างจำกัด แต่เนื่องจากหากโจมตีสำเร็จแล้วจะมีผลกระทบต่อความมั่นคงปลอดภัยของข้อมูล จึงทำให้ช่องโหว่นี้ถูกประเมินความรุนแรงตาม CVSS ที่ระดับ 8.2/10
ทาง Microsoft แจ้งว่าได้ทำงานร่วมกับผู้พัฒนาระบบปฏิบัติการ Linux เพื่อออกอัปเดตซอฟต์แวร์ที่เกี่ยวข้อง เช่น GRUB และ Shim พร้อมร่วมมือกับผู้ผลิตคอมพิวเตอร์เพื่ออัปเดตฐานข้อมูลใบรับรองในเฟิร์มแวร์ UEFI แล้ว ผู้ใช้งานควรติดตามแพตช์และอัปเดตระบบปฏิบัติการรวมถึงเฟิร์มแวร์ที่เกี่ยวข้องเพื่อลดความเสี่ยง ทั้งนี้ มีรายงานว่าแพตช์บางรายการอาจมีปัญหากับกระบวนการบู๊ตระบบ ผู้ใช้ควรตรวจสอบข้อมูลเพิ่มเติมจากผู้พัฒนาก่อนติดตั้งแพตช์ ข้อมูลเพิ่มเติมและประกาศจากผู้พัฒนาเกี่ยวกับช่องโหว่นี้สามารถศึกษาได้จาก https://gist.github.com/SwitHak/b196844cdc334c84f4e30e3f6efe7a6c
ที่มา: Eclypsium, Microsoft