1 điểm bởi GN⁺ 2025-03-10 | 1 bình luận | Chia sẻ qua WhatsApp

Vấn đề của kernel hệ điều hành nguyên khối

  • Các hệ điều hành hiện đại thường được chia thành hai miền bảo vệ chính:
    • Miền không đặc quyền (chế độ người dùng): chương trình không thể trực tiếp thực hiện các tác vụ mạnh như truy cập tệp, giao tiếp mạng, v.v.
    • Miền đặc quyền (chế độ kernel): khi chương trình yêu cầu kernel thực hiện tác vụ thông qua system call, mã kernel sẽ xử lý tác vụ đó rồi trả kết quả về chế độ người dùng
  • Phần lớn hệ điều hành sử dụng thiết kế kernel nguyên khối:
    • Kernel có quyền truy cập không giới hạn vào toàn bộ phần cứng, bộ nhớ và dữ liệu người dùng của hệ thống
    • Điều này sẽ ổn nếu phần mềm không có lỗi và không có nỗ lực xâm phạm bảo mật, nhưng thực tế luôn tồn tại bug và lỗ hổng bảo mật
    • Do kernel nguyên khối có kích thước lớn nên khả năng phát sinh lỗ hổng bảo mật cao hơn, và chỉ một lỗ hổng cũng có thể dẫn tới nguy cơ làm tổn hại toàn bộ hệ thống
  • Thiết kế microkernel tăng cường bảo mật bằng cách loại bỏ phần lớn chức năng ra khỏi kernel và xử lý chúng trong các tiến trình không đặc quyền riêng biệt:
    • Có thể tăng cường bảo mật
    • Có thể phát sinh vấn đề suy giảm hiệu năng và làm tăng độ phức tạp của phần mềm ứng dụng
    • Dù vậy, kernel nguyên khối vẫn được sử dụng rộng rãi nhờ lợi thế về hiệu năng
  • Kernel XNU của Apple:
    • Là kernel dùng chung cho iOS, macOS, tvOS, visionOS và watchOS
    • Dù là microkernel dựa trên Mach, trên thực tế nó hoạt động giống kernel nguyên khối vì phần lớn chức năng hệ thống chạy trong cùng một phạm vi đặc quyền
    • Vì vậy, nó cũng có thể gặp các lỗ hổng bảo mật tương tự kernel nguyên khối

Nỗ lực cô lập

  • Nhiều kỹ thuật cô lập dựa trên phần mềm và phần cứng đã được thử nghiệm:
    • Microsoft Virtualisation-based Security (VBS) – được dùng trong Credential Guard của Windows
    • Intel Software Guard Extension (SGX)VT-X2
    • ARM TrustZone – được dùng trong Samsung Knox, Samsung Pay, Android Verified Boot, nhập PIN bảo mật trên Android, v.v.

Apple cũng đã dần mở rộng các nỗ lực tách dữ liệu khỏi kernel

  • 2013 — Apple Secure Enclave

    • Được giới thiệu lần đầu trên iPhone 5s năm 2013
    • Secure Enclave chạy trên lõi CPU cứng hóa độc lập và hoạt động trên SepOS, một hệ điều hành dựa trên microkernel
      • Kernel của SepOS sử dụng cL4, microkernel nhúng L4 tùy biến của Apple
      • Lưu trữ và bảo vệ dữ liệu nhạy cảm như khóa mã hóa và thông tin sinh trắc học (ví dụ: Face ID)
      • Hoạt động độc lập với kernel iOS và chỉ cung cấp dịch vụ cho iOS thông qua tương tác an toàn
      • Ngay cả khi kernel iOS bị xâm phạm, Secure Enclave vẫn không bị ảnh hưởng trừ khi xảy ra thêm khai thác khác
    • Lưu ý rằng Secure EnclaveSecure Exclave là hai khái niệm khác nhau
  • 2017 — Lớp bảo vệ trang (Page Protection Layer, PPL)

    • Tính năng bảo mật được giới thiệu trên bộ xử lý A11 của iPhone 8 và iPhone X
    • Đây là tính năng dựa trên cả phần cứng lẫn phần mềm, chỉ cấp quyền sửa đổi bảng trang bộ nhớ cho một số phần cụ thể của kernel
      • Phần còn lại của kernel bị hạn chế quyền sửa đổi bảng trang
      • Bề mặt tấn công nhỏ hơn nên các nỗ lực vượt qua cơ chế này ít phổ biến hơn
    • PPL bổ sung một lớp bảo vệ, nhưng phần lớn quyền hạn của kernel vẫn được giữ nguyên nên vẫn có giới hạn trong việc tăng cường bảo mật toàn diện
  • 2021–2023 — Bộ giám sát bảng trang an toàn (Secure Page Table Monitor, SPTM)

    • Tính năng mới được giới thiệu trên bộ xử lý A15 của iPhone 13 và iOS 17
    • Thay thế PPL, bảo vệ thêm các chức năng bộ nhớ và tách chúng thành nhiều hệ con
    • Tăng cường bảo mật xác minh chữ ký mã và chỉ cho phép thực thi mã do Apple ký
    • Trong giai đoạn này, mã nguồn XNU bắt đầu xuất hiện các nhắc tới gián tiếp về exclave
      • Có giả thuyết rằng các hệ con do SPTM quản lý có thể chính là exclave
  • 2024 — Exclave: cuộc cải tổ lớn đối với mô hình bảo mật của XNU

    • Khái niệm exclave xuất hiện trong mã nguồn XNU hỗ trợ các bộ xử lý M4A18
    • Exclave không được kích hoạt trên các bộ xử lý trước đó
    • Điều này cho thấy rõ exclave là kết quả của một cuộc tái thiết kế lớn đối với mô hình bảo mật của XNU
  • Exclave của XNU

    Miễn trừ trách nhiệm: cấu trúc nội bộ của exclave không hoàn toàn mã nguồn mở, nên một số nội dung có thể là suy đoán hoặc diễn giải

    • Exclave là một tập hợp tính năng mới giúp tăng cường đáng kể mô hình bảo mật kernel nguyên khối hiện có của XNU
    • Exclave là tài nguyên được cô lập khỏi XNU, được bảo vệ ngay cả khi kernel bị xâm phạm
    • Đặc điểm của exclave:
      • Được định nghĩa trước khi build OS
      • Được nhận diện bằng tên hoặc ID
      • Gồm nhiều loại khác nhau
      • Được khởi tạo khi khởi động
      • Được tổ chức thành các miền độc lập
      • SPTM bảo vệ bộ nhớ exclave bằng kiểu trang chuyên dụng mới dành cho exclave
    • Các loại tài nguyên exclave
      • Bộ đệm bộ nhớ dùng chung – cả kernel và exclave đều có thể truy cập
        • Có thể cấu hình trong XNU là chỉ đọc hoặc đọc/ghi
      • Bộ đệm âm thanh và cảm biến – tăng cường bảo mật cho chỉ báo truy cập camera và micro
      • Conclave – nhóm nhiều tài nguyên thành miền bảo mật riêng, với Conclave Manager để quản lý
      • Dịch vụ – mã chạy trong exclave khi được thread của XNU gọi tới
  • Kernel bảo mật — dựa trên seL4?

    • Để các dịch vụ exclave có thể chạy độc lập với XNU, một kernel mới là Secure Kernel (SK) đã được đưa vào
    • Trong file image của SK đã xác nhận có chuỗi phiên bản "cL4"
    • Nhiều khả năng SK dựa trên seL4 chứ không phải kernel cL4 (dựa trên L4) hiện có của Apple
      • Cấu trúc IPC mà XNU dùng để giao tiếp với SK tương tự cấu trúc của seL4
      • Trong các chuỗi được dùng trong SK, người ta tìm thấy nhiều khái niệm vốn được dùng trong seL4 (ví dụ: capabilities, frames, untyped memory, v.v.)
    • Việc Apple gia nhập seL4 Foundation vào tháng 4/2024 có thể không phải là ngẫu nhiên
      • Kernel của bộ xử lý C1 (chip baseband mới của Apple) dường như cũng dựa trên L4
  • Thế giới bảo mật — ARM TrustZone?

    • SepOS chạy trên một bộ xử lý riêng, còn SK chạy trên bộ xử lý ứng dụng tốc độ cao
    • Điều này đòi hỏi thêm một mức đặc quyền của bộ xử lý → có thể được triển khai theo một trong các cách sau:
      • Hỗ trợ mở rộng ảo hóa
      • Mở rộng SPTM của Apple
      • Khả năng cao nhất là sử dụng công nghệ ARM TrustZone
    • Cấu trúc TrustZone
      • Tách hệ thống thành hai world:
        • Secure World – chạy mã bảo mật
        • Insecure World – chạy mã thông thường (XNU và iOS chạy ở đây)
      • Trong mã nguồn XNU có nhiều nhắc tới việc chuyển đổi giữa Secure WorldInsecure World của TrustZone
        • Apple áp dụng mô hình dịch vụ exclave thay vì mô hình Trusted Application do TrustZone đề xuất
      • SK cung cấp dịch vụ và tài nguyên exclave trong môi trường cô lập → tăng cường bảo mật
        • Việc thoát từ Secure World sang Insecure World để xâm phạm XNU được cho là sẽ rất khó
    • RINGGATE
      • Có khả năng Apple dùng SPTM để quản lý việc chuyển đổi Secure World ↔ Insecure World
      • Trong mã, quá trình chuyển đổi này được nhắc tới là "RINGGATE"

Kết luận

  • Ý nghĩa của việc đưa vào exclave
    • Để đối phó với các cuộc tấn công liên tục từ những tác nhân đe dọa cấp cao, Apple đã đưa vào exclave để tăng cường mức độ bảo mật của hệ điều hành
    • Bằng cách cô lập các tài nguyên nhạy cảm, có thể kỳ vọng các hiệu quả sau:
      • Giảm bề mặt tấn công
      • Giảm tác động của một lỗ hổng kernel đơn lẻ
  • Phòng thủ cho kernel nguyên khối là một thách thức không hồi kết, và exclave là một cách tiếp cận để giải quyết vấn đề này
    • Về lâu dài đây có phải hướng đi đúng hay chỉ là giải pháp tạm thời vẫn chưa rõ
    • Mong muốn cá nhân → kỳ vọng một thiết kế lại trong tương lai dựa trên CHERIARM Morello 😊
    • Tuy nhiên, ở thời điểm hiện tại đây là nỗ lực phòng thủ lớn nhất trong số các nhà sản xuất thiết bị tiêu dùng
  • Bài viết này không đi sâu làm rõ cụ thể những thành phần nào đã được chuyển sang exclave
    • Dựa trên image build, có vẻ các thành phần sau đang chạy trong exclave:
      • Chỉ báo camera/micro bảo mật
      • Một phần chức năng của Apple Neural Engine (ANE)
      • Một số driver thiết bị
      • Các thành phần giao tiếp với Secure Enclave
  • Trong tương lai có thể sẽ có thêm nhiều thành phần được chuyển sang exclave
    • Hiệu quả bảo mật của exclave phụ thuộc vào mức độ tối ưu của quá trình chuyển đổi này
  • Exclave có thể được dùng trong hạ tầng Apple Private Cloud Compute
    • Có thể bảo đảm mức độ bảo mật và quyền riêng tư cao trong AI dựa trên đám mây

1 bình luận

 
GN⁺ 2025-03-10
Ý kiến trên Hacker News
  • SoC mới nhất của Apple hỗ trợ ảo hóa lồng nhau, và trên M4 iPad Pro, một exclave được dùng cho đèn LED camera
    • Hy vọng bản sửa đổi tiếp theo của hướng dẫn Apple Platform Security sẽ đề cập đến SK exclave và biện pháp giảm thiểu ở baseband cho phát hiện radar Wi‑Fi
  • Apple có một số bổ sung riêng cho SPTM
    • XNU đang được tái cấu trúc theo kiến trúc lấy cảm hứng từ microkernel, nhằm giảm quy mô codebase và tách biệt các tác vụ nhạy cảm về bảo mật
    • Việc cô lập không gian bộ nhớ được thực hiện với sự hỗ trợ của Secure Page Table Monitor (SPTM)
    • Các tác vụ nhạy cảm về bảo mật như ký mã, xác minh quyền hạn, chế độ nhà phát triển và chế độ thực thi hạn chế được Trusted eXecution Monitor (TXM) xử lý
  • Khả năng cao việc này được thực hiện thông qua công nghệ TrustZone của ARM
    • Mã nguồn XNU có nhiều tham chiếu đến việc chuyển sang khái niệm secure world của TrustZone
    • Có hơn 150 CVE liên quan đến TrustZone
  • Google đã triển khai pKVM trên Pixel vài năm trước bằng ảo hóa lồng nhau ở cấp phần cứng và đã upstream mã lên Linux mainline
    • Tuy nhiên, ngoài VM Debian "Linux Terminal", họ chưa công bố cơ chế phòng vệ nào sử dụng pKVM/AVF
  • Steve tin rằng laptop là nhật ký cá nhân và cho rằng mình có trách nhiệm với điều đó
    • Nếu Tim không chia sẻ niềm tin của Steve thì có lẽ đã không trở thành CEO
    • Có ý kiến cho rằng nhớ Steve
  • Apple đang tái cấu trúc kernel XNU thành các exclave
    • Tác giả bài viết này đã viết một bài rất tinh tế và chỉn chu
    • Với tư cách là người đã theo dõi exclave, có cảm giác bài được viết rất tốt
  • Không quen với mức độ kiến thức này, nhưng có thắc mắc liệu có thể tấn công chính enclave để giành đặc quyền cao hơn cả kernel hay không
    • Cũng thắc mắc liệu phần cứng này có giống như một coprocessor hay không
  • Thắc mắc về tác động đối với bảo mật macOS
    • Theo tài liệu của Apple, SPTM không được sử dụng
    • Exclave hiện dùng để hiển thị chỉ báo camera hiện chưa áp dụng cho macOS, nhưng có thể sẽ áp dụng trong tương lai
  • Apple rất giỏi trong việc bảo vệ "đồn điền" của mình
    • Nhưng cũng có người tự hỏi điều gì sẽ bảo vệ người dùng khỏi chính họ
    • Có câu hỏi liệu ai đó từng nghĩ đến khả năng của "geohot cuối cùng" hay chưa
  • Apple có thể dùng SPTM để quản lý việc chuyển đổi giữa secure world và non-secure world
    • Vì không có TrustZone