内存安全连续体

主要观点:软件内存安全是一个连续体,而非二进制的概念,应努力在每一行代码中提升内存安全,文档介绍了内存安全连续体的概念及各阶段,包括在默认内存安全语言中编写软件、与默认非内存安全语言交互、使用默认非内存安全语言等,还提及成为更内存安全是迭代过程,不同语言和阶段有不同做法及最佳实践,如各种语言的安全工具和实践等。
关键信息:

  • OpenSSF 内存安全 SIG 定义内存安全并确定相关术语。
  • 内存安全连续体从“最安全”到“最不安全”排序,各阶段有不同做法。
  • 新软件应尽量用默认内存安全语言编写,即使如此仍需遵循最佳实践和使用工具。
  • 需与默认非内存安全语言交互,有通用和特定语言的最佳实践。
  • 现有软件无论何种语言都可通过一些方式提升安全。
    重要细节:
  • 不同阶段可能适用于同一代码库的不同区域。
  • 如 Google 在 Android 开源项目中使用 Rust 时,unsafe 块使用较少且用于易推理和审查安全的行为。
  • 几乎所有开源和闭源软件都依赖外部库,需检查依赖的漏洞。
  • 各种语言的安全最佳实践和工具,如 Rust 的 Rustnomicon、Go 的工具等,C 和 C++的相关做法等。
  • 对常见问题的解答,如无法完全实现内存安全、不提倡大规模重写代码等。
  • 多位贡献者参与创建内存安全连续体文档。
阅读 3
0 条评论