当前位置: 首页 > news >正文

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

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

http://www.rkmt.cn/news/19126.html

相关文章:

  • C语言入门教程 | 第一讲:C语言零基础入门教程:第一个代码到变量运算详解
  • 【AI算力架构设计分析】1000PetaOps 算力云计算系统设计方案(大模型训练推理专项版)
  • 未来计划
  • NOIP2023
  • 概率论习题
  • 2025上海经侦律师TOP5榜单:专业法律服务与高效解决方案
  • 概率论部分习题
  • 完整教程:《机器学习与深度学习》入门
  • 「解题报告」蓝桥杯2013省AB 错误票据
  • 时时想起 寸步难行 叩问自己 无人回应 若我离去 若我死去 枯萎于这幽暗的井底 长眠不醒
  • 完整教程:计算机毕业设计免费领源码-教师教学进度管理及建议系统的设计与实现
  • 战略、运营、经营三循环:企业卓越绩效的密码 - 智慧园区
  • tcpdump 使用详解 - 教程
  • 2025农机带实力厂家推荐:浙江三星胶带,品质卓越供货无忧!
  • 2025风机盘管优质厂家推荐:洛卡尔环境科技,高效节能首选!
  • 个性化推荐系统技术解析
  • NOIP20251009E
  • 2025七水硫酸锌订做厂家推荐榜:品质保证与客户信赖之选
  • 语义slam - MKT
  • 3.Android Compose 基础系列:在 Kotlin 中创建和使用函数
  • 2025数控滚齿机源头厂家推荐榜:高精度与高效能的首选!
  • 完整教程:transformers + peft 框架大模型微调
  • 2025机械加工优质厂家推荐榜:技术精湛与高效服务的行业先锋
  • 2025深圳网站建设推荐:华企网络专业定制,助力企业线上腾飞
  • 2025气柱袋优质厂家推荐:戈尔德包装,防护包装解决方案专家
  • 20232306刘博2025-2026-1《网络与系统攻防技术》实验一实验报告
  • 软件工程学习日志2025.10.10
  • 记录---图文并茂讲解nginx中http升级https(部署SSL证书)知识点总结
  • 控制自然语言生成中的模型幻觉技术
  • CSP-S模拟29