ARQ: Agentic CodeQL Query Refinement for C/C++ Vulnerability Detection
ARQ 是一个智能体框架,它利用来自合成程序的执行落地证据和大型语言模型(LLMs)来自动优化 C/C++ CodeQL 查询,从而在不需要标记数据集的情况下显著减少误报和漏报,实现了高达 119.8% 的真阳性检测提升,并解决了官方仓库中长期存在的问题。
原始论文根据 CC0 1.0(http://creativecommons.org/publicdomain/zero/1.0/)发布到公有领域。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
运行我们电脑、手机和汽车的软件通常是用 C 和 C++ 等语言构建的。这些工具让程序员能够精确控制机器如何使用内存,但这种力量本身也容易导致失误。程序处理内存方式的一个微小错误,就可能为攻击者留下大门,导致系统崩溃或数据被窃。为了在这些错误造成危害之前捕捉到它们,安全专家使用自动化扫描器来读取代码并寻找危险模式。这些扫描器依赖于一套由人类编写的规则,这些规则明确告知它们一段脆弱的代码看起来是什么样的。如果规则过于严格,扫描器就会漏掉真正的危险;如果规则过于宽松,它就会对不存在的问题大声疾呼,从而浪费时间并损害信任。
多年来,改进这些规则一直是一项缓慢且依赖人工的工作。专家必须阅读代码,猜测扫描器可能在哪里失效,并手动重写规则。这个过程之所以困难,是因为规则必须是完美的,而它们所扫描的代码又是庞大且复杂的。一种名为 ARQ 的新方法改变了这项工作的开展方式。ARQ 不再仅仅依赖于人类的直觉,而是利用人工智能来自动测试和修复这些规则。它不仅仅是在猜测;它会运行它创建的代码,以观察这些规则是否真的有效。通过构建一个循环——即系统生成测试程序、运行它们,然后利用结果来改进规则——ARQ 找到了并修复了人类多年来都未能发现的错误。
ARQ 背后的研究人员从一个简单但强大的想法开始:一条规则的优劣取决于它区分安全代码与危险代码的能力。他们给人工智能提供了一条来自流行安全扫描器的特定规则,并要求它创建两个非常相似的程序。其中一个程序旨在是安全的,而另一个旨在是危险的。随后,人工智能观察扫描器对两者的反应。如果扫描器将安全程序标记为危险,则说明规则过于宽松;如果它漏掉了危险程序,则说明规则过于严格。这种扫描器的判定与代码实际运行情况之间的不匹配,成为了人工智能用来修复规则的证据。
为了确保人工智能不仅仅是在猜测,该系统使用了一个名为“消毒剂”(sanitizer)的特殊工具。这个工具就像一个高精度的传感器,在程序运行时对其进行监控。如果程序尝试进行不安全的操作,例如使用已经被释放的内存,消毒剂会立即停止程序并报告错误。这为研究人员提供了“地面真值”(ground truth)。他们可以将扫描器的判定结果与消毒剂的报告进行对比。如果扫描器说一个程序是安全的,但消毒剂发现了崩溃,研究人员就知道扫描器犯了错误。人工智能随后利用这个被证实的错误来重写规则,使其变得更加聪明。
这个过程在一个持续的循环中进行。人工智能会生成一对新的测试程序,运行它们,检查结果,并再次精炼规则。至关重要的一点是,每当规则发生变化时,系统都会针对之前所有的示例重新测试该规则,以确保修复过程没有破坏原本正常运行的部分。这防止了人工智能在解决旧问题的同时进行过度修正并产生新问题。团队在用于测试安全工具的十二种不同现实世界软件规则上测试了这种方法。他们将这些规则应用于两个大型代码库。结果显示,经过人工智能精炼后的规则比原始的人类编写规则能发现显著更多的真实漏洞。在某些情况下,检测到的威胁数量增加了一倍多,而误报率保持在极低水平,准确率保持在 98% 以上。
这项工作的意义超越了测试数据。研究人员将精炼后的规则应用于驱动互联网的大部分功能的广泛使用的真实软件库,例如用于压缩数据和显示图像的工具。改进后的规则发现了隐藏在这些库中多年的两个漏洞。此外,该系统成功修复了三个曾在公共软件仓库中被报告但一直未得到解决的具体问题。这些问题困扰了人类专家超过两年之久,而自动化系统通过系统地测试和调整检测规则,最终解决了它们。
这种方法为维护我们的数字基础设施提供了一种新思路。与其等待人类发现缺陷并手动编写修复程序,系统现在可以根据真实的执行情况持续测试自身的规则。该方法不需要大规模的已标记错误数据库或多年的历史数据即可工作。它只需要能够运行代码并检查结果的能力。通过将人工智能建立在程序实际行为而非仅仅是纸面表现的基础之上,研究人员创造了一个工具,使其能够随着软件的演进,保持安全扫描器的敏锐与高效。这项工作证明了,当人工智能与运行代码所提供的具体证据相结合时,它可以解决长期以来人类难以攻克的复杂工程问题。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。