Rust 对比C++:安全编程的未来之战

CISA揭示开源项目安全真相。

来源:安全实验室新闻频道

Rust 对比C++:安全编程的未来之战

CISA揭示开源项目安全真相。

CISA 发表了一项研究,分析了 172 个关键开源项目的内存错误漏洞。

CISA 研究 开源

内存安全编程语言旨在防止常见的内存相关错误,例如缓冲区溢出、释放后使用(UAF)和其他类型的内存损坏)。此类语言自动管理内存,而不是依赖程序员实现安全分配和释放内存的机制。

缓冲区溢出 UAF 内存损坏

这种系统的一个现代例子是 Rust 语言中的借用检查,它消除了数据竞争。其他语言,例如 Golang、Java、C# 和 Python,通过垃圾收集来管理内存,自动释放释放的内存以防止被利用。

铁锈 数据竞争 垃圾收集

内存不安全语言不提供内置的内存管理机制,将这一责任置于开发人员身上,并增加了出错的可能性。此类语言的示例包括 C、C++、Objective-C、Assembly、Cython 和 D。

C

CISA 报告对 172 个广泛使用的开源项目进行了研究,其中一半以上包含内存不安全代码。报告主要结论如下:

  • 52% 的关键任务开源项目包含用内存不安全语言编写的代码;
  • 这些项目中总代码行数 (LoC) 的 55% 是用内存不安全语言编写的;
  • 最大的项目不成比例地用内存不安全的语言编写;
  • 在代码总行数最大的 10 个项目中,每个项目的内存不安全代码比例都超过 26%;
  • 结果摘要