今天分享的论文《Large Language Model (LLM) for Software Security: Code Analysis, Malware Analysis, Reverse Engineering》
原文链接:[2504.07137] Large Language Model (LLM) for Software Security: Code Analysis, Malware Analysis, Reverse Engineering
这是一篇关于LLM在软件安全各个流程的应用综述,总结得比较全面,值得一看,下面主要是对自己关心或者感兴趣的一些点的笔记和记录。
研究亮点
- 综述了LLM在恶意软件代码分析领域的最新研究成果,总结当前研究趋势。
- 首个探索使用LLMs进行恶意软件代码分析的研究,涵盖检测、生成、监控、逆向工程及家族分析等方向。
- 探究LLMs如何解读源代码语义与结构以识别恶意行为。
- 揭示LLMs通过识别和预测代码模式提升恶意软件检测效果的作用机制。
- 基于逆向工程流程,挖掘LLMs优化恶意软件代码分析的潜力。
大型语言模型(LLMs)近年来已成为网络安全领域的强大工具,在恶意软件检测、生成及实时监控方面展现出先进能力。众多研究已探索其在网络安全中的应用,证实其在识别新型恶意软件变体、分析恶意代码结构及增强自动化威胁分析等方面的有效性。已有多种基于Transformer的架构和LLM驱动模型被提出以优化恶意软件分析,借助语义和结构洞察更精准地识别恶意意图。本研究全面综述了基于LLM的恶意软件代码分析方法,总结最新进展、趋势及方法论。通过分析重要学术成果,描绘研究现状、识别关键挑战,并突出LLM驱动网络安全领域的新兴创新。此外,本文强调静态分析在恶意软件检测中的作用,介绍主流数据集和专用LLM模型,并探讨支持自动化恶意软件研究的核心数据集。本研究可为研究人员和网络安全专业人员提供宝贵参考,深入解析基于LLM的恶意软件检测与防御策略,同时勾勒强化网络安全韧性的未来研究方向。
例如,在研究[12]中,作者聚焦于评估LLMs在恶意代码检测中的零样本学习能力,对比了代码专用模型(Code-llama[13])与通用模型(Llama3[14]、GPT-3.5[15]及Claude[16])。该研究强调,突出经验和恶意指标的提示词比角色扮演类提示词更有效,且重复提问会降低LLM的置信度。
本文主要贡献如下:
- 综述了LLM在恶意软件代码分析中应用的最新研究,整合该领域当前的研究成果与趋势。
- 据本文所知,这是首项探索LLM在恶意软件代码分析多个新兴方面的研究,包括恶意软件代码检测、生成、监控、逆向工程及家族代码分析。
- 探究了LLMs如何解读源代码的语义和结构以有效识别恶意行为。
- 调查并呈现了有助于LLM进行恶意软件代码分析的各类未来研究方向及数据集。
相关工作
大型语言模型(LLMs)在恶意软件分析中有着诸多应用。已有多项研究将基于LLM的方法应用于网络安全、威胁检测、逆向工程和数字取证等多个领域。部分研究还专门综述了LLM在恶意软件分析中的应用[32, 33, 34]。
在研究[35]中,作者对LLM在网络安全领域的应用文献进行了全面综述,涵盖漏洞检测、恶意软件分析、威胁情报和安全策略自动化等方向。他们分析了来自主流安全和软件工程领域会议的127篇论文,深入概述了LLMs如何被用于解决各类网络安全挑战。该研究主要聚焦于2022年至2023年发表的成果,对安全领域中主流LLMs的关键特征、能力和局限性进行了分类梳理。
在研究[36]中,作者回顾了LLMs在恶意软件生成与检测中的应用,清晰地阐释并整理了相关研究发现。他们还提出了降低风险的策略,并定义了衡量这些策略效果的关键指标。这些指标涵盖五个方面:蜜罐、基于文本和代码的威胁、恶意软件趋势分析以及利用现有恶意软件训练LLMs。通过构建带数据的示例场景,他们验证了这些指标的有效性。
基于对现有文献的综述,本研究是首个探索LLMs直接分析和解读恶意软件代码的工作。这一特性使本文能够识别隐藏模式,并充分利用LLMs在动态分析和行为预测方面的能力。
LLMs在恶意软件代码分析中的应用
7. 用于恶意软件逆向工程(RE)的LLM
LLMs已成为通过分析PE文件和其他可执行文件检测恶意软件的强大工具。这些模型利用静态分析和逆向工程技术,从二进制结构、API调用和汇编指令中提取有意义的模式。通过从海量良性和恶意样本中学习,LLMs能够有效分类威胁、检测混淆代码,并增强网络安全防御能力。
7.1. 非LLM方法:恶意软件PE文件与逆向工程
对感染恶意软件的PE文件进行逆向工程,对于理解其行为、攻击向量和混淆技术至关重要。这一过程涉及解构二进制文件,以检查其结构、API调用和嵌入的有效载荷[76]。安全研究人员通常使用以下三类工具分析恶意软件如何与系统资源交互并执行恶意操作[77]:1)反汇编器;2)反编译器;3)调试工具,例如IDA Pro[21]或Ghidra[22]。此外,这些工具还可通过预测恶意软件作者使用的转换方法,帮助对代码进行反混淆,从而更易恢复隐藏在PE文件中的原始恶意意图。
7.2. 结合LLM的方法:恶意软件PE文件与逆向工程
LLMs通过辅助对反汇编代码进行自动注释、为未知代码段推测潜在功能以及识别恶意二进制文件中的常见模式,增强了逆向工程的能力[78, 79]。
从逆向工程师的角度来看,下一步合乎逻辑的操作是将汇编语言转换为高级语言,这会使程序更易于阅读、理解和修改。遗憾的是,任何工具都难以完成这一任务——因为将高级源代码编译为机器代码会导致大量信息丢失。例如,仅通过检查机器代码无法确定其原始高级语言。尽管了解编译器的特定特征可能有助于逆向工程师识别其生成的机器代码,但这种方法并不可靠。
7.2.1. 基于LLM的底层代码生成
LLMs在底层代码生成中的应用(尤其是将二进制可执行文件(如PE文件)转换为汇编代码),是逆向工程、恶意软件分析和安全研究领域的一项重大进步[80]。传统的反汇编和反编译技术依赖静态分析工具,而这些工具通常需要大量人工操作才能解读混淆或加壳的二进制文件。然而,LLMs可以通过提供对机器指令的语义理解,增强这些过程的效率,从而更高效地从原始二进制数据中重构汇编代码[79]。借助模式识别和深度学习能力,LLMs能够提高反汇编输出的准确性,甚至辅助从底层指令中重构高级控制流。这对恶意软件分析具有深远意义,因为它可以加速识别编译后的二进制文件中嵌入的恶意逻辑、编码有效载荷和规避技术。
7.2.2. 基于LLM的加壳恶意软件二进制分析
在PE文件场景中,加壳恶意软件二进制文件指的是经过刻意压缩或加密处理以隐藏其真实内容的可执行文件。加壳的目的是让杀毒软件或人工逆向工程师更难识别恶意代码[81]。假设某网络安全团队正在调查一个疑似恶意软件样本的PE文件。传统反汇编器(如IDA Pro或Ghidra)能够对该文件进行部分解码,但大部分代码仍处于混淆或加壳状态,难以分析。该团队决定应用LLM协助将加壳二进制文件转换为汇编代码,以揭示恶意软件的行为。
分析过程始于将加壳二进制文件加载到调查系统中。由于加壳过程涉及对文件进行压缩或加密以阻碍分析,人工脱壳不仅耗时,还需要专业知识来识别加壳方法。为简化这一过程,研究人员将LLM与现有分析工具集成。该模型在包含加壳可执行文件和加密技术的数据上进行了微调,能够识别与常见恶意软件加壳方法相关的模式,显著加快脱壳过程。
集成后,LLM利用其深度学习能力对加壳二进制文件进行解码,将原始二进制文件转换为汇编代码——这比原始机器级指令更具可读性和可解释性[62]。这种转换是理解程序行为的关键,因为它能更清晰地展示恶意软件的操作。此外,LLM还通过语义分析检测加密、反调试和代码篡改等混淆技术——这些都是恶意软件常用的规避检测的手段。LLM生成的解码汇编代码为恶意软件的逻辑提供了详细且更易获取的表示。
7.3. 反编译器与高级语言生成
反编译器旨在将二进制代码转换为高级源代码,通常针对特定语言和编译器进行设计。然而,它们生成的代码通常无法直接编译运行。生成的伪代码通常比人工编写的代码更难解读,但总体上比原始汇编代码更易理解。这些工具的目标是将二进制代码转换为适配特定语言和编译器的高级源代码[82]。
7.4. 恶意代码的混淆与反混淆(LLM与PE文件)
黑客通常会对其脚本进行混淆处理,以规避安全工具和分析师的检测——这在恶意软件、间谍软件和其他类型的恶意代码中极为常见。对PE文件进行反编译时,本文可能会遇到混淆代码,因为黑客会利用这些技术隐藏其意图[83]。其目的是增加代码的分析和逆向工程难度,从而阻碍对恶意有效载荷的理解和中和。LLMs可助力自动化混淆代码分析[62],帮助安全专业人员快速识别混淆脚本中的模式和功能(即使这些脚本经过深度伪装)。此外,LLMs还能生成关于如何进行反混淆的见解和建议,使恶意行为的检测和缓解更易实现[84]。它们可以加快代码分析过程,甚至自动化一些对分析师而言耗时的任务,提升网络安全工作的效率。
上图展示了两个实现相同任务(加载恶意DLL并执行其中函数)但采用不同方法的代码示例。在代码B中,变量名清晰易懂,例如用于加载函数的`loadLibraryFunc`和表示DLL位置的`libraryPath`,这使得代码易于阅读和分析。相比之下,代码A使用了`_0x1`、`_0x2`和`_0x3`等混淆名称。这种技术旨在降低代码的可读性,帮助其规避检测。代码A中的混淆增加了额外的复杂性,使安全分析师或自动化工具难以快速分析代码。然而,其核心功能保持不变——两个版本均使用`LoadLibraryA`和`GetProcAddress`函数。关键区别在于,代码A为了隐蔽性牺牲了可读性,这是恶意代码中常见的规避检测策略。通过利用LLMs,分析师能够更高效地处理这些混淆脚本,缩短识别和中和威胁所需的时间。
7.5. 嵌入模型对源代码函数与二进制文件相似度的衡量效果
LLMs的发展为构建类似人类反汇编过程的全自动高效系统提供了独特机遇。下图展示了从二进制函数查询中检索到的最相似的源代码函数(Top-1),该样本被视为高度相似的正例。
在研究[85]中,作者专注于开发BinaryAI——一种用于智能二进制源代码匹配的二进制到源代码软件成分分析(SCA)技术。其工作流程包括特征提取、基于嵌入的检索、基于位置的匹配和第三方库检测。评估结果表明,该嵌入模型在函数检索方面的性能优于现有方法。
7.6. 逆向工程与预处理的关键阶段
如下图所示,恶意软件代码与逆向工程可分为三个关键阶段:1)数据收集与再处理,收集原始可执行文件并将其转换为有意义的特征;2)预处理与逆向工程;3)令牌化与嵌入。以下将详细讨论这些阶段:
7.6.1. 数据收集与预处理
对于上图中的第一步,本文需要准备和收集恶意软件样本,重点关注PE文件。PE文件是Windows操作系统中可执行文件、DLL文件和其他系统文件的标准二进制格式。这些文件包含机器代码和元数据,使其成为恶意软件攻击的主要目标。PE文件在Windows环境中的广泛使用,进一步提升了其对试图利用漏洞的恶意行为者的吸引力[86]。
特别是,PE文件的结构通常支持代码注入、混淆和加壳等复杂技术,这些技术能够规避传统检测方法。如图11所示,PE文件有多种类型,每种类型都有不同用途,从可执行文件(.exe)到系统驱动文件(.sys)和动态链接库(.dll)。这种高易受攻击性凸显了需要强大的分析技术来检测PE文件中的恶意代码。
为确保数据集包含良性和恶意样本的多样性,PE文件从多个来源收集。恶意软件库(如VirusTotal[87]、MalwareBazaar[88]、ANY.RUN[89]和Hybrid Analysis)提供来自公共和私人数据库的标记样本。真实世界的样本来自受感染系统或用于吸引恶意软件的蜜罐[90],包括网络爬虫捕获的可疑电子邮件附件和偷渡式下载文件。威胁情报源[91, 92]提供安全研究人员和组织在应对近期恶意软件攻击时共享的可执行文件样本。此外,合法软件二进制文件来自官方平台,作为对比基准。
7.6.2. 恶意软件逆向工程与特征提取
对于图12中的第二步,需要利用反编译/反汇编工具生成底层或高级代码。反汇编是将机器可读字节转换为人类可读汇编指令的过程,对于二进制重写和漏洞检测等二进制逆向工程任务至关重要[25]。一个主要挑战在于准确识别指令边界——代码和数据的混合存储或变长指令可能导致难以确定指令的起始位置,这通常会导致指令边界和后续指令的识别错误。IDA Pro和Ghidra等工具能够通过启发式方法将二进制代码转换为类C伪代码,但它们通常依赖启发式算法,可能难以处理复杂或混淆的二进制文件。
操作码分析和API调用分析是用于在不同层面理解软件运作方式的方法。操作码分析是底层分析,聚焦于CPU执行的实际机器代码和汇编指令,揭示内存操作和处理器运算等细节[93, 94],对逆向工程和恶意软件分析至关重要。相比之下,API调用分析是高层分析,追踪程序如何通过系统调用(如文件操作或网络通信)与操作系统和库进行交互[95]。操作码分析检查程序在处理器层面的运行方式,而API调用分析揭示程序如何与其环境交互,两者结合可全面了解程序行为。
7.6.3. 嵌入与令牌化
在图12的第三步中,必须对样本进行令牌化和嵌入处理,以便输入到Transformer或大型语言模型(LLMs)中。根据以往研究[96],用于嵌入的样本类型多样,包括操作码序列[97, 98]、API调用[99, 100]、字节级表示[101, 102]和指令级细节[103, 104]。每种类型都从不同角度呈现数据,有效的嵌入处理有助于模型高效理解和处理各类任务的信息。
7.7. LLMs在恶意软件PE文件分析中的重要性
通过对PE文件的静态分析,LLMs为恶意代码检测中的这些挑战提供了突破性解决方案。与传统模型不同,LLMs具备上下文理解能力,能够在无需大量特征工程的情况下分析和解读原始二进制文件和代码结构。其超越预定义特征集的泛化能力,使其对零日威胁和复杂混淆技术具有高效检测效果。此外,LLMs还增强了可解释性和适应性,解决了传统机器学习模型常面临的透明度问题[105]。下表对恶意软件检测中多种非LLM方法进行了对比分析,重点关注PE文件的静态分析。所列研究展示了多种传统机器学习和深度学习方法,每种方法都有其独特优势和局限性。尽管这些方法表现出较高的准确性、可扩展性和效率,但它们也面临制约其应对复杂多变恶意软件威胁有效性的关键挑战。从表中可得出关键结论:迁移学习、集成学习和基于特征的分类器等传统方法具有强大的检测能力,但也存在显著缺陷,包括特征表示局限性和计算开销等。
9. 大型语言模型生成的恶意代码
近年来,LLM已被用于为用户生成代码。这一功能简化了代码生成流程,节省了时间,但也增加了社区面临的网络威胁风险。LLM在代码生成中的广泛应用,使其生成代码的可靠性和可信度受到质疑。攻击者可利用LLM自动生成恶意代码,危及众多软件服务提供商(SSP)的安全。LLM就像一把双刃剑:在防御者手中可提供保护,而被攻击者利用则会造成危害。这一现状促使研究人员深入调查LLM生成恶意代码的机制,并探索有效检测相关威胁的方法。值得注意的是,目前关于利用LLM生成恶意软件的学术研究仍较为稀缺,仅有少数研究关注这一问题。探索现有技术如何应对LLM在限制恶意软件生成方面的挑战具有重要意义。已有研究人员观察到,LLM不会仅根据直接要求生成恶意代码的提示词来产出恶意内容。LLM在限制恶意内容生成方面存在以下局限性:
9.1 利用LLM生成恶意软件的障碍
尽管LLM具备代码生成能力,但利用它们合成功能完整的恶意软件仍面临诸多障碍和挑战。这些障碍源于伦理防护机制、人工智能自身的局限性以及技术约束,具体包括:
- LLM内置了防止生成恶意代码的安全机制。若检测到提示词具有危害性,模型会拒绝响应或生成通用化、不完整的答案。
- 如9.2.3节所述,越狱提示词偶尔能绕过防护机制,但模型会持续更新以防范此类攻击。OpenAI等开发者会积极跟踪并完善限制措施,拦截要求生成恶意软件、黑客工具或未授权脚本的提示词。
- LLM基于数据中学习到的模式生成代码,但缺乏对复杂漏洞利用、权限提升或高级规避技术的深入理解。这种上下文感知能力的缺失,限制了其自主创建复杂恶意软件的能力。
- LLM能解释简单程序的执行流程,但随着代码复杂度的提升(尤其是处理非平凡逻辑和算术运算、非基本类型及API调用时),其性能会下降。
- 开发和部署恶意软件违反了多项网络犯罪相关法律,利用人工智能从事此类活动也引发了严重的伦理问题。人工智能生成内容被用于恶意目的的可能性,已成为专家和立法者的讨论焦点,凸显了负责任的人工智能开发和监管的必要性。
10.2 专用攻击性AI模型及应用(Specialized Offensive AI Models and Applications)
与通用大语言模型不同,这类模型经专门开发或微调,用于恶意目的。它们不受任何伦理限制,可用于钓鱼自动化、恶意软件混淆、漏洞利用工具开发和社会工程学攻击等场景。这些模型常见于暗网市场和地下黑客论坛,为网络犯罪分子提供了先进的人工智能驱动工具。下文将详细探讨大语言模型的各类恶意应用:
10.2.1 WormGPT
WormGPT是网络犯罪分子开发的一款恶意大语言模型,旨在为欺诈活动提供支持。与用于合法有益用途的正统大语言模型不同,WormGPT专门用于协助生成复杂的钓鱼邮件、编写恶意代码以及自动化各类网络攻击。其核心用途是借助先进的语言生成能力,帮助网络犯罪分子实施更具欺骗性和效率的欺诈方案。
10.2.2 FraudGPT
FraudGPT是一款先进的人工智能驱动工具,专为协助网络犯罪分子大规模实施欺诈活动而设计。该模型未设置任何安全防护措施,是发起网络攻击的强大工具,可用于凭证窃取、钓鱼攻击、恶意软件开发和诈骗自动化等场景。它能让恶意行为者生成极具说服力的钓鱼邮件、社会工程学脚本和漏洞利用工具包,从而规避传统网络安全防护机制。
10.2.3 Evil-GPT
Evil-GPT是一款出现在暗网论坛的恶意人工智能聊天机器人,专为网络犯罪活动而设计。它以WormGPT等工具的替代方案为卖点,基于开源大语言模型构建,并经过微调优化,可用于生成恶意代码、编写复杂的钓鱼邮件和开发黑客工具。这款模型在地下市场的流通降低了网络犯罪的技术门槛,使技术水平有限的人员也能实施复杂的网络攻击。
10.2.4 DarkGPT
DarkGPT代表了一类新型大语言模型,其设计初衷就是摆脱传统伦理约束和内容限制。本质上,它相当于ChatGPT的“无过滤”版本,能够生成非法或敏感的类人文本内容。它已被认定为面向网络犯罪分子的多款恶意人工智能聊天机器人之一,可通过“越狱”技术绕过安全检查,生成主流模型通常会拒绝输出的内容。作为一款先进的人工智能模型,DarkGPT能够生成高度恶意的代码,尤其擅长开发不仅能成功编译、还能规避杀毒软件检测的复杂恶意软件。
10.2.5 Wolf GPT
Wolf GPT是一款在暗网论坛出现的恶意人工智能聊天机器人,旨在协助网络犯罪分子开展非法活动。它基于开源大语言模型构建,支持用户生成恶意代码、编写复杂的钓鱼邮件和开发黑客工具。其可获取性降低了网络犯罪的准入门槛,让技术水平有限的人员也能发起复杂的网络攻击。
10.2.6 XXX GPT
XXX GPT是另一款在黑客论坛被发现的恶意人工智能聊天机器人,为网络犯罪分子提供了一个自动化并强化其恶意行为的平台。与Wolf GPT类似,XXX GPT借助先进的人工智能能力,助力恶意软件制作、钓鱼方案设计和其他各类网络威胁的实施。
10.2.7 BlackMamba
BlackMamba是HYAS Labs开发的一款概念验证型恶意软件,它利用人工智能在运行时动态生成多态键盘记录代码,能够有效规避传统的终端检测与响应(EDR)系统。该恶意软件在执行时,会调用OpenAI的应用程序接口(API)合成恶意代码,随后通过Python的“exec()”函数在良性程序的运行环境中执行该代码,且不在磁盘上留下任何痕迹。这一机制使得BlackMamba每次执行时都能重新合成其键盘记录功能,让恶意组件真正实现多态性。其捕获的按键信息(包括用户名、密码和信用卡号等敏感数据)会通过微软Teams等合法通信渠道外传,进一步增加了检测难度。
10.2.8 RatGPT
贝克里希等人(Beckerich et al.)探讨了大语言模型(尤其是ChatGPT)如何被滥用作恶意软件攻击的中介。该研究展示了一种概念验证攻击——攻击者将大语言模型作为自身与受害者之间的代理,绕过传统网络安全防护措施。
研究人员证明,基于ChatGPT生成的有效载荷可用于将看似无害的可执行文件武器化,使其能够与命令控制(C2)服务器建立通信。通过利用可通过网络访问的插件,该恶意软件能够动态生成IP地址、执行命令并窃取数据,且始终保持未被检测状态。一项关键发现是,ChatGPT及类似大语言模型可助力实施被动攻击,使恶意软件无需受害者直接交互即可运行。该攻击模型依赖大语言模型生成的代码实现有效载荷交付和远程执行,由于磁盘上未存储硬编码的恶意代码,因此规避了传统恶意软件检测方法。
10.2.9 Synthetic Cancer
齐默尔曼和佐利科费尔(Zimmerman and Zollikofer)提出了一种变形恶意软件原型,该原型利用大语言模型自动重写代码,以规避基于特征码的检测。大语言模型会在复制过程中修改恶意软件的源代码,每次执行时生成独特变体。这种持续演化使其能够绕过传统杀毒软件采用的基于特征码的检测机制。此外,该恶意软件还采用社会工程学技术,分析以往的电子邮件对话,生成与上下文相关且具有说服力的回复。这些回复包含受感染的附件,诱使收件人打开附件,从而在不经意间进一步传播恶意软件。
10.2.10 MetamorphASM
穆赫森尼等人(Mohseni et al.)探讨了大语言模型如何生成混淆汇编代码,给杀毒软件系统带来挑战。他们引入了MetamorphASM基准测试集,包含328,200个混淆代码样本,采用了死代码插入和寄存器替换等技术。该研究对GPT-3.5、GPT-4等大语言模型进行了评估,评估方式包括信息论指标和人工评审。
10.2.11 ChatPhishDetector
小出等人(Koide et al.)提出了ChatPhishDetector,这是一种利用大语言模型识别钓鱼网站的新型系统。该系统采用网络爬虫收集全面的网站数据,随后将这些数据转换为供大语言模型分析的提示词。这种方法无需额外的机器学习训练,通过识别仿冒品牌和社会工程学策略,就能检测多语言钓鱼网站。
10.2.12 AUTOATTACKER
该研究探索了GPT-3.5-Turbo和GPT-4在AUTOATTACKER框架中的性能,该框架可自动化实施入侵后网络攻击(如权限提升、凭证窃取和勒索软件执行)。AUTOATTACKER是一种创新的基于大语言模型的系统,能够自动化实施复杂的、类人化的网络攻击(通常称为“手动操作攻击”)。该系统包含四个关键组件——摘要器(Summarizer)、规划器(Planner)、导航器(Navigator)和经验管理器(Experience Manager),这些组件协同工作,生成针对各种模拟环境的精准攻击命令。大量测试表明,尽管GPT-3.5和Llama2变体等模型的效果有限,但GPT-4在仅需极少人工干预的情况下,就能出色地实施入侵后攻击。
10.2.13 WizardCoder
舍斯托夫等人(Shestov et al.)提出了WizardCoder,这是StarCoder的高级变体,在Java源代码漏洞检测中发挥着关键作用。该模型拥有130亿参数架构,经过专门微调,用于易受攻击代码函数与不易受攻击代码函数的二分类任务。与基于CodeBERT的模型相比,WizardCoder在识别安全漏洞方面表现出更高的准确性和稳健性。该论文重点介绍了多项关键改进,例如使WizardCoder适配分类任务、处理不平衡数据集,以及利用批量打包技术优化训练速度。经过微调的WizardCoder在平衡数据集和不平衡数据集上均优于ContraBERT,取得了更优的ROC AUC和F1分数。
讨论、局限性与建议(Discussions, Limitations and Suggestions)
大语言模型(LLMs)在代码分析领域面临诸多挑战和开放问题,值得进一步研究。本研究指出了多个尚未得到充分解决但具有巨大未来发展潜力的关键领域。本节将探讨若干核心挑战,明确现有研究的空白,并概述未来的潜在研究方向。
12.1. 未来研究方向(Future work)
大语言模型在恶意软件分析中的发展为进一步探索开辟了众多途径。本节基于当前研究发现和观察到的局限性,提出若干未来研究方向。这些方向旨在填补现有空白,提升大语言模型系统的性能和可靠性,并扩展其在各类网络安全场景中的适用性。以下要点突出了可能塑造下一代智能恶意软件分析工具的关键研究机会和实际发展方向:
用于恶意软件分析的知识图谱与大语言模型结合(Knowledge Graph Models with LLM for Malware)
知识图谱(KGs)用于跨领域知识表示,有助于识别实体间的关联。例如,通过分析恶意软件与攻击者之间的相似性,知识图谱可揭示潜在模式——若多个攻击者使用相同的恶意软件和技术,则他们可能隶属于同一组织。胡等人(Hu et al., 2024)提出了一种自动化构建威胁情报知识图谱的方法,该方法利用GPT的少样本学习能力生成提示词,实现数据的自动标注和增强,减少人工工作量并构建模型训练数据集。随后,研究人员对Llama2-7B模型进行微调,使其能够对威胁情报报告进行主题分类、提取实体及关系、识别战术、技术与流程(TTPs),最终构建出实用的知识图谱。
恶意软件逆向工程的混合方法(Hybrid approaches for Malware Reverse Engineering)
大语言模型或非大语言模型均可独立在恶意软件文件(如PE文件)的逆向工程中发挥作用。然而,考虑将大语言模型与IDA Pro或Ghidra等逆向工程工具相结合的混合方法,有助于更高效地完成文件反汇编或反编译任务。
用于反编译的思维链提示方法(Chain-of-Thought Prompt methods for decompiling)
要理解思维链(CoT)提示方法在反编译中的应用,首先需明确其在复杂任务中的作用。思维链提示通过逐步拆解问题,让模型在得出结论前对每个组件进行推理。将该方法应用于反编译时,能够为逆向工程代码或文本提供更结构化、更具逻辑性的思路,助力理解底层流程和组件。尽管潜力巨大,但这仍是一项开放挑战——反编译代码或复杂结构的复杂性,加之当前模型的局限性,使得利用思维链提示实现完全可靠且高效的反编译仍处于探索阶段。
例如,有研究([218])提出将思维链提示(自然语言处理领域的最新进展,可引导大语言模型完成中间推理步骤)应用于WebAssembly二进制文件反编译为高级C代码的任务。该方法借鉴类人思维过程,将复杂的反编译任务拆分为多个阶段,使模型能更有效地解析、抽象和转换二进制代码。
用于恶意软件代码与数据流分析的大语言模型(LLM for Malware Code and DFA)
数据流分析(DFAs)在恶意软件分析中有助于跟踪数据流并识别源代码中的可疑行为。将数据流分析与大语言模型等自然语言处理模型相结合,可发挥两者优势,提升恶意软件分析效果——数据流分析负责跟踪数据流和依赖关系,大语言模型则能识别文本中的模式、恶意意图或隐藏威胁。目前相关研究较少,例如有研究([219])构建了一个可定制的数据流分析框架,利用大语言模型分析Java程序。该框架通过tree-sitter库提取参数、返回值、调用者/被调用者、源/汇等关键信息,并在来自TaintBench Suite的真实安卓恶意软件上对GPT-3.5、GPT-4、Gemini 1.0和Claude-3这四款大语言模型的性能进行了评估。
知识增强预训练语言模型(Knowledge-Enhanced Pre-trained Language Models, KE-PLMs)
这类模型通过在预训练阶段整合结构化外部知识,成为自然语言处理领域的重大进步。本文可利用这些模型增强源代码的恶意软件检测能力。
知识增强预训练语言模型整合多种形式的外部知识(包括语言信息、事实数据和领域特定见解),丰富模型的理解能力和上下文感知能力。这种方法提升了模型对复杂语言结构的理解能力,使其在需要深度推理的任务中表现更出色。通过直接注入外部知识,知识增强预训练语言模型在各类自然语言处理应用中均能实现更准确、更贴合上下文的语言处理结果。本文认为,将知识图谱中的信息和领域特定数据等结构化外部知识融入源代码分析,能更有效地识别与恶意软件活动相关的关联和行为;知识增强预训练语言模型能够更好地捕捉这些复杂模式,从而提升恶意代码的检测和理解效果。
用于恶意软件代码分析的大概念模型(Large Concept Model, LCM for malware code analysis)
假设某网络安全公司收到一个疑似包含恶意软件的可疑文件,传统模型通常会分析单个代码片段,往往会忽略复杂的混淆技术。这些局限性源于令牌级别的处理方式。有研究([223])提出了大概念模型(LCMs),该模型聚焦于“概念”(完整的语义单元)而非令牌,能够提升长上下文理解能力、抽象推理能力和计算效率,最终在跨语言和多模态应用等任务中表现更优。
12.2. 局限性与挑战(Limitations and Challenges)
恶意软件代码反编译的令牌长度限制(Size of tokens for malware code decompiling)
恶意软件代码分析需要将复杂行为拆解为更小的可管理组件,以实现更精准、高效的检测。由于大语言模型在处理长提示词方面存在局限性,为单个单元函数(而非整个恶意软件程序)生成代码能提升准确性和清晰度。这种模块化方法有助于更好地检测恶意模式、简化调试流程,并提高对不断演变威胁的适应性。然而,在无缝整合这些单元函数以及准确模拟混淆和规避等高级恶意软件技术方面,仍存在挑战。解决这些问题需要在自动化恶意软件分析领域开展持续的研究和优化。例如,LLM4DecompileEnd模型的反编译功能受限于4096个令牌的最大长度。
对新恶意软件模式的不熟悉(Lack of familiarity with new malware patterns)
大语言模型严重依赖训练数据,这使其在面对新型或特定恶意软件模式时的效果受到限制。若模型未针对新兴恶意软件变体、新型混淆方法或独特软件模式进行微调或训练,则可能难以识别或处理这些陌生输入。这一局限性源于大语言模型依赖训练数据中的既有模式和示例——当遇到训练数据之外的内容或技术时,模型可能无法准确分析或检测相关特征,导致分析存在潜在空白或遗漏模式。
做个总结
本文全面概述了大语言模型(LLMs)在恶意软件代码分析领域的应用潜力。本文的研究重点主要集中在基于Transformer的模型及其在恶意代码检测、分类和理解方面的能力。这些先进的自然语言处理(NLP)模型在应对现代网络安全挑战方面展现出巨大潜力,尤其在识别和缓解不断演变的恶意软件威胁方面表现突出。
本文探讨了大语言模型如何有效分析恶意代码——它们凭借自身理解模式、检测异常和高精度分类威胁的能力发挥作用。借助深度学习和预训练模型的强大能力,大语言模型有望彻底改变恶意软件分析领域,使其更高效、更具可扩展性。此外,本文还探讨了多种公开可用的数据集——这些数据集在恶意软件研究中发挥着关键作用,尤其适用于大语言模型的预训练和微调等任务。这些数据集在静态恶意软件分析中至关重要,使研究人员和网络安全专业人员能够基于真实世界的恶意代码样本训练模型。
此外,本文还探讨了将大语言模型整合到恶意软件检测和缓解策略中,如何助力构建更具前瞻性的网络安全防护措施。通过自动化恶意软件分类和代码分析的相关环节,大语言模型提高了检测速度、减少了人力投入,并改善了整体安全态势。它们对新型和不断演变的恶意软件威胁的适应能力,使其成为网络安全防御机制中的宝贵工具。
尽管目前已取得诸多进展,但本文认为,大语言模型在进一步改进恶意软件分析方法、强化网络安全防护方面仍具有巨大潜力。随着这些模型的不断发展,它们有望在塑造威胁情报、恶意软件检测和网络安全自动化的未来格局中发挥关键作用。