大家读完觉得有帮助记得关注和点赞!!!
摘要——基于主机的入侵检测系统(HIDS)是保护组织免受高级持续性威胁(APT)等高级威胁的关键防御组件。通过使用数据溯源等方法分析细粒度日志,HIDS已在捕获复杂的攻击痕迹方面显示出成功。尽管研究界和工业界取得了进展,但由于误报率高、跨环境结果不一致以及对人不友好的检测结果等问题,HIDS在部署环境中仍然经常遭到运营商的强烈反对。鉴于大型语言模型(LLM)具有广泛的攻击技术知识以及通过语义分析检测异常的能力,并且有最近的研究作为支撑,因此它们在推进HIDS的发展方面具有巨大的潜力。然而,我们的初步分析表明,通过简单地提示LLM来构建HIDS不太可能成功。
在这项工作中,我们探索了为HIDS构建定制化LLM流水线的方向,并开发了一个名为SHIELD的系统。SHIELD通过整合多种技术,如用于攻击窗口检测的事件级掩码自编码器(MAE)、攻击证据识别和扩展、用于分析正常活动的确定性数据增强(DDA)以及引导LLM进行精确且可解释的攻击调查的多用途提示,解决了与LLM的token限制、背景噪声混淆等相关的挑战。在三个日志数据集(DARPA-E3、NodLinksimulated-data和ATLASv2)上的大量实验表明,与5个具有代表性的HIDS相比,SHIELD始终表现出卓越的性能。这些发现突出了LLM作为入侵检测强大工具的潜力,并为该领域未来的研究铺平了道路。
Ⅰ. 引言
高级持续性威胁(APT)等高级网络攻击已对公共和私营部门的组织造成巨大损害,导致巨额经济损失[1],[2]。为了应对此类威胁,基于主机的入侵检测系统(HIDS)已成为主要的防御手段,并在各行业得到广泛部署[3]。本质上,HIDS从操作系统和安全产品收集细粒度的日志,并识别攻击指标以帮助人工威胁猎手。近年来,基于溯源图的HIDS [4]取得了显著进展,它将日志表示为图,并执行基于学习的检测(例如,使用图神经网络)或基于启发式的检测(例如,执行回溯[5])。通过对进程和文件等实体之间微妙的交互进行建模,基于溯源的HIDS在检测APT活动中使用的复杂技术方面显示出前景。
然而,我们观察到现有的主机入侵检测系统(HIDS),特别是那些利用溯源图的系统,仍然存在一些主要的局限性,阻碍了它们在生产环境中的性能。1) HIDS通常会产生大量的警报,且误报率很高(即精度低),导致警报疲劳[6]并掩盖了真实的攻击信号。2) 鉴于生产环境和攻击技术及目标的多样性,单个HIDS很难始终如一地获得令人满意的检测结果。针对每个环境调整HIDS也会产生显著的努力和不确定性。3) HIDS的检测结果通常处于实体级别或事件级别,威胁猎人重建攻击场景的工作仍然非常重要。
我们如何改进当前的主机入侵检测系统(HIDS),以在真实世界的日志数据集中始终如一地实现高检测精度,并同时提供对人类友好的情报?
在这项工作中,我们致力于将大型语言模型(LLM)集成到HIDS中,以回答这个具有挑战性但至关重要的研究问题。我们致力于利用LLM来完成这项宏伟的任务,因为最近的研究表明,它们在现有的攻击工具和技术方面拥有广泛的知识[15],[16],[17],并且具有异常检测的能力[18],[19],[20],[21]。因此,我们可以潜在地在一个系统中协调误用检测和异常检测,而这两个方向的研究此前由研究界分别进行探索。此外,LLM的摘要能力[22]非常适合生成对人类友好的情报。然而,我们使用朴素LLM提示的初步尝试并不成功,原因在于诸如上下文窗口限制(即,日志无法放入一个提示中)、“lost-in-the-middle”效应[23](即,更长的上下文会导致更低的检索准确率)以及来自背景良性活动的混淆等问题。因此,我们开发了一个定制的LLM流水线以适应HIDS,称之为SHIELD1。
首先,我们观察到一些主机入侵检测系统(HIDS)能够在检测包含攻击事件的时间窗口时实现高精度[24],[25],这启发我们构建一个事件级别的掩码自编码器(MAE)[26]来检测攻击窗口。与先前在每个窗口上执行子图级别分类的工作不同,我们的事件级别MAE直接处理文本格式的日志,从而显著减少了表I SHIELD与一些最新HIDS之间的比较。HIDS的详细信息在附录B中描述。除精度之外的详细评估结果在第五节中报告。
我们使用与ORTHRUS相同的策略,基于官方的ground truth文档,标注DARPA-E3的ground truth。AirTag从检测到的事件中生成图作为故事,不提供文本描述。我们没有在DARPA-E3上评估NodLink,因为它的存储库不包含其日志的预处理代码。在论文中,三个子数据集的平均精确率为0.21。
图构建和保留中的开销 [27]。其次,我们采取“聚焦与扩展”的方法,将分析范围缩小到高度可疑的事件(我们称之为攻击证据),并通过图扩展构建证据邻域。第三,为了帮助LLM区分实体的良性和异常行为(例如,正常的浏览活动和路过式下载活动),我们在“无攻击”训练阶段对正常活动进行分析,以提供调查提示的上下文,灵感来自检索增强生成(RAG)[28]。在最后一步,我们指示LLM进行攻击调查并生成多层次的检测结果,包括事件/实体级别、策略级别 [29]和故事级别,以帮助威胁猎人在重构攻击场景。
我们在3个真实世界的日志数据集上评估SHIELD,包括DARPA-E3 [7]、ND-SL [10]和ATLASv2 [9],并与5个开源HIDS进行比较,包括Flash [12]、Magic [13]、Othrus [14]、NodLink [10]和AirTag [11]。在此,我们提供结果的重点。1) 我们能够在所有数据集上实现更高的精度(例如,在DARPA-E3上接近1)。2) 通过消融研究,我们发现SHIELD的每个组件都很有用,但它们的影响因数据集特征而异(例如,日志量以及攻击是否被伪装)。从4个经过测试的LLM中,我们发现DeepSeek-R1总体表现最佳,O3-mini与之相当。3) SHIELD对于模仿攻击也具有鲁棒性 [30]。在表I中,我们重点介绍了SHIELD与其他HIDS之间的差异。
Ⅱ、背景与相关工作
A. 基于主机的入侵检测系统
主机级审计工具,如Windows ETW [31]、Linux Audit [32] 和 FreeBSD Dtrace [33] 被广泛用于收集系统日志,这些日志捕获进程、文件和其他实体之间的交互。基于主机的入侵检测系统 (HIDS) 利用这些细粒度的日志来检测复杂的攻击,如高级持续性威胁 (APT) [34]。在 HIDS 的各种设计中,具有溯源意识的系统 [4] 在近十年中获得了显著的关注,包括在大型企业中的部署 [35]。本质上,这种系统使用收集的日志构建一个溯源图,以模拟系统实体(如进程、文件和 IP 地址)之间的交互。然后,通过基于启发式的方法或基于学习的方法在该图上进行攻击调查。
对于基于启发式的方法,一种简单的形式是回溯 [5],[36],它执行从感兴趣点(POI)事件开始的图遍历,以识别其他相关事件并推断入侵。然而,这种方法在存在长时间运行、高度连接的进程时,会遭受“依赖性爆炸”的影响 [37],[38]。许多系统添加启发式方法来缩小调查范围 [6],[39],[40],[41]。或者,已经测试了日志缩减 [37],[42],日志压缩 [43],[44] 和图抽象 [45],[46],以便在调查前减少溯源图。
编写规则和启发式方法以实现对攻击策略的全面覆盖是耗费人力的 [4]。因此,已经开发了基于学习的方法 [13]、[47]、[12]、[14]、[48] 来解决这个问题。本质上,这些系统从“无攻击”日志中训练一个模型,如Graph Neural Networks (GNN),来表示正常活动,并在测试时检测异常活动。
尽管取得了进展,但先前的HIDS存在一些明显的局限性,阻碍了它们更广泛的应用。
局限性1:精度-粒度权衡。平衡检测粒度和精度仍然是HIDS面临的重大挑战。一些HIDS选择对从全系统溯源图提取的整个子图进行分类[25],[49],[50],[24]。尽管它们可以在某些数据集上实现完美的精度,但每个子图可能包含数千个节点,人工分析师不愿意检查警报子图中的所有节点。一些HIDS专注于对节点进行分类[13],[47],[12],[14],[48],[10],但它们的精度会降低,特别是对于以类不平衡为特征的大规模数据集,例如,DARPA-E3 CADETS有超过80万个节点,但恶意节点少于50个。
局限性-2:数据集间的性能不一致。鉴于日志收集器的多样性、部署环境的差异以及攻击的复杂程度,现有的主机入侵检测系统难以在不同的日志数据集上实现一致的性能。正如Li等人 [10] 报告的那样,HOLMES [40] 就是一个例子,它是一种基于启发式的主机入侵检测系统,在DARPA-E3子数据集中实现了较高的节点级召回率(从0.74到0.98),但在工业数据集中的召回率较低(仅为0.23),这主要是因为HOLMES追踪来自外部不受信任IP的攻击,但某些受损/恶意进程并不直接与外部IP联系。
局限性3:警报与情报之间的差距。HIDS生成的警报与分析师需要的威胁情报之间存在差距。例如,在DARPA-E3 CADETS模拟的Ngnix后门攻击中,攻击者试图将恶意模块libdrakon注入到sshd进程[51]中,而节点级HIDS只会报告sshd。但是sshd也是一个广泛用于良性登录活动的进程。如果没有有意义的上下文,分析师在调查过程中会感到困惑。尽管一些工作[11]、[14]、[10]试图生成攻击故事(或摘要)来帮助分析师,但图形格式仍然没有为调查提供足够的上下文。
在这项工作中,我们旨在借助大型语言模型解决上述局限性,以期扩大主机入侵检测系统在生产环境中的部署。
B. LLMs在网络安全中的应用
最近的研究已经探索了大型语言模型(LLMs)在网络安全方面的潜力[52]。在渗透测试[53],[54],代码漏洞发现[55],[56]等方面,已经见证了显著的用例和早期的成功。在攻击检测方面,最近的一项工作RACONTEUR [57]利用LLM来解释MITRE ATT&CK框架下的恶意powershells [29]。我们的工作旨在检测来自真实世界日志的恶意powershells之外的攻击,这证明了一种新的LLM启发式设计的合理性。我们的设计受到了LLM以下见解的启发:1) 它们在网络攻击方面的知识;2) 它们在少样本/零样本异常检测方面的潜力;3) 它们的文本摘要能力。
LLM在网络攻击方面的知识。最近的研究[15],[16],[17]表明,LLM对于威胁情报提取和推理非常有用。例如,CTIKG表明LLM可以从冗长的文章中正确提取入侵指标(IoC),并为人工分析师生成知识图谱。根据我们与LLM的交互,它们的训练语料库通常包含现有攻击活动和攻击工具的IOC。因此,我们可以利用LLM对主机日志进行误用检测。
用于异常检测的LLM。先前的研究表明,NLP技术可用于日志的异常检测,例如使用序列模型的DeepLog [58],使用词嵌入的Log2vec [59]和Attack2Vec [60],以及使用基于Transformer的BERT模型的AirTag [11]。更新的研究表明,LLM是通用的模式匹配器,可以通过从大量的预训练语料库中学习分布属性来检测日志、文本或序列化系统事件中的异常值 [61]。即使只有少量样本(少样本)或没有样本(零样本),通过提示,LLM也可以在不进行训练/重新训练的情况下检测到异常事件 [18],[19],[20],[21]。最近的LLM模型,如OpenAI-o3-mini和DeepSeek-R1,配备了更好的推理能力,这可能通过推理攻击模式而不是匹配签名来发现攻击。
用于文本摘要的LLM。LLM在总结冗长文档方面表现出色 [22],并遵循用户指南(例如,总结论文的主要贡献)。攻击摘要对于理解攻击的步骤和影响至关重要,除了异常检测和误用检测之外,我们可以利用LLM来实现此功能。
III. SHIELD的动机
受大型语言模型(LLMs)能力的启发,我们提出了一项初步研究,探讨在不采用任何专门设计或优化的情况下,使用LLMs进行基于日志的攻击调查。通过这项探索,我们确定了四个关键问题(第III-A节)。我们开发了一种新颖的LLM辅助的HIDS框架,称为SHIELD,以解决这些问题和挑战(第III-B节)。我们在第III-C节中描述了这项工作的威胁模型。
A. 基于LLM的攻击调查
尽管先前关于大型语言模型的研究在异常检测和IoC匹配方面显示出令人鼓舞的结果,这些结果与攻击调查相关,但我们的初步研究揭示了在可靠地分析主机日志方面存在显著差距。下面我们重点介绍我们发现的问题(问题1至问题4)。
我们遇到的第一个问题(问题-1)是每个LLM产品对上下文窗口的令牌限制。例如,GPT-4仅允许8,192个输入令牌。尽管最近的LLM显著增加了令牌限制(例如,GPT-4o支持128,000个输入令牌),但它们仍然落后于实际环境中生成的海量主机日志:例如,使用OpenAI的tiktoken [62]估计,DARPA-E3 CADETS子数据集的令牌计数为32.76M,远远超过任何LLM的令牌限制。
即使假设一些日志数据集足够小,可以适应LLM的token限制,响应质量也可能随着输入token的增加而降低(问题-2)。具体来说,最近的一项基准测试NoLiMa [63] 评估了12个LLM的“大海捞针”(NIAH)测试(即,从冗长的无关上下文中检索相关信息)。结果表明,所有LLM在较长的上下文中都会急剧下降:例如,GPT-4o在将上下文从1K tokens增加到32K tokens时,准确率从98.1%下降到69.7%。一个值得注意的解释是“迷失在中间” [23] 效应,即当“针”(相关信息)嵌入在长上下文的中间时,模型会遇到困难。
当日志与已知的攻击指标匹配时,我们发现大型语言模型有很大几率定位到恶意活动。一个例子是在NodLink模拟数据(NL-SD)[10]中对Windows Server 2012进行的模拟攻击,其中红队在受害者机器上使用已知的攻击工具,并收集这些机器的日志。所有测试的大型语言模型都警报了WinBrute.exe的存在,这是一种用于凭据收集的工具。然而,当攻击者混淆攻击签名时,大型语言模型很难定位到攻击痕迹(问题-3)。一个例子是在DARPA E3 CADETS评估[51]中执行的使用Drakon内存后门的Nginx攻击。攻击者在上传工具时将drakon攻击工具重命名为/tmp/vUgefal,这逃过了大型语言模型的检测。我们还发现,在分析没有任何攻击信号的日志时,大型语言模型容易将正常但不太常见的行为标记为恶意行为。
最后,我们发现,如果没有仔细的提示设计,LLM 倾向于给出冗长且不稳定的响应,而不能准确、清晰地指出攻击指标(问题 4)。当日志收集器是粗粒度的或有错误时,这个问题会被放大。一个例子是 DARPA E3 CADETS 子数据集,由于 FreeBSD 主机,它似乎“具有更糟糕的日志捕获”[51]:例如,诸如 Nginx 等关键进程缺少进程名称,并且一些关键的攻击命令(如 elevate)未被捕获。
B. 挑战与我们的方法
为了解决上述问题(问题1至问题4),我们可以设计一个专门的LLM流程,方法是:1)在使用的LLM处理日志之前,对日志进行过滤/压缩(解决问题1和问题2);2)构建正常活动的配置文件,以减少误报(解决问题3);3)设计专门的提示模板,以控制LLM的响应(解决问题4)。然而,在实施这种LLM流程时,存在若干挑战。
挑战 1。日志缩减[37],[42]需要保证恶意活动不会被擦除,这是一个重要的问题。虽然日志压缩[43],[44]有机会将日志放入 LLM 上下文窗口,但最近的一项研究揭示了在 LLM 提示上应用通用压缩器的根本限制[64]。
挑战 2:尽管正常活动的用户画像可以从“无攻击”期间收集的日志中生成,或者由人工分析师进行清理,但鉴于日志的庞大数量,如何在 LLM 上下文窗口内全面覆盖各种良性活动的用户画像仍然具有挑战性。
挑战 3。 考虑到各种攻击技术(例如横向移动 [29] 和数据渗漏 [29])、日志格式、日志收集问题和最终目标,提示模板应避免过于具体,而通用提示会产生不令人满意的结果。探索提示技术的组合 [65] 是详尽的。
SHIELD的工作流程。我们设计SHIELD旨在通过一系列技术来应对上述挑战。在此,我们概述SHIELD中的各个组件,并在图1中展示其工作流程。各个组件的详细信息在第四节中描述。SHIELD首先对日志进行预处理,以保留系统实体(例如,进程和文件)的关键信息,这些信息对于检测是必要的(第四-A节)。然后,它将日志切片成窗口,并采用事件级别的掩码自动编码器(MAE)来精确定位攻击窗口,从而缩小LLM的分析范围(第四-B节)。为了进一步解决问题2,SHIELD遵循“聚焦和扩展”策略,提取攻击和邻域证据,以缩小调查范围(第四-C节)。为了支持异常检测,我们开发了一种名为确定性数据增强(DDA)的新技术,该技术改编自检索增强生成(RAG)[28],以丰富LLM对正常行为的理解(第四-D节)。最后,利用一种多用途提示机制来查询LLM并识别攻击痕迹,同时有选择地采用提示工程技术,如思维链[66]和自我一致性[67],以提高结果的准确性和可用性(第四-E节)。
值得注意的是,我们没有遵循一种流行的方向,即构建溯源图并应用图学习算法进行威胁检测(也在第II-A节中进行了调查)。正如[11]、[27]所论证的那样,溯源图的构建、保存和计算可能会产生很高的开销,这对于时间约束下的攻击调查来说并不理想。我们选择了一条较少探索的路径,即将日志视为文本语料库[11]、[27],并应用自然语言处理技术(例如,MAE)和大型语言模型,从而同时实现高准确性和高效率。也就是说,我们观察到日志中主体/客体之间的关系非常重要,而SHIELD通过对日志进行仔细的预处理来保留这些关系。
C. 威胁模型
SHIELD旨在通过分析收集的日志来检测组织网络中的入侵,并且所有攻击阶段(例如,在网络杀伤链[34]下制定的阶段)都在范围内。SHIELD旨在捕获具有已知签名的攻击(通过误用检测)和没有已知签名但偏离正常活动的攻击(通过异常检测)。与先前关于攻击调查的工作[11],[10],[14],[12],[13]一致,我们假设主机级审计工具收集的日志没有被篡改。我们承认高级攻击者可能能够违反此假设,但可以使用防篡改日志记录技术[68],[69]来防御此类尝试。我们假设SHIELD的组件受到保护,免受攻击者的破坏,包括LLM
图1. SHIELD的框架。给定一个测试日志,我们首先识别攻击窗口以减少上下文大小。然后,我们利用LLM的内部知识来生成攻击证据,并提取与攻击相关的事件(称为邻域证据)以进行细粒度的调查。最后,我们应用一种多用途提示策略来查询LLM,从而生成精确且可解释的攻击摘要,以供后续安全分析使用。
表二 本文使用的主要符号汇总。
SHIELD使用的(本地或远程)日志。也就是说,我们考虑通过日志注入来规避SHIELD的对抗性攻击[30],并在V-D节中评估其影响。
IV. 屏蔽的组成部分
在本节中,我们将详细阐述每个组件的设计。我们在表II中总结了主要的符号。
A. 日志预处理
我们首先解析由各种捕获机制生成的原始日志(例如,Windows ETW [31]、Linux Audit [32]和FreeBSD Dtrace [33])。然后,我们选择与命令执行和应用程序活动(包括主机和网络)相关的日志和字段,这些日志和字段嵌入了分析攻击活动的关键信息。这些字段分为三类:1) ID,包括与事件相关联的主体ID和对象ID;2) 事件属性,包括事件类型、主体发出的命令行和事件时间戳;3) 与主体或对象相关联的实体信息,包括主体的进程路径、IP地址、端口号和对象的文件路径。我们发现,ID和事件属性由我们用于评估的所有数据集提供,但实体信息可能不存在。在后一种情况下,我们仅使用ID和事件属性。我们将
event ei
定义为包含上述字段的过滤日志。例如,一个ei可以表示为:<[主体ID],[对象ID],‘‘LOAD_MODULE’’,‘‘C: \Program Files\Wireshark\tshark -i 2 -t ad -f ‘‘udp port 53’’’’, 2022-07-15 13:14:25>,它们分别对应于主体ID、对象ID、事件类型、命令行和时间戳。在表III中,我们总结了事件字段。
表 III 事件在预处理后包含的字段,分为 3 类。当记录远程实体时,端口会附加到 IP 地址。
B. 攻击窗口检测的事件级别MAE
为了缓解令牌限制问题(问题 1)和“中间迷失”效应(问题 2),我们采用了掩码自编码器 (MAE) [26],并设计了一个事件级别的 MAE,旨在定位可能包含攻击痕迹的事件。由于其非对称的编码器-解码器设计,事件级别的 MAE 继承了 MAE 通过恢复掩码输入来学习有意义的文本嵌入的能力 [26]。
事件级别MAE概述。我们首先在训练集中的良性事件上训练事件级别MAE,以从中提取句子嵌入。接下来,给定测试事件,我们通过使用无监督边界学习算法(例如单类SVM(OCSVM)[70])测量它们与良性训练事件的偏差,从而为每个事件生成异常分数。之后,我们应用滑动窗口将所有事件分割成固定持续时间的时间窗口,并使用分数聚合方法从每个窗口内的事件中导出窗口级别分数。最后,窗口级别分数用于根据从训练集学习的阈值来分类窗口是否对应于攻击窗口。图2说明了工作流程。
图2. 用于攻击窗口检测的事件级掩码自编码器(MAE)框架。
事件级别MAE的构建与Token化。我们的事件级别MAE框架由以下部分组成:
(1)事件预处理器,
(2)类BERT编码器θenc(·),
(3)基于单层Transformer的解码器θdec(·)。对于训练和测试集中的每个事件ei,预处理器通过连接其字段来构建一个句子,然后使用BERT tokenizer [72]将其Token化为Token序列(表示为xi))。我们排除了主体和客体ID以及时间戳,因为它们不传达与事件行为相关的语义。对于诸如C: \Program Files\Wireshark\tshark -i 2 -t ad -f ‘‘udp port 53’’这样的命令,在组合句子中,BERT tokenizer会将其拆分为单词([C], [:], [\\] [Program], [Files], . . . ),然后将它们转换为Token序列。
训练事件级别的MAE。训练阶段包括编码和解码两个阶段。在编码阶段,一小部分输入token(15-30%)被随机屏蔽为特殊token [mask],遵循先前工作[73],[26]中使用的设置。因此,输入token序列xi被转换为xe i,其中少量事件信息被移除。然后使用类BERT的编码器θenc来处理被屏蔽的token序列,并生成其对应的句子嵌入hi = θenc(xe i ),该嵌入由[CLS] token(即,用作摘要表示的特殊token)的最终隐藏状态表示。与BERT类似,我们使用掩码语言建模(MLM)[71]来指导编码过程,并使用相应的损失
Lenc(xi|xe i , θenc)来更新编码器。在解码阶段,相同的token序列xi再次被屏蔽,但屏蔽比例更高(例如,50-70%)。新屏蔽的token序列表示为xd i。事件级别MAE的主要目标是从句子嵌入
hi和被大幅屏蔽的token序列xd i中重建原始token序列xi。通过采用轻量级解码器θdec,我们确保码器θenc为事件ei生成有意义的句子嵌入hi,即使在上下文有限的情况下,也可以有效地利用该嵌入来恢复整个token序列。我们将整个训练过程表述如下:
其中 DT r 是从良性训练日志中导出的训练集。Lenc 表示 MLM 误差,而 Ldec 表示从句子嵌入 hi 和经过积极掩码处理的标记序列 xd i 恢复 xi 时产生的重构误差。这两个损失项共同作用以优化提取的句子嵌入。在测试阶段检测攻击窗口。在测试阶段,给定一个测试事件的令牌序列xe i,我们提取M个具有不同掩码的句子嵌入,并将它们聚合以生成最终的句子嵌入h˜i。这种对同一事件的多个掩码版本的聚合可以增强区分良性和恶意事件的能力。对于异常检测,我们使用来自训练集(ei ∈ DT r)的良性事件训练一个OCSVM模型。然后,对于测试集(ei ∈ DT e)中的每个事件,我们应用训练好的OCSVM来预测其异常分数。之后,我们根据每个时间窗口
W内事件的异常分数对事件进行排序,并计算前Top-k%事件的平均异常分数,以表示窗口级别的异常分数。最后,我们基于仅从良性训练日志中导出的阈值Tano对每个时间窗口进行分类,并最多保留C个具有最高异常分数的窗口作为最终的攻击窗口。Tano被设置为来自训练日志的良性时间窗口的平均异常分数。
我们承认,基于窗口的过滤已被先前基于溯源图的工作所利用,例如 Unicorn [24] 和 ProGrapher [25],但正如第 III-B 节所解释的,它们在图构建中会产生显著的开销。我们选择绕过图构建步骤,直接处理事件块。
C. 攻击证据提取与邻域重构
尽管日志预处理和事件级别的MAE可以有效地减少LLM需要处理的输入大小,但由此产生的事件,我们称之为
truncated events ETRU,可能仍然对于LLM的上下文窗口来说过大。例如,来自DARPA-E3 THEIA子数据集的ETRU包含116.9万个事件,这超过了LLM的token限制。此外,上下文中存在大量良性事件可能会分散LLM的注意力,并阻碍其精确识别攻击事件的能力。我们通过一种“聚焦与扩展”的方法来解决这个问题:我们1)将ETRU分组为事件摘要;2)利用LLM提取攻击证据;以及3)基于邻域扩展包含其他相关事件。值得注意的是,如果ETRU的量足够小,则可以绕过第一步。下面我们将详细阐述这三个步骤。
事件摘要。主机日志通常具有很大的冗余性[43],[44],这可以被利用来浓缩事件,以辅助下一步中使用的LLM。为此,我们按照表III中列出的字段对事件进行分组,除了时间戳字段。在每个事件组中,计算组统计信息,包括最早的时间戳、最晚的时间戳和事件频率,并将其附加到事件摘要中。这三个统计字段对于LLM推断事件的顺序和常态可能很有用。表IV展示了一个原始事件(上)如何被总结(下)的例子。
攻击证据识别。我们发现,如果在调查前向
M提供提示,更有可能得出正确的结果。由于LLM具有网络攻击及其模式的内部知识库,我们首先要求LLM从截断的事件
ETRU中识别出高度可疑的信息,我们称之为攻击证据E。我们将E限制为仅与命令行(例如,payload.exe)相关,因为我们发现它们可以产生更值得信赖的攻击证据。例如,’payload.exe’是一个高度可疑的攻击证据E。导出的证据E作为LLM捕获其他具有关联性的细微攻击行为的锚点。我们将发布提示。
从攻击证据扩展邻域。通常,攻击证据不是孤立的,攻击者会利用多个实体来实施攻击(例如,恶意软件从远程IP地址投放)。受溯源图回溯 [74] 的启发,我们开发了一种在LLM的token限制下,从证据 E迭代构建邻域图的方法。与 E直接和间接相关的Subject、Object和Event都包含在内。值得注意的是,我们的方法不是一开始就在整个日志集合上生成溯源图,因此与标准回溯相比,它产生的开销更低。
具体而言,我们从ETRU构建一个溯源图,以捕获实体之间的交互,例如进程、文件和IP地址,如表III所示。每条边代表一组连接两个实体的事件,其权重对应于相关事件的数量。我们选择所有与
中的命令行直接关联的实体(即节点),形成初始节点集。我们还提取所有连接节点集中实体的事件(即边),作为初始边集。然后,我们迭代地执行邻域扩展,通过广度优先搜索来包含节点和边。一旦边的总数超过阈值
TNBR
,我们就停止该过程,该阈值受LLM的token限制。我们将在此阶段之后获得的所有事件称为
evidence neighborhood ENBR
。在图3中,我们展示了邻域扩展过程。
图3. 从攻击证据进行邻域扩展的示意图,包含2次迭代。
D. 基于正常行为分析的确定性数据增强
基于先前步骤生成的证据邻域ENBR,我们构建提示并将其发送给LLM。为了模拟正常活动并减少误报,我们开发了一种名为确定性数据增强(Deterministic Data Augmentation,DDA)的技术,该技术嵌入了来自训练期
(DT r)
的良性事件的简洁表示。我们构建了一个键值存储,而不是训练另一个模型,这样可以大大降低开销。
DDA的设计灵感来源于检索增强生成(RAG)[28],该方法已成功地通过组织内部知识库来提升大型语言模型的性能,但两者之间存在一个主要区别。RAG系统通常使用向量数据库来存储知识,并使用基于相似性的搜索来构建相关上下文,而DDA则依赖于精确匹配(因此称为“确定性的”)来为输入事件提供精确的上下文。
配置文件构建与选择。SHIELD 首先使用离线阶段扫描 DT r中的事件,并构建键值存储 R,如下所示:R = {k1 : v1, k2 : v2, . . . }。键 ki表示要与证据邻域匹配的唯一命令行。由于命令行通常共享相同的可执行文件名(或 exec),我们将每个命令行分成 exec(例如,ngnix)和剩余组件(例如,路径、参数)。为了提高存储效率,配置文件键以分层结构组织,其中 exec 作为第一级键,其余信息存储在第二级,即
ki =<exec, others>。对于每个 ki,我们计算其在 DT r中的频率,记为 vi,以帮助 LLM 评估测试集 DT e中事件的异常程度。当提供 ENBR时,SHIELD 搜索 R并选择与事件匹配的键值对,并使用选择结果来扩充提示。
代表性抽样。我们观察到,一个唯一的执行
c可以与多个对象交互,并使选定的键值对溢出。为了解决这个问题,我们遵循代表性抽样的思想[75],这是统计学中的一个概念,用于过滤
R并选择一个信息量丰富的键值对子集。其核心思想是保留高频键值对,同时保持多样性。具体来说,给定一个c和一个抽样率r,我们从所有涉及命令c的键值对中抽取r×|R[c, ·]|个键值对,其中R[c, ·]表示与c匹配的键值对集合。然后,我们按照频率值对这些键值对进行排序,并将它们分成三组:低、中、高。最后,我们根据每个组的大小和抽样率r,从每个组中随机抽取键值对,从而得出用于提示生成的最终键值存储Rs。我们在下面的框中展示了Rs的一个片段。
表四 原始事件表示和总结事件表示的例子
E. 用于攻击调查的多用途提示
在最后阶段,我们要求LLM从证据邻域
ENBR中检测攻击痕迹。我们观察到,人工分析师希望将调查结果用于不同的目的,因此我们考虑了3种主要类型,并设计了提示模板来适应它们,如下所述。据我们所知,之前的研究工作没有尝试同时产生这3种检测结果。要求LLM在同一组事件上生成多个答案也会导致自我一致性[67],从而提高响应的事实性。
实体/事件分类。我们要求大型语言模型标注攻击者利用的进程、文件、域名和IP地址。这也被称为溯源图下的节点分类。包含已识别攻击实体的事件被认为是攻击事件。
战术预测。为了正式描述整个攻击过程,我们参考了 MITRE ATT&CK 战术 [29](例如,初始访问、权限提升和数据渗漏),要求 LLM 预测攻击步骤并用适当的战术标记每个步骤。
攻击故事生成。与实体/事件分类和战术预测并行,我们要求大型语言模型(LLM)生成一个以纯文本形式概述攻击过程的叙述。尽管有一些工作声称可以重构攻击故事[76],[11],但它们仅提供了一个攻击子图,让分析师从中重构故事,这本质上并非易事。相比之下,我们的叙述更便于人类理解。
攻击调查。对于每个任务,我们使用 <证据邻域 ENBR,良性配置文件 R,攻击证据 E > 提示 LLM M 进行攻击调查。为了规范 LLM 的响应,我们精心设计了提示模板,其中包含多个指导部分:调查范围(针对要调查的实体类型)、环境(针对受监控机器的运行环境)、目标(指导调查步骤)和输出格式(指定分析师所需的 3 个结果以及所需的格式)。受到思维链 (CoT) 机制 [66] 的启发,在“目标”部分,我们要求 M将整个攻击活动分解为多个步骤,以提高响应的正确性。具体来说,我们的提示首先要求提供详细的叙述,概述攻击过程,从而提供对攻击过程的全面概述,提供对攻击者动机的宝贵见解,并提高检测到的攻击活动的覆盖范围。接下来,我们的提示要求 LLM 描述执行攻击所采取的步骤。为了确保形式性和一致性,我们将步骤名称与 MITRE ATT&CK 框架 [29] 中定义的策略(例如,初始访问、权限提升)对齐。最后,我们的提示要求 LLM 根据获得的攻击叙述和攻击步骤,以入侵指标 (IoC) 的形式推导出恶意实体。我们将发布提示。定位攻击实体和事件。我们让 LLM 列出入侵指标 (IoC),并且需要一个额外的步骤来定位它们在测试集中是否存在,以进行实体级别和事件级别的分类。首先,我们通过在主题和对象字段上使用 IOC 进行精确字符串匹配,来定位攻击窗口中的实体。具有相同名称但不同 ID 的实体将一起发出警报。基于已识别的攻击实体,相关的事件被识别为攻击事件。
V. 评估
根据第V-A节中描述的实验设置,我们进行了实验,以回答四个研究问题:(RQ1)在各种基准测试中,与现有的HIDS相比,SHIELD的性能如何?(参见第V-B节)(RQ2)SHIELD的设计如何提高检测性能?(参见第V-C节)(RQ3)SHIELD是否对系统参数的变化敏感,例如LLM的选择和时间窗口的长度?(参见第V-C节)(RQ4)在更具挑战性的对抗环境中,SHIELD的鲁棒性如何?(参见第V-D节)。