对不安全 Rust 代码的安全属性注释与审计
编程语言
2026-04-28 v2
摘要
在 Rust 中,不安全代码是潜在产生未定义行为的唯一来源。为避免滥用,Rust 开发者应为每个不安全 API clarify 安全属性。然而,当前社区缺乏关键标准:现有的安全注释和安全文档可能不规范且不完整。本文提出了一种以标签为中心的方法,用于审计安全文档的一致性和完整性。我们首先从安全标签(Safety Tags)演化出一套正式化的自然语言要求 taxonomy。其次,由于 API 的 soundness 通常依赖结构不变量,我们提出了一套经验性规则,用于系统性审计安全文档的结构一致性。我们实现了该方法于 safety-tool 中,作为一个静态 linter,自动强制执行本地安全注释与调用方要求之间的结构一致性。该方法被应用于 Rust 标准库,修复了 27 个 API 的 61 个安全标签的问题,并识别出适用于 libstd中 96.1%的公共不安全 API 的安全标签。此外,我们通过 Rust RFC 将该标签化思想正式化,提交给更广泛的社区。我们认为,该方法建立了安全文档的标准化实践,显著降低了安全风险。
引用
@article{arxiv.2504.21312,
title = {Annotating and Auditing the Safety Properties of Unsafe Rust},
author = {Zihao Rao and Jiping Zhou and Hongliang Tian and Xin Wang and Hui Xu},
journal= {arXiv preprint arXiv:2504.21312},
year = {2026}
}
备注
Updated to include a new tool (safety-tool) and extended results; restructured the introduction and discussion for improved flow; added one new contributing author