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

news2024/11/27 8:35:24

图片

本次分享论文为: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

                                                                                                                                   校对:小椰风

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1530611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux hook系统调用使你文件无法删除

文章目录 前言一、什么是hook技术二、Linux hook种类三、系统调用表hook3.1 查看删除文件用到系统调用3.2 获取系统调用函数3.3 编写hook函数3.4 替换hook函数3.5 测试 参考资料 前言 hook技术在Linux系统安全领域有着广泛的应用,例如通过hook技术可以劫持删除文件…

Regex正则表达式 --java学习笔记

正则表达式 由一些特定字符组成,代表的是一个规则作用一:校验数据格式是否合法作用二:在一段文本中查找满足要求的内容 String提供了一个匹配正则表达式的方法 public boolean matches(String regex(正则表达式&…

高校|政务|医院|集团等网站站群建设要怎么做

网站站群集约化系统,建立统一部署、统一标准、统一规范、统一管理、统一安全体系、支持移动终端访问的“门户网站群”,建设以高校/集团/医院/门户网站为主站,以部门、院系、子公司及其应用为基础支撑的若干子站,形成若干主站子站以…

python3入门机器学习,知识点全面总结与代码实操示例

目录 写在前面的话 一、机器学习的基本任务与方法分类 机器学习的概念和定义 基本任务 二分类任务(Binary Classification): 多分类任务(Multi-class Classification): 多标签分类任务(Mu…

第二证券股市指南:如何看懂股票的量价关系?

股票成交量是指生意日当天个股成交的股数,股票成交量越大,说明当天股票生意比较生动,商场上的流动资金增加,股票后期上涨的或许性加大。成交量越小,说明个股当天生意比较低迷,缺少出资者的注重。所以一般情…

室友打团太吵?一条命令断掉它的WiFi

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:更多干货,请关注专栏《网络安全自学教程》 ARP欺骗原理 1、arpspoof实现ARP欺骗1.1、主机探测1.2、欺骗…

【WEB3安全基建项目Secwarex】空投指南

GoPlusSecurity是WEB3安全基建项目,3月8日完成400万美元的私募融资,目前总融资已经高达1500万美元,其中包括Binance Labs、Huobi Incubator、Kucoin Ventures、Avalanche等知名机构参投。 1、打开网址:secwarex.io,点…

Gin框架 源码解析

https://zhuanlan.zhihu.com/p/136253346 https://www.cnblogs.com/randysun/category/2071204.html 这个博客里其他go的内容也讲的很好 启动 因为 gin 的安装教程已经到处都有了,所以这里省略如何安装, 建议直接去 github 官方地址的 README 中浏览安装…

QT 驾校系统界面布局编写

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(ui->label_img->width(),ui->label_img->height());//图片自适应窗口大小ui->label_img->setScaledContents(true);//图片置…

sora笔记(三):diffusion transformer模型的发展历程

:::info 💡 在sora笔记(一):sora前世今生与技术梗概 一文中介绍了目前未开源的sora模型可能涉及到的技术点,包括介绍了Vision Transformer,作为transformer正式用于图像的一种范式,为本文中将提…

慧海科创再探潮间带|全面调研推动梭子蟹产业进步

浙江的海岸线延绵,孕育了丰富的海洋生物多样性。在这样的背景下,慧海科创团队沿着宁波至舟山的潮间带开展了全面的调研活动。2024年3月15日,浙江海洋大学、宁波大学、上海理工大学的梭子蟹智能捆扎实践团队,深入海岸一线,与当地养殖户交流产业发展中的痛点难点,共同探讨梭子蟹产…

Java 多线程线程池分析

[1]前言 关于Java多线程的知识,看了很多博客书籍,对理论还是比较了解的。但是,最近写一个很简单的使用线程池对列表中任务进行处理,然后返回结果列表的功能,发现理论和实际操作还是有相当大的差距。 首先贴出一个很简…

适用于 Windows 2024 的 7 个最佳免费分区恢复软件分享

无法确定 2024 年 Windows 上最好的免费分区恢复软件是什么?那么,我们可以提供帮助!我们测试了目前市场上可用的几种硬盘分区恢复软件 - 包括免费和付费版本。您现在所需要的只是 - 只需浏览列表并选择适合您要求的一项即可。继续阅读&#x…

ARM Cortex-R82处理器在压缩SSD场景的应用

ScaleFlux公司宣布在其下一代企业级SSD控制器产品线中采用Arm公司的Cortex-R82处理器。这一决策旨在应对企业环境中对高带宽存储解决方案日益增长的需求,并通过提升数据传输速度和效率来满足市场期待。 Arm Cortex-R82处理器是Arm公司迄今为止性能最强的实时处理器…

107 在携带请求体的情况下, hutool 将 get 请求转换为了 post 请求

前言 本问题主要是来自于同事 情况大致如下, 同样的代码 一个是测试用例, 一个是生产环境的应用, 访问同一个第三方服务, 参数什么的完全一致 但是 出现的问题就是 测试用例能够拿到正确的对方的响应, 但是 生产环境的应用 却是拿到的对方的报错 然后 我开始以为是 是否…

通过rmi实现远程rpc(可以认为java自带Dubbo RPC)

背景: 发现公司几个运行10年的游戏,用的竟然是rmi,而我只听说过dubbo 和 基于netty的rpc,于是就补充了下rmi。 其次,是最近对于跨服的思考,如何避免回调也需要用同步写法,rmi比较适合。 1)api…

算法笔记p251队列循环队列

目录 队列循环队列循环队列的定义初始化判空判满入队出队获取队列内元素的个数取队首元素取队尾元素 队列 队列是一种先进先出的数据结构,总是从队尾加入元素,从队首移除元素,满足先进先出的原则。队列的常用操作包括获取队列内元素的个数&a…

2023年蓝桥杯模拟省赛——列名

目录 题目链接:2.列名 - 蓝桥云课 (lanqiao.cn) 思路 高级思路:进制转换 难点一 难点二 难点三 总结 题目链接:2.列名 - 蓝桥云课 (lanqiao.cn) 思路 先来看我的暴力的思路吧 主要有以下步骤: 初始化一个长度为3的数组res用…

图像分割之k-means聚类分割

文章目录 k-means聚类原理k-means基本思路聚类效果评估k-means聚类算法流程MATLAB实现测试结果参考文献 k-means聚类原理 k-means聚类是一种无监督学习的聚类算法,它的目的是将数据集中的样本划分成若干个类别,使得同一类别内的样本相似度高&#xff0c…

Java:类和对象

目录 1.面对对象的初步认识1.1 什么是面向对象?(Java当中一切皆为对象)1.2 面对对象与面对过程 2.类的定义和使用2.1简单认识类2.2 类的定义格式 3.类的实例化3.1 什么是实例化3.2类和对象的说明 4.this引用4.1为什么要使用this引用4.2 什么是…