Workflow
KNighter
icon
搜索文档
让大模型合成检查器:UIUC团队挖出Linux内核90余个长期潜伏漏洞
机器之心· 2025-09-28 08:32
核心观点 - KNighter 实现了一项关键转变:不再让大语言模型直接扫描代码,而是让其从历史修复补丁中学习缺陷模式,自动合成可编译、可维护的静态分析检查器 [2][3] - 该方法在 Linux 内核中成功挖掘出 92 个长期潜伏的真实漏洞,其中 77 个已被维护者确认,57 个已修复,30 个获得了 CVE 编号,证明其有效性 [2][16] - 该技术路径将大模型的归纳能力沉淀为可长期服役、可解释的工程化工具,为AI静态分析的规模化工业落地提供了新范式 [3][21] 技术方法与创新 - 核心洞察在于将“写一个静态分析检查器”的任务拆解为多阶段可控小任务:先分析漏洞缺陷模式和程序状态,再指导模型生成包含状态建模、回调挂载等代码的检查器框架 [11] - 采用“补丁蒸馏”方法,利用开源项目过往的修复补丁作为教科书,提炼缺陷模式与修复意图 [11] - 通过正确性验证与自动化精炼,在原始补丁上回放检查器以确认其有效性,并通过迭代优化降低误报 [11] - 合成好的检查器可直接接入CI流水线,在全库范围长期运行,并随新补丁出现而迭代升级,实现规模化 [12] 性能与效果 - 在Linux内核中发现的漏洞平均潜伏时间超过4年,凸显了传统工具的局限性及该方法发现深层缺陷的能力 [16] - 相较于直接让LLM扫描代码,该方法成本更低、稳定性更高:一次合成的检查器可长期复用,运行成本接近传统静态分析 [16] - 每个告警都附带精确的状态机和触发点,便于开发者评审与定位根因,具备可解释性 [16][19] 优势与工业应用潜力 - 生成的检查器是真正的C++代码,可纳入版本库和CI流程,拥有明确的状态转移和告警逻辑,便于代码审查与演进 [19] - 检查器像乐高模块,可针对资源管理、错误传播、并发协议等不同缺陷类型组合使用,实现复用与组合 [19] - 建议企业/社区在合并修复补丁时自动触发KNighter的模式挖掘,逐步积累规则库,并从资源释放、并发锁等高危场景起步应用 [20]