微软推进 Rust 在 Windows 驱动开发中的应用,构建更安全系统生态
自 2023 年起,微软持续推动 Rust 在 Windows 系统中的应用,逐步拓展其使用范围。
目前,Windows 内核已可引入 Rust 代码并成功启动。在此基础上,微软近期进一步推进使用 Rust 开发驱动程序的工作。
今年 7 月,微软展示了 Surface 团队在这方面取得的阶段性成果,发布了开源项目 windows-drivers-rs,旨在为 Rust 驱动开发提供平台支持。如今,该项目有了更多更新内容。
为进一步简化 Rust 驱动的开发流程,微软在 windows-drivers-rs 中引入了新的 cargo-wdk crate。该 Cargo 扩展可以自动创建包含预配置链接、构建步骤和依赖项的空白驱动项目,并能调用 WDK 工具(如 InfVerif),其使用体验类似于在 Visual Studio 中用 C 语言构建驱动。
Rust 与传统的 C 语言相比,具有内存安全优势,有助于减少因内存问题引发的安全漏洞。此外,Rust 与 C / C 在驱动层保持良好的互操作性,为开发人员的迁移工作提供了便利。
微软表示,长远目标是在 Cargo 环境中为 Rust 提供与 Visual Studio 相当的构建工具和配置选项。中期规划包括自动安装 WDK、支持 NT_TARGET_VERSION、全面支持 ARM64 架构等。
当前,windows-drivers-rs 已初步支持部分驱动开发,但仍需依赖较多的 unsafe 代码。
微软方面指出,Windows Driver Framework(WDF)团队正与 Rust 领域专家合作,为内核模式驱动(KMD)和用户模式驱动(UMD)构建更安全的抽象层。这一抽象层的核心作用在于实现从用户模式(低权限)到内核模式(高权限)的安全转换。与此同时,公司其他团队也在开发适用于核心系统组件及第三方驱动的安全结构和 API,其中部分已集成进 Windows 内核。
此外,微软承诺将在未来数月内分享更多关于驱动开发的最佳实践方案,包括采用静态分析工具 CodeQL 的方法。早在今年 7 月,微软已更新 Windows 11 25H2 版本中面向第三方驱动的静态分析指南。
公司正持续推动 Rust 在系统底层开发中的应用,以构建更安全、稳定的软件生态。