与内存安全相关的安全漏洞正日益成为从事软件产品的公司和组织的困扰。 美国网络安全和基础设施安全局(CISA)最近敦促开发人员消除缓冲区溢出漏洞。 现在,Google正在推动整个软件行业加强防范内存相关例程中的可怕缺陷。
“内存安全”是指保护软件项目或代码片段免受与内存访问相关的各种缺陷(如缓冲区溢出或野指针)的影响。 当代码没有为内存例程提供足够的保护时,网络罪犯或敌对国家行为者就可以利用内存访问漏洞入侵系统、窃取敏感数据或访问受保护的网络。
Google指出,滥用内存安全漏洞已经侵蚀了人们对技术的信任,并造成了数十亿人的损失。 为加强流行编程语言而构想的传统方法很有帮助,但已不足以阻止易被利用漏洞的浪潮。
较新的编程语言(如 Rust、Kotlin)或传统语言的安全”子集”(如 C++ 的 Safe Buffers)旨在从一开始就执行内存安全。 这些工具已经证明了自己的有效性,”显著”减少了 Android 中的漏洞。 新的硬件技术,如 Arm 的内存标记扩展或能力硬件增强型 RISC 指令,为现有(潜在的不安全)代码提供了补充防御。
Google提出了一个新的集体承诺,以实现一个共同目标:通过强大的安全设计编程实践消除这类漏洞。 CISA 也提出了”通过设计确保安全”的方法,但Google正在通过其蓝图进一步推动这一目标的实现。
Google的全行业内存安全标准框架支持多种方法,程序员需要实现不同的安全属性,而不是具体的实现细节。 开发人员应根据不同需求定制内存安全要求,为不同应用提供不同级别的内存安全。 因此,与其说这是一个模板,不如说是一个指导方法。
该框架还应定义客观安全合规性评估的标准和指标,类似于我们评估能源效率的方式。 这个技术中立的框架应该是实用的、可操作的,既有针对现有技术的最佳实践,也有利用特定解决方案达到新标准的指导。
Google并不是简单地从理论上提出一种新方法来建立一个更安全的软件产业。 该公司已与业界企业和学术机构合作开发这些标准。Google表示:”在实现内存安全的过程中,我们需要共同致力于标准化。我们需要建设这样一个未来:内存安全不是事后考虑的问题,而是一项基本原则;这样一个未来,下一代将继承一个设计安全的数字世界。”