Khai thác Secure Boot MediaTek: Nguy hiểm thực thi mã từ xa

Một Proof-of-Concept (PoC) exploit đã được công bố, nhắm vào lỗ hổng nghiêm trọng trong quy trình Secure Boot của Nothing Phone (2a) và CMF Phone 1. Khai thác này có khả năng phá vỡ chuỗi tin cậy và cho phép thực thi mã đầy đủ ở cấp độ đặc quyền cao nhất, gây ra rủi ro nghiêm trọng đối với an ninh thiết bị. Đây là một ví dụ điển hình về khai thác zero-day có thể ảnh hưởng sâu rộng.
Phân Tích Lỗ Hổng Secure Boot trên MediaTek
Lỗ hổng logic trong chuỗi Secure Boot của MediaTek ảnh hưởng đến Nothing Phone (2a) và nhiều khả năng các thiết bị MediaTek khác. Chi tiết về các bản cập nhật bảo mật liên quan có thể tìm thấy trên trang chủ của MediaTek.
Khi bootloader của thiết bị được mở khóa, Preloader sẽ bỏ qua quá trình xác minh phân vùng bl2_ext. Phân vùng này có nhiệm vụ xác minh tất cả các giai đoạn khởi động tiếp theo, nhưng do lỗ hổng, nó không bao giờ được kiểm tra.
Bằng cách khai thác khe hở này, kẻ tấn công có thể chạy mã tùy ý ở EL3, cấp độ đặc quyền cao nhất trong hệ thống, đồng thời vô hiệu hóa chuỗi khởi động bảo mật sau khi Preloader thực thi. Điều này cho phép kẻ tấn công thực hiện remote code execution và chiếm quyền điều khiển hoàn toàn thiết bị.
Chi Tiết Kỹ Thuật và Mã Khai Thác (PoC) Fenrir
PoC đã công bố, có tên fenrir, thực hiện việc vá hàm sec_get_vfy_policy() trong bl2_ext để nó luôn trả về giá trị 0. Hành động này sẽ bỏ qua chính sách xác thực, cho phép mọi boot image tải mà không cần kiểm tra.
Khai thác cũng thực hiện việc giả mạo trạng thái khóa của thiết bị để nó trông như đã khóa. Điều này cho phép các kiểm tra tính toàn vẹn vượt qua trong khi thiết bị thực tế vẫn ở trạng thái mở khóa.
PoC bao gồm các script Python, C và shell để tự động hóa quá trình vá lỗi và flash firmware. Đây là một quy trình kỹ thuật cao đòi hỏi kiến thức sâu về bootloader và kiến trúc hệ thống.
Ngoài ra, PoC đăng ký các lệnh fastboot tùy chỉnh và có thể gọi động các hàm bootloader tích hợp. Tuy nhiên, việc sửa đổi bộ nhớ trong thời gian chạy hiện đang gây ra lỗi MMU faults và vẫn đang trong quá trình phát triển.
# Ví dụ mã Python từ PoC (minh họa)
# Đây chỉ là một đoạn giả định để minh họa cách PoC có thể tương tác với bootloader.
# Mã thực tế phức tạp hơn và có trong repository fenrir.
def patch_bl2_ext(device_handle, patch_offset, patch_value):
# Gửi lệnh fastboot để đọc/ghi vào phân vùng bl2_ext
print(f"[+] Gửi lệnh patch bl2_ext tại offset {hex(patch_offset)} với giá trị {hex(patch_value)}")
device_handle.send_fastboot_command(f"oem patch_bl2_ext {patch_offset} {patch_value}")
# ... thêm logic kiểm tra và xác nhận
def spoof_lock_state(device_handle):
# Gửi lệnh fastboot để giả mạo trạng thái khóa
print("[+] Giả mạo trạng thái khóa thiết bị")
device_handle.send_fastboot_command("oem set_lock_state unlocked_spoofed")
# ... thêm logic kiểm tra
# Khai thác Secure Boot sẽ tích hợp các bước này
Tác Động và Biện Pháp Giảm Thiểu Lỗ Hổng
Lỗ hổng này làm suy yếu toàn bộ chuỗi tin cậy trên các thiết bị bị ảnh hưởng. Một khi bị khai thác, kẻ tấn công có thể cài đặt hệ điều hành trái phép hoặc thao túng firmware mà không bị phát hiện. Điều này có thể dẫn đến việc chiếm quyền điều khiển hệ thống hoàn toàn.
Lỗ hổng đã được xác nhận trên Nothing Phone (2a) và CMF Phone 1. Các thử nghiệm sơ bộ cho thấy các điện thoại khác dựa trên MediaTek như Vivo X80 Pro cũng có nguy cơ bị ảnh hưởng bởi lỗ hổng khai thác Secure Boot này.
Để giảm thiểu rủi ro, người dùng nên tránh mở khóa bootloader cho đến khi có bản vá chính thức được phát hành. Việc mở khóa bootloader làm tăng bề mặt tấn công và tạo điều kiện cho các cuộc tấn công khai thác Secure Boot như fenrir.
Các nhà sản xuất thiết bị và nhà cung cấp chipset phải cập nhật quá trình xác minh khởi động bảo mật để thực thi kiểm tra phân vùng bl2_ext ngay cả khi bootloader đã mở khóa. Điều này là tối quan trọng để khôi phục tính toàn vẹn của chuỗi Secure Boot.
Các đội ngũ bảo mật nên theo dõi chặt chẽ các hoạt động flash firmware trái phép. Đồng thời, cần khuyến nghị người dùng cuối khóa lại bootloader sau khi áp dụng các bản cập nhật chính thức để bảo vệ thiết bị khỏi các nỗ lực khai thác Secure Boot.
Toàn bộ kho lưu trữ PoC, bao gồm giải thích chi tiết, script và hướng dẫn sử dụng, có sẵn trên GitHub dưới giấy phép AGPL-3.0. Các nhà nghiên cứu bảo mật và nhà cung cấp thiết bị được khuyến khích xem xét mã nguồn và tích hợp các biện pháp xác minh phù hợp để khôi phục chuỗi khởi động an toàn.









