尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[论文笔记] A Contemporary Survey of Large Language Model Assisted Program Analysis

[论文笔记] A Contemporary Survey of Large Language Model Assisted Program Analysis
📅 发布时间:2026/6/20 8:58:40

Survey 站在 security 研究者的角度来关注 LLM + 程序分析的如下几个方向:

  • 静态分析:在不同的下游应用上评估 LLM 的作用,下游应用包括 vulnerability detection,malware detection,program verification, static analysis enhancement

  • 动态分析:包括 malware detection,fuzzing,penetration testing

  • 其他方法:包括 unit test generation 等

image

Survey 认为 static analysis 的工作流:源代码 -> 解析源代码得到关键的信息和 IR -> 在 IR 上做下游分析 -> 得到结果。

image

根据上面的工作流,对于 vulnerability detection,可以通过 IR,缺陷类型,LLM 发挥的作用等特征进行分类。上表的 OS/App 指缺陷是 OS-level 还是 App-level 的。

OS-level 的 vulnerability detection 面临 path-sensitivity 和 scalability 两方面的挑战,LLM 相关的静态分析方法包括:

  • LLift:Arxiv 2023,Zhiyun Qian,UC Riverside。Linux 系统内部存在一类 use-before-initialization 简称 UBI 的代码缺陷。C 语言还存在相当多的库函数,如果分析深入到这些库函数的时候显然是 unscalable 的,不去分析又会导致这部分的语义缺失导致 unsoundness。使用 LLM 识别所有的 initializer,并构建和分析相契合的 post-constraint,给 initializer 做总结判断是否一定会初始化变量。LLift 的工作基于前者的 UBITect,UBITect 会有大量的报告,40% 的报告没办法 decide,把这 40% 丢给 LLift 再次确认,效果还不错。Website。参考文献:https://cn-sec.com/archives/2123113.html

  • LATTE:Arxiv 2023,TSE'25,Ant Group,二进制代码的污点分析,先将二进制代码反编译,首先利用 LLM 识别危险程序点,然后进行反向依赖分析,得到一条或者多条调用链,调用链上必须存在某个危险源头 source(好像是手动构造判定的?),然后利用调用链进行代码切片,构造 prompt 模板让 LLM 在链上进行迭代判定。Baseline 选择 Emtaint 和 Arbiter,在 Juliet 和 Karonte 数据集上比 baseline 找到了更多的漏洞。参考文献:https://sh10rl.top/posts/harnessing-llm/

  • SLFHunter:CCS'24,命令注入漏洞 CI 是 Linux 嵌入式固件的常见漏洞,可以通过 taint analysis 解决。然而用户自定义的 DLL 不好处理。单独对某个二进制分析检查不出外部库问题,联合分析多个二进制文件非常耗时。同样先将二进制固件反汇编,然后利用 LLM 准确识别出可疑库函数中可能引起 CI 的输入参数,把信息导入前期工作 EmTaint 中。在测试中 SLFHunter 可以帮助 EmTaint 发现42个额外的命令注入漏洞,平均时间成本增加为89秒。参考文献:https://blog.csdn.net/XLYcmy/article/details/143976444

  • IMMI:USENIX Sec'24,inconsistent memory management intentions 指 caller 和 callee 之间内存管理动作不一致(都不处理内存或者抢着处理内存)的问题。从最基本的一些内存管理函数(kfree这种)出发,然后逐步去寻找更上层的封装函数给函数的内存管理方式做总结,然后对设计内存对象的代码做切片之后让 LLM 判断函数内部的内存管理方式是否一致,如果在多个分支间存在了不一致那么就可以报错了。参考文献:https://cn-sec.com/archives/3442658.html

上面的工作利用 LLM 的动机和做法很相似,出发点都是减少静态分析的开销,利用 LLM 自己的知识给分析做补全,实施上都是切片 + prompt engineer 的思路,面对不同的问题特征在切片方法,提示词构建作出不同的调整。

image

没太理解 app-level 和 OS-level 的 vulnerability detection 有什么太本质的区别,app-level 的工作选几个和静态分析更相关的工作:

  • IRIS:Arxiv'24,ICLR'25,Mayur Naik,UPeen,静态分析负责提取候选的源和汇,而大型语言模型(LLM)则推断特定 CWE 类别的 taint specification。是把 LLM 集成到静态分析下游应用的思路。

其他工作:

image

相关新闻

  • C语言入门教程 | 第一讲:C语言零基础入门教程:第一个代码到变量运算详解
  • 【AI算力架构设计分析】1000PetaOps 算力云计算系统设计方案(大模型训练推理专项版)
  • 未来计划

最新新闻

  • 2026年三明市老百姓优先选择的五家贵金属回收门店 黄金回收白银回收铂金回收彩金回收合规靠谱门店测评合集+联系方式 - 亦辰小黄鸭
  • DFT实战:从扫描链插入到测试向量生成的芯片可测性设计全流程
  • PX4实战指南:利用OFFBOARD模式实现无人机精准轨迹跟踪
  • 【智能算法】黄金正弦算法(GSA)的工程实践:从数学原理到代码落地
  • 揭秘AI教材编写:低查重AI工具助力,快速产出优质教材!
  • 仿真时序精度陷阱:从timescale作用域到跨模块参数传递的实战解析

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号