Zellic获得DARPA颁发的100万美元奖励,参加人工智能网络挑战赛

  • zellic
  • 发布于 2024-04-05 20:53
  • 阅读 12

Zellic获得了DARPA颁发的100万美元,用于开发一种自动化漏洞研究系统(AVRS),该系统利用大型语言模型(LLM)创建能够自主发现和修复安全漏洞的AI系统。文章概述了AVRS的设计原则,包括自主性、准确性、可扩展性和可扩展性,并探讨了如何通过合理的任务优先级策略和LMM的结合来模拟人类研究者的工作过程。

我们很自豪地宣布,Zellic 已获得DARPA的100万美元资助,以支持我们提交的AIxCC小企业赛道↗!DARPA的AI网络挑战赛(AIxCC)是一个为期两年的计划,参赛者将在该计划中创建能够完全自动发现和修复漏洞的AI系统。

在这篇文章中,我们想分享我们对这一挑战的一些看法,并讨论这些看法如何影响我们最终的设计。这篇文章将仅作为我们获胜提案的高级概述,你可以在这里↗阅读我们的白皮书。

问题的定义

在AIxCC中,目标是创建能够自主发现并修补安全漏洞的系统。鉴于整个Linux内核是一个典型的挑战程序↗,这样的系统必须既具有极大的通用性又具备强大的能力,结合广度和深度。在某种意义上,真正成功的系统将以可扩展、自动化的方式复制人类研究人员的能力。

过去尝试创建这样的网络推理系统主要由于两个原因而失败:

  • 缺乏通用性。 该系统仅适用于某些特定的bug类别或模式,比如缓冲区溢出。此外,它无法识别“逻辑错误”,即没有清晰“有问题/无问题”标准的业务逻辑细微问题(例如崩溃、卡死)。

  • 缺乏直觉。 该系统缺乏流畅推理的能力。相反,它过度依赖硬编码的启发式(如块/边缘覆盖),或僵化、缓慢和无法决定的技术,如约束求解。出于同样的原因,它无法拒绝明显良性的行为(例如,网络扫描仪中的误报)。

这两者问题相互促进,尽管研究已经进行数十年,仍未得到解决。然而,我们相信最近在AI方面的进展,特别是LLMs,为克服这两个缺陷提供了机会。LLMs能够像人类一样流畅而有创意地推理;LLMs善于处理模糊性和细微差别;最后,LLMs是跨多个领域的通才,具有广泛的知识。

我们认为,与其集中于任何特定的技术(例如,模糊测试或符号执行),不如开发一个通用的研究系统。这样的系统必须将复杂的问题分解成更简单的问题,在竞争任务和目标之间进行优先排序,进行批判性和创造性的推理,独立进行故障排除。这些能力赋予人类研究人员应对任何漏洞研究活动的能力,而不仅仅是查找binutils中的内存损坏。过去一代的网络推理系统仅是漏洞研究的真正驱动者:研究人员自己的工具。

换句话说,我们必须构建一个机器人科学家,而不是另一个显微镜。我们将这个概念称为自动化漏洞研究系统(AVRS)。该系统将遵循类似科学方法的流程,迭代地进行实验,并在寻找漏洞的过程中不断完善对程序的了解。

一个成功的AVRS是什么样的?它必须应对几个挑战,以有效模拟人类安全研究人员:

  1. 自主性。 必须以完全自主的方式运行,给定的指导不仅仅是目标程序,以及对哪些类型的漏洞在范围内有整体的了解。它需要自主创建和执行计划,递归地将这些计划分解为更小、更可管理的步骤。结果和信息也需要以某种方式进行整理,并且朝向相同答案的调查线需要合并。在某种意义上,我们需要赋予AVRS它自己的执行功能。
  2. 准确性。 必须最小化误报和漏报。由于LLM的幻觉,误报可能轻易出现,而不经过细致的工程和提示。漏报更难以防止,需要增强LLM与外部能力或结构的结合,以确保LLM可以在有限的上下文窗口内“看到”所有漏洞。
  3. 可扩展性。 必须具有可检查、可观察、可调试和可扩展性,以跟上信息安全领域的不断发展。这包括工具使用,这意味着它必须能够根据自己的判断使用外部工具,而不仅仅依靠LLMs。例如,AVRS必须能够使用AFL对程序进行模糊测试,如果它认为这是一个好的推进方式。
  4. 可扩展性。 必须能够探索和分析任意大的代码库。此外,它必须具有高度的并行性,以便在合理的时间内针对像Linux内核这样的大型代码库。

这是一个雄心勃勃的概念。面临的挑战包括开放研究问题和新颖的障碍。为了评估基于LLM的AVRS的可行性,我们对LLMs进行了实验,以查看它们是否将是合适的基础。

我们对LLM推理了解多少?

自2019年初GPT-2的公开发布以来,我们一直在对LLMs进行实验。即使是当前的最新模型如GPT-4,我们的内部实验也显示随着LLM上下文长度的增长,推理性能较差。

现代LLMs在小型代码样本上展示了强大的推理能力。↗然而,在一堆稻草中寻找针的评估中表现出色似乎与在较大输入上的稳定推理技能并无关联。尽管一些研究(Liu et al.↗Yuan et al.↗)确实表明如此,但我们主要依赖于对技术娴熟的安全研究人员的专家人类评估。这些实验使我们相信,对于代码分析任务的真实世界表现可能比当前基准量化测量的要差。

因此,将整个代码库放入单个高上下文的LLM的简单策略不可行。我们认为这是AI代码分析的一个关键限制因素。因此,需要更复杂的策略来实现多步骤、递归、自主、对抗性等提示和计划的组合。这是一个相当合理的结果,因为人类研究人员一次只能合理地考虑如此多的代码。相反,他们将目标分解为一系列问题和问题树,然后逐一处理。鉴于LLMs在小块信息上推理良好,合理的方法是模拟这种熟悉的人类过程。

任务优先级

与许多基于LLM的推理系统(例如AutoGPT↗AgentGPT↗)一样,我们采用基于代理的任务优先级方法。一个代理是一个LLM(例如,GPT-4),其目标是(例如,找出并修复漏洞)。

代理将其目标分解为子目标并生成子代理(例如,首先尝试理解程序的功能)。根代理作为一个协调者,启动其他代理以追求不同的调查线索。

这些代理可以专门负责特定角色:它们可能使用不同的模型,访问不同的外部工具,或者在不同的资源限制下操作。

我们将代理组织成一个思想图谱↗,获得多个理想特性:

  • 工作可以在大量线程间进行并行化。
  • 语义记忆可以通过任务或主题进行命名空间划分(例如,使用向量数据库/RAG),避免让单个代理承受超出任务需求的较大提示,同时为整个推理系统保留所有相关信息。
  • 代理之间可以相互查询,从而允许信息的压缩与提炼。
  • 工作可以通过自我纠正(“你确定吗?”)和代理之间的辩论↗进行精炼。
  • 可追溯性和监控工具允许快速的人工审核代理、工具和提示性能。

我们构建了这个思想图谱规划系统的原型版本,如下所示。

结论

通过将LLMs与传统的静态分析和工具结合,我们可以创建一个AVRS,模拟人类研究人员的过程。这使我们能够高效且有效地处理大型代码库,为自主漏洞研究铺平道路。

致谢

特别感谢Keegan Novik、Avi Weinstock、Alex Vanderpot和Luna Tong对Zellic的AIxCC概念白皮书所做的工作。当然,这篇文章只是我们整体小企业赛道提案的概述。如果你感兴趣,我们推荐你在这里↗查看。

关于我们

Zellic专注于保护新兴技术。我们的客户包括Cognition Labs、Axiom、Polymarket、MyShell等。我们的工程师拥有丰富的技能和背景,包括密码学、机器学习、网络和移动安全、低级利用和金融。

联系我们↗,进行比其他评审更好的安全审查。真实审核,而不是形式上的审核。

  • 原文链接: zellic.io/blog/zellic-da...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
zellic
zellic
Security reviews and research that keep winners winning. https://www.zellic.io/