谷歌的 OSS-Fuzz 项目使用大型语言模型(LLM)帮助查找代码库中的漏洞,目前已帮助识别出 26 个漏洞,其中包括广泛使用的 OpenSSL 库中的一个关键漏洞。
OpenSSL 漏洞(CVE-2024-9143)于 9 月中旬报告,一个月后得到修复。其他一些(但不是全部)漏洞也已得到解决。
谷歌认为,其人工智能驱动的模糊工具(向软件中注入意外或随机数据以捕捉错误)发现了一些人类驱动的模糊工具不可能捕捉到的漏洞。
谷歌开源安全团队的奥利弗-张(Oliver Chang)、刘东阁(Dongge Liu)和乔纳森-梅茨曼(Jonathan Metzman)在一篇博文中说:“据我们所知,这个漏洞很可能已经存在了二十年之久,人类编写的现有模糊目标不可能发现它。”
如果这是正确的,那么今后的安全研究就真的应该让人工智能参与进来,因为我们担心威胁行为者已经这样做了–并且发现了人工智能无法发现的缺陷。
谷歌安全团队引用的另一个例子是 cJSON 项目中的一个漏洞,据说也是人工智能发现的,而人工编写的模糊测试却漏掉了。
因此,对于安全专业人员来说,人工智能的帮助价值似乎是巨大的。巧克力工厂本月早些时候宣布,一个名为 Big Sleep 的基于 LLM 的独立漏洞猎杀工具首次在真实软件中发现了一个以前未知的可利用内存安全漏洞。
10 月份,总部位于西雅图的 Protect AI 发布了一款名为 Vulnhuntr 的开源工具,它使用 Anthropic 的 Claude LLM 在基于 Python- 的项目中发现了零日漏洞。
OSS-Fuzz团队于2023年8月推出了基于人工智能的模糊测试,旨在模糊更多的代码库,提高模糊测试的覆盖率,即测试代码的数量。
模糊测试的过程包括起草模糊测试目标–“一个接受字节数组的函数,并使用被测 API 对这些字节做一些有趣的事情”–然后处理潜在的编译问题,运行模糊测试目标以查看其执行情况,进行修正,并重复该过程以查看崩溃是否可追溯到特定漏洞。
最初,OSS-Fuzz 负责前两个步骤: 1)起草初始模糊目标;2)修复出现的任何编译问题。
之后,在 2024 年初,谷歌将 OSS-Fuzz 作为开源项目提供,并一直在努力改进软件处理后续步骤的方式: 3)运行模糊目标,查看其性能如何,并修复任何导致运行时问题的明显错误;4)长时间运行修正后的模糊目标,并对崩溃进行分流,以确定其根本原因;5)修复漏洞。
据谷歌称,其 LLM 现在可以处理开发人员模糊过程的前四个步骤,并计划在短期内处理第五个步骤。
“Chang、Liu 和 Metzman 说:”我们的目标是让 LLM 生成建议的漏洞补丁,从而实现整个工作流程的完全自动化。“我们今天还没有任何东西可以在这里分享,但我们正在与不同的研究人员合作,以实现这一目标,并期待着尽快分享成果。”
文章原文链接:https://www.anquanke.com/post/id/302085