主要观点:软件内存安全是一个连续体,而非二进制的概念,应努力在每一行代码中提升内存安全,文档介绍了内存安全连续体的概念及各阶段,包括在默认内存安全语言中编写软件、与默认非内存安全语言交互、使用默认非内存安全语言等,还提及成为更内存安全是迭代过程,不同语言和阶段有不同做法及最佳实践,如各种语言的安全工具和实践等。
关键信息:
- OpenSSF 内存安全 SIG 定义内存安全并确定相关术语。
- 内存安全连续体从“最安全”到“最不安全”排序,各阶段有不同做法。
- 新软件应尽量用默认内存安全语言编写,即使如此仍需遵循最佳实践和使用工具。
- 需与默认非内存安全语言交互,有通用和特定语言的最佳实践。
- 现有软件无论何种语言都可通过一些方式提升安全。
重要细节: - 不同阶段可能适用于同一代码库的不同区域。
- 如 Google 在 Android 开源项目中使用 Rust 时,unsafe 块使用较少且用于易推理和审查安全的行为。
- 几乎所有开源和闭源软件都依赖外部库,需检查依赖的漏洞。
- 各种语言的安全最佳实践和工具,如 Rust 的 Rustnomicon、Go 的工具等,C 和 C++的相关做法等。
- 对常见问题的解答,如无法完全实现内存安全、不提倡大规模重写代码等。
- 多位贡献者参与创建内存安全连续体文档。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。