利用大语言模型检测 npm 恶意软件包
密码学与安全
2025-01-07 v4 人工智能
摘要
现有恶意代码检测技术需要集成多种工具来检测不同的恶意软件模式,往往存在误分类率高的问题。因此,可通过采用更先进、更自动化的方法来增强恶意代码检测技术,以实现高准确率和低误分类率。本研究旨在通过实证研究大语言模型(LLMs)在检测恶意代码方面的有效性,帮助安全分析师检测恶意软件包。我们提出了 SocketAI,一种用于检测恶意代码的恶意代码审查工作流。为评估 SocketAI 的有效性,我们使用了一个包含 5,115 个 npm 软件包的基准数据集,其中 2,180 个软件包含有恶意代码。我们使用先前研究中开发的 39 条自定义 CodeQL 规则,对 GPT-3 和 GPT-4 模型与最先进的 CodeQL 静态分析工具进行了基线比较。我们还比较了静态分析作为预筛选器与 SocketAI 工作流结合的有效性,衡量了需要分析的文件数量及相关成本。此外,我们进行了一项定性研究,以了解我们的工作流检测到或遗漏的恶意活动类型。我们的基线比较表明,在精确率和 F1 分数上分别比静态分析提高了 16% 和 9%。GPT-4 实现了更高的准确率,精确率为 99%,F1 分数为 97%,而 GPT-3 在 91% 的精确率和 94% 的 F1 分数下提供了更具成本效益的平衡。使用静态分析器预筛选文件,可将需要 LLM 分析的文件数量减少 77.9%,并使 GPT-3 的成本降低 60.9%,GPT-4 的成本降低 76.1%。我们的定性分析将数据窃取、任意代码执行和可疑域名类别识别为检测到的最主要恶意软件包类型。
引用
@article{arxiv.2403.12196,
title = {Leveraging Large Language Models to Detect npm Malicious Packages},
author = {Nusrat Zahan and Philipp Burckhardt and Mikola Lysenko and Feross Aboukhadijeh and Laurie Williams},
journal= {arXiv preprint arXiv:2403.12196},
year = {2025}
}
备注
13 pages, 2 Figure, 6 tables