【论文速读】| LSAST:通过LLM支持的静态应用安全测试增强网络安全

本文总阅读量
Posted by 安全极客 on November 7, 2024

这是一张图片

基本信息

原文标题:LSAST: Enhancing Cybersecurity through LLM-supported Static Application Security Testing

原文作者:Mete Keltek, Ziyue Li作者单位:University of Cologne

关键词:漏洞扫描、大语言模型、静态应用安全测试、隐私保护、知识检索

原文链接:https://arxiv.org/pdf/2409.15735

开源代码:暂无

论文要点

论文简介:这篇论文提出了一种新方法,通过结合传统的静态应用安全测试(SAST)扫描器和大语言模型(LLM)的能力,创建了一个名为LSAST(LLM-supported Static Application Security Testing)的新系统。该系统旨在显著提高LLM在漏洞检测中的表现,尤其是在传统SAST扫描器难以捕获的地方。作者展示了LSAST的效率,并将其与现有的LLM技术进行了对比,解决了LLM依赖静态训练数据和隐私问题等挑战。通过使用开源的LLM并结合最新的漏洞信息,LSAST可以确保对新兴威胁的及时响应,同时确保代码隐私的安全。

研究目的:研究的核心目标是通过融合传统的SAST扫描器和LLM,提升漏洞检测的性能。LLM在漏洞检测领域的潜力已被初步证明,但存在诸多限制,如依赖静态数据集无法识别最新漏洞,以及将代码发送至第三方服务所带来的隐私风险。本文旨在通过将LLM与SAST扫描器结果相结合,突破这些限制,为未来的安全测试提供新的方法,并展示开源LLM如何在保障隐私的情况下,提高扫描结果的质量。

引言

网络安全领域的威胁不断演变,尤其是在大语言模型(LLM)的快速发展下,软件代码分析的能力得到了显著提升。然而,传统的安全测试工具(如SAST扫描器)由于依赖特定模式和静态分析,可能无法捕获最新的漏洞。同时,LLM尽管在代码分析中表现出色,但其静态数据集往往缺乏对最新漏洞的识别能力。此外,依赖外部LLM服务会带来隐私和安全问题,代码在传输过程中可能面临数据泄露或未经授权的访问。这些问题促使研究者开发新的方法,结合SAST扫描器的稳健性和LLM的学习能力,以提高漏洞检测的准确性。

本文提出的LSAST系统通过结合传统SAST扫描器和LLM,解决了LLM依赖静态训练数据的缺陷。具体来说,该方法利用LLM识别SAST扫描器未能检测出的漏洞,且避免了第三方LLM服务带来的隐私风险。此外,论文还探讨了如何通过开源LLM进行本地化部署,确保安全性,并使用最新的漏洞信息提升检测效果。

研究背景

随着全球网络犯罪成本预计从8.15万亿美元飙升至13.82万亿美元,网络攻击已变得越来越频繁和复杂。为应对这些威胁,安全扫描器成为检测潜在风险的关键工具。常见的安全扫描器主要分为两类:动态应用安全测试(DAST)和静态应用安全测试(SAST)。DAST通过与应用交互,模拟攻击者行为来发现系统中的安全漏洞,而SAST则通过静态分析代码查找已知的漏洞模式。两者的结合有助于更全面的漏洞检测。

大语言模型(LLM)的发展使其在代码漏洞检测领域展现出巨大的潜力。由于LLM可以分析大量数据并识别复杂的模式,它们能够补充传统的SAST工具,检测到一些潜在的安全隐患。然而,LLM依赖于静态数据集,无法应对新型漏洞的快速变化,因此需要引入动态更新的知识检索机制来弥补这一缺陷。

研究方法

LSAST系统的核心在于将传统SAST扫描器的输出与LLM结合,形成高效的漏洞检测工具。具体实施步骤如下:

这是一张图片

  1. 选择合适的SAST扫描工具:本文选择了开源的Bearer SAST扫描器,该工具响应快速,且支持多种数据格式输出,便于与LLM集成。

  2. SAST扫描器输出整合:将SAST扫描器的结果与待分析代码的行号信息结合,确保LLM可以准确理解哪些部分存在潜在漏洞。

  3. LLM提示设计:通过精心设计的提示,指导LLM专注于SAST未能检测到的部分,进一步提高漏洞发现的效率。LLM仅输出100%确定存在的漏洞,避免误报。

  4. 知识检索系统:为了确保LLM掌握最新的漏洞信息,论文引入了基于检索增强生成的知识检索系统,从HackerOne等漏洞报告平台获取最新的漏洞信息,动态丰富LLM的知识库。

  5. 代码抽象与相似性搜索:通过对代码进行抽象处理,并利用矢量数据库进行相似性搜索,帮助LLM识别与已知漏洞相似的代码结构,进一步提高检测效果。

研究评估

本文通过多个开源项目(如DVWA、OWASP Juice Shop等)的测试,验证了LSAST在不同编程语言(如Java、JavaScript、PHP等)中的表现。研究表明,结合SAST扫描器和LLM的系统比单独使用LLM或SAST扫描器的漏洞检测效果更好。通过比较不同方法的准确率、精确度和F1得分,作者发现LSAST在真实环境中的表现尤为出色,能够发现传统SAST工具未能检测到的漏洞。

这是一张图片

此外,LSAST在现实应用中的测试结果表明,它能够有效检测到多种高风险漏洞,包括代码注入和远程代码执行等,这进一步证明了其在实际项目中的实用性。

论文结论

本文通过将大语言模型与静态应用安全测试工具结合,提出了一种新型漏洞检测方法LSAST。该方法在保持隐私和安全性的同时,显著提升了漏洞检测能力。通过使用最新的漏洞报告,LSAST能够动态更新LLM的知识库,解决了LLM依赖静态数据集的缺陷。研究还证明,LSAST在现实项目中表现出色,能够检测到传统工具无法发现的漏洞。

未来的研究方向包括改进知识检索系统、优化代码抽象方法,以及探索如何在不切分代码的情况下扫描整个代码库。LSAST的开发为LLM在静态代码分析中的应用提供了新的思路,并展示了其在未来网络安全领域的潜力。

原作者:论文解读智能体

校对:小椰风

这是一张图片