1 điểm bởi GN⁺ 2023-12-28 | 1 bình luận | Chia sẻ qua WhatsApp

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_entryvm_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

 
GN⁺ 2023-12-28
Ý kiến trên Hacker News
  • Điểm đáng kinh ngạc về việc lạm dụng MMIO

    • Kẻ tấn công либо có năng lực nghiên cứu cực kỳ xuất sắc, hoặc nhiều khả năng hơn là đã xâm nhập Apple để lấy tài liệu phần cứng nội bộ.
    • Apple biết tính năng này là nguy hiểm, đã che giấu nó và bổ sung lớp bảo vệ bằng chức năng chữ ký số.
    • Không thể tìm ra tính năng này nếu không bóc tách silicon và đảo ngược kỹ thuật, vì vậy cũng có khả năng họ đã xâm nhập nhà phát triển để đánh cắp tài liệu nội bộ.
    • Việc tái xâm nhập thông qua Safari bằng một chuỗi lỗ hổng khác cho thấy đây là một tổ chức lớn với mức độ tách biệt nội bộ rất cao.
    • Xét đến việc các nhà nghiên cứu là người Nga, đây nhiều khả năng là công việc của NSA hoặc GCHQ.
    • Phần mềm độc hại có thể kích hoạt theo dõi quảng cáo và phát hiện các dịch vụ iPhone đám mây do các nhà nghiên cứu bảo mật thường dùng để lưu trữ.
    • Nền tảng phần mềm độc hại iOS/macOS đã được phát triển hơn 10 năm và sử dụng ML trên thiết bị để nhận diện đối tượng và OCR trong ảnh mà không cần tải lên các byte hình ảnh.
    • Tôi không đồng ý với lập luận rằng che giấu bằng bảo mật là không hiệu quả. Nền tảng này đã được sử dụng suốt 10 năm mà không bị biết đến.
  • Tóm tắt trên Twitter của Steve Weis

    • Lỗ hổng iMessage thật đáng kinh ngạc: nó bao gồm một lỗ hổng TrueType đã tồn tại từ thập niên 90, 2 lỗ hổng kernel, một lỗ hổng trình duyệt, và một tính năng phần cứng không được ghi tài liệu, không được dùng trong phần mềm đã phát hành.
  • Giải thích về Coresight

    • Coresight không phải backdoor mà là tính năng debug có trên mọi CPU ARM.
    • Nó có vẻ là một phần mở rộng của Coresight cần thiết để hoạt động cùng các cơ chế bảo vệ bộ nhớ của Apple.
    • Dù không có tài liệu công khai, hàng nghìn kỹ sư Apple hẳn có thể đã truy cập được gdb đã chỉnh sửa hoặc các công cụ khác để tận dụng nó.
  • Suy đoán về khả năng phát hiện thanh ghi MMIO

    • Câu hỏi đặt ra là liệu có thể phát hiện thanh ghi MMIO bằng cách dò ngẫu nhiên mọi địa chỉ thanh ghi hay không.
    • Chỉ từ khác biệt về timing cũng có thể biết đó là địa chỉ hợp lệ, và vì hash chỉ 20 bit nên có thể brute-force được.
  • Thắc mắc về việc dùng hash trong tính năng debug chip

    • Có nghi vấn về mục đích của việc dùng hash trong một tính năng debug lẽ ra phải bị vô hiệu hóa khi đưa vào sản xuất.
    • Dù không phải kỹ sư điện tử, nhưng tốt nhất là tính năng debug nên hoạt động đơn giản và nhanh để giảm thiểu can nhiễu.
    • Khả năng kẻ tấn công chuỗi cung ứng có thể cài thứ này vào mọi chip Apple là rất thấp.
  • Quan sát về đặc điểm của thuật toán hash

    • Khi toàn bộ dữ liệu là 0 thì giá trị hash cũng là 0, và với một bit đơn lẻ thì nó có một giá trị đơn trong bảng sbox.
    • Một thuật toán hash như vậy có thể đã được đảo ngược kỹ thuật ngay cả khi không có tài liệu nội bộ.
  • Sự thán phục trước nỗ lực của kẻ tấn công

    • Có người tự hỏi liệu những kẻ tấn công này có cảm thấy bất mãn vì không được ghi nhận cho công việc của mình hay không.
  • Giải thích về tính năng mà kẻ tấn công đã lợi dụng

    • Kẻ tấn công có thể vượt qua cơ chế bảo vệ bộ nhớ dựa trên phần cứng để ghi dữ liệu vào các địa chỉ vật lý cụ thể.
    • Cách làm là ghi dữ liệu, địa chỉ đích và hash của dữ liệu vào các thanh ghi phần cứng chưa được biết đến trên chip, vốn không được firmware sử dụng.
  • Tầm quan trọng của lỗ hổng mới được phát hiện

    • Quan trọng hơn việc có được lỗ hổng mới là biết liệu lỗ hổng của chính mình có thể bị lộ hay không.
    • Điều đó có thể giúp ngăn chặn các chiến dịch phản gián.