23 ก.ค. เวลา 11:01 • วิทยาศาสตร์ & เทคโนโลยี

Secure Boot ไม่ได้กันมัลแวร์ทุกตัว แล้วมันกันอะไรได้บ้าง?

เคยได้ยินคำว่า "เปิด Secure Boot ไว้แล้วเครื่องปลอดภัยชัวร์" ไหม ถ้าใครเคยได้ยินประโยคนี้แล้วเชื่อสนิทใจ ต้องบอกตรงๆ ว่าเข้าใจผิดไปนิดหนึ่ง เพราะ Secure Boot เป็นแค่ด่านหนึ่งในกระบวนการยาวๆ ของการปกป้องเครื่องคอมพิวเตอร์ ไม่ใช่ยาครอบจักรวาลที่กันมัลแวร์ได้ทุกชนิดทุกรูปแบบ ยิ่งพอ Windows 11 บังคับให้ต้องมี Secure Boot กับ TPM คนก็ยิ่งเข้าใจไปเองว่าติ๊กเปิดไว้แล้วจบ ปลอดภัย 100% ทั้งที่จริงๆ มันไม่ได้ทำงานแบบนั้นเลย
วันนี้เลยอยากชวนมาเคลียร์ให้ชัดๆ ว่า Secure Boot ทำหน้าที่อะไรจริงๆ กันอะไรได้บ้าง แล้วมีมุมไหนบ้างที่มันไม่เกี่ยวเลยแม้แต่น้อย
โครงสร้างทางสถาปัตยกรรมของ Secure Boot
ก่อนอื่นต้องเข้าใจก่อนว่า Secure Boot ไม่ใช่โปรแกรม ไม่ใช่ Antivirus แต่เป็นฟีเจอร์หนึ่งที่ถูกกำหนดไว้ใน UEFI Specification ซึ่งมาแทน BIOS แบบเก่า หน้าที่หลักของมันแคบมาก คือควบคุมแค่ว่า "ตอนเปิดเครื่อง จะให้ Bootloader ตัวไหนโหลดขึ้นมาได้บ้าง" ถ้า Bootloader ตัวไหนไม่ได้เซ็น Digital Signature ไว้ถูกต้อง หรือ Signature ไม่ตรงกับที่เครื่องเชื่อถือ เครื่องมันก็จะปฏิเสธไม่โหลดตัวนั้นตั้งแต่ต้น
พูดง่ายๆ Secure Boot เหมือน รปภ.หน้าประตู ที่คอยเช็กบัตรพนักงานก่อนเข้าตึก ใครไม่มีบัตรหรือใช้บัตรปลอมก็เข้าไม่ได้ตั้งแต่ทางเข้า
ระบบความเชื่อถือของ Secure Boot ถูกสร้างเป็นลำดับชั้นที่เรียกว่า Chain of Trust จุดเริ่มต้นของมันมาจากขั้นตอนที่เรียกว่า SEC Phase ซึ่งเป็นจังหวะแรกสุดหลัง CPU เปิดเครื่องแล้วรันคำสั่งจากตำแหน่งที่ตายตัว เพราะเป็นช่วงที่ยังไม่มีทรัพยากรมากพอจะรันโค้ดอื่นได้ ระบบจึงทำได้แค่ค้นหา ตรวจสอบ ติดตั้ง แล้วรันเฟิร์มแวร์ชิ้นเล็กๆ ชิ้นแรกเท่านั้น
ผู้ผลิต CPU จึงเริ่มตรวจสอบลายเซ็นของเฟิร์มแวร์ชิ้นแรกนี้เพื่อยืนยันว่าไม่ถูกแก้ไข และจากฐานที่มั่นคงตรงนี้เองที่ Chain of Trust ของ UEFI Secure Boot จะเริ่มต่อยอดขึ้นไปเรื่อยๆ การจะไปแก้ไขอะไรในขั้นตอนนี้แทบต้องเข้าถึงตัวเครื่องจริงๆ เท่านั้น จากจุดนี้ระบบจะไล่ตรวจสอบ Signature ทีละชั้นจนกว่าจะส่งไม้ต่อให้ Operating System
ในเชิงเทคนิค Windows ใช้ฐานข้อมูลคีย์ 4 ตัวคุมเรื่องนี้ ได้แก่ Platform Key หรือ PK ซึ่งเป็นกุญแจแม่สุดที่ผู้ผลิตเครื่องถือไว้, Key Enrollment Key หรือ KEK ที่ใช้เซ็นอัปเดตฐานข้อมูลอีกสองตัว คือ Signature Database หรือ db ที่เก็บรายชื่อ Signature หรือ Hash ของ Bootloader และ Driver ที่อนุญาตให้โหลดได้ กับ Revoked Signature Database หรือ dbx ที่เก็บรายชื่อของที่เคยเชื่อถือได้แต่ตอนนี้ถูกขึ้นบัญชีดำแล้ว
ถ้า Hash เดียวกันไปโผล่อยู่ทั้งใน db และ dbx พร้อมกัน ตัว dbx จะชนะเสมอเพราะถือเป็นบัญชีปฏิเสธที่มีสิทธิ์เหนือกว่า ซึ่งระบบนี้ทำให้ Microsoft หรือผู้ผลิตเครื่องสามารถ "แบน" Bootloader ที่ภายหลังพบว่ามีช่องโหว่ได้ โดยไม่ต้องเปลี่ยนคีย์ทั้งระบบใหม่หมด
ทีนี้พอเข้าใจกลไกแล้ว มาดูกันว่า Secure Boot กันอะไรได้จริงบ้าง หลักๆ เลยคือมันกัน Firmware Rootkit และ Bootkit พวกที่พยายามสอดไส้ตัวเองเข้ามาแทนที่ Bootloader ตัวจริง หรือแก้ไขเฟิร์มแวร์ของเครื่องเพื่อให้ตัวเองรันก่อน Windows Rootkit
กลุ่มนี้อันตรายมาก เพราะรันในระดับ Kernel ด้วยสิทธิ์เดียวกับตัว OS เอง และเพราะมันเริ่มทำงานก่อน OS จะโหลดขึ้นมา มันจึงซ่อนตัวเองและซ่อนโปรแกรมอื่นได้อย่างแนบเนียน มักมาพร้อมชุดมัลแวร์ที่ดักรหัสผ่าน ขโมยไฟล์ หรือดัก Keystroke ด้วย ถ้าไม่มี Secure Boot คอยเช็กตั้งแต่ต้น เครื่องก็จะโหลด Bootloader ตัวไหนก็ได้ที่วางอยู่ในฮาร์ดดิสก์ โดยไม่รู้เลยว่านั่นคือของแท้หรือของปลอมที่ถูกสับเปลี่ยนมา
เหตุผลที่ต้องมี Secure Boot แยกออกมาต่างหาก ทั้งที่เครื่องก็มี Antivirus อยู่แล้ว เพราะ Antivirus ทำงานได้ก็ต่อเมื่อ Windows Start ขึ้นมาแล้วเท่านั้น แต่มัลแวร์สมัยใหม่ โดยเฉพาะ Bootkit สามารถเริ่มทำงานได้ตั้งแต่ก่อน Windows จะโหลด ทำให้เลี่ยงการตรวจจับของระบบความปลอดภัยระดับ OS ไปได้ทั้งหมดและซ่อนตัวเองได้อย่างมิดชิด Secure Boot จึงเข้ามาอุดช่องว่างตรงนี้ โดยทำหน้าที่เป็นด่านแรกสุด ก่อนที่ Antivirus จะมีโอกาสทำงานเลยด้วยซ้ำ
แต่ Secure Boot ไม่ได้ทำงานคนเดียวโดดๆ มันเป็นแค่จุดเริ่มต้นของกระบวนการที่ยาวกว่านั้นมาก Windows ยังมีฟีเจอร์อีกสามตัวที่รับไม้ต่อกันเป็นทอดๆ คือ Trusted Boot ที่ตรวจสอบความถูกต้องของทุก Component ในขั้นตอน Startup ก่อนโหลด, Early Launch Anti-Malware หรือ ELAM ที่ตรวจสอบ Driver ทุกตัวก่อนอนุญาตให้โหลด และ Measured Boot ที่บันทึก Log การ Boot ทั้งหมดลงใน TPM เพื่อให้เซิร์ฟเวอร์ที่เชื่อถือได้นำไปประเมินสุขภาพของเครื่องภายหลัง
พูดง่ายๆ คือ Secure Boot เช็คแค่ว่า Bootloader ตัวแรกที่จะโหลด "เซ็นถูกต้องไหม" ส่วนว่า Kernel, Driver หรือไฟล์ระบบอื่นจะถูกแก้ไขระหว่างทางหรือเปล่า เป็นหน้าที่ของ Trusted Boot กับ ELAM ที่รับช่วงต่อไป ถ้าเป็นองค์กรที่ต้องตรวจสุขภาพเครื่องจากระยะไกล ก็จะใช้ผลจาก Measured Boot ส่งไปให้ระบบอย่าง Attestation Server ประเมินอีกที ว่าเครื่องนี้ยังอยู่ในสภาพที่เชื่อถือได้อยู่ไหม
เข้าเรื่องหลักกันเลยดีกว่า ว่า Secure Boot "ไม่ได้กัน" อะไรบ้าง ข้อแรกที่สำคัญที่สุดคือมันไม่เกี่ยวข้องอะไรเลยกับมัลแวร์ที่ทำงานหลังจาก Windows Boot เสร็จเรียบร้อยแล้ว ไม่ว่าจะเป็น Ransomware ที่รันเป็น Process ปกติหลัง Login, Trojan ที่แนบมากับไฟล์อีเมล, Malware ที่ฝังอยู่ใน Macro ของเอกสาร Office หรือการโจมตีผ่านช่องโหว่ของ Browser
พวกนี้ไม่เกี่ยวกับกระบวนการ Boot เลยแม้แต่น้อย เพราะ Secure Boot จบบทบาทของตัวเองไปตั้งแต่ก่อน Windows Desktop จะขึ้นมาด้วยซ้ำ ต่อให้เปิด Secure Boot แน่นหนาแค่ไหน ถ้าพนักงานเผลอเปิดไฟล์แนบที่มี Payload อันตราย เครื่องก็ติด Malware ได้เหมือนเดิมไม่ต่างกันเลย
ข้อที่สองที่คนมักมองข้าม คือ Secure Boot เช็กแค่ว่า "ลายเซ็นถูกต้องไหม" แต่ไม่ได้เช็กว่า "โปรแกรมที่เซ็นมานั้นปลอดภัย 100% ไหม" แปลว่าถ้า Bootloader ตัวหนึ่งเซ็น Signature ถูกต้องตามกระบวนการ แต่ดันมีช่องโหว่อยู่ในตัวมันเอง Secure Boot ก็ยังปล่อยให้มันรันได้ตามปกติ
เพราะในสายตาของระบบ มันคือของที่เชื่อถือได้อยู่ดี Microsoft เองก็เคยพูดถึงประเด็นนี้ตรงๆ เนื่องจาก Microsoft 3rd Party UEFI CA ที่ใช้เซ็น Bootloader ให้ลินุกซ์แทบทุก Distro ทำให้วงของความเชื่อถือกว้างเกินความจำเป็น ลูกค้าที่ตั้งใจจะเชื่อถือแค่ลินุกซ์ Distro เดียว กลับกลายเป็นเชื่อถือ Distro อื่นไปด้วยโดยไม่รู้ตัว และถ้า Bootloader ตัวใดตัวหนึ่งในนั้นมีช่องโหว่ ก็เท่ากับเปิดความเสี่ยงให้ระบบที่ไม่เคยตั้งใจจะใช้ Bootloader ตัวนั้นเลยด้วยซ้ำ
นี่คือสาเหตุที่เครื่องประเภท Secured-core PC ถึงถูกออกแบบให้ Distrust CA ของบุคคลที่สามเป็นค่าเริ่มต้น เพื่อบีบวงความเชื่อถือให้แคบลง กรณีแบบนี้เคยเกิดขึ้นจริงกับช่องโหว่ในตัว GRUB Bootloader ของฝั่งลินุกซ์มาแล้ว เป็นตัวอย่างชัดว่า "เซ็นแล้ว" ไม่เท่ากับ "ปลอดภัยแล้ว" เสมอไป
ข้อที่สี่ คือเรื่อง Physical Access หรือการเข้าถึงเครื่องโดยตรง เพราะ Secure Boot สามารถถูกปิดได้จากเมนู Firmware หรือ BIOS Setup ถ้าใครมีสิทธิ์เข้าไปตั้งค่าตรงนั้นได้ ก็ปิด Secure Boot ทิ้งไปเลยก็ได้ หรือ Enroll กุญแจของตัวเองเข้าไปแทนก็ได้เช่นกัน การปิด Secure Boot ก็คือการเปิดประตูรับ Bootkit เข้ามาโดยไม่มีอะไรกันแล้ว นี่คือเหตุผลที่องค์กรที่ใส่ใจเรื่องความปลอดภัยระดับสูงมักล็อกเมนู Firmware ด้วยรหัสผ่าน หรือใช้เครื่องประเภท Secured-core PC ที่บังคับให้ Secure Boot เปิดอยู่เสมอ
ข้อสุดท้าย Secure Boot ไม่เกี่ยวอะไรเลยกับการโจมตีที่อาศัยความผิดพลาดของมนุษย์ หรือ Supply Chain Attack ที่ตัวซอฟต์แวร์ถูกฝัง Backdoor มาตั้งแต่ต้นทาง แต่ยังเซ็น Signature ถูกต้องตามกระบวนการปกติ เพราะในทางเทคนิคมันยังถือว่า "น่าเชื่อถือ" อยู่ดี Phishing, การขโมย Credential, การหลอกให้เหยื่อเปิดไฟล์อันตราย หรือการโจมตีผ่านช่องโหว่ Zero-day ของแอปพลิเคชันทั่วไป ทั้งหมดนี้อยู่นอกเหนือขอบเขตของ Secure Boot โดยสิ้นเชิง มันไม่เคยถูกออกแบบมาให้ทำงานตรงจุดนี้ตั้งแต่แรกอยู่แล้ว
สรุปง่ายๆ ให้เห็นภาพ Secure Boot เปรียบเหมือน รปภ. ที่ยืนเช็กบัตรพนักงานอยู่หน้าประตูตึกเท่านั้น หน้าที่ของมันคือกันคนที่ไม่มีบัตรหรือใช้บัตรปลอมไม่ให้เข้าตึกได้ตั้งแต่ต้นทาง แต่มันไม่ใช่กล้องวงจรปิดที่คอยจับตาดูทุกความเคลื่อนไหวภายในตึกตลอดเวลา และก็ไม่ใช่คนที่จะไปเช็กว่าพนักงานที่ถือบัตรถูกต้องเดินเข้ามาแล้ว จะเผลอเปิดประตูให้คนแปลกหน้าตามหลังเข้ามาโดยไม่ตั้งใจหรือเปล่า
งานแบบนั้นเป็นหน้าที่ของเลเยอร์อื่นที่ต้องทำงานต่อกันเป็นทอดๆ ทั้ง Trusted Boot, ELAM, Measured Boot ไปจนถึง Antivirus, EDR และการอบรมพนักงานเรื่อง Phishing
เพราะฉะนั้นสิ่งที่ควรทำในทางปฏิบัติไม่ใช่การมองว่า Secure Boot ไม่มีประโยชน์ เพราะมันยังคงเป็นด่านสำคัญที่ลด Attack Surface ของช่วง Boot ลงไปได้เยอะมากจริงๆ แต่ต้องเข้าใจว่ามันเป็นแค่จุดเริ่มต้นของ Defense in Depth เท่านั้น สิ่งที่ควรทำควบคู่กันไปคือหมั่นอัปเดต Firmware และฐานข้อมูล dbx ให้ทันสมัยอยู่เสมอ เพื่อแบน Bootloader ที่มีช่องโหว่ใหม่ๆ ที่ถูกค้นพบ ไม่ปิด Secure Boot ทิ้งไว้โดยไม่จำเป็น ใช้ TPM ร่วมกับ Measured Boot ถ้าเป็นองค์กรที่ต้องการตรวจสุขภาพเครื่องจากระยะไกล
และที่สำคัญคือยังต้องมี Antivirus หรือ EDR รันอยู่ตลอดเวลา เพราะมัลแวร์ส่วนใหญ่ในโลกความเป็นจริงไม่ได้โจมตีผ่านช่องทาง Boot เลยด้วยซ้ำ แต่โจมตีผ่านพฤติกรรมของผู้ใช้งานและช่องโหว่ระดับแอปพลิเคชันมากกว่ามาก
Secure Boot เป็นด่านที่ดีและจำเป็นมากสำหรับยุคที่ Bootkit และ Firmware Rootkit ระบาดหนักขึ้นเรื่อยๆ แต่การจะบอกว่ามันกันมัลแวร์ได้ทุกตัวคือความเข้าใจที่คลาดเคลื่อน เพราะมันถูกออกแบบมาให้ทำหน้าที่แคบๆ แค่จุดเดียว คือคุมว่าใครจะได้เริ่มรันก่อน แล้วปล่อยให้เลเยอร์อื่นที่เหลือทำหน้าที่ต่อของมันไป รู้ขอบเขตของมันไว้ให้ชัด จะได้ไม่ประมาทและวางแผนความปลอดภัยได้ครบวงจรมากขึ้น
แหล่งอ้างอิง
โฆษณา