美国NSA推荐Rust作为 C/C++的内存安全替代方案

22-11-12 banq

NSA 发布了指导,鼓励组织将编程语言从 C 和 C++ 之类的语言转变为内存安全的替代语言——即 C#、Rust、Go、Java、Ruby 或 Swift。

NSA 建议组织尽可能使用内存安全语言,并通过编译器选项、工具选项和操作系统配置等代码强化防御来加强保护。

该组织主要担心的是,不法分子可能会利用代码中管理不善的内存漏洞,这种漏洞在为程序员提供更多选择和灵活性的语言中更频繁地发生。
NSA 给出了威胁参与者通过缓冲区溢出或利用软件内存分配缺陷进入系统的示例。

内存安全语言使用编译时和运行时检查的组合来自动阻止由程序员错误引起的漏洞。请注意,并非所有错误,但每一点都有帮助。例如,这些语言可以捕获涉及不安全使用内存指针或并发线程之间的竞争的错误。

美国国家安全局认为:恶意网络参与者可以利用这些漏洞进行远程代码执行或其他不利影响,这通常会危及设备并成为大规模网络入侵的第一步。

但是,多年来编写的 C 和 C++ 代码的数量是巨大的,即使明天都开始使用 Rust 和 Go,也需要几十年才能清理这个烂摊子。