Mượn shim do Microsoft ký để vượt Secure Boot trên máy doanh nghiệp

Phần mềm09 tháng 11, 2026·5 phút đọc

Một nhà nghiên cứu bảo mật trình bày cách lợi dụng shim mã nguồn mở nhưng được Microsoft ký sẵn để qua mặt Secure Boot trên phần cứng doanh nghiệp mà không cần mật khẩu BIOS. Kỹ thuật này nhấn mạnh rằng Secure Boot bảo vệ tính toàn vẹn chuỗi khởi động chứ không phải chống lại kẻ có quyền truy cập vật lý.

Mượn shim do Microsoft ký để vượt Secure Boot trên máy doanh nghiệp

Một nhà nghiên cứu bảo mật đã công bố kỹ thuật lợi dụng shim — thành phần mã nguồn mở nhưng được Microsoft ký sẵn — để khởi động hệ điều hành tùy biến trên máy tính vẫn đang bật Secure Boot, mà không cần mật khẩu BIOS. Phát hiện này cho thấy một lỗ hổng trong cách hiểu phổ biến về Secure Boot: nó không chống lại kẻ có quyền truy cập vật lý vào máy.

Kỹ thuật được trình bày như một phần của chuỗi nghiên cứu p3ng0s — một bản phân phối Linux do tác giả tự phát triển cho các đợt đánh giá xâm nhập vật lý (physical engagement) và tự động hóa red team.

Secure Boot thực chất bảo vệ điều gì?

Theo tác giả, trước khi nghiên cứu, anh từng coi Secure Boot chỉ là một tùy chọn BIOS gây khó chịu, ngăn máy chạy Linux. Hiểu lầm phổ biến là Secure Boot "khóa" máy vào một hệ điều hành duy nhất do Microsoft kiểm soát. Trên thực tế, mục tiêu của nó hẹp hơn: đảm bảo tính toàn vẹn của hệ điều hành đang khởi động — tức là chữ ký của hệ điều hành phải nằm trong cơ sở dữ liệu chữ ký được chấp nhận.

Điều này có nghĩa Secure Boot sinh ra để chặn một loại tấn công cụ thể: mã độc cấp EFI (EFI malware). Nếu mã độc nằm ở phân vùng EFI và Windows không xóa phân vùng này khi reset máy, nó có thể tồn tại dai dẳng. Ngoài ra, người dùng hoàn toàn có thể tự tạo khóa, tự đăng ký (enroll) vào BIOS và tự ký bản Linux của mình — Bazzite Linux có hướng dẫn công khai việc này.

Shim và cơ chế đăng ký khóa MOK

Vấn đề phát sinh khi các bản phân phối Linux liên tục thay đổi nhân và GRUB (trình khởi động), trong khi khóa của Microsoft gần như cố định. Chuỗi tin cậy vì thế được nối bằng hai thành phần:

  • Shim: một chương trình nhỏ, được Microsoft ký bằng chứng chỉ Microsoft Corporation UEFI CA 2011 — chứng chỉ có mặt trên khoảng 99% bo mạch chủ và thường được bật sẵn trên máy doanh nghiệp.
  • MOK (Machine Owner Key): nếu ảnh GRUB không được ký bằng khóa đã biết, shim sẽ chuyển sang phần mềm đăng ký MOK để người dùng tự chọn khóa khớp với chữ ký của GRUB và nhân Linux.

Sơ đồ quy trình đăng ký khóa MOKSơ đồ quy trình đăng ký khóa MOK

Điểm mấu chốt mà tác giả khai thác: nếu có thể tự chọn khóa trong bước MOK, thì cũng có thể chọn khóa của chính mình — và thế là hệ điều hành tùy biến vẫn khởi động được trên máy đang bật Secure Boot.

Mượn shim có chữ ký của Microsoft

Các bản phân phối như Ubuntu, Debian, Fedora đều công khai gói shim-signed — có thể tìm thấy trên trang tìm kiếm gói phần mềm đa phân phối pkgs.org. Tác giả gọi đây là điểm "buồn cười": chỉ cần tải shim có chữ ký hợp lệ của Microsoft về dùng.

Tìm kiếm gói shim trên kho phần mềmTìm kiếm gói shim trên kho phần mềm

Để xác nhận chữ ký, có thể dùng lệnh sbverify --list trên tệp shim .efi; kết quả sẽ hiển thị chứng chỉ của Microsoft. Từ đó, quy trình gồm các bước chính:

  • Gắn (mount) phân vùng EFI của ổ đĩa hoặc USB.
  • Tự sinh cặp khóa và ký nhân Linux bằng khóa đó — lưu ý việc ký nhân không thực hiện được trên USB live trừ khi tự build. Tác giả đã thêm một hook riêng trong quá trình build p3ng0s để làm việc này.
  • Đổi tên ảnh GRUB thành grubx64.efi và ký nó.
  • Đặt shim thành BOOTx64.EFI, kèm phần mềm MOK bên cạnh.
  • Chuyển chứng chỉ sang định dạng Secure Boot chấp nhận và chép vào thư mục BOOT/ để dùng sau.

Phân vùng EFI sau khi hoàn tất các bướcPhân vùng EFI sau khi hoàn tất các bước

Khai thác trên máy nạn nhân

Trên máy có Secure Boot và chứng chỉ bên thứ ba của Microsoft được cài sẵn, kẻ tấn công chỉ cần cắm USB, vào menu chọn thiết bị khởi động (thường là phím F7, có thể khác tùy dòng máy) — không cần mật khẩu BIOS cho tùy chọn này. Hệ thống sẽ khởi động shim, thất bại ở bước kiểm tra chữ ký GRUB, rồi hiện phần mềm đăng ký MOK. Tại đây chọn Enroll Key from disk, trỏ tới khóa trong thư mục BOOT/, xác nhận — và GRUB xuất hiện như bình thường.

Tác giả lưu ý rằng chứng chỉ bên thứ ba của Microsoft phần lớn có mặt trên máy doanh nghiệp, nhưng không phải tuyệt đối: một số máy dùng HP Wolf Security từng thiếu chứng chỉ này, và khoảng một đến hai năm gần đây nhiều dòng máy đã ngừng bật sẵn.

Góc nhìn

Với các kỹ sư và đội bảo mật tại Việt Nam, kỹ thuật này là lời nhắc rằng Secure Boot không phải biện pháp chống truy cập vật lý. Nó chỉ đảm bảo chữ ký của hệ điều hành khởi động nằm trong danh sách tin cậy, chứ không ngăn người có mặt tại chỗ cắm thiết bị và tự đăng ký khóa. Những tổ chức coi việc bật Secure Boot là đủ để bảo vệ máy trạm nên bổ sung các lớp khác như mật khẩu BIOS, khóa cổng USB, kiểm soát thứ tự khởi động và mã hóa ổ đĩa.

Về phía đội red team, đây là minh chứng cho giá trị của các bài kiểm thử xâm nhập vật lý (physical penetration testing) — một mảng còn ít được khai thác trong các hợp đồng đánh giá an ninh mạng, dù thường kết hợp với các kỹ thuật đơn giản như shim nói trên là đủ để qua mặt một lớp phòng thủ được nhiều người mặc định tin tưởng.

Nguồn: leosmith.wtf · Quy trình biên tập

Chia sẻ:FacebookX