内容提要
作者参加DARPA的AIxCC网络安全挑战赛,历时两年,团队开发出能自动发现、触发并修复代码漏洞的系统,获初赛和决赛共300万美元奖金。决赛中因补丁组件两个小bug导致补丁代理首日全部冻结,最终排名第六。作者反思了集成混乱、测试不足、最后一刻改代码等教训,并致敬其他团队。
延伸解读
竞赛机制与评分逻辑
AIxCC决赛采用积分制:正确提交PoV得2分,补丁得6分,SARIF得1分,若将PoV与补丁捆绑提交可获1.5倍加成。这种设计凸显了补丁的高价值,也意味着补丁环节的失败会严重拖累总分。作者团队在PoV和SARIF上表现优异,但补丁仅排第六,正是因为补丁代理在首日全部冻结,导致大量潜在得分流失。
技术教训:集成与测试的短板
团队在决赛前一个月才仓促加入新的补丁组件,且未经代码审查,最终两个小bug相互作用导致补丁代理全部冻结。更深层的问题在于集成混乱、测试人力严重不足——整个测试仅靠一人反复重启流水线,系统从未连续运行超过48小时。这提醒我们,在复杂系统中,持续集成与长时间稳定性测试不可或缺,最后一刻修改代码风险极高。
规模扩展与架构选择
决赛计算预算大幅提升至8.5万美元Azure额度,LLM预算从100美元涨到5万美元,迫使团队重新设计基础设施。作者此前推动的消息驱动流水线和KV缓存状态存储,原本只为崩溃恢复,却意外成为水平扩展的关键。BandFuzz重写后能管理近2000个模糊测试器,强化学习在调度中发挥优势。这说明良好的架构决策能带来超出预期的扩展红利。
学术与竞赛的张力
作者在竞赛期间撰写的LLM种子生成论文被拒,理由竟是“LLM不是你的贡献”,而BandFuzz方法也被抢先发表。这反映了学术界对新兴AI方法的保守态度。与此同时,竞赛中LLM模型快速迭代,从GPT-4o到GPT-5,一年内格局巨变。作者认为学术界尚未准备好迎接这一趋势,而AIxCC这样的竞赛平台正推动产学研融合,可能催生新的研究方向。
Q&A
AIxCC 是什么比赛?它的规则和挑战是什么?
AIxCC 全称 AI Cybersecurity Challenge,由 DARPA 主办、ARPA-H 后续加入。比赛要求参赛者构建一个全自动的黑盒系统(称为 Cybersecurity Reasoning System, CRS),在无法人工检查代码的情况下,自动发现代码仓库中秘密注入的安全漏洞、生成触发漏洞的 PoC,并修复漏洞。
作者团队在 AIxCC 中最终获得了什么名次和奖金?
团队在决赛中排名第六(共七支队伍),获得了初赛的一百万美元启动奖和决赛的两百万美元奖金,总计三百万美元。
作者团队在决赛中失败的主要原因是什么?
失败的主要原因是补丁组件存在两个小 bug,这两个 bug 相互作用导致所有补丁代理在比赛第一天全部冻结,直到最后才恢复,系统连续四天没有可用的补丁代理,严重拉低了补丁得分。
作者从这次比赛经历中总结了哪些教训?
教训包括:集成混乱、测试不足(测试团队仅一人,系统从未连续运行超过48小时)、最后一刻修改代码(补丁组件未经代码审查)、过于关注单一指标(是否崩溃)而忽略系统整体理解。
AIxCC 决赛的评分规则是怎样的?
评分规则:每个正确的 PoV 提交得 2 分,每个正确的补丁提交得 6 分,每个正确的 SARIF 提交得 1 分。如果捆绑提交 PoV 和补丁,可获得 1.5 倍奖励乘数。
作者团队在 AIxCC 中开发了哪些主要技术组件?
主要技术组件包括:模糊测试(fuzzing)子系统、程序切片器(program slicer)、补丁组件、种子生成器、静态分析工具、消息驱动管道、Kubernetes 组件图、集中式种子最小化服务等。