คำจำกัดความของ SBAT(Secure Boot Advanced Targeting)
- ตอนที่มีการกำหนด UEFI Secure Boot ขึ้นครั้งแรก ผู้เกี่ยวข้องทุกฝ่ายค่อนข้างมองโลกในแง่ดีเกินไปเล็กน้อย
- โมเดลความปลอดภัยพื้นฐานของ Secure Boot คือ โค้ดทั้งหมดที่ทำงานในสภาพแวดล้อมสิทธิ์ระดับเคอร์เนลต้องได้รับการตรวจสอบก่อนรัน
- มีวิธีเพิกถอนคอมโพเนนต์ที่มีลายเซ็นซึ่งพบช่องโหว่อยู่ในนั้นด้วย
- แต่ Linux distribution ทั้งหมดที่ทำงานในระบบนิเวศของ Secure Boot ต่างก็สร้างไบนารีบูตโหลดเดอร์ของตัวเอง จึงทำให้เมื่อมีการระบุช่องโหว่ จะมีไบนารีจำนวนมากที่ต้องเพิกถอน
- พื้นที่สำหรับเก็บแฮชมีจำกัด จึงมีการพัฒนา SBAT ขึ้นมา
วิธีการทำงานของ SBAT
- คอมโพเนนต์สำคัญทุกตัวใน boot chain จะประกาศ security generation ที่บรรจุอยู่ในไบนารีที่มีลายเซ็น
- เมื่อมีการระบุและแก้ไขช่องโหว่ generation นั้นก็จะเพิ่มขึ้น
- สามารถกำหนด minimum generation ได้ผ่านการอัปเดต
- คอมโพเนนต์บูตจะตรวจดูรายการถัดไปใน chain แล้วเปรียบเทียบชื่อและหมายเลข generation กับค่าที่เก็บอยู่ในตัวแปรเฟิร์มแวร์ เพื่อพิจารณาว่าจะอนุญาตให้รันหรือไม่
- แทนที่จะเพิกถอนแฮชรายตัวจำนวนมาก เราสามารถปล่อยอัปเดตเพียงครั้งเดียวเพื่อระบุว่า grub เวอร์ชันที่มี security generation ต่ำกว่าหมายเลขที่กำหนดนั้นไม่น่าเชื่อถือ
สาเหตุของประเด็นล่าสุด
- Microsoft ปล่อย Windows update เพื่อไม่ให้เชื่อถือ grub เวอร์ชันที่มี security generation ต่ำกว่าระดับหนึ่ง
- เหตุผลคือ grub เวอร์ชันดังกล่าวมีช่องโหว่ด้านความปลอดภัยจริงที่สามารถทำลาย secure boot chain ของ Windows ได้
- ปัญหาคือ Linux distribution บางตัว ยังไม่ได้จัดส่ง grub เวอร์ชัน security generation ใหม่
- ความตั้งใจของ Microsoft คือให้ใช้ SBAT update นี้เฉพาะกับระบบที่มี Windows อย่างเดียว แต่สิ่งนี้ไม่ทำงานตามที่ตั้งใจไว้
สรุป
- Microsoft ผลักดัน Windows update เพื่อไม่ให้มีการใช้ grub เวอร์ชันที่มีช่องโหว่มาโจมตี Windows ได้
- อัปเดตนี้ถูกตั้งใจไม่ให้ใช้กับระบบ dual boot แต่สุดท้ายก็ไม่เป็นผล
- Linux distribution บางตัวไม่ได้อัปเดตทั้งโค้ด grub และ security generation ของ SBAT
- ผลลัพธ์คือผู้ใช้บางส่วนไม่สามารถบูตระบบได้อีก
ใครควรถูกตำหนิ
- Microsoft ควรทดสอบให้มากกว่านี้เพื่อให้สามารถระบุการตั้งค่า dual boot ได้อย่างแม่นยำ
- แต่อีกด้านหนึ่ง distribution ที่จัดส่งบูตโหลดเดอร์แบบ signed ก็ต้องอัปเดตสิ่งนี้และอัปเดต security generation ด้วย
- เพราะมันอาจกลายเป็นช่องทางที่ถูกใช้เพื่อโจมตีระบบปฏิบัติการอื่นได้
บทสรุป
- น่าเสียดายที่ผู้ใช้ปลายทางที่จู่ ๆ ไม่สามารถบูต OS ที่ต้องการได้ กลายเป็นผู้เสียหาย
- นี่เป็นสิ่งที่ไม่ควรเกิดขึ้นอย่างยิ่ง
- แม้จะรู้สึกว่า UEFI Secure Boot ไม่ได้ให้ประโยชน์กับผู้ใช้ปลายทางส่วนใหญ่มากนัก แต่ก็ไม่อยากมารู้ทีหลังว่ามันจำเป็น ดังนั้นจึงเข้าใจการตัดสินใจของ Microsoft ที่เปิดใช้งานไว้เป็นค่าเริ่มต้น
- ยกเว้นความพยายามที่ล้มเหลวในการหลีกเลี่ยงอัปเดตบนระบบ dual boot ก็ยังพอเข้าใจการตัดสินใจของ Microsoft
ความเห็นของ GN⁺
- เหตุการณ์นี้แสดงให้เห็นว่าการหาสมดุลระหว่างความปลอดภัยกับประสบการณ์ผู้ใช้นั้นยากเพียงใด
- ทั้ง Microsoft และ Linux distribution ต่างพยายามอย่างดีที่สุดเพื่อปกป้องผู้ใช้ แต่ในกระบวนการนี้ประสบการณ์ผู้ใช้อาจต้องถูกแลกไป
- สำหรับผู้ใช้ที่ใช้ระบบ dual boot มีแนวโน้มสูงกว่าที่จะเจอปัญหาแบบนี้
- ดังนั้นผู้ใช้ที่ใช้ dual boot ควรดูแลให้ทั้งสองระบบปฏิบัติการเป็นเวอร์ชันล่าสุดและอัปเดตอย่างสม่ำเสมอ
- ในระยะยาว ดูเหมือนว่าจะจำเป็นต้องมีความร่วมมือและการประสานงานที่ดีกว่านี้ระหว่างชุมชน Linux และ Windows
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News