挖洞神器!谷歌免费开放模糊测试框架OSS-Fuzz

根据谷歌威胁分析小组的报告,2023年重大零日漏洞利用事件大幅增长,零日漏洞攻击重新升温,从商业间谍到勒索软件攻击,零日漏洞正在从“小众奢侈品”走向“大众快销品”。

2024年,零日漏洞+供应链攻击仍将是让全球企业闻风丧胆网络攻击“黄金拍档”。

面对新的“零日危机”,谷歌近日作出重大决定,宣布免费提供其零日漏洞“挖洞神器”——模糊测试框架OSS-Fuzz(链接在文末)。谷歌声称此举是为了帮助开发者和研究人员更轻松地发现软件漏洞。

模糊测试的智能化和自动化

模糊测试是一种通过向软件输入意外数据来模拟恶意攻击,从而发现潜在漏洞的技术。

业界专家普遍认为模糊测试是一个强大的软件安全工具,不仅可以发现常见的低危漏洞,还能识别像缓冲区溢出这类高危问题。Synopsys Software Integrity Group的高级安全产品经理John McShane表示:“模糊测试已经存在数十年,随着其在发现未知漏洞和零日漏洞方面的成功,越来越受到欢迎。臭名昭著的心脏出血漏洞就是安全工程师使用商业模糊测试产品Defensics发现的。”

Cobalt Labs网络安全服务主管Gisela Hinojosa补充道:“模糊测试可以发现许多‘唾手可得’的漏洞,同时也能暴露一些高影响漏洞。由于模糊测试是自动化的,因此不需要人工看管,它会自动执行测试,你几乎不用操心。这是一种相对简单易行的漏洞发现方法。”

尽管如此,传统模糊测试仍然需要大量手动操作,但借助大型语言模型(LLM)的威力,谷歌的OSS-Fuzz可以将部分手动过程自动化,显著提升效率。

谷歌开源安全团队成员在博客中写道:“我们利用大语言模型编写了特定项目的代码,以提高模糊测试覆盖率并发现更多漏洞。”通过改进OSS-Fuzz大语言模型的测试覆盖率,团队成员成功发现了两个此前未知的cJSON和libplist漏洞,这两个项目虽然早已进行过模糊测试,但新发现的漏洞此前一直未被察觉。他们强调:

如果没有大语言模型生成的代码,这两个漏洞可能永远不会被发现和修复。

模糊测试不能代替安全设计原则

大西洋理事会高级研究员、Rust基金会顾问Shane Miller提醒道:“投资动态测试工具(如模糊测试)并不能替代安全设计原则,例如选择内存安全的编程语言。尽管如此,模糊测试仍是改善软件安全的一项强大工具。”

“模糊测试通过使用意外输入来探索软件行为,从而扩展了测试范围,可以发现类似于最近针对美国水处理厂、电网、油气管道和交通枢纽等关键基础设施的国家支持网络攻击中利用的漏洞,”Miller补充道。

虽然模糊测试对开发人员有益,但其手动操作方面一直是开源项目维护者有效进行模糊测试的障碍。谷歌希望通过免费提供OSS-Fuzz来解决这个问题。Dark Sky Technology软件供应链安全公司首席执行官Michael J. Mehlberg表示:“由于开源项目维护者通常是志愿者,资金有限,花时间和金钱运行资源密集型工具并不总是可行的。”

Mehlberg补充说,传统的模糊测试工具也存在不容忽视的问题:

“例如,模糊测试工具也会使原本简单的开发环境变得复杂,产生大量误报,给已经压力重重的团队增加审查和分析工作,甚至可能由于网络安全技能或经验不足而无法采取行动。”

AI驱动的漏洞修补

谷歌为开发人员和研究人员提供了使用大语言模型开发自动补丁管道的指南。谷歌安全团队成员在博客中写道:“这种AI驱动的补丁方法解决了15%的目标漏洞,为工程师节省了大量时间。”

然而,Hinojosa指出,使用大语言模型自动化补丁的挑战在于,大语言模型需要具备所有必要的上下文知识,才能在不破坏系统的情况下有效地进行补丁修复。“我认为更稳妥的方法是让自动化系统建议修复方案,然后由人类在实施之前手动审查。”

普渡大学计算机科学助理教授Dave (Jing) Tian补充道:“补丁工作最关键的问题不是自动化,而是安全性。事实证明,要证明补丁只做了它应该做的事情,既不多也不少,是非常困难的。因此,目前只有少数补丁可以自动注入,这些补丁都是简单的补丁,例如将变量的32位整数改为64位整数。对于更复杂的补丁,我们仍然需要安全专家对AI补丁进行审查。”

结语

谷歌免费开放OSS-Fuzz模糊测试框架是利用AI提升软件安全(工具)的重要一步。虽然模糊测试和AI驱动的补丁已经展示了巨大潜力,但为了确保安全人工监督仍然至关重要。通过将新一代智能化模糊测试工具与安全设计实践相结合,开发人员可以显著提高软件的安全性和弹性。

参考链接:

https://github.com/google/oss-fuzz-gen

前一篇超四分之一企业禁止员工使用生成式人工智能
后一篇周刊 | 网安大事回顾(2024.1.29-2024.2.4)