主要观点:
- 许多程序员和政策制定者认识到内存安全的好处,软件弱点和漏洞有重要社会影响,提高内存安全能减少软件漏洞严重程度。
- 现有多种流行语言已部分实现内存安全,如 C♯、Go、Java、Python 和 Swift,但仍存在内存安全相关问题。Rust 是唯一无垃圾回收的内存安全语言,引发了围绕内存安全的运动。
- 并非所有代码都会重写成 Rust,许多 C 和 C++代码不应重写,包括谷歌、OpenSSF、Trail of Bits 和 GitHub 等都持此观点,重写需进行成本效益分析。
- 对于不活跃开发的项目,重写可能适得其反,因为可能引入其他类型的漏洞,且经济成本高。
- 应关注 C++的内存安全,C++社区在追求内存安全方面有多种途径,如合约、配置文件、后继语言和借用检查等,不同方法各有优劣,应关心这些努力的结果。
- 内存安全语言用于新代码是理想的,但 C++不会很快消失,应关心 C++内存安全的发展,不应指责维护现有 C 和 C++代码库的人。
关键信息:
- 政策制定者认为提高内存安全有高杠杆作用,软件公司报告显示许多漏洞源于内存不安全。
- 现有语言如 C♯、Go 等已实现部分内存安全,Rust 独特之处在于无垃圾回收实现内存安全。
- 重写 C 或 C++代码为 Rust 可获内存安全好处,但并非所有代码都适合重写,需考虑成本效益。
- C++在追求内存安全方面有多种途径,不同方法由不同人在 C++标准流程内外推进,其结果难以预测。
- 应关心 C++内存安全发展,不应指责维护现有代码库的人。
重要细节:
- 美国政府 2023 年 12 月发布“内存安全路线图案例”,列出多种内存安全语言。
- 各公司和组织对重写 C 和 C++代码为 Rust 的观点,如谷歌认为重写大型现有不安全代码库往往不切实际等。
- Daniel Stenberg 以
curl
项目为例说明通过保证技术可降低新漏洞引入率。 - C++在内存安全方面的不同途径,如 Herb Sutter 主张的“配置文件”,Sean Baxter 的“Circle”等后继语言项目等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。