BootROM Lỗ Hổng Nghiêm Trọng trên Thiết Bị Apple

BootROM Lỗ Hổng Nghiêm Trọng trên Thiết Bị Apple

Một lỗ hổng BootROM mới, được đặt tên là usbliter8, đã ảnh hưởng đến các thiết bị Apple sử dụng chip A12, S4/S5 và A13. Lỗ hổng này là sự kết hợp giữa lỗi ở cấp độ phần cứng trong bộ điều khiển USB Synopsys DWC2 và lỗi cấu hình firmware, cho phép chiếm quyền kiểm soát hoàn toàn chuỗi khởi động của bộ xử lý ứng dụng mà không thể vá bằng phần mềm do mã BootROM là bất biến. Đây là một tin tức bảo mật quan trọng cảnh báo về các mối đe dọa tiềm ẩn.

Phân tích Lỗ hổng usbliter8

Theo các nhà nghiên cứu của Paradigm Shift, lỗ hổng bắt nguồn từ cách bộ điều khiển DWC2 USB xử lý các gói Setup USB liên tiếp.

Cơ chế hoạt động của Bộ điều khiển USB DWC2

Bộ điều khiển lưu trữ tối đa ba gói Setup trong bộ nhớ trước khi đặt lại địa chỉ cơ sở DMA (lưu trữ trong thanh ghi DOEPDMA) về vị trí ban đầu, hoạt động tương tự như một bộ đệm vòng (ring buffer).

Điểm yếu chí mạng

Sau mỗi lần ghi, bộ điều khiển sẽ tăng giá trị DOEPDMA theo kích thước dữ liệu đã ghi. Tuy nhiên, thao tác đặt lại luôn trừ đi một giá trị cố định là 24 byte.

Do bộ điều khiển cũng chấp nhận các gói nhỏ hơn được lưu trữ theo các khối 4 byte, phép toán con trỏ bị sai lệch. Sự không khớp giữa việc tăng biến đổi và việc trừ cố định tạo ra một lỗ hổng buffer underflow với các bước nhảy 12 byte, cho phép ghi dữ liệu có kiểm soát vào các vùng bộ nhớ nằm ngoài bộ đệm dự kiến. Điều này có thể dẫn đến các cuộc tấn công mạng phức tạp.

Ảnh hưởng đến Kiến trúc Apple Silicon

Trên các chip A12 và A13, DART (Device Address Resolution Table) của USB được cấu hình ở chế độ bypass trong SecureROM. Điều này có nghĩa là không có hàng rào IOMMU nào ngăn chặn DMA ghi đè dữ liệu SRAM tùy ý. Các thế hệ chip A14 trở lên cấu hình DART chính xác, khiến lỗ hổng này không thể khai thác trên phần cứng mới hơn.

Khai thác trên A12 và S4/S5

Việc khai thác trên A12 và S4/S5 tương đối đơn giản. Bộ đệm DMA nằm liền kề với ngăn xếp (stack) của tác vụ USB trên heap. Kẻ tấn công có thể làm hỏng thanh ghi Link Register (LR) đã lưu, giành quyền kiểm soát PC (Program Counter) trong quá trình chuyển đổi ngữ cảnh của bộ lập lịch (scheduler context switch).

Một chuỗi ROP (Return-Oriented Programming) gọn nhẹ sau đó có thể chuyển hướng các thao tác ghi DMA vào boot trampoline, vốn thường không thể ghi từ EL0. Sau đó, nó nhảy vào quy trình chuyển đổi EL1 của SecureROM để thực thi mã độc (shellcode) với toàn quyền.

Khai thác trên A13: Vượt qua Pointer Authentication (PAC)

Chip A13 giới thiệu cơ chế Pointer Authentication (PAC), gây khó khăn cho việc làm hỏng trực tiếp thanh ghi LR. Các nhà nghiên cứu đã phát triển một kỹ thuật đa bước bao gồm việc ghi đè có kiểm soát siêu dữ liệu heap của DART, vô hiệu hóa các biện pháp bảo vệ kiểm tra heap (heap checksum), và ngăn chặn việc khởi động lại thiết bị khi xảy ra lỗi (panic) bằng cách ghi đè bộ đếm panic toàn cục với một giá trị 0xF bằng kỹ thuật write primitive.

Cuối cùng, việc thực thi được chuyển hướng thông qua một gadget tải một con trỏ hàm từ bộ nhớ do kẻ tấn công kiểm soát, vượt qua PAC vì chỉ có khóa IB được kích hoạt trong firmware, một sơ suất đã dẫn đến hậu quả nghiêm trọng.

Hoàn tất Chiếm quyền Kiểm soát

Sau khi đạt được quyền thực thi mã ở EL1, mã khai thác sẽ chèn một trình xử lý yêu cầu USB tùy chỉnh vào vùng trống của boot trampoline. Nó sửa đổi số sê-ri USB để bao gồm định danh “PWND” và khôi phục các phân bổ heap bị hỏng để duy trì sự ổn định của thiết bị.

Tái cấu trúc SecureROM trên A13

Trên A13, mức độ hư hỏng bộ nhớ đòi hỏi một lần khởi động lại SecureROM đầy đủ. Các nhà nghiên cứu đã sao chép ROM vào SRAM, ánh xạ lại nó thông qua các bảng dịch MMU tùy chỉnh và móc nối việc tạo ROM PTE (Page Table Entry) để duy trì tính nhất quán của không gian địa chỉ trong suốt quá trình khởi động lại.

Các Hoạt động Đặc quyền

Trình xử lý tùy chỉnh hỗ trợ hai hoạt động đặc quyền: giảm cấp độ SoC (tạm thời hạ cấp độ sản xuất) và khởi động iBoot không ký (vượt qua tất cả các xác minh chữ ký trên các tệp iBoot thô), về cơ bản vô hiệu hóa chuỗi Secure Boot của Apple. Đây là một lỗ hổng nghiêm trọng đối với chuỗi bảo mật.

Các SoC Bị Ảnh Hưởng

Các SoC được xác nhận bị ảnh hưởng bao gồm:

  • A12 Bionic
  • A13 Bionic
  • S4
  • S5

Giới hạn và Phương án Khắc phục

Vì các lỗ hổng BootROM nằm trong phần cứng silicon không thể thay đổi, không có bản cập nhật phần mềm hay firmware nào có thể khắc phục được vấn đề này. Phương án khắc phục hiệu quả duy nhất là di chuyển sang phần cứng sử dụng chip A14 trở lên.

Các nhà nghiên cứu lưu ý rằng Secure Enclave Processor (SEP) của Apple cung cấp một ranh giới bảo mật bổ sung, mặc dù usbliter8 mở ra các vectơ rộng hơn để tấn công SEP một cách gián tiếp. Việc cập nhật bản vá không thể giải quyết vấn đề này.

Thông tin Khai thác và Công bố

Paradigm Shift đã phối hợp công bố lỗ hổng này với Bộ phận An ninh Sản phẩm của Apple trước khi xuất bản. Mã khai thác Proof-of-Concept (PoC) đầy đủ có sẵn công khai trong kho lưu trữ nghiên cứu của họ.

Tham khảo thêm chi tiết tại Paradigm Shift blog.