一段话总结
本文提出 LATTE(LLM-Powered Binary Taint Analyzer),这是首个利用大语言模型(LLM)进行静态二进制污点分析的技术。它克服了传统污点分析依赖人工定义规则的局限,通过结合 LLM 的代码理解能力实现自动化。LATTE 先预处理二进制文件,识别漏洞目标和外部输入源,生成危险流,再构建提示序列与 LLM 交互进行漏洞检测。评估显示,LATTE 在标准数据集和真实固件上的漏洞检测准确率高、稳定性好、效率可接受,优于 Emtaint、Arbiter 等现有技术,还发现了 37 个新漏洞,其中 10 个被分配了 CVE 编号 ,为二进制程序漏洞分析开辟了新方向。
详细总结
- 研究背景
- 软件测试与漏洞检测现状:软件测试是保证软件质量的主要方法,但无法确保无漏洞。二进制漏洞可能被利用,引发网络攻击,第三方安全审计及静态二进制污点分析成为保障软件安全的重要手段。
- 静态二进制污点分析概述:该分析通过识别污点源、传播污点标签、检查漏洞点来检测漏洞,然而其部分流程依赖人工,规则设计复杂且易出错。
- LLMs的应用潜力:LLMs在代码理解方面有优势,如代码生成和总结,但应用于二进制漏洞检测存在提示工程和代码上下文编码等挑战。
- LATTE设计
- 整体思路:结合LLMs与污点分析概念,通过代码切片驱动的提示序列构建,实现二进制漏洞检测。
- 工作流程
- 预处理:对二进制文件进行反汇编和反编译,恢复代码结构。
- 危险流生成:利用LLM识别漏洞目标和外部输入源,通过向后切片和匹配生成危险流。
- 提示序列构建:根据危险流设计提示模板,与LLM交互进行漏洞检测。
- LATTE评估
- 评估设置
- 基准测试:使用Juliet Test Suite和Karonte数据集,去除调试信息和内部数据源
- 评估设置