Quality-Assured Fuzz Harness Generation via the Four Principles Framework
本文介绍了 QuartetFuzz,这是一个基于大语言模型的自主系统,它通过应用新颖的“四大原则”框架(逻辑正确性、API 协议合规性、安全边界尊重以及入口点充分性)来生成、验证和修复模糊测试驱动,从而在多种编程语言中实现高质量的漏洞发现并保持较低的误报率。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
以下是用通俗语言和创意类比对论文《基于四大原则框架的质量保障模糊测试 harness 生成》的解释。
核心难题:“糟糕的翻译员”
想象你有一个非常复杂、高安全级别的保险库(软件库),你想测试它的弱点。你雇佣了一名专业窃贼(模糊测试器)来尝试闯入。这名窃贼擅长向保险库投掷随机的石头、电线和沙子,看看是否有什么东西会坏掉。
然而,窃贼不能直接走到保险库门前;他们需要一名翻译员(模糊测试 harness)来将那些随机的石头转化为保险库真正能理解的特定动作,比如转动钥匙或拉动把手。
问题在于:大多数翻译员都很糟糕。
他们经常误解指令。他们可能会在锁还没安装好时就尝试转动钥匙,或者在门还焊死时就尝试拉把手。当保险库因此“崩溃”时,安全团队会想:“太棒了!我们找到了一个漏洞!”但实际上,保险库本身没问题,只是翻译员搞砸了。这导致了大量的时间浪费和“误报”。
解决方案:QuartetFuzz 与“四大原则”
作者构建了一个名为QuartetFuzz的新系统。他们不是仅仅让 AI 编写一个翻译员并听天由命,而是建立了一个基于四大原则的严格质量控制体系。你可以把这想象成一位“总建筑师”,在翻译员见到窃贼之前,先对其进行审查。
以下是翻译员必须遵守的四条规则:
- 逻辑正确性(P1):“别被自己的脚绊倒。”
- 类比: 翻译员自身不应有内部漏洞。它不应该在爬完梯子后忘记放下梯子(内存泄漏),或者试图穿过自己建造的那堵墙。如果翻译员因为笨拙而崩溃,那不是保险库的漏洞,而是翻译员的漏洞。
- API 协议合规性(P2):“严格按食谱操作。”
- 类比: 有些保险库要求你必须先插入钥匙,然后再转动把手。如果你先转动把手,机械装置就会卡住。翻译员必须知道确切的操作顺序。它不能跳过步骤,也不能按错误的顺序执行。
- 安全边界尊重(P3):“待在门厅里。”
- 类比: 保险库有一个公共门厅,任何人都可以在那里尝试闯入。但它还有一个工程师工作的秘密后室。如果翻译员溜进后室去测试保险库,那就是作弊。我们只关心公共入口是否会被攻破。如果翻译员破坏了后门,这不算作真正的安全漏洞。
- 入口充分性(P4):“选对门。”
- 类比: 不要试图通过微小的通风井闯入,如果主门才是薄弱环节的话。翻译员需要选择那些对安全真正重要且危险的入口,而不是去测试一个无害的辅助函数。
工作原理:“自检”循环
QuartetFuzz 使用一个 AI 代理,它就像一个偏执的编辑。在翻译员被用来测试真实保险库之前,AI 会运行一种特殊的“对抗性探测”测试:
- AI 编写翻译员。
- AI 尝试破坏它自己的翻译员。 它会问:“如果我给这个翻译员一个奇怪的输入,它会被自己的脚绊倒(P1)还是搞乱顺序(P2)?”
- 如果它崩溃了: AI 会立即修复翻译员。
- 如果它通过了: 只有这时,翻译员才会被发送给真实的模糊测试器去测试软件。
这一切都发生在任何真实测试开始之前,从而确保当崩溃发生时,它几乎肯定是一个软件中的真实漏洞,而不是测试脚本中的错误。
结果:更少的误报,更多的真实漏洞
该团队在 23 个不同的开源项目(如图像库、加密工具和 Web 服务器)上测试了这个系统。
- “审计”: 他们选取了 586 个由人类编写的现有翻译员,并用他们的四大原则检查对其进行了审查。他们发现了53 个隐藏在光天化日之下的错误。修复这些错误实际上揭示了软件中2 个隐藏了 25 年之久的漏洞(其中一个在 OpenSSL 中),因为糟糕的翻译员无意中掩盖了它们。
- “生成”: 当他们使用 QuartetFuzz 创建新的翻译员时,他们发现了42 个真实漏洞(包括 3 个被称为 CVE 的主要安全漏洞)。
- “误报率”: 大多数自动化工具的误报率接近 94%(意味着 100 次崩溃中有 94 次只是翻译员搞砸了)。QuartetFuzz 将其降低到了4.8%。
结论
这篇论文认为,在 AI 时代,我们可以非常快速地生成代码,但没有质量的速度是危险的。通过迫使 AI 在开始测试之前根据这四大原则检查自己的工作,我们停止在虚假漏洞上浪费时间,并开始发现软件中真实、危险的漏洞。
这就像雇佣一名保安,让他们在开始巡逻大楼之前先检查自己的手电筒电池和制服,从而确保当他们报告入侵时,那是一次真实的入侵。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。