- OS thư viện tập trung vào bảo mật hỗ trợ cả thực thi ở chế độ kernel và chế độ người dùng, cung cấp môi trường sandbox giúp giảm bề mặt tấn công bằng cách tối thiểu hóa giao diện với host
- Được viết trên nền tảng Rust, hỗ trợ giao tiếp liên vận hành giữa các giao diện cấp cao theo kiểu
nix và rustix với nhiều nền tảng cấp thấp khác nhau
- Các trường hợp sử dụng chính: chạy chương trình Linux trên Windows, sandbox ứng dụng Linux, chạy trong môi trường SEV SNP và OP-TEE, hỗ trợ nền tảng LVBS
- Dựa trên thử nghiệm kiến trúc OS thế hệ tiếp theo với trọng tâm là cô lập bảo mật, ảo hóa và tối thiểu hóa giao diện hệ thống
- Kết hợp mã hệ thống an toàn dựa trên Rust với mô hình thực thi hợp nhất kernel-user mode, có thể được dùng cho nghiên cứu bảo mật và phát triển công nghệ cô lập trên đám mây
Tổng quan về LiteBox
- LiteBox là OS thư viện mã nguồn mở tập trung vào bảo mật do Microsoft công bố, hỗ trợ cả thực thi ở chế độ kernel và chế độ người dùng
- Mục tiêu cốt lõi là tối thiểu hóa giao diện với host để giảm bề mặt tấn công
- Qua đó triển khai môi trường thực thi cô lập theo dạng sandbox
- Hệ thống được viết bằng ngôn ngữ Rust, và ở tầng trên cung cấp giao diện theo kiểu
nix/rustix
- Ở tầng dưới, có thể kết nối nhiều nền tảng khác nhau (giao diện
Platform) để cấu hình linh hoạt
Tính năng chính và trường hợp sử dụng
- LiteBox được thiết kế với cấu trúc hỗ trợ khả năng liên vận hành giữa nhiều môi trường vận hành
- Chạy chương trình Linux trên Windows
- Sandbox ứng dụng trong Linux
- Hỗ trợ môi trường thực thi bảo mật dựa trên SEV SNP
- Chạy chương trình OP-TEE trên Linux
- Hỗ trợ chạy trên nền tảng LVBS
Giai đoạn hiện tại và giấy phép
- Dự án hiện đang được phát triển tích cực và chưa đến giai đoạn phát hành phiên bản ổn định
- API và giao diện có thể sẽ thay đổi trong tương lai
- Có thể dùng cho mục đích thử nghiệm, nhưng cần thận trọng trong các môi trường đòi hỏi tính ổn định lâu dài
- Giấy phép MIT
2 bình luận
Ý kiến Hacker News
Theo trang GitHub, LiteBox là một library OS dạng sandbox tập trung vào bảo mật, giúp giảm bề mặt tấn công bằng cách tối thiểu hóa giao diện với host
Nó được thiết kế để kết nối giao diện “North” dựa trên nix/rustix theo phong cách Rust với nhiều nền tảng “South” khác nhau
Ví dụ như chạy chương trình Linux trên Windows, sandbox ứng dụng Linux, hoặc vận hành trên SEV SNP·OP-TEE·LVBS
Từ trước đến nay tôi luôn thấy WSL2 giống một giải pháp tạm thời, còn WSL1 mới thực sự là ví dụ triển khai tốt khái niệm “personality modules” của Windows NT
Có cảm giác đây là ví dụ điển hình về việc Microsoft gói lại khái niệm cũ bằng tên mới để khiến nó trông như một đổi mới
Hệ điều hành chủ lực của Microsoft dạo này quá đầy lỗi, nên khó mà tin tưởng các dự án mới họ đưa ra
Nhóm phát triển nó có lẽ chẳng liên quan gì đến UX Windows hiện đại
Kho LiteBox có chứa tệp cấu hình liên quan đến Copilot
copilot-instructions.md
Chỉ là ở đây họ công khai phần cấu hình đó mà thôi
Tôi từng thắc mắc ‘Library OS’ là gì
Tức là chức năng của OS được tích hợp vào không gian địa chỉ của ứng dụng, còn giao diện bên ngoài được đổi thành truy cập phần cứng hoặc hypercall
Unikernel hoạt động theo cách này, và theo nghĩa rộng thì Wine cũng có thể được xem là một Library OS
Ví dụ, có thể liên kết ứng dụng Linux với LiteBox để chạy trên SEV-SNP, hoặc chạy OP-TEE TA trên Linux
Điểm cốt lõi là thay vì phải audit hàng trăm syscall POSIX, người ta đơn giản hóa nó thành chỉ cần kiểm soát một vài phép toán nguyên thủy của biểu diễn trung gian
Nếu phải giải thích cho người ngoài hành tinh về sự khác nhau giữa Library OS và ứng dụng dựa trên kernel, tôi cảm thấy đây là khác biệt rất tinh tế đến mức khó mà giải thích nghiêm túc
Ban đầu tôi tưởng ‘Library OS’ là hệ điều hành dành cho thư viện
Khái niệm Library OS ban đầu khá lạ, nhưng nghe giải thích xong thì thấy giống Unikernel
Chương trình chạy trực tiếp trên hypervisor mà không cần lời gọi kernel mode, và LiteBox cũng có thể hoạt động như tiến trình Linux·Windows·BSD
Tuy vậy vẫn chưa rõ nó dùng ABI riêng hay ABI của host OS
Đọc mô tả thì cũng hơi có cảm giác đây là một dự án kiểu ‘vibe-coded’
Nếu Microsoft dùng LiteBox để cho phép viết driver WFP callout mà không cần ký số thì sẽ khá thú vị
Nó vẫn sẽ chạy ở kernel mode, nhưng có thể linh hoạt hơn NetworkExtensions của MacOS
Tôi thấy tiếc vì không nhắc đến quy trình phát triển dựa trên đặc tả thiết kế và formal verification
Đây là một thử nghiệm thú vị, nhưng nếu thiếu cách tiếp cận này thì có nguy cơ các lỗ hổng bảo mật từng lặp lại trên Windows lại xuất hiện lần nữa
Đây là lần đầu tôi nghe khái niệm “Library OS”, nên cũng tò mò không biết gVisor có thuộc nhóm này không
Nó trông có cấu trúc khá giống, nhưng tôi không chắc có phải cùng một loại chính xác hay không
Lâu rồi mới tìm được một dự án trông thú vị như vậy