利用LLM赋能补丁差异分析进行漏洞发现
TL;DR: 大语言模型通过自动化补丁差异分析展现出优化漏洞研究流程的巨大潜力。针对高危CVE的结构化实验表明,定向应用的LLM能在保持准确性的同时缩减分析时间,其中Claude Sonnet 3.7在性能与成本效率方面达到最佳平衡。
漏洞研究人员需要耗费大量时间进行补丁差异分析——这种精细流程涉及对比软件版本以识别安全修复和理解攻击向量。当安全公告提供不完整信息时,分析人员不得不手动反编译二进制文件,从上万行代码变更中定位实际漏洞,挑战尤为严峻。
传统补丁分析流程包括反编译受影响和已修复的二进制文件(使用Binary Ninja)、生成差异报告(使用BinDiff)以及手动分析每个函数变更。对于复杂应用程序,此过程可能占用专家数天甚至数周时间,在漏洞研究管道中形成瓶颈。
本文详述我们最近关于LLM如何助力扩展补丁分析流程的研究,为这场与攻击者赛跑的关键任务节省宝贵时间。完整方法论与结果请下载我们的《LLM辅助漏洞研究指南》。
实验框架
本研究采用结构化方法,针对四类CVSS评分9.4及以上的高危漏洞进行测试:信息泄露、格式化字符串注入、权限绕过和栈缓冲区溢出。
每个测试案例使用传统自动化工具反编译二进制文件,生成差异报告,并仅提取变更函数的反编译代码。我们向LLM提供两种提示:
提示1:包含反编译函数,要求LLM为每个函数建议名称、总结功能用途并概述函数变更。 提示2:包含供应商安全公告文本及首轮提示输出,要求LLM按与公告相关性对函数排序(采用开源工具raink的迭代方法)。
我们随后审查结果以确定已知漏洞函数的位置。当存在多个关联函数时,取排名最佳者。为保障统计可靠性,使用三种LLM模型(Claude Haiku 3.5/Claude Sonnet 3.7/Claude Sonnet 4)进行多轮迭代。
性能结果
66%的测试案例将已知漏洞函数排在前25位结果内,表明该整体方法前景广阔。
漏洞类型 | 变更函数数 | 已知漏洞数 | 模型 | Top 5命中率 | Top 25命中率 | 平均时间 | 平均成本 |
---|---|---|---|---|---|---|---|
信息泄露 | 27 | 2 | Claude Haiku 3.5 | 10/10 (100%) | 10/10 (100%) | 23分钟 | $0.72 |
信息泄露 | 27 | 2 | Claude Sonnet 3.7 | 10/10 (100%) | 10/10 (100%) | 8分钟 | $2.71 |
信息泄露 | 27 | 2 | Claude Sonnet 4 | 10/10 (100%) | 10/10 (100%) | 39分钟 | $2.70 |
格式化字符串 | 134 | 1 | Claude Haiku 3.5 | 0/10 (0%) | 0/10 (0%) | 5分钟 | $0.43 |
格式化字符串 | 134 | 1 | Claude Sonnet 3.7 | 10/10 (100%) | 10/10 (100%) | 6分钟 | $1.71 |
格式化字符串 | 134 | 1 | Claude Sonnet 4 | 10/10 (100%) | 10/10 (100%) | 7分钟 | $1.66 |
权限绕过 | 1424 | 2 | Claude Haiku 3.5 | 7/9 (78%) | 8/9 (89%) | 39分钟 | $9.26 |
权限绕过 | 1424 | 2 | Claude Sonnet 3.7 | 10/10 (100%) | 10/10 (100%) | 42分钟 | $35.52 |
权限绕过 | 1424 | 2 | Claude Sonnet 4 | 0/10 (0%) | 0/10 (0%) | 412分钟 | $34.71 |
栈溢出 | 708 | 1 | Claude Haiku 3.5 | 0/9 (0%) | 7/9 (78%) | 22分钟 | $5.77 |
栈溢出 | 708 | 1 | Claude Sonnet 3.7 | 0/10 (0%) | 0/10 (0%) | 28分钟 | $22.30 |
栈溢出 | 708 | 1 | Claude Sonnet 4 | 0/10 (0%) | 0/10 (0%) | 88分钟 | $21.79 |
图1:按测试案例和LLM模型分类的结果摘要
漏洞分析
信息泄露漏洞是LLM工作流最简单的测试案例,补丁差异仅含27个变更函数。所有三种LLM模型均能正确识别漏洞函数,并在每次测试中将其至少一个排在前5位。
格式化字符串漏洞包含134个变更函数,对分析提出稍高挑战。Claude Sonnet 3.7和4模型100%成功将漏洞函数排在前5位,时间与成本极低,但需使用更强大模型。
权限绕过漏洞是最佳真实场景测试,补丁差异含1400+变更函数(人工难以快速审查)且无明确范围的错误类型。Claude Sonnet 3.7在挑战下表现良好,但单次测试成本达35美元。
栈缓冲区溢出漏洞面临独特挑战:安全公告信息简略,且708处变更大多涉及栈保护机制插入。所有LLM模型均表现不佳,仅Claude Haiku 3.5在7/9次测试中将漏洞函数排在前25位。该案例凸显了持续优化方法论的重要性。
关键洞见
对四类真实漏洞的基准测试表明,大多数补丁差异分析都能受益于人工智能的初步处理。此类分析通常在极端时间压力下进行,若LLM能以合理成本引导分析人员更快定位漏洞代码,则具备实施价值。
研究发现更强大模型通常表现更优,但可能增加分析时间。成本与速度的平衡仍是重要考量。当漏洞信息极少时,LLM可能无法产生有效结果。但总体而言,该方法论基本成功,值得进一步优化。
本实验的核心结论是:LLM在改进漏洞研究方面潜力巨大,尤其当采用定向(而非整体)方法时。Bishop Fox已开始将LLM辅助技术纳入标准研究方法,并持续探索定向与整体应用方案。