DARPA向Trail of Bits授予100万美元用于AI网络挑战赛
我们很高兴地宣布,Trail of Bits被选为DARPA AI网络挑战赛(AIxCC)小型企业赛道的七支独家团队之一。我们的团队将获得100万美元的奖金,用于创建一个网络安全推理系统(CRS),并参加今年夏天晚些时候举行的AIxCC半决赛。这一认可不仅凸显了我们在推进网络安全方面的奉献精神,也标志着我们在开创可能塑造AI驱动安全未来的解决方案的旅程中的一个重要里程碑。
构建CRS的指导原则
除了参加AIxCC的精神前身——网络大挑战(CGC)之外,我们Trail of Bits的团队多年来一直在努力将AI/ML技术应用于关键的网络安全问题。这些经验极大地影响了我们对AIxCC的方法。虽然我们将等到比赛后期才分享具体细节,但我们希望分享从这项工作中得出的构建AI/ML驱动的CRS的指导原则:
CRS架构是实现可扩展性、弹性和多功能性的关键
DARPA的CGC与AIxCC一样,要求竞争对手开发能够在有限时间内大规模扫描许多挑战程序而无需人工干预的CRS。Trail of Bits为参加CGC而创建的CRS Cyberdyne通过分布式系统架构解决了这些问题。Cyberdyne配置了许多独立节点,每个节点都能够执行关键任务,如模糊测试和符号执行。每个节点负责一个或多个挑战问题,甚至可以与同一挑战的其他节点合作。
这种设计有几个优点。首先,CRS通过并行处理最大限度地覆盖了131个挑战。这使得CRS既能达到比赛所需的规模,又能避免被特别具有挑战性的问题拖累。其次,CRS对局部故障具有弹性。如果节点在分析挑战问题时遇到灾难性错误,其他独立节点的操作不会受到影响,从而限制了CRS整体分数的损害。这种设计的细心在比赛中得到了回报:Cyberdyne在发现的已验证漏洞总数方面排名第二!
AIxCC的形式与CGC非常相似,因此我们为AIxCC构建的CRS也需要具有可扩展性和对故障的弹性。然而,AIxCC还有一个额外的复杂性——挑战多样性。AIxCC的挑战问题集将包括用C/C++以外的语言编写的程序,包括许多解释型语言,如Java和Python。这将要求成功的CRS具有高度的多功能性。幸运的是,Cyberdyne中使用的分布式架构可以适应AIxCC,以类似于可扩展性和弹性的方式解决多功能性问题。关键的区别在于,用于AIxCC挑战的问题解决节点需要针对不同类型的挑战问题进行专门化。
AI/ML最适合补充传统技术,而不是取代它们
我和我的佐治亚理工学院的合著者最近在USENIX安全研讨会上展示了一项关于我们构建的基于ML的静态分析工具VulChecker的工作。VulChecker使用基于图的ML算法来定位和分类程序源代码中的漏洞。我们评估了VulChecker与商业静态分析工具的性能,发现VulChecker在检测某些基于规则的工具通常难以处理的漏洞类型(如整数溢出/下溢漏洞)方面优于商业工具。然而,对于适合基于规则检查的漏洞(如堆栈缓冲区溢出漏洞),VulChecker有效但并未超越传统静态分析。
考虑到基于规则的检查通常比ML模型的实现成本更低,完全用AI/ML取代传统分析是没有意义的。相反,AI/ML最适合通过解决传统方法难以处理的问题实例来补充传统方法。在AIxCC的背景下,我们的经验表明,纯AI/ML方法是一个失败的主张,因为高计算成本以及在每一步中错误阳性、不准确和/或虚构的复合效应。考虑到这一点,我们计划仅在最适合或没有传统选项的地方在我们的CRS中使用AI/ML。目前,我们计划主要在CRS中使用AI/ML方法进行漏洞检测/分类、补丁生成和输入生成任务。
为工作选择合适的AI/ML模型!
由于训练集的庞大规模,LLMs已经展示了许多新兴能力。在AIxCC中CRS必须完成的适合AI/ML的任务中,有几个是为LLMs量身定做的,例如生成代码片段和模糊测试的种子输入。然而,根据我们过去的研究,我们发现LLMs实际上可能不是此类任务的最佳选择。
去年秋天,我们的团队支持了英国前沿AI任务组评估前沿AI模型带来的风险的努力。我们创建了一个框架,用于严格评估LLMs的进攻性网络能力,这使我们能够1)相对于人类技能水平(即新手、中级、专家)评估模型的独立能力,以及2)评估模型提升新手或中级人类操作员技能的能力。我们使用这个框架评估了不同LLMs处理几个不同任务的能力,包括与AIxCC高度相关的任务(如漏洞发现和情境化)。
我们发现,LLMs只能在可简化为自然语言处理的任务(如编写钓鱼邮件和进行虚假信息活动)中表现得像专家或显著提升新手。对于其他网络任务(包括与AIxCC相关的任务),如创建恶意软件、在源代码中查找漏洞和创建漏洞利用,当前一代的LLMs具有新手般的能力,只能略微提升新手用户。这些结果表明LLMs缺乏推理和规划能力,这一点已被充分记录。
由于LLMs在需要大量推理的任务(如识别源代码中漏洞的新实例或分类漏洞)中会非常吃力,我们将避免在我们的CRS中使用它们。范围较窄的其他类型的AI/ML模型是更好的选择。期望LLMs在这些任务上表现良好会带来高不准确性或错误阳性的风险,这可能会破坏后续任务(如生成补丁)。
下一步是什么?
下个月,DARPA将举行AIxCC启动活动,我们应该会了解更多关于DARPA将为比赛提供的基础设施的信息。一旦发布,我们预计这些信息将使我们(以及其他参赛团队)在构建我们的CRS方面取得更具体的进展。