关于LLM在漏洞检测中的研究

💡 原文英文,约1600词,阅读约需6分钟。
📝

内容提要

本文总结了18篇关于LLM在漏洞检测方面的研究,包括LLM驱动的漏洞检测、LLM辅助模糊测试和LLM辅助程序分析。研究对象涉及Linux内核、智能合约、深度学习库、编译器、固件和协议等。LLM在漏洞检测方面的研究主要集中在智能合约漏洞检测、模糊测试和程序分析三个方面。

🔎

延伸解读

研究分布:智能合约检测占主导

在18篇研究中,LLM驱动的漏洞检测有10篇,其中多数针对智能合约。这反映出当前研究对智能合约漏洞检测的集中关注,可能因为智能合约漏洞后果严重且代码相对独立,便于LLM分析。但其他领域如Linux内核、深度学习库等也有涉及,显示LLM应用范围的多样性。

评估局限:数据泄露与高误报

部分研究存在评估局限。例如GPTLens仅用2018-2019年的13个CVE评估,这些可能已被GPT-4训练数据覆盖,影响结果说服力。David等人的实验显示GPT-4和Claude的命中率仅40%,且误报率高。这提示读者需谨慎看待LLM在漏洞检测中的实际性能,注意评估数据的时效性和独立性。

LLM辅助模糊测试的进展

LLM辅助模糊测试是另一重要方向,研究显示其能提升传统模糊测试效果。ChatAFL在协议模糊测试中超越AFLNet和NSFuzz;Fuzz4All支持多语言并提高覆盖率;ChatFuzz将边缘覆盖率提升12.77%;TitanFuzz和FuzzGPT针对深度学习库生成输入;KernelGPT帮助Syzkaller发现未知漏洞。这些成果表明LLM能有效增强模糊测试的输入生成和变异能力。

程序分析中的LLM集成

LLM辅助程序分析研究较少,仅LLift和LATTE两篇。LLift结合静态分析工具,在Linux内核中达到50%精度并发现13个未知UBI漏洞;LATTE是首个LLM驱动的静态二进制污点分析,优于需要人工定制规则的SOTA方法。这显示LLM能降低程序分析中的人工成本,并提升自动化程度,但相关研究仍处于早期阶段。

❓

Q&A

LLM在漏洞检测中有哪些主要应用?

LLM在漏洞检测中的主要应用包括LLM驱动的漏洞检测、LLM辅助模糊测试和LLM辅助程序分析。

GPTScan是如何进行智能合约漏洞检测的?

GPTScan结合静态分析和GPT,通过将常见逻辑漏洞类型分解为场景和属性,匹配候选函数并验证检测结果。

Fuzz4All的创新之处是什么?

Fuzz4All是首个针对多种输入语言的模糊测试工具,利用LLM进行输入生成和变异,覆盖率高于现有语言特定模糊测试器。

LLM4Vuln的评估框架有什么特别之处?

LLM4Vuln提出的评估框架分离了LLM的漏洞推理与其他能力,增强了对漏洞推理的评估。

LATTE与传统静态分析方法相比有什么优势?

LATTE是首个由LLM驱动的静态二进制污点分析,具有全自动化、低工程成本和在漏洞检测任务中表现优于现有方法的优势。

LLM在模糊测试中的应用效果如何?

LLM在模糊测试中通过生成输入程序和变异,显著提高了覆盖率和发现未知漏洞的能力。

🏷️

标签

➡️

继续阅读