Veritas: A Semantically Grounded Agentic Framework for Memory Corruption Vulnerability Detection in Binaries
Veritas 是一个基于语义的多智能体框架,它结合了对提升后 LLVM IR 的静态分析、双视图大语言模型推理以及运行时验证,以实现对 stripped 二进制文件中内存破坏漏洞的高召回率、低误报检测,并成功发现了一个此前未知的 Apple 漏洞。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
以下是用通俗易懂的语言和生动的类比对论文《Veritas》的解读。
核心难题:“丢失的翻译”
想象你有一台在工厂制造的复杂机器(计算机程序)。工厂保留着原始蓝图(源代码),但你实际收到的机器是一个经过精简的黑盒版本(二进制文件),所有的标签、指令和图表都被移除了。
安全专家需要在这种黑盒中找出“内存破坏”漏洞。这些漏洞就像机器地基中隐藏的裂缝,允许黑客趁虚而入。
问题在于,如果没有蓝图,要看出机器的一个小部件(比如你按下的按钮)如何与盒子内部数英里外的危险部件(比如压力阀)相连,简直难如登天。
旧方法:靠 AI 猜测
最近,人们开始利用强大的 AI(大语言模型)来审视这些黑盒。AI 很聪明;它能读懂机器的“乱码”代码,并尝试猜测裂缝在哪里。
然而,论文指出,AI 就像一位只拥有模糊照片的侦探。AI 能看到轮廓,但无法确定一条线是连接到管道还是电线。因为“照片”(二进制代码)缺失了关键细节,AI 经常:
- 漏掉真实的裂缝(假阴性)。
- 把安全区域误认为是裂缝(假阳性)。
解决方案:Veritas(“求真者”)
作者构建了一个名为Veritas的新系统。Veritas 不像以前那样让 AI 自由猜测,而是像一个三步调查团队,迫使 AI 严格遵循事实。
可以将 Veritas 想象为三位协同工作的专家:
第一步:制图师(切片器)
在 AI 查看任何内容之前,一个专用工具(切片器)会扫描黑盒。它不使用 AI,而是利用严格的数学来绘制精确地图。
- 类比:想象这台机器是一座巨大的城市。切片器忽略了 99% 的城市(安全部分),只画出一条细线,连接“入口”(数据进入处)和“危险区”(数据被使用处)。
- 结果:它给 AI 提供了一条微小且专注的路径供其调查,而不是整个混乱的城市。这条路径有“证人”(证明数据确实沿此路径传输的证据)作为支撑。
第二步:侦探(双视图检测器)
现在,AI(侦探)查看制图师画出的路径。但这里有个窍门:AI 通过两副不同的眼镜来观察这条路径。
- 眼镜 A(反汇编代码):这看起来像可读的英文句子。它帮助 AI 理解正在发生的“故事”。
- 眼镜 B(LLVM IR):这看起来像原始的、技术性的蓝图。它帮助 AI 看清确切的“数学”逻辑和内存地址。
- 类比:如果 AI 对某个路标感到困惑,它会切换到技术蓝图,以确切看清道路通向何方。这防止了 AI 编造与数学逻辑不符的故事。
第三步:法医测试员(验证器)
AI 可能会说:“我认为这里有个裂缝!”但 Veritas 不会只听其一面之词。第三位代理人(验证器)会走出去,对机器进行物理测试。
- 类比:AI 是法庭上作证说“我看见了一道裂缝”的证人。验证器则是法官,他说:“拿证据来。”验证器使用特殊工具(调试器)运行机器,看机器是否真的会在 AI 声称会出现问题的地方崩溃。
- 结果:如果机器没有崩溃,该“裂缝”将被驳回。如果机器确实崩溃了,漏洞即被确认。
为何重要(结果)
作者在已剥离标签的真实世界软件上测试了 Veritas。
- 成功率:Veritas 发现了**90%**的真实漏洞。
- 准确性:它几乎没有误报。当它声称存在漏洞时,几乎总是真的。
- 现实胜利:在另一项测试中,Veritas 在苹果公司的软件中发现了一个全新的、未知的漏洞("0-day"),此前无人知晓。他们上报了该漏洞,苹果确认了它并为其分配了安全 ID(CVE)。
核心结论
论文认为,不能仅靠聪明的 AI 来发现复杂、精简软件中的漏洞。AI 需要落地(Grounding)。
- 没有落地:AI 就像一个梦想家,想象着可能并不存在的东西。
- 有了 Veritas:AI 变成了一位科学家。它被提供了一条特定的检查路径(由制图师提供),它用两种不同的工具检查细节(由侦探执行),并通过物理测试证明其发现(由验证器执行)。
通过结合严格的数学、智能 AI 和现实世界测试,Veritas 使得发现危险软件漏洞变得更加可靠和准确。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。