Chuỗi tấn công 'Operation Triangulation'
- Gửi tệp đính kèm iMessage độc hại để ứng dụng xử lý mà người dùng không hề hay biết.
- Tệp đính kèm này khai thác lỗ hổng thực thi mã từ xa CVE-2023-41990 trong lệnh font ADJUST TrueType không được tài liệu hóa, chỉ dành cho Apple.
- Sử dụng nhiều giai đoạn được viết bằng lập trình hướng trả về/nhảy và ngôn ngữ truy vấn NSExpression/NSPredicate để vá môi trường thư viện JavaScriptCore và thực thi exploit leo thang đặc quyền viết bằng JavaScript.
- Exploit JavaScript được làm rối hoàn toàn đến mức gần như không thể đọc và được tối thiểu hóa kích thước. Khoảng 11.000 dòng mã chủ yếu dành cho việc phân tích và thao tác JavaScriptCore cùng bộ nhớ kernel.
- Tận dụng tính năng gỡ lỗi DollarVM($vm) của JavaScriptCore để giành khả năng thao tác bộ nhớ JavaScriptCore từ script và thực thi các hàm API native.
- Được thiết kế để hỗ trợ cả iPhone đời cũ và đời mới, đồng thời bao gồm cơ chế vượt qua Pointer Authentication Code(PAC) để khai thác lỗ hổng trên các mẫu mới nhất.
- Khai thác lỗ hổng tràn số nguyên CVE-2023-32434 trong các system call ánh xạ bộ nhớ của XNU (
mach_make_memory_entry và vm_map) để giành quyền đọc/ghi toàn bộ bộ nhớ vật lý của thiết bị từ không gian người dùng.
- Sử dụng các thanh ghi hardware memory-mapped I/O (MMIO) để vượt qua Page Protection Layer(PPL). Việc này đã được giảm thiểu bằng CVE-2023-38606.
- Sau khi khai thác toàn bộ các lỗ hổng, exploit JavaScript có thể thực hiện bất kỳ tác vụ mong muốn nào trên thiết bị; thay vì chạy spyware, nó khởi động tiến trình IMAgent rồi tiêm payload xóa dấu vết exploit khỏi thiết bị, hoặc chạy tiến trình Safari ở chế độ vô hình để chuyển tiếp tới một trang web có giai đoạn tiếp theo.
- Trang web chứa script xác minh nạn nhân, và nếu vượt qua kiểm tra thì sẽ nhận được giai đoạn tiếp theo là exploit Safari.
- Exploit Safari sử dụng CVE-2023-32435 để thực thi shellcode.
- Shellcode thực thi một exploit kernel khác ở dạng tệp đối tượng Mach. Nó sử dụng cùng các lỗ hổng như CVE-2023-32434 và CVE-2023-38606. Dù rất đồ sộ về kích thước và chức năng, nó hoàn toàn khác với exploit kernel viết bằng JavaScript. Các phần liên quan được hai exploit chia sẻ, nhưng phần lớn mã dành cho việc phân tích và thao tác bộ nhớ kernel. Nó bao gồm nhiều tiện ích hậu xâm nhập khác nhau, nhưng phần lớn không được sử dụng.
- Exploit giành quyền root và thực thi các giai đoạn khác để nạp spyware.
Bí ẩn và lỗ hổng CVE-2023-38606
- Các mẫu iPhone gần đây có thêm cơ chế bảo vệ bảo mật dựa trên phần cứng cho các vùng nhạy cảm của bộ nhớ kernel.
- Cơ chế bảo vệ này ngăn kẻ tấn công kiểm soát hoàn toàn thiết bị ngay cả khi chúng có thể đọc và ghi bộ nhớ kernel.
- Kẻ tấn công đã vượt qua lớp bảo vệ bảo mật dựa trên phần cứng này bằng cách sử dụng một tính năng phần cứng khác của SoC do Apple thiết kế.
- Kẻ tấn công vượt qua cơ chế bảo vệ bộ nhớ dựa trên phần cứng bằng cách ghi dữ liệu, địa chỉ đích và giá trị băm của dữ liệu vào các thanh ghi phần cứng chưa rõ danh tính trên chip mà firmware không sử dụng.
- Tính năng phần cứng chưa rõ này có lẽ được Apple dự định cho mục đích gỡ lỗi hoặc kiểm thử bởi kỹ sư hay nhà máy, hoặc đã vô tình được đưa vào.
Chi tiết kỹ thuật
- Các thiết bị ngoại vi khác nhau trên SoC cung cấp các thanh ghi phần cứng đặc biệt mà CPU có thể dùng để vận hành chúng.
- Các thanh ghi phần cứng này được ánh xạ vào vùng nhớ mà CPU có thể truy cập, và được gọi là "memory-mapped I/O (MMIO)".
- Phạm vi địa chỉ MMIO của các thiết bị ngoại vi trong sản phẩm Apple (iPhone, Mac, v.v.) được lưu trong một định dạng tệp đặc biệt gọi là DeviceTree.
- Phần lớn MMIO được dùng trong cuộc tấn công không thuộc bất kỳ phạm vi MMIO nào được định nghĩa trong DeviceTree.
- Không rõ kẻ tấn công đã phát hiện ra các MMIO không được firmware sử dụng bằng cách nào, cũng như những địa chỉ MMIO này thuộc về thiết bị ngoại vi nào.
- Các thanh ghi MMIO này đã được xác định là thuộc về bộ đồng xử lý GPU.
- Kẻ tấn công sử dụng các thanh ghi MMIO này để vượt qua Page Protection Layer(PPL) và vá các mục trong bảng trang.
- Phương pháp tính băm cho phép tính năng phần cứng được dùng trong cuộc tấn công thực hiện thao tác truy cập bộ nhớ trực tiếp (DMA) để ghi dữ liệu vào đúng vị trí được yêu cầu.
Ý kiến của GN⁺
- Nghiên cứu này phơi bày một chuỗi tấn công cực kỳ tinh vi nhắm vào iPhone. Đây là phát hiện rất quan trọng đối với các nhà nghiên cứu bảo mật và có thể góp phần tăng cường bảo mật cho các sản phẩm của Apple.
- Việc kẻ tấn công đã phát hiện ra tính năng phần cứng không được firmware sử dụng bằng cách nào vẫn còn là một bí ẩn. Điều này nhấn mạnh tầm quan trọng của nghiên cứu bảo mật phần cứng.
- Bài viết này mang lại nội dung rất hấp dẫn cho những ai quan tâm đến bảo mật phần mềm và phần cứng. Phương thức tấn công cực kỳ phức tạp và quá trình phân tích nó cho thấy chiều sâu và sự cần thiết của nghiên cứu bảo mật.
1 bình luận
Ý kiến trên Hacker News
Điểm đáng kinh ngạc về việc lạm dụng MMIO
Tóm tắt trên Twitter của Steve Weis
Giải thích về Coresight
Suy đoán về khả năng phát hiện thanh ghi MMIO
Thắc mắc về việc dùng hash trong tính năng debug chip
Quan sát về đặc điểm của thuật toán hash
Sự thán phục trước nỗ lực của kẻ tấn công
Giải thích về tính năng mà kẻ tấn công đã lợi dụng
Tầm quan trọng của lỗ hổng mới được phát hiện