不安全是阿喀琉斯之踵吗?不安全 Rust 编程中安全需求的综合研究
软件工程
2023-08-10 v1
摘要
Rust 是一种新兴的强类型编程语言,专注于效率与内存安全。随着采用 Rust 的项目日益增多,了解如何使用 Unsafe Rust 对于 Rust 安全性至关重要。我们观察到,在 Unsafe Rust 编程中,安全需求的表述需要统一。标准库中当前的不安全 API 文档表现出差异性,包括不一致性与不充分性。为增强 Rust 安全性,我们建议不安全 API 文档列出系统性的安全需求描述以供用户遵循。本文中,我们首次对跨不安全边界的安全需求进行了综合实证研究。我们研究了标准库中的不安全 API 文档,并定义了 19 个安全属性(SP)。随后我们对 416 个不安全 API 完成了数据标注,同时分析其相关性以得到可解释的结果。为验证实际可用性与 SP 覆盖率,我们对截至 2023-07-08 的现有 Rust CVE 进行了分类,并对面向 crates.io 生态的不安全标准库 API 使用进行了统计分析。此外,我们开展了一项用户调查,从经验丰富 Rust 程序员处获取四个方面的见解。最终我们收到 50 份有效回复,并以统计显著性确认了我们的分类。
引用
@article{arxiv.2308.04785,
title = {Is unsafe an Achilles' Heel? A Comprehensive Study of Safety Requirements in Unsafe Rust Programming},
author = {Mohan Cui and Suran Sun and Hui Xu and Yangfan Zhou},
journal= {arXiv preprint arXiv:2308.04785},
year = {2023}
}