谷歌公布了令人信服的数据,强调了其“安全编码”方法在减少内存安全漏洞方面的有效性。
该科技巨头的战略优先使用内存安全的编程语言进行新代码开发,并取得了令人瞩目的成果。最值得注意的是,Android 的内存安全漏洞数量急剧下降,从 2019 年占所有漏洞的 76% 骤降至 2024 年的 24%。
鉴于内存安全问题的行业标准徘徊在 70% 左右,这一减少尤为重要。谷歌在这一领域的成功为面临类似安全挑战的开发人员带来了希望。
谷歌方法的关键在于一个违反直觉的见解:即使内存不安全代码的数量持续增长,专注于新代码的安全编码实践可以迅速降低代码库的整体安全风险。
谷歌的分析表明,漏洞会随着时间的推移呈指数衰减,并具有明显的半衰期。
“2022 年在 Usenix Security 上发表的一项大规模漏洞生命周期研究证实了这一现象。研究人员发现,绝大多数漏洞都存在于新代码或最近修改的代码中,”该公司指出。
这一发现强调了开发人员的两个关键点:
- 问题的主要根源在于新代码,因此需要从根本上改变开发实践。
- 随着时间的推移,代码会呈指数级成熟和更安全,从而减少完全重写等投资的回报。
谷歌的数据表明,5 年前的代码的漏洞密度比新代码低 3.4 倍到 7.4 倍,具体取决于具体情况。
这家科技巨头并不主张全面重写现有的内存不安全代码。相反,它强调内存安全语言和内存不安全语言之间互操作性的重要性。这种方法使组织能够利用现有投资,同时加速开发新的、更安全的功能。
为了支持这一战略,谷歌向Rust 基金会提供了 79 万英镑的资助,并开发了 Crubit 和 autocxx 等互操作性工具。
随着行业转向安全编码,Google 预计对传统漏洞缓解和模糊测试等主动检测方法的依赖将减少。然而,这些技术在应用于较小、封装良好的代码片段时,预计会变得更有针对性和更有效。
对于软件开发人员来说,谷歌的研究结果提供了明确的指导:优先考虑内存安全语言进行新开发可以带来显著的安全优势——即使在大型现有系统中也是如此。通过“关闭”新漏洞的水龙头,开发人员可以利用现有问题的自然衰减来增强整体系统安全性。
随着软件行业继续努力应对安全挑战,谷歌的安全编码策略展现了一条充满希望的前进道路,为构建高保证软件提供了一种可扩展且可持续的方法。