Các nhà nghiên cứu tại Eclypsium vừa công bố chi tiết về lỗ hổng BootHole nằm trong bootloader (bộ nạp khởi động) GRUB2, ảnh hưởng đến hàng tỷ thiết bị trên toàn cầu. Trong đó có máy chủ, máy trạm (workstation), laptop, desktop và thiết bị IoT chạy trên các hệ thống Linux hoặc Windows.
Bootloader GRUB2 là một trong những bộ nạp khởi động được sử dụng phổ biến nhất trên hệ điều hành Linux. Ngoài ra, GRUB2 còn được sử dụng cho các hệ thống Windows, macOS và BSD. Vì vậy, hầu như mọi thiết bị đều có khả năng bị tấn công. Nếu khai thác, GRUB2 có khả năng cấp quyền cho kẻ tấn công bỏ qua tính năng Secure Boot và được phép truy cập vào các hệ thống được nhắm mục tiêu.
“Không riêng Linux, bất kỳ hệ thống nào sử dụng Secure Boot với tiêu chuẩn Microsoft UEFI CA đều có khả năng gặp phải vấn đề này”, nhóm nghiên cứu cho biết thêm về tác động của GRUB2 với các hệ điều hành khác có sử dụng bộ nạp khởi động này trong quy trình Secure Boot.
Secure Boot là tính năng bảo mật của chuẩn UEFI (Giao diện phần mềm mở rộng hợp nhất), sử dụng bootloader để tải các thành phần quan trọng, thiết bị ngoại vi và hệ điều hành nhưng vẫn đảm bảo rằng chỉ có những mã code được phê duyệt mã hóa mới được thực thi trong quá trình khởi động.
Quy trình Secure Boot được thiết kế với mục đích ngăn chặn những tài khoản quản trị có đặc quyền cao xâm phạm vào quy trình khởi động. Vì vậy BootHole là lỗ hổng bảo mật lớn tồn tại trong một quy trình an toàn nhất của hệ sinh thái CNTT. Khi khai thác lỗ hổng BootHole, tin tặc có thể can thiệp vào quá trình bootloader trước khi hệ điều hành bắt đầu khởi động, vượt qua Secure Boot và có đặc quyền truy cập vào các hệ thống mục tiêu.
Lỗ hổng trong bộ nạp khởi động GRUB2
Lỗ hổng BootHole có mã hiệu CVE-2020-10713, được phát hiện đầu năm nay bởi các nhà nghiên cứu từ Eclypsium. Các chuyên gia bảo mật cho biết BootHole cho phép kẻ tấn công giả mạo thành phần GRUB2, chèn và thực thi mã độc trong quá trình nạp khởi động. Nhờ vào đó, tin tặc có toàn quyền kiểm soát hệ điều hành.
Loại mã độc này được biết đến như một bootkit vì chúng tồn tại trong Bootloader, bộ nhớ vật lý của bo mạch chủ, những nơi tách biệt với hệ điều hành và cho phép cài đặt lại toàn bộ nền tảng.
Theo các chuyên gia của Eclypsium, lỗ hổng BootHole nằm trong tập tin grub.cfg. Đây là một tập tin cấu hình tách biệt với thành phần GRUB2 thực tế, từ đó bộ nạp khởi động sẽ thực thi một số cài đặt riêng cho hệ thống. Tin tặc có thể sửa đổi các giá trị trong tập tin này, kích hoạt một lỗi tràn bộ đệm (buffer overflow) trên tất cả các phiên bản GRUB2. Từ đó, có cơ hội phá vỡ cơ chế bảo mật ngay từ phần cứng.
Cần lưu ý, tập tin grub.cfg nằm trong phân vùng hệ thống EFI. Do đó, để sửa đổi tập tin, kẻ tấn công vẫn cần một “chỗ đứng” ban đầu trên hệ thống được nhắm mục tiêu, với các đặc quyền quản trị để có thể thực hiện những cuộc tấn công leo thang trên thiết bị.
GRUB2 là bộ nạp khởi động tiêu chuẩn sử dụng cho hầu hết các hệ thống Linux. Không chỉ vậy, GRUB2 còn hỗ trợ các hệ điều hành, nhân (kernel) và một số trình ảo hóa khác như XEN.
“Tràn bộ đệm cho phép kẻ tấn công có được mã thực thi tùy ý trong môi trường UEFI, có thể được sử dụng để chạy phần mềm độc hại, thay đổi quy trình khởi động, vá trực tiếp nhân hệ điều hành hoặc thực hiện bất kỳ hành động độc hại nào khác”, các nhà nghiên cứu giải thích.
Do đó, để khai thác lỗ hổng BootHole trên các hệ thống Windows, kẻ tấn công có thể thay thế bộ tải khởi động mặc định được cài đặt trên hệ thống Windows bằng phiên bản GRUB2 dễ bị tấn công để cài đặt rootkit phần mềm độc hại.
Theo các nhà nghiên cứu, lỗ hổng này có thể gây ra hậu quả nghiêm trọng, vì tin tặc thực thi mã độc ngay cả trước khi hệ điều hành khởi động, khiến phần mềm bảo mật khó phát hiện sự hiện diện của phần mềm độc hại và loại bỏ nó.
Bên cạnh đó, các chuyên gia cũng cho biết môi trường thực thi UEFI không có công nghệ bảo mật ASLR, tính năng Ngăn chặn Thực thi Dữ liệu (DEP/NX) hoặc những công nghệ giúp hạn chế hoạt động khai thác khác, vốn thường thấy trong các hệ điều hành hiện đại. Vì vậy, những cuộc tấn công dạng này thường dễ thực hiện, gây ra hậu quả nghiệm trọng cho hệ thống.
Chỉ cài đặt bản cập nhật và bản vá lỗi sẽ không giải quyết được vấn đề
Các chuyên gia tại Eclypsium đã liên hệ với các đơn vị có liên quan, gồm những nhà cung cấp hệ điều hành và sản xuất máy tính, để giúp họ khắc phục vấn đề. Tuy nhiên rất khó để xử lý “đến nơi đến chốn”.
Nếu chỉ cài đặt các bản vá với bộ nạp khởi động GRUB2 đã được cập nhật sẽ không giải quyết được vấn đề, vì tin tặc vẫn có thể thay thế bộ nạp khởi động hiện tại của thiết bị bằng phiên bản khác dễ bị tấn công.
Theo Eclypsium, để khắc phục cần phê duyệt và triển khai bộ nạp khởi động mới, đồng thời thu hồi những bộ nạp cũ chứa lỗ hổng và dễ bị xâm nhập để ngăn tin tặc sử dụng những phiên bản đó tiếp tục tấn công người dùng. Các nhà cung cấp bị ảnh hưởng trước tiên sẽ cần phát hành phiên bản bộ nạp khởi động mới được phê duyệt bởi UEFI CA bên thứ 3 của Microsoft.
Danh sách thu hồi UEFI (dbx) cũng cần được cập nhật firmware trên mỗi hệ thống bị ảnh hưởng để ngăn tình trạng chạy những mã chứa lỗ hổng trong khi khởi động. Quá trình khắc phục phải chia thành nhiều giai đoạn, các tổ chức có thể phải mất vài năm để thành việc vá lỗi.
“Việc triển khai đầy đủ quy trình khắc phục lỗi sẽ diễn ra rất chậm. Các bản cập nhật liên quan đến UEFI từng có lịch sử làm cho các thiết bị không thể sử dụng được nên các nhà cung cấp cần phải hết sức thận trọng. Nếu danh sách thu hồi (dbx) được cập nhật trước khi bộ nạp khởi động và shim Linux được cập nhật, thì hệ điều hành sẽ không tải được”, các chuyên gia cảnh báo.
Shims là các thành phần cho phép firmware riêng của các nhà cung cấp tương tác với bộ nạp khởi động GRUB2.
Microsoft đã thừa nhận lỗ hổng BootHole, đồng thời thông báo rằng hãng đang kiểm tra tính hợp lệ và độ tương thích trong Windows Update, nhằm đưa ra phương án khắc phục lỗ hổng này. Hãng cũng khuyến nghị người dùng áp dụng các bản vá bảo mật ngay khi chúng được tung ra trong vài tuần tới.
Ngoài Microsoft, nhiều bản cập nhật Linux phổ biến cũng đã phát hành các thông tin liên quan giải thích lỗ hổng, cách khắc phục và lịch trình phát hành các bản vá bảo mật sắp tới.
Dưới đây là danh sách những nhà sản xuất và phát triển phần mềm cần phát hành bản vá:
- Microsoft
- UEFI Security Response Team (USRT)
- Oracle
- Red Hat (Fedora and RHEL)
- Canonical (Ubuntu)
- SuSE (SLES and openSUSE)
- Debian
- Citrix
- HP
- VMware