- Nhân XNU của hệ điều hành Apple về cơ bản từ trước đến nay chỉ cung cấp một miền tin cậy duy nhất
- Gần đây, Apple đang thúc đẩy các thay đổi nhằm giảm tác động của lỗ hổng bảo mật thông qua tách biệt kiến trúc nhân và vi nhân hóa
- Secure Page Table Monitor (SPTM), được giới thiệu vào năm 2023, đã dẫn tới việc tách các chức năng cốt lõi và hình thành một cấu trúc miền tin cậy mới
- Các cơ chế bảo mật hiện đại như Exclaves và Trusted Execution Monitor (TXM) được triển khai trên nền tảng SPTM
- Những cải tiến về cấu trúc này giúp việc nhân bị xâm phạm không còn ngay lập tức kéo theo suy giảm mức độ tin cậy của toàn bộ hệ thống
Tổng quan
Nhân XNU, thành phần cốt lõi của hệ điều hành Apple, thường được gọi là nhân lai, nhưng trên thực tế lại vận hành theo một cấu trúc gần như nguyên khối, nơi mọi chức năng hệ thống đều tập trung trong một vùng tin cậy đặc quyền duy nhất. Vì vậy, khi nhân bị xâm phạm, toàn bộ hệ thống sẽ lập tức đối mặt với mối đe dọa nghiêm trọng. Gần đây, Apple đang cải tiến theo hướng phân tách nhân nhiều hơn và tiến gần hơn tới thiết kế kiểu vi nhân, chẳng hạn như chuyển các chức năng quan trọng liên quan đến thao tác bảng trang hoặc mật mã ra ngoài vùng nhân.
Động lực thay đổi chính và hướng nghiên cứu
- Nhu cầu cải tiến cấu trúc nhân để tăng cường bảo mật ngày càng được nhấn mạnh
- Mục tiêu là giảm thiểu tác động tiêu cực lên toàn hệ thống khi lỗ hổng nhân bị khai thác
- Vẫn còn thiếu các nghiên cứu trước đó phân tích một cách khoa học cách các cơ chế mới như SPTM thực sự được thiết kế và vận hành
- Bài báo này khảo sát có hệ thống các tính năng mới chưa được công bố chi tiết, đồng thời tổng hợp tương tác và hiệu quả của toàn bộ các cơ chế bảo mật hiện hành
Cơ chế cốt lõi của SPTM (Secure Page Table Monitor)
- SPTM là thành phần có đặc quyền cao nhất trong hệ thống, hoạt động ở Guarded Level 2 (mức đặc quyền cao nhất) cùng với Guarded Execution Feature (GXF)
- GXF bổ sung các mức bảo vệ theo chiều ngang vào cấu trúc mức ngoại lệ vốn có của AArch64, qua đó cô lập các hoạt động nhạy cảm của hệ thống khỏi việc bị XNU truy cập trực tiếp
- SPTM cung cấp các miền tin cậy (domain of trust) dựa trên cơ chế đổi kiểu khung trang và các quy tắc ánh xạ bộ nhớ, từ đó tách biệt từng khu vực theo chức năng
- Các ví dụ tiêu biểu của những miền tin cậy này gồm có TXM (phụ trách ký mã và xác minh quyền hạn) và Exclaves (tính năng bảo mật phân tách vùng thế hệ mới)
Exclaves và cơ chế giao tiếp
- Exclaves là môi trường thực thi hoạt động trong một vùng tin cậy độc lập, phụ thuộc vào cơ chế bảo vệ và kiểm soát bộ nhớ dựa trên SPTM
- Giao tiếp giữa Exclaves và hệ thống được triển khai bằng nhiều cách như xnuproxy (bộ xử lý yêu cầu bảo mật) và framework IPC Tightbeam
- Tightbeam có cấu trúc IPC phức tạp, bao gồm tạo endpoint, bộ đệm thông điệp và kết nối client-server
- Một ví dụ sử dụng Exclaves trong thực tế được đưa vào phân tích là việc điều khiển các chỉ báo quyền riêng tư, như đèn báo ghi hình hoặc sử dụng âm thanh
Tăng cường bảo mật và triển vọng tương lai
- Khi các chức năng hệ thống cốt lõi được tách khỏi khả năng truy cập trực tiếp của XNU, hệ thống có thêm lớp an toàn giúp duy trì mức độ tin cậy tổng thể ngay cả khi nhân bị xâm phạm
- Kết quả phân tích chi tiết về tương tác giữa SPTM, Exclaves và TXM cho thấy một hệ thống bảo vệ nhiều tầng mạnh hơn đáng kể so với trước đây đã được hình thành
- Phần kết luận của bài báo cũng nêu ngắn gọn hiện trạng sau khi SPTM được đưa vào, khả năng tăng cường bảo mật trong tương lai, các giới hạn còn tồn tại và hướng nghiên cứu tiếp theo
Hướng dẫn cấu trúc và nội dung chuyên sâu
Chương 1: Động lực – mục tiêu – cấu trúc
- Bối cảnh lịch sử của xu hướng phân tách nhân Apple và nhu cầu nghiên cứu
- Nhấn mạnh các đóng góp của nghiên cứu này
Chương 2: Bối cảnh và nền tảng
- Giới thiệu các mức ngoại lệ, phương thức truy cập bộ nhớ của kiến trúc AArch64, cùng các kỹ thuật bảo vệ đặc thù trên chip Apple (Fast Permission Restrictions, Page Protection Layer, Guarded Execution Feature, Shadow Permission Remap Register)
- Tổng hợp các nghiên cứu bảo mật trước đó và những giới hạn của chúng
Chương 3: Môi trường phân tích
- Giải thích về phần cứng, firmware, công cụ, symbol và các thanh ghi riêng của Apple được sử dụng
Chương 4: Tổng quan thiết kế kiến trúc toàn cục
- Trực quan hóa cấu trúc toàn hệ thống bao trùm cả EL (mức ngoại lệ) và GL (mức bảo vệ theo chiều ngang)
Chương 5: Cấu trúc chuyên sâu của SPTM
- Giải thích chi tiết thành phần cơ bản, khởi tạo và cách gọi của SPTM (nhân, TXM, Secure Kernel), cũng như header/bảng dispatch
- Luồng xử lý sự kiện nội bộ của SPTM, GENTER, và quá trình xử lý SVC/HVC (lệnh gọi giám sát)
- Logic đổi kiểu khung trang: mô tả theo từng bước từ gọi và xác minh, kiểm tra tính hợp lệ theo loại/miền, cập nhật SPRR (Permission Remapping), đến hoàn tất lời gọi
- Quy trình ánh xạ trang và các cơ chế bảo vệ liên quan
Chương 6: Vai trò của Secure Kernel
- Các nền tảng vận hành bảo mật như lời gọi từ Secure Kernel tới SPTM và xử lý SVC
Chương 7: Hệ thống Exclaves
- Exclaves cùng các thành phần chính như Exclavecore, ExclaveKit
- Quản lý bộ nhớ/tài nguyên của Exclave, phân nhóm theo miền, máy trạng thái conclave (tiểu vùng), tương tác với không gian người dùng
- Các phương thức giao tiếp như tạo endpoint/lập lịch, Mach port, IPC kiểu seL4, xnuproxy, Tightbeam và ví dụ sử dụng thực tế (ví dụ: chỉ báo quyền riêng tư)
Chương 8: TXM (Trusted Execution Monitor)
- Cách TXM tích hợp với SPTM, cùng cấu trúc vận hành của dispatch, retyping và vùng bảo vệ
- Giải thích trách nhiệm bảo mật và cách xử lý lời gọi của TXM
Chương 9~10: Thảo luận tổng thể và kết luận
- Những điểm đáng chú ý về bảo mật khi triển khai SPTM và Exclaves, các giới hạn hiện tại, định hướng tương lai
- Kết thúc nghiên cứu và cung cấp phụ lục về tài liệu tham khảo, giải thích thuật ngữ
Giải thích các thuật ngữ chính
- XNU: nhân cốt lõi của hệ điều hành Apple, viết tắt của “X is Not Unix”
- SPTM: mô-đun cốt lõi cung cấp miền tin cậy thông qua bảo vệ và phân tách bộ nhớ
- TXM: bộ giám sát bảo mật phụ trách các tác vụ nhạy cảm như xác minh chữ ký mã
- Exclaves: môi trường bảo mật tin cậy được thực thi cách ly trong các vùng vật lý và logic riêng biệt
- Tightbeam IPC: framework hỗ trợ giao tiếp an toàn giữa Exclaves và hệ thống
- GXF/GL: mức ngoại lệ bảo vệ theo chuẩn AArch64, kết hợp thêm cơ chế điều khiển vùng tin cậy theo chiều ngang dựa trên Guarded Level
Kết luận
Kiến trúc bảo mật của iOS hiện đại đang tiến hóa theo hướng tối đa hóa sự tách biệt niềm tin và phân chia vai trò xoay quanh SPTM, TXM và Exclaves. Hệ thống bảo vệ nhiều tầng này giúp giảm mạnh rủi ro từ việc các lớp thấp hơn của nhân bị xâm phạm, đồng thời cung cấp nền tảng kỹ thuật vững chắc để ứng phó với các mối đe dọa bảo mật trong tương lai.
1 bình luận
Ý kiến Hacker News
Tôi nghĩ nhóm SEAR và Apple đang làm một công việc thực sự xuất sắc về bảo mật iOS, và điều đó rất đáng được khen ngợi.
Nỗ lực cài các tính năng bảo mật xuyên suốt toàn bộ stack, từ cấp độ phần cứng, cũng rất ấn tượng, và họ còn liên tục nghiên cứu các cách ngăn chặn bằng cách xem xét các khai thác ITW (tấn công ngoài thực tế).
Ví dụ, họ từng đưa vào những tính năng như PPL, nhưng khi kết luận rằng nó không hoàn hảo thì sẵn sàng loại bỏ và tiếp tục tìm kỹ thuật mới.
Apple có cấu trúc tích hợp theo chiều dọc nên việc này dễ hơn Android rất nhiều. Với Android, phải yêu cầu phối hợp với các hãng phần cứng (QC, Mediatek), rồi đi qua nhiều tầng như linux kernel, AOSP, LLVM upstream.
Pointer Authentication Codes (PAC) cũng là một ví dụ hay. Apple áp dụng theo tinh thần “hãy tự làm”, duy trì nhánh LLVM riêng để triển khai, và thực sự giải quyết vấn đề bằng cách giảm thiểu các cuộc tấn công dựa trên ITW
Tôi mua sản phẩm Apple không chỉ đơn giản vì bảo mật và quyền riêng tư của họ tốt, mà còn vì Apple theo đuổi những tính năng này một cách đầy nhiệt huyết và chân thành, dù đây không hẳn là việc họ buộc phải làm chỉ để kiếm tiền.
Trên thực tế, vượt xa mức quảng bá marketing, họ tuyển những hacker giỏi nhất từ cộng đồng jailbreaking vào đội bảo mật, đồng thời mang tới các đổi mới như Private Relay, thư riêng tư, trusted compute, multi-party inference.
Dĩ nhiên, cũng có những vấn đề rõ ràng với thái độ đạo đức giả của Apple. Ví dụ như cho phép VPN (trừ lưu lượng đi tới máy chủ Apple), hay các mặc định được cho là bảo vệ quyền riêng tư (trừ Wi‑Fi Calling hoặc “journaling suggestions”) đều khá đáng tiếc.
Về cơ bản vẫn có điều kiện rằng bạn không được bảo vệ khỏi Apple và một số đối tác viễn thông của họ, nhưng tôi vẫn cho rằng Apple vượt xa Google, vì Google cho cảm giác kiểu “an toàn với tất cả mọi người ngoại trừ Google hoặc những người mua quảng cáo của Google”
Ngay cả sau một nỗ lực kỹ thuật khổng lồ, iMessage vẫn còn các đường dẫn khiến mã đáng ngờ có thể chạy trong kernel, và vì thế các khai thác 0-click vẫn tiếp tục tồn tại
Một lợi ích khác mà những nỗ lực này mang lại là, khi một đường dẫn mã được chạy dù chỉ một lần trên bộ xử lý mới với bảo mật được Apple tăng cường, thì bảo mật của mọi nền tảng cũng được nâng lên một cách tự nhiên.
Về lý thuyết, các vấn đề khó bắt bằng chỉ phân tích tĩnh cũng có thể được phát hiện dễ hơn, và có thể thu được insight sâu hơn thay vì chỉ là crash đơn thuần
Thực ra Google đã có thể thêm MTE từ vài năm trước, nhưng không muốn bắt buộc OEM phải áp dụng như một phần của chứng nhận Android.
Xét cho cùng, đây chỉ là một lịch sử tương tự lặp lại như chuyện cập nhật OS
Hiện tại, lý do Apple chú trọng tới bảo mật không chỉ là để bảo vệ người dùng.
Về bản chất, đó là để khiến người dùng khó tự chạy phần mềm không được phê duyệt hoặc thực hiện những việc như jailbreak, qua đó duy trì độc quyền App Store.
Cuối cùng tôi cho rằng họ ưu tiên lợi ích công ty hơn là lợi ích người dùng
Mỗi lần đọc về bảo mật iOS tôi đều ngạc nhiên trước độ phức tạp của nó.
Có rất nhiều lớp như phần cứng, kernel, và nhiều kỹ thuật sandboxing khác nhau.
Tôi tự hỏi liệu cấu trúc này có phải là “một giải pháp chắp vá đắp lên trên một thiết kế từng giả định sự tin cậy trong quá khứ” hay không.
Nếu thiết kế lại từ đầu thì có thể làm nó đơn giản hơn không, và liệu có hệ điều hành (OS) nào thực sự được thiết kế theo cách đó hay không
Lỗ hổng là điều không thể tránh khỏi khi một nền tảng phải hỗ trợ nhiều trường hợp sử dụng khác nhau.
Cách đối phó với điều đó chính là phòng thủ nhiều lớp (Defence-in-depth)
iOS dựa trên MacOS, còn MacOS dựa trên NeXT, và gốc rễ của nó là Unix.
Nó được thiết kế từ đầu với giả định mức độ tin cậy người dùng thấp.
Theo thời gian, mức độ tin tưởng vào người dùng cũng thay đổi, và gần đây mọi thứ ngày càng phức tạp hơn với các tính năng mạng luôn kết nối cùng những mối đe dọa mới sau Spectre
Để trả lời câu hỏi liệu đây có phải là giải pháp chắp vá cho các quyết định thiết kế lịch sử hay không, tôi nghĩ là có.
Đây là kết quả của nỗ lực bù đắp những giới hạn của mô hình bảo mật Unix và lập trình hệ thống dựa trên ngôn ngữ C.
Nếu thiết kế lại từ đầu, có thể áp dụng những thứ như capability architecture để giảm độ phức tạp, nhưng trên thực tế phần lớn chỉ tồn tại trong giới học thuật hoặc như dự án sở thích do vấn đề tương thích POSIX.
Nếu chuyển hẳn sang một mô hình mới hoàn toàn thì phần lớn chương trình Unix hiện có sẽ phải bị loại bỏ ngay, nên việc áp dụng trong thực tế là cực kỳ khó
seL4 là một cấu trúc microkernel nhanh, bảo mật cao và đã được kiểm chứng hình thức.
Nó nổi bật ở khả năng kiểm soát truy cập mức cao, hỗ trợ máy ảo, v.v.
Bài viết giải thích kiến trúc microkernel seL4
Tuy nhiên, vì thiếu “phần còn lại”, tôi nghĩ nó gần với nghiên cứu hơn là một hệ điều hành thực tế
Tôi nghĩ có lẽ cả hai hướng đều có thể thử.
Ngay cả “bảo mật phần cứng” cũng có những giả định tin cậy riêng, nhưng rốt cuộc nó vẫn chỉ là phần mềm được hardcode, nên độ phức tạp càng tăng thì khả năng phát sinh lỗi cũng tăng theo
Trong bài Keynote của Ivan Krstić tại Hexacon lần này, Apple đã công bố sẽ tăng cường chương trình bug bounty.
Blog chính thức liên quan
Tôi tò mò không biết vấn đề kết nối dạng plain text (không mã hóa) khi cập nhật định kỳ hoặc khi chạy ứng dụng đã được giải quyết hay chưa.
Tài liệu tham khảo liên quan