人工智能审计 Cloudflare 密码学库:发现 7 个漏洞,严重程度评定存差异!

人工智能在 Cloudflare 的 CIRCL 中究竟发现了什么?

将人工智能审计管道指向 Cloudflare 的 CIRCL 实验性密码学库,确认了七个实际存在的漏洞,涵盖从阈值 RSA 中严重的 float64 精度损失到基于属性加密中的完全访问控制漏洞等。目前,这七个漏洞都已在代码库上游修复。这是关于人工智能代理在开源密码学项目中发现的漏洞系列文章的第一篇。

1. 构建 zkao 的目标与过程

在 zkSecurity,正在构建名为 zkao 的人工智能审计代理,目标是让人工智能持续审查代码,直至其他人工智能工具无法再发现任何漏洞。构建 zkao 是迭代过程,最终要打造能发现所有人工智能可检测到的漏洞的自动化审计工具,这涉及提出新想法和技术,将安全研究人员的专业知识编码到 zkao 中,同时持续实验以了解方法有效性、模型演变等。此外,实验还帮助构建基准测试套件,深入了解大语言模型在密码学方面的推理方式。

2. 实验过程与结果

几个月前开始对选定代码库实验,使用大语言模型扫描开源密码学项目,采用仅使用大语言模型和大语言模型结合技能两种配置。对于大语言模型发现实际漏洞的重要项目,还运行 zkao 查看其能否独立检测相同问题,多数情况下,zkao 不仅能发现所有问题,还能识别更复杂、严重的漏洞。实验结果满意,决定整理成文,本系列文章先聚焦 Cloudflare 的 CIRCL 库,管道扫描发现许多潜在问题,七个值得报告,目前已修复,多数在 Cloudflare 漏洞奖励计划中获确认并奖励。

3. 人工智能生成报告需人工介入

人工智能生成的是潜在问题,非最终报告,团队人员需对每个问题验证,检查可利用性,简化概念验证,处理漏洞披露事宜。减少这一步骤是 zkao 的主要设计目标之一,当前版本已能承担大部分验证工作。

4. 漏洞严重程度和修复情况概览

人工智能对自身发现的漏洞评定的严重程度可能存在偏差,列出了人工智能评定的每个漏洞的严重程度,以及 Cloudflare 在修复后确认的严重程度,还验证了当前版本的 zkao 能一致重现所有七个漏洞。人工智能评定的严重程度与确认的严重程度之间的差距值得研究。

5. 逐个分析七个漏洞

包括 float64 中的多项式求值问题、通过证明者可控的安全参数进行 DLEQ 证明伪造、BLS 聚合验证缺少消息唯一性检查、通过 `FillBytes` 符号碰撞导致 DLEQ 可靠性破坏、通过位或开关绕过 HPKE PSK 验证、使用 int64 存储拉格朗日系数、CP - ABE 中因一行 AND 份额错误导致的访问控制破坏等漏洞,分别介绍了漏洞情况、严重程度评定差异、修复方法等。

6. 几点收获

一是人工智能在评定漏洞严重程度方面表现不佳且存在不对称性,多数情况高估问题影响,但也有低估情况,目前无完整解释和解决方案,初步假设评估影响困难与下游调用者有关,需添加严重程度矩阵和明确威胁建模步骤,目前仍依赖人工评定严重程度;二是模型组合并非对称,角色可能反转,提醒不要依赖特定模型名称得出结论,促使将 zkao 设计为“模型无关”工具;三是人工智能能收集问题,但不总能关联起来,zkao 致力于解决此问题。

7. 后续计划

感谢 CIRCL 维护者迅速修复问题,本系列文章将继续发布其他项目中已解决的确认漏洞。扫描了 200 多个密码学项目,得到一千多个潜在问题,最大瓶颈是漏洞分类,优先选择维护良好且广受欢迎的项目。欢迎密码学项目维护者合作验证,若项目未扫描或代码库有重大变化,乐意重新扫描,可通过相关方式联系。