微软开源 LiteBox:一款专注于安全性的库操作系统
Hacker News 摘要原标题:Microsoft open-sources LiteBox, a security-focused library OS
微软开源的 LiteBox 是一个专注于安全性的库操作系统(Library OS),它同时支持内核模式和用户模式下的执行。该项目主要由 Rust 语言编写,旨在通过极大地精简与宿主系统的接口,来显著缩小受攻击面。
核心定位与设计理念
LiteBox 作为一个沙盒库操作系统,其设计的核心在于提供一种灵活的连接方式,将“北向”的垫片(Shims)与“南向”的平台(Platforms)结合起来。
• 北向接口:当 LiteBox 被提供一个南向平台接口时,它会暴露一个深受 nix 和 rustix 启发的 Rust 风格北向接口。
• 南北配对:这种设计允许开发者轻松地在不同的北向和南向组件之间建立连接,从而适配多种复杂的使用场景。
主要应用场景
LiteBox 支持广泛的用途,包括但不限于以下几种:
• 在 Windows 操作系统上运行未经修改的 Linux 程序。
• 在 Linux 系统上为 Linux 应用程序提供沙盒隔离环境。
• 在 SEV SNP(安全加密虚拟化)技术之上运行程序。
• 在 Linux 系统上运行 OP-TEE 程序。
• 在 LVBS 环境下运行程序。
项目现状与开发进度
该项目目前处于活跃的演进和改进阶段。微软官方提醒用户,在迈向稳定版本的过程中,LiteBox 的部分 API 和接口可能会发生变化。虽然鼓励开发者进行探索和实验,但如果需要长期的稳定性,建议等待正式稳定版发布,或者准备好随着项目的更新而调整代码。
仓库结构与组件细节
仓库包含了多个功能模块和平台适配组件:
• 核心组件:litebox 文件夹包含核心逻辑,近期更新增加了对文件打开操作中 O_APPEND 标志的支持。
• 平台适配:提供了针对 Linux 内核(litebox_platform_linux_kernel)、Linux 用户态(litebox_platform_linux_userland)、Windows 用户态(litebox_platform_windows_userland)以及 LVBS 等平台的实现。
• 运行器与工具:包含针对 SNP、OP-TEE 等环境的运行器(Runner),以及系统调用重写器(litebox_syscall_rewriter)和审计工具(litebox_rtld_audit)。
• 开发与调试:项目中还包含用于性能测试的 dev_bench、用于 raw 指针安全消除的测试工具,以及锁追踪可视化工具等。
技术规格与社区统计
• 编程语言构成:Rust 占据了绝对主导地位,比例高达 95.7%。其他少量代码包括 C(1.5%)、JavaScript(1.4%)、CSS(0.4%)、汇编语言(0.4%)和 Python(0.3%)。
• 开源协议:项目采用 MIT 许可证。
• 社区活跃度:截至目前,该仓库已获得 504 个星标(Stars)和 24 次分叉(Forks)。共有 10 位贡献者参与了代码开发,累计提交次数达到 527 次。
• 依赖管理:项目使用 Rust 稳定版工具链进行构建,并在近期从 nightly 版本迁移到了 stable 版本以提高稳定性。
文件清单说明
仓库根目录下包含了完善的说明文件,包括:
• README.md:项目基础介绍与演进说明。
• CONTRIBUTING.md:贡献指南。
• CODE_OF_CONDUCT.md:行为准则。
• SECURITY.md:安全政策。
• LICENSE:MIT 许可证全文。
• NOTICE.txt:关于第三方组件及其许可证的声明。