cckuailong
读完需要
速读仅需 2 分钟
1
前言
自 2016 年以来,OSS-Fuzz 一直处于开源项目自动漏洞发现的前沿。漏洞发现是保持软件供应链安全的重要组成部分,因此我们的团队一直在努力改进 OSS-Fuzz。在过去的几个月里,我们测试了是否可以使用谷歌的大型语言模型(LLM)来提升 OSS-Fuzz 的性能。
本博客文章分享了我们成功应用 LLM 的生成能力来改进自动漏洞检测技术(即“模糊测试”或“fuzzing”)的经验。通过使用 LLM,我们能够在不手动编写额外代码的情况下,提高使用我们的 OSS-Fuzz 服务的关键项目的代码覆盖率。使用 LLM 是一种有前景的新方法,可以扩展 OSS-Fuzz 目前覆盖的 1000 多个项目的安全改进,并消除未来项目采用模糊测试的障碍。
2
LLM 辅助的模糊测试
我们创建了 OSS-Fuzz 服务,以帮助开源开发者大规模地发现他们代码中的漏洞——尤其是那些表示安全漏洞的漏洞。经过六年多的运行,我们现在为超过 1000 个开源项目持续提供免费的模糊测试服务。我们可以通过自动模糊测试轻松发现可能会产生毁灭性影响的漏洞,比如 Heartbleed 漏洞。对于大多数开源开发者来说,建立自己的模糊测试解决方案可能会耗费时间和资源。有了 OSS-Fuzz,开发者可以免费将他们的项目集成到大规模的自动化漏洞挖掘中。
自 2016 年以来,我们已经发现并验证了超过 10,000 个安全漏洞并对其修复。我们还认为,如果代码覆盖率更高,OSS-Fuzz 可能会发现更多的漏洞。模糊测试服务平均只覆盖了开源项目代码的约 30%,这意味着我们用户的大部分代码仍未被模糊测试触及。最近的研究表明,最有效的提高方法是为每个项目添加额外的模糊测试目标——这是模糊测试工作流中尚未自动化的少数部分之一。
P.S. 模糊测试目标(Fuzz target)是 OSS-FUZZ 中的一个关键组件,它的主要目的是将输入数据传递给目标库的相关函数,以触发潜在的错误和漏洞。
当一个开源项目加入 OSS-Fuzz 时,维护者需要投入初始时间将他们的项目集成到基础设施中,然后添加模糊测试目标。模糊测试目标是使用随机输入来测试目标代码的函数。编写模糊测试目标是一个类似于编写单元测试的项目特定和手动过程。模糊测试带来的持续安全收益使得这种初始时间投资对维护者来说是值得的,但编写一套全面的模糊测试目标对于项目维护者(通常是志愿者)来说是一个艰巨的期望。
但是,如果 LLM 可以为维护者编写额外的模糊测试目标呢?
3
“嘿,LLM,请为我模糊测试这个项目”
为了探究 LLM 是否能成功编写新的模糊测试目标,我们构建了一个评估框架,将 OSS-Fuzz 与 LLM 连接起来,进行实验并评估结果。步骤如下:
P.S. 我们用于分析开源项目模糊测试质量的工具。目标是使状态透明并有助于开发人员和研究人员确定他们使用的代码是否经过正确分析。
起初,从我们的提示生成的代码无法编译;然而,在经过几轮的提示工程和尝试新的模糊目标后,我们看到项目的代码覆盖率增加了 1.5%到 31%。我们的一个样本项目 tinyxml2,从 38%的代码覆盖率提高到 69%,而我们的团队并没有进行任何干预。tinyxml2 的案例教会了我们:当添加了 LLM 生成的模糊目标时,tinyxml2 的大部分代码都被覆盖了。
要手动复制 tinyxml2 的结果至少需要一天的工作时间,这意味着要手动覆盖所有 OSS-Fuzz 项目需要花费数年的时间。鉴于 tinyxml2 展现出较好的结果,我们希望在生产中实施它们,并将类似的自动覆盖扩展到其他 OSS-Fuzz 项目。
此外,在 OpenSSL 项目中,我们的 LLM 能够自动生成一个工作目标,重新发现了 CVE-2022-3602,这是一个先前没有模糊覆盖的代码区域。虽然这不是一个新的漏洞,但它表明,随着代码覆盖率的提高,我们将发现更多目前被模糊测试遗漏的漏洞。
通过我们的示例提示和输出或通过我们的实验报告了解更多关于我们的结果。
4
目标:完全自动化的模糊测试
在接下来的几个月里,我们将开源我们的评估框架,以允许研究人员测试他们自己的自动模糊目标生成。我们将继续通过更多的模型微调、提示工程和改进我们的基础设施来优化我们对 LLM 的模糊目标生成的使用。我们还与 Assured OSS 团队密切合作,以便为谷歌云客户使用的更多开源软件提供安全保障。
我们的长期目标包括:
我们正在努力实现一个需要开发者付出很少手动努力的个性化漏洞检测的未来。有了 LLM 生成的模糊目标,OSS-Fuzz 可以帮助提高每个人的开源安全。
5
原文链接
https://security.googleblog.com/2023/08/ai-powered-fuzzing-breaking-bug-hunting.html
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...