【论文速读】| 增强静态分析以实现实用漏洞检测:一种集成大语言模型的方法

本次分享论文为:Enhancing Static Analysis for Practical Bug Detection: An LLM-Integrated Approach

基本信息

**原文作者:**Haonan Li, Yu Hao, Yizhuo Zhai, Zhiyun Qian

**作者单位:**加州大学河滨分校

**关键词:**静态分析、错误检测、大语言模型

原文链接:

https://www.cs.ucr.edu/\~zhiyunq/pub/oospla24_llift.pdf

**开源代码:**暂无

论文要点

**论文简介:**本文提出了一种名为LLift的框架,这是一个先进的自动化工具,旨在通过集成大语言模型(LLMs)来增强静态分析在错误检测中的能力。特别是,研究聚焦于识别Linux内核中的使用前初始化(UBI)错误。通过在路径敏感分析中引入后约束引导的路径分析优化,并结合精心设计的过程,LLift能够高效处理特定错误建模、大规模代码库的挑战以及LLMs的不可预测性。实际评估表明,LLift在主流Linux内核中成功识别了四个之前未被发现的UBI错误,这些错误已得到Linux社区的认可。

**研究背景:**尽管静态分析在发现软件错误方面起着重要作用,但在分析大型且复杂的代码库时,其精确性面临挑战。现有的静态分析工具在处理如Linux内核这样的大型软件项目时,往往会因为缺乏路径敏感性而产生大量误报。此外,传统静态分析方法在分析复杂函数和循环结构时也会遇到困难。

研究贡献:

1.新的机遇:首次展示了利用LLMs克服静态分析限制、增强其查找错误能力的方法。

2.后约束引导路径分析:在大规模代码库的实际错误检测中利用后约束引导的路径剪枝,有效增强了静态分析在路径敏感分析中的能力。

3.利用LLMs的方法论:开发了LLift,这是一个创新且完全自动化的框架。LLift采用多种策略与LLMs交互,获得准确可靠的响应。

4.结果:通过对近300个UBITect未定案例的严格调查,LLift展现了合理的精确率(50%)并且没有发现遗漏的错误。此外,LLift从UBITect中发现了13个未被发现的错误,其中四个已被Linux社区确认为真实错误。

引言

静态分析一直是理解程序行为、提高代码质量、可靠性和安全性的重要工具。在错误发现领域,它提供了一种主动机制,能在代码投入生产前发现错误。然而,现代软件的复杂性,如Linux内核等大型代码库,挑战了静态分析的极限。本文提出的LLift框架,通过将静态分析和大语言模型(LLMs)的能力结合起来,为静态分析在错误检测中的应用开辟了新的方向。

背景知识

本文详细介绍了静态分析在实践中面临的一般挑战,包括知识边界的固有问题和穷尽路径探索的问题。此外,还探讨了大语言模型(LLMs)的能力,如何"绕过"这些挑战,提供了一种灵活的方式总结代码行为,这为解决静态分析的固有挑战提供了新的思路。

论文方法

**理论背景:**通过引入后约束引导的路径分析来优化路径敏感分析,聚焦于触发错误的约束,可以减少探索路径,使复杂漏洞分析更加精确。

**方法实现:**解决集成LLMs到静态分析中,用于错误识别的挑战和潜在的解决方案。LLift框架展示了静态分析和LLMs能力的无缝集成。

实验

****实验设置:****LLift主要在Linux内核上进行评估。利用UBITect在Linux内核中标识的未决UBI警告(对Linux内核来说是40%),识别了四个新的错误。

****实验结果:****通过融合优化的路径分析和LLMs的判别能力,LLift在新时代的错误识别领域推动了静态分析的发展。本文记录了这一探索过程,详细介绍了我们的策略和从实践中获得的见解。

论文结论

在这项研究中,研究人员引入了 LLift,这是一个突破性的框架,它通过集成大语言模型 (LLM) 来增强静态分析,以有效且高效地检测通用缓冲区溢出 (UBI) 漏洞。通过采用后约束引导分析,LLift 改进了路径验证能力,解决了复杂的漏洞挑战。通过一系列及时的策略,LLift 有效地利用法学硕士来确保其输出的可靠性和一致性。测试证明了LLift的效率,识别出Linux内核中的13个新的UBI漏洞,准确率达到50%。这项研究凸显了法学硕士与静态分析相结合的潜力,为该领域的未来探索奠定了基础。

原作者:论文解读智能体

润色:Fancy

校对:小椰风

相关推荐
正经人_x18 小时前
学习日记19:GRAPH-BERT
人工智能·学习·bert
aneasystone本尊18 小时前
学习 Dify 的路由系统
人工智能
一个处女座的程序猿18 小时前
LLMs之AgentDevP:FastGPT的简介、安装和使用方法、案例应用之详细攻略
人工智能
前端小同学18 小时前
逆向还原Claude for Chrome - 学习顶尖公司是如何做浏览器agent的
人工智能·chrome·agent
小欣加油18 小时前
python123 机器学习基础练习2
人工智能·python·深度学习·机器学习
DuHz19 小时前
Stable Video Diffusion:将潜在视频扩散模型扩展到大规模数据集——论文阅读
论文阅读·人工智能·深度学习·神经网络·算法·音视频
学境思源AcademicIdeas19 小时前
我用ChatGPT完成选题的全过程复盘
人工智能·chatgpt
cxr82819 小时前
BMAD方法论:敏捷价值、原则映射与全生命周期技术
人工智能·智能体·ai赋能
荼蘼19 小时前
自然语言处理——情感分析 <上>
人工智能·自然语言处理
STLearner19 小时前
AI论文速读 | 当大语言模型遇上时间序列:大语言模型能否执行多步时间序列推理与推断
大数据·论文阅读·人工智能·深度学习·机器学习·语言模型·自然语言处理