大家读完觉得有帮助记得关注和点赞!!!
摘要
基于溯源的入侵检测系统已被广泛用于检测高级持续性威胁。尽管许多研究在其原始论文的评估中取得了高性能,但它们在工业场景中的表现仍不明确。为填补这一空白,我们对工业场景中的PIDSes进行了首次系统性评估和分析。我们首先分析了DARPA数据集与工业场景中收集的数据之间的差异,识别出工业界的三个主要新特征:异构多源输入、更强大的攻击者以及日益增加的良性活动复杂性。然后,我们构建了多个数据集来评估五种最先进的PIDSes。评估结果揭示了现有PIDSes面临的挑战,包括在不同主机和平台上的可移植性差、对真实世界攻击的检测性能低,以及随着良性活动不断变化而导致的高假正率。基于评估结果和我们的工业实践,我们提供了一些见解来解决或解释上述问题。例如,我们提出了一种缓解高假正率的方法,将人工工作量减少了2/3。最后,我们提出了若干研究建议以改进PIDSes。
引言
近年来,网络攻击迅速增加。其中一种攻击类型是高级持续性威胁,它使用复杂的过程发起攻击。APT已引起严重关注。为了防御APT,人们提出了基于溯源的入侵检测系统。PIDSes收集系统日志,构建溯源图,学习良性活动的特征,并识别其特征偏离良性的活动。PIDSes可以有效利用日志中的上下文信息,使其在攻击检测中很受欢迎。
PIDSes的主要目标是在包含大量良性实体的溯源图中检测恶意实体。为实现这一目标,许多研究专注于设计强大的PIDS。评估PIDSes最常用的数据集来自DARPA透明计算项目,包括DARPA-E3、DARPA-E5和DARPA-OpTC数据集。尽管这些PIDSes在其原始论文的评估中取得了高性能,但它们在实践中的表现仍不清楚。
为填补这一空白,我们从一家领先科技公司的两个已部署服务的用户那里收集数据。这两个服务包括一个安全管理系统和一个云工作负载服务。我们的目标是评估PIDSes的性能,探索影响性能的因素,基于评估结果和我们的工业实践提供见解,并为改进PIDSes提供建议。
我们首先分析了DARPA数据集与我们收集的数据之间的差异。我们发现我们的数据有三个主要特征。(1)异构多源输入。DARPA数据集专注于单一主机和单一操作系统。相比之下,我们的数据来自多个服务,包括不同的操作系统和不同的主机。(2)更强大的攻击者。DARPA数据集发布于2018年。随着时间的推移,攻击者可能使用更先进的技术发起攻击。(3)日益增加的良性活动复杂性。DARPA数据集是在红蓝对抗赛中收集的,受害者的活动很简单。相比之下,真实用户可能表现出各种活动。详细分析见第II-B节。这些新特征可能会挑战PIDSes的性能。
我们构建了多个数据集来检验上述特征的影响。我们选择了五种最先进的PIDSes进行评估。这些PIDSes涵盖了不同的检测粒度和检测技术,代表了当前PIDSes的主要类型。我们的评估结果挑战了现有的PIDSes,总结如下:
跨不同主机和平台的可移植性差。我们发现,在一个主机或平台上训练的PIDSes在其他主机或平台上表现不佳。在不同主机上测试时,平均AUC下降了26.77%;在不同平台上测试时,平均AUC下降了38.03%。
对真实世界攻击的检测性能低。我们使用现实世界中发生的一次挖矿攻击和一次信息窃取攻击进行评估。PIDSes的AUC分别从39.43%到92.17%和从42.16%到93.72%。
良性活动不断变化导致的高假正率。当良性活动频繁变化时,三个PIDSes遭受高假正率,即使没有攻击。
基于评估结果和我们的工业实践,我们提供了若干见解和建议来解决上述问题并改进PIDSes。主要见解如下:
我们从定性和定量两方面解释了PIDSes表现好或坏的原因。简而言之,我们发现影响性能的主要因素是PIDS的特征学习任务。定量分析表明,特征学习任务与AUC之间的皮尔逊相关系数约为0.73,p值为0.02。
我们分析了高假正率的原因并提出了一种缓解方法。我们将原因分为三类:稀疏活动、未知活动和活动的语义变化。我们提出的方法可以将假正率从约25%降低到约10%,并将人工工作量减少2/3。
我们发现一些问题可能被忽视,但在实践中很重要。例如,由于细粒度检测的目标与调查的目标不一致,高检测性能也可能导致调查效率低下,加剧警报疲劳问题。
最后,我们基于这些见解提供了若干建议。我们希望这些见解和建议有助于改进现有的PIDSes并指导未来的研究。
总之,我们的贡献如下:
我们分析了DARPA数据集与工业场景中收集的数据之间的差异,识别出工业界的三个主要新特征。
我们在工业场景中构建了多个数据集来评估五种SOTA PIDSes的性能。据我们所知,这是首次对工业场景中的PIDSes进行系统性评估。
我们基于评估结果和我们的工业实践提供了见解和建议,以解决提出的问题并改进现有的PIDSes。
论文的其余部分组织如下。我们在第II节介绍背景和一些必要的知识。然后,我们在第III节介绍研究问题和评估设置。评估结果在第IV节提供。基于结果,我们在第V节提供见解和建议。第VI节讨论其他一些问题以及未来的工作。我们在第VII节回顾关于PIDSes调查的相关工作,并在第VIII节总结全文。
背景
PIDS 介绍
(图1说明)
使用 PIDS 进行攻击检测的流程。
PIDSes旨在通过系统日志检测攻击。在本小节中,我们简要介绍PIDS。图1显示了使用PIDS进行攻击检测的整个流程。通常,PIDS以系统日志为输入,并输出由攻击行为组成的溯源图,然后分析师验证结果并提供反馈。
日志收集与保护。在PIDSes中,日志记录系统活动,例如系统调用。例如,当一个进程创建一个文件时,会有一条日志记录该创建事件以及进程和文件的信息。大量工作集中在收集日志时降低开销。此外,为了防止攻击者篡改日志,一些工作也关注日志保护。
攻击检测。PIDSes的主要目标是检测攻击。PIDSes通常构建溯源图、提取特征、进行检测,并以图、节点或边的形式输出警报。检测方法主要包括两类:基于规则的方法和基于异常的方法。基于规则的方法通常应用专家定义的规则生成警报,例如为具有特定属性的节点分配标签,并使用标签传播来追踪攻击。基于异常的方法学习良性活动的特征,并将偏离这些特征的活动视为异常。由于基于异常的方法可以检测未知攻击,它们近年来已成为主流。
攻击调查。攻击检测的输出通常是整个攻击的一个子集,例如溯源图中最可疑的节点或边。分析师需要进一步调查警报以找出完整的攻击。研究攻击检测的工作也可能提供简单的调查策略。此外,一些工作专注于提供有效且对用户友好的攻击调查。
在本文中,我们主要关注PIDSes的攻击检测,特别是基于异常的方法,因为它们很流行且性能良好。
工业界的新特征
(图2说明)
DARPA-E3 和真实世界主机中每个进程的未知行为分布。
DARPA-TC数据集被广泛用于评估PIDSes。然而,我们发现工业环境中存在一些在DARPA-TC数据集中未得到很好体现的新特征。我们总结了三个主要特征如下。
异构多源输入。需要处理的主机数量非常大,例如,在我们的场景中,有超过5,000个安全终端和超过10,000台云服务器。如果在每个主机上独立部署一个PIDS,将导致高昂的存储和计算开销。在每个主机上维护PIDS也是不可承受的。更重要的是,操作系统是异构的。目前尚不清楚现有的PIDSes是否能很好地处理这种异构多源输入。
更强大的攻击者。在实践中,PIDSes可能面临更强大的攻击者。例如,DARPA-TC数据集忠实地记录了所有攻击行为。然而,我们发现攻击者可能在PIDS部署之前就已经侵入了受害系统。这意味着PIDS可能会错误地将一些攻击行为视为良性,因为它们已经存在于先前的日志中。此外,更多技术被用来隐藏攻击行为,使得PIDSes更难检测攻击。
日益增加的良性活动复杂性。在实践中,用户行为可能随时间变化,这会产生良性但未知的活动。基于异常的PIDSes会将此类活动视为异常,导致大量假正。我们通过一种简单的方法量化了良性但未知的活动。简而言之,我们计算了每个进程的未知日志比例,每个进程的分布如图2所示。我们发现,在DARPA-E3数据集中,超过96%的进程的未知日志比例低于20%,而在现实中,这一比例约为65%,约20%的进程有完全未知的日志。这些未知日志如何影响PIDSes的检测性能尚不清楚。
测量设置
研究问题
基于工业环境中的新特征,我们旨在通过测量回答以下研究问题:
RQ1:PIDSes跨多个源输入的可移植性如何?有大量具有不同平台和配置的主机需要保护。理想情况下,我们可以在一台主机上训练一个PIDS并将其部署在其他主机上,这可以节省训练和维护成本。然而,这种跨不同主机和不同平台的可移植性尚未得到充分研究。我们将在这个研究问题中探讨PIDSes的可移植性。
RQ2:PIDSes检测真实世界攻击的性能如何?在现实世界中,攻击者能力更强。例如,一些攻击者在任何PIDS部署之前就已渗透进受害者,训练数据可能包含恶意行为,这违反了现有PIDSes的假设。本研究问题将评估PIDSes在面对此类强大攻击时的性能。
RQ3:PIDSes的假正率是多少,原因是什么?假正是基于异常的PIDSes的一个长期存在的问题。在真实场景中,一些主机有不断变化的活动,这可能导致高假正率。本研究问题将测量PIDSes的假正率并分析其原因。
RQ4:PIDSes的时间开销是多少?要在实践中部署PIDSes,性能开销应该是可接受的,尤其是时间开销。本研究问题将测量PIDSes的时间成本。
测量设置
考虑的PIDSes。近年来,基于异常的PIDSes因其检测零日攻击的能力而成为主流。我们在评估中考虑了五个代表性的基于异常的PIDSes,包括节点级、进程级和图级检测方法。(1)Magic:该方法应用图注意力网络学习节点嵌入,并通过与良性节点的距离检测异常节点。(2)Flash:该方法将异常检测转换为图上的节点类型预测,并使用GraphSAGE学习节点嵌入。(3)Orthrus:Orthrus依赖于边预测和图卷积网络进行节点级检测。(4)Nodlink:与上述三种方法不同,Nodlink学习进程的特征,并通过构建的斯坦纳树问题检测异常进程。(5)Kairos:该方法使用时间图网络和多层感知机学习边嵌入,获取每条边的异常分数,并最终进行图级检测。
实现。我们根据这些PIDSes的开源代码实现它们,并且不更改其配置。我们确保其论文中声称的所有结果在此类配置下是可重现的。尽管Kairos进行图级检测,但它为每条边提供了异常分数。因此,我们可以设置一个阈值来识别异常边,并进一步将相应的节点标记为恶意。经过这样的修改,我们可以像评估其他节点级PIDSes一样评估Kairos。
数据收集。数据来自两个企业安全服务的用户:安全管理系统和云工作负载保护服务。在安全管理系统服务中,用户系统基于Windows,用户总数约为5,000。在云工作负载保护服务中,用户系统基于Linux,用户总数约为10,000。我们使用ETW和Auditlog的修改版进行日志收集。所有用户信息都是匿名的,我们遵守相关的隐私政策和法规。
数据集构建与真实标注。我们需要从海量数据中选择部分代表性数据来构建测试数据集。我们开发了一个基于规则的入侵检测系统来生成警报,然后手动分析这些警报以调查整个攻击过程并选择代表性攻击。发生这些攻击的日期的日志被用于构建数据集。关于真实标注,我们使用IOC的名称来确定相应的边和节点是否为恶意。
指标。我们使用TP、TN、FP、FN、TPR和FPR作为指标。这些指标反映了在特定阈值下的检测能力。此外,我们记录了每种方法的AUC,以评估在不同阈值下的整体检测性能。更高的AUC表明该方法能更有效地区分良性节点和恶意节点,使分析师能够用更少的误报警报检测攻击。我们为Magic、Flash、Orthrus和Kairos记录节点级的指标,而为Nodlink记录进程级的指标。
测量结果
在本节中,我们展示上述研究问题的测量结果。我们重复每个PIDS的检测10次,并报告平均指标。
PIDSes跨多个源输入的可移植性 (RQ1)
(图3说明)
(a) 安全终端 (Windows)。
(b) 云主机 (Linux)。
表 I:安全终端上的检测结果。
| 方法 | TPR | FPR | AUC | TP | TN | FN | FP |
|---|---|---|---|---|---|---|---|
| Magic | 0.7332 | 0.4510 | 0.7379 | 32.26 | 12940.94 | 11.74 | 10632.06 |
| Flash | 0.2591 | 0.0477 | 0.9004 | 11.40 | 22449.60 | 32.60 | 1123.40 |
| Orthrus | 0.0227 | 0.0001 | 0.9677 | 1.00 | 23570.12 | 43.00 | 2.88 |
| Kairos | 0.9545 | 0.1197 | 0.9437 | 42.00 | 20752.00 | 2.00 | 2821.00 |
| Nodlink | 0.8133 | 0.3576 | 0.7837 | 21.96 | 1897.62 | 5.04 | 1056.38 |
表 II:云主机上的检测结果。
| 方法 | TPR | FPR | AUC | TP | TN | FN | FP |
|---|---|---|---|---|---|---|---|
| Magic | 0.3305 | 0.1883 | 0.5784 | 278.30 | 802.00 | 563.70 | 186.00 |
| Flash | 0.0019 | 0.0273 | 0.6254 | 1.60 | 961.00 | 840.40 | 27.00 |
| Orthrus | 0.0036 | 0.0101 | 0.1911 | 3.00 | 978.00 | 839.00 | 10.00 |
| Kairos | 0.2705 | 0.5065 | 0.2877 | 227.80 | 487.60 | 614.20 | 500.40 |
| Nodlink | 0.0181 | 0.0271 | 0.8464 | 15.20 | 921.30 | 823.80 | 25.70 |
我们创建了一个理想环境进行测量,使我们能够专注于不同源输入的影响。具体来说,我们使用安全终端沙箱和云主机沙箱来收集训练数据并发起攻击。训练数据仅包含关于系统初始化的良性活动。此外,我们使用来自真实用户的安全终端来收集训练数据,以评估跨不同主机的可移植性。
攻击的细节如图3a和图3b所示。这两种攻击都旨在通过恶意软件在受害者系统上注入后门。然后,攻击者可以从受害者那里窃取敏感信息或进行进一步攻击。
理想环境中的检测结果。平均指标如表I和表II所示。从结果中,我们可以看到不同PIDSes之间的检测结果不同。总的来说,Orthrus和Flash采用了更保守的检测策略,因此具有较低的TPR和FPR。与此同时,Magic、Kairos和Nodlink具有较高的TPR和较高的FPR。比较两个平台,所有PIDSes在安全终端上的表现都优于在云主机上的表现。一个可能的原因是,在云主机中,数据是不平衡的,主要是进程节点以及进程打开和关闭的边。不平衡的数据减少了良性和恶意活动之间的差异,使得检测更加困难。此外,当使用此类训练数据时,每种方法的表示学习都是无效的。另一方面,云主机上的攻击者只安装后门并连接到C2服务器几次,使其行为隐蔽。
表 III:跨不同主机的检测结果。
| 方法 | TPR | FPR | AUC | TP | TN | FN | FP |
|---|---|---|---|---|---|---|---|
| Magic | 0.4741 | 0.5531 | 0.5366 | 20.86 | 10535.68 | 23.14 | 13037.32 |
| Flash | 0.3645 | 0.8308 | 0.2632 | 16.04 | 3989.30 | 27.96 | 19583.70 |
| Orthrus | 0.0441 | 0.0005 | 0.8351 | 1.94 | 23561.54 | 42.06 | 11.46 |
| Kairos | 0.3750 | 0.0407 | 0.5520 | 16.50 | 23573.00 | 27.50 | 1000.50 |
| Nodlink | 0.6481 | 0.1902 | 0.8081 | 17.50 | 2392.02 | 9.50 | 561.98 |
表 IV:从 Linux 到 Windows 的检测结果。
| 方法 | TPR | FPR | AUC | TP | TN | FN | FP |
|---|---|---|---|---|---|---|---|
| magic | 0.9302 | 0.9938 | 0.6645 | 40.93 | 147.20 | 3.07 | 23425.80 |
| flash | 0.3409 | 0.5436 | 0.3116 | 15.00 | 10758.00 | 29.00 | 12815.00 |
| orthrus | 0.0000 | 0.0002 | 0.7219 | 0.00 | 23487.00 | 44.00 | 4.00 |
| kairos | 0.6591 | 0.4705 | 0.2310 | 29.00 | 23491.00 | 15.00 | 20877.00 |
| nodlink | 0.0444 | 0.0309 | 0.5027 | 1.20 | 2862.70 | 25.80 | 91.30 |
表 V:从 Windows 到 Linux 的检测结果。
| 方法 | TPR | FPR | AUC | TP | TN | FN | FP |
|---|---|---|---|---|---|---|---|
| magic | 0.9907 | 0.7644 | 0.7436 | 834.20 | 232.80 | 7.80 | 755.20 |
| flash | 0.0026 | 0.0308 | 0.9335 | 2.20 | 957.60 | 839.80 | 30.40 |
| orthrus | 0.0012 | 0.0051 | 0.4065 | 1.00 | 983.00 | 841.00 | 5.00 |
| kairos | 1.0000 | 0.4936 | 0.6009 | 842.00 | 988.00 | 0.00 | 963.00 |
| nodlink | 0.9996 | 0.8378 | 0.5235 | 838.70 | 153.60 | 0.30 | 793.40 |
跨不同主机的检测结果。我们使用来自真实安全终端用户的数据进行训练,并使用安全终端沙箱中的数据进行测试。我们确认训练数据中没有攻击。结果如表III所示。当使用来自另一个主机的数据进行训练时,大多数PIDSes的TPR和AUC与表I相比有所下降。原因是训练数据中有更多活动,例如网络连接和文件下载。攻击者也进行这些活动,这缩小了良性和恶意活动之间的差异。
跨不同平台的检测结果。我们交换两个沙箱的训练数据,以评估跨不同平台的可移植性。结果如表IV和表V所示。当在云主机上训练并在安全终端上测试时,所有PIDSes的AUC都较低,并且它们的TPR非常接近FPR。原因是两个平台上的数据差异很大。与一个平台上的活动相比,另一个平台上的活动都是不熟悉的,难以区分。与上述结果类似,当在安全终端上训练并在云主机上测试时,所有PIDSes的TPR和FPR相似。然而,Magic、Flash和Kairos的AUC增加了。原因是安全终端上的数据更加平衡和多样化,这有助于PIDSes学习更全面的良性活动特征。
总结。PIDSes跨不同源输入的可移植性是有限的。当训练和测试数据来自不同的主机或平台时,检测性能显著下降。
PIDSes检测真实世界攻击的性能 (RQ2)
我们选择了两个真实世界中发现的攻击进行评估。第一个是对云端的恶意挖矿攻击,这是云上的典型攻击,使用了各种隐蔽技术。第二个是一次特殊的长期间谍信息窃取攻击,攻击者在任何PIDS部署之前就已经侵入了受害者。
(图4说明)
利用 postgreSQL 已知漏洞发起挖矿的攻击。
表 VI:挖矿攻击的检测结果。
| 方法 | TPR | FPR | AUC | TP | TN | FN | FP |
|---|---|---|---|---|---|---|---|
| Magic | 0.3949 | 0.5142 | 0.3943 | 12528.63 | 109931.10 | 19200.37 | 116373.90 |
| Flash | 0.0035 | 0.0427 | 0.5375 | 111.00 | 216637.40 | 31618.00 | 9667.60 |
| Orthrus | 0.0003 | 0.0000 | 0.6419 | 9.00 | 226296.00 | 31720.00 | 9.00 |
| Kairos | 0.0163 | 0.5237 | 0.5577 | 3427.00 | 25744.00 | 206981.00 | 28302.00 |
| Nodlink | 0.8617 | 0.1850 | 0.9217 | 27243.60 | 175477.80 | 4372.40 | 39830.20 |
云上的恶意挖矿。我们发现了一次旨在攻陷云主机进行挖矿的大规模攻击。该攻击影响了超过2,000台云主机。这次攻击是针对云的典型攻击,涉及入侵、执行和持久化。此外,该攻击使用了许多策略来保持隐蔽。因此,我们选择它作为一个评估案例。
攻击的细节如图4所示。首先,它利用弱密码获取PostgreSQL的访问权限,并使用PROGRAM功能执行命令。然后,它通过Tor网络下载恶意软件,并修改PATH变量以将恶意软件伪装成合法的postmaster命令。为了实现持久化,攻击者修改crontab以安排其定期执行。最后,该攻击使用内存执行来清除其他潜在的挖矿程序,连接到矿池,并进行自我复制。执行的命令行总是用Base64编码以隐藏其语义信息。内存执行可以利用现有进程执行并抑制遥测,使检测更加困难。
我们随机选择了一台受此攻击影响的云主机,并从攻击的第一天开始收集其日志进行测试。我们使用攻击前4天的日志进行训练。检测结果如表VI所示。从结果可以看出,除了Nodlink之外,大多数PIDSes的AUC较低,并且只检测到一小部分恶意节点。原因类似于沙箱结果:数据高度不平衡,有大量进程节点。此外,Base64编码等策略使攻击难以检测。相反,涉及Base64命令行的恶意进程非常罕见,以至于Nodlink可以有效识别它们。
(图5说明)
在 PIDS 部署之前就入侵受害者并试图窃取敏感信息的攻击。
表 VII:信息窃取攻击的检测结果。
| 方法 | TPR | FPR | AUC | TP | TN | FN | FP |
|---|---|---|---|---|---|---|---|
| Magic | 0.1919 | 0.3475 | 0.4216 | 3.07 | 13518.50 | 12.93 | 7199.50 |
| Flash | 0.2500 | 0.2955 | 0.4855 | 4.00 | 14596.40 | 12.00 | 6121.60 |
| Orthrus | 0.0000 | 0.0008 | 0.5399 | 0.00 | 20702.00 | 16.00 | 16.00 |
| Kairos | 0.1250 | 0.2568 | 0.4840 | 2.00 | 15398.00 | 14.00 | 5320.00 |
| Nodlink | 0.9500 | 0.1270 | 0.9372 | 11.40 | 10613.60 | 0.60 | 1543.40 |
| 使用安全终端沙箱中的数据训练 | |||||||
| Magic | 0.7794 | 0.7797 | 0.4452 | 12.47 | 4565.10 | 3.53 | 16152.90 |
| Flash | 0.2625 | 0.3915 | 0.4252 | 4.20 | 12606.20 | 11.80 | 8111.80 |
| Orthrus | 0.0000 | 0.0003 | 0.6704 | 0.00 | 20711.50 | 16.00 | 6.50 |
| Kairos | 1.0000 | 0.9475 | 0.5714 | 16.00 | 1087.00 | 0.00 | 19631.00 |
| Nodlink | 0.7333 | 0.7469 | 0.5544 | 8.80 | 3076.87 | 3.20 | 9080.13 |
长期间谍信息窃取攻击。对于基于异常的PIDSes来说,获取良性活动作为训练数据和检测参考非常重要。然而,这一要求在工业界可能无法满足。我们遇到一个长期攻击者,他在任何PIDS部署之前就已经侵入了受害者的主机。因此,攻击者如何侵入系统并下载恶意软件的整个过程是未知的。在这种情况下,训练数据同时包含良性和恶意活动。
攻击的细节如图5所示。首先,攻击者以未知方式下载多个工具并获取权限。在执行中,攻击使用程序“C:WindowsSystemxxxSearch.exe”加载相应的.dll文件,并与恶意网站建立网络连接以发送敏感信息。最后,攻击进行自我复制以实现持久隐蔽。此攻击中涉及的活动类似于一些良性网络活动,即进程加载.dll文件和建立网络连接是很常见的。
我们使用4天的日志进行训练,1天的日志进行测试。训练数据同时包含良性和恶意活动。我们还使用安全终端沙箱中的日志作为训练数据进行对比。结果如表VII所示。结果类似于表VI中的结果。隐蔽的攻击难以检测。大多数PIDSes无法区分攻击和良性活动。在Nodlink中,尽管训练数据中存在攻击行为,Nodlink仍然产生警报。这是因为与良性活动相比,攻击行为仍然占少数,因此被视为异常。至于使用沙箱数据进行训练,训练和测试数据之间的显著差异产生了更高的TP和FP。
总结。PIDSes检测真实世界攻击的性能不足。这既是由于训练数据,也是由于攻击本身的隐蔽性。
活动不断变化的主机上 PIDSes 的假正率 (RQ3)
(图6说明)
在活动不断变化的安全终端上,PIDSes 的 FPR。
PIDSes的假正是一个长期存在的问题。在实践中,我们发现一些主机的活动每天都在变化,这可能导致高FPR。我们分析了一个这样的主机,每天都会出现未知进程。我们使用11月27日的数据作为训练集,并用接下来一周的数据进行测试。结果如图6所示。
Orthrus的FPR非常低,因为它采用了保守的检测策略来减少警报数量。Kairos的FPR也较低,因为在此主机上边的变化并不显著。其他PIDSes的FPR高于23%。这意味着,在没有攻击的情况下,这些PIDSes可能会频繁产生假正,使分析师被假警报淹没。
我们分析了这些假正,发现它们可以分为三类:(1)稀疏活动:这些活动已经出现在训练数据中,但它们本身很罕见,导致假正。这是Magic和Flash中假正的主要部分(约50%)。具体来说,svchost.exe进程托管了超过2,000个用于收集硬件信息的脚本,这是不常见的。因此,所有脚本节点都成为假正。(2)未知活动:这些活动不存在于训练数据中,因此PIDSes无法学习它们的特征。例如,用户在在线会议期间下载了大量图片,有一个进程节点对应几个网络节点和文件节点。由于这种行为以前从未发生过,导致假正。(3)语义变化:这些活动意味着语义信息的变化,例如文件名、命令行参数和IP地址。使用语义信息进行嵌入的PIDSes可能会受到影响,例如Nodlink中的假正主要是由这种情况引起的。
总结。PIDSes会产生许多假正,尤其是在活动不断变化的主机上。我们将假正的原因分为三类:稀疏活动、未知活动和语义变化。我们将在第V-B节探讨如何减少假正。
PIDSes 的时间开销 (RQ4)
(图7说明)
(a) PIDSes 的训练时间。
(b) PIDSes 的测试时间。
要在实践中部署PIDSes,性能开销应该是可接受的,尤其是时间开销。我们测量了每个PIDS在不同图大小下的时间成本。PIDSes在40GB A100 GPU上进行训练和测试。我们排除了数据预处理和图构建的时间,专注于训练和测试时间。训练时间和测试时间如图7a和图7b所示。
结果表明,所有PIDSes的时间成本随图大小线性增加,这与大多数GNN的时间复杂度分析一致。对于不同的PIDSes,时间成本存在显著差异,有时甚至相差几个数量级。这是因为不同的PIDSes具有不同的模型结构、表示维度、优化策略等。我们注意到Flash的时间开销最低。当图大小约为10^6时,其训练时间为33.65秒。当图大小超过6×10^5时,其测试时间为4.33秒。这表明改变PIDS设计可以显著降低时间开销。
总结。PIDSes的时间开销随图大小线性增加。不同的PIDSes具有显著不同的时间成本。尽管一些PIDSes的时间开销较高,但我们相信可以通过改变模型结构、配置和优化策略来降低。
见解、建议与未来方向
在本节中,我们总结了从测量中获得的几个见解,提供了相应的建议,并讨论了PIDSes的未来研究方向。
如何提高 PIDSes 的检测性能?
(图8说明)
(a) 距离比与 TPR/FPR。
(b) 距离比与 AUC。
见解1:特征学习任务是影响检测结果的主要因素。在我们的评估中,我们观察到PIDSes的检测结果在不同设置下有所不同。许多因素可以影响检测结果,包括使用的数据、模型训练、阈值设置等。在这些因素中,我们发现影响PIDSes检测结果的主要因素是特征学习任务本身。
特征学习任务是指PIDS用来获取节点嵌入的任务。如果这些任务能够反映恶意节点和良性节点之间的差异,PIDSes将取得良好的检测结果;否则,很难平衡假正和假负。例如,Nodlink在我们的数据集中取得了高性能,因为恶意进程与良性进程差异很大,而良性进程具有稳定的语义信息,从而实现了高TPR和低FPR。
为了进一步验证这一见解,我们还进行了定量分析。我们以Magic为例进行分析。Magic使用GAT进行节点嵌入学习,这是GNN的一种代表性类型。此外,Magic不使用语义信息进行节点表示,这意味着我们可以消除由语义表示引起的不确定性。
Magic设计了一个节点重建任务和一个边预测任务用于特征学习。这两个任务与相邻节点的特征和边类型有关。因此,如果恶意节点和良性节点在相邻节点特征和边类型方面存在差异,Magic可能会取得良好的检测结果。我们统计了每个节点的相邻节点和边的类型信息,并将一个节点表示为一个向量。然后,我们基于这些向量计算测试集中的节点与训练集中节点之间的距离。距离越大,表明恶意节点与良性节点在相邻节点特征和边类型方面的差异越大。Magic在距离较大时表现更好。
我们评估了恶意/良性节点距离比与TPR/FPR比之间的相关性,以及距离比与AUC之间的相关性。我们在不同的数据集上计算结果,包括DARPA-E3数据集、表I、表II、表III、表IV、表V和表VI中使用的数据集。结果如图8所示。可以看出,距离比与TPR/FPR之间存在很强的相关性。AUC的结果类似。结果表明,当恶意节点和良性节点在相邻节点特征和边类型方面的差异更显著时,Magic可以实现更高的TPR和更低的FPR,从而导致更高的AUC。
建议:为了获得更好的检测结果,我们建议首先发现恶意活动和良性活动之间的差异,然后设计能够反映这些差异的特征学习任务。通过这种方式,可以帮助PIDSes实现高TPR和低FPR。
(图9说明)
使用 LLM 分析挖矿攻击命令行的示例。
见解2:语义信息对于攻击检测很重要。在我们的评估中,我们发现考虑语义信息的PIDSes通常取得更好的检测结果。例如,Nodlink专注于恶意和良性进程之间的语义差异,在大多数数据集中取得了高AUC分数。在基于GNN的PIDSes中,Flash、Orthrus和Kairos使用命令行、文件名和IP地址进行节点嵌入,与Magic相比取得了更高的AUC。
评估结果表明,语义信息对于攻击检测很重要,即攻击通常具有与良性活动不同的内容。更重要的是,一些语义信息可以直接用于检测攻击,包括进程命令行、文件名和网站域名。这对安全分析师很有帮助,因为他们可以基于这些语义信息快速识别攻击,然后进一步调查攻击。
是否可以使用这些语义信息以与人类相同的方式自动检测攻击仍是一个悬而未决的问题。幸运的是,我们发现大语言模型有潜力帮助完成这项任务。图9显示了一个使用LLM分析图4所示挖矿攻击命令行的示例。LLM首先将Base64编码的shell解码为人类可读的文本。然后,它逐步分析shell的功能,指出该命令下载了一个已知的挖矿脚本。同时,LLM提取关键信息,如脚本名称和C&C服务器地址。最后,LLM提供安全建议。基于LLM的能力,我们设计了一个用于自动攻击分析的LLM智能体。当提供更多外部信息,如威胁情报和不同的实体信息时,LLM可以对攻击给出更清晰的分析。
建议:我们建议利用语义信息进行攻击检测,并且需要更细粒度的方法,而不是简单地获取词/句嵌入。更重要的是,基于语义信息和外部知识检测攻击是实现无训练检测的一条有前途的途径。
如何减少假正?
(图10说明)
(a) 减少前后的 FPR。
(b) FP 的数量和社区数量。
见解3:使用无监督方法可以降低假正率。PIDSes在检测过程中常常产生大量假正。在某些情况下,尽管假正率似乎不高,但假正的数量仍然很大,这对安全分析师构成了挑战。例如,在表VI中,Nodlink的假正率为18.5%,导致需要处理39,830个假正。减少假正的数量对PIDSes很重要。
我们在第IV-C节将假正分为三类。为了减少假正,有两种可能的方法。第一种方法是提高PIDSes的泛化能力,例如,将良性活动的潜在变体添加到训练数据中。另一种方法是从检测结果中识别潜在的假正。例如,Orthrus使用2类K-means来隔离具有最高异常分数的异常值,以进一步过滤潜在的假正。前一种方法需要足够的良性活动先验知识,这很难获得。更糟糕的是,总是会有未知的良性活动。因此,我们专注于后一种方法来减少假正。
受Orthrus的启发,我们设计了一种基于Louvain社区检测算法的进程级假正检测算法。该算法将具有相似活动的进程划分到同一个社区,并将频繁出现的进程视为假正。一方面,这种方法可以降低FPR。另一方面,它可以帮助分析师更有效地调查警报,因为他们只需要调查每个社区中的一个进程,而不是全部。细节见附录-B。我们以Nodlink为例来减少其假正,因为Nodlink是一种进程级检测方法。结果如图10所示。图10a显示Nodlink的假正率从约25%降低到约10%。图10b显示社区数量约为假正数量的1/3。分析师只需要调查每个社区中的一个进程,而不是所有假正,这可以大大减少工作量。
建议:为了减少假正,除了设计更强大的PIDS,从检测结果中识别潜在的假正也是一种有效的方法。更重要的是,在保持攻击被检测到的同时检测假正是一个有前途的研究方向。
我们可能忽略了哪些问题?
(图11说明)
不同 uuid 分配策略下 PIDSes 的 AUC。
见解4:为节点分配uuid的方式影响检测。在DARPA数据集中,每个实体已经被分配了一个uuid。然而,在现实场景中,这样的uuid可能不可用。uuid分配策略将影响节点的数量、图结构以及节点的特征,从而影响检测结果。
溯源图中最常见的节点类型是进程、文件和网络套接字。我们根据文件路径为文件节点生成uuid。对于其他两种节点类型,有多种选择。对于进程节点,我们使用相关进程的文件路径或进程ID与文件路径的组合来生成uuid。对于网络套接字节点,我们使用目标IP地址或IP地址与端口号的组合来生成uuid。附录-C提供了关于uuid分配策略的更多细节。
我们使用表I中的数据集进行评估,结果如图11所示。不同的PIDSes对uuid分配策略的敏感性不同。Nodlink和Orthrus在不同策略下的AUC变化较小,变化在10%以内。相比之下,Magic的AUC变化显著,从52.93%到81.06%。除了检测性能,uuid分配策略也会影响节点的数量,最终影响时间开销。例如,当我们仅使用目标IP地址为网络套接字节点生成uuid时,节点数量为4,463,而考虑端口号时为24,623。这显著减少了所有PIDSes的训练和检测时间。
建议:如何为节点分配uuid经常被忽视,但它既影响PIDSes的检测性能,也影响时间开销。我们建议在未来的工作中探索更合适的uuid分配策略,以在保持检测性能的同时减少检测时间。
表 VIII:真实案例挖矿攻击数据集中的 TP 和 FP 节点及其对应的实体。
| 方法 | TP | TP-实体 | FP | FP-实体 |
|---|---|---|---|---|
| Magic | 14,808 | 125 | 112,846 | 9,854 |
| Flash | 113 | 113 | 8,368 | 8,368 |
| Orthrus | 0 | 0 | 6 | 6 |
| Kairos | 2,069 | 156 | 25,577 | 11,100 |
| Nodlink | 27,329 | 112 | 39,817 | 321 |
见解5:需要填补细粒度检测与攻击调查之间的差距。PIDSes需要基于检测结果调查攻击。现有方法通常从警报开始,并执行前向和后向追踪等分析以重构整个攻击。然而,当将这些方法应用于细粒度检测结果时,仍然需要解决一些问题。我们发现的一个主要问题是细粒度检测结果与攻击调查的需求并不完全一致,导致调查开销高。
在表VIII中,我们统计了在真实案例挖矿攻击数据集中每个PIDS检测到的TP和FP节点数量,以及它们对应的实体数量。我们观察到,对于一些PIDSes,警报节点的数量显著高于相应实体的数量。例如,Nodlink检测到的恶意节点数量大约是恶意实体数量的244倍。这是因为单个可执行文件可能被执行多次,导致溯源图中出现多个PID和多个节点。因此,分析师可能需要分析对应于同一攻击的多个图。即使假正很低,分析师也可能花费大量时间才发现同一个攻击,这进一步加剧了警报疲劳。
建议:尽管细粒度检测结果可以精确识别特定的恶意节点,但它们可能与攻击调查的需求不完全一致,导致高调查开销。我们建议未来的工作探索如何更好地将细粒度检测结果与攻击调查需求相结合,以提高调查效率并减轻分析师负担。
讨论
对抗性操纵与防御。在本文中,我们不讨论可能操纵其活动以使其不易被检测的对抗性攻击者。一方面,[6]已经在DARPA-TC数据集上进行了这种评估。[20]也提出了一种防御此类攻击者的方法。另一方面,尽管我们没有发现或评估[19]提供的此类攻击者,但我们发现了使用其他技术逃避检测的攻击者,例如长期信息窃取攻击。
我们工作的局限性。尽管我们使用的数据比之前的工作更全面,但它仍然存在一些局限性。例如,我们只使用了一个组织的数据,这些数据可能不能代表其他组织。此外,由于隐私和安全问题,我们无法与公众共享数据,这可能限制了我们工作的可重复性。关于未来工作的建议,我们只提供了一些高层次的方向,未来工作需要进行更具体和详细的评估和方法研究。
相关工作
在本节中,我们回顾了关于PIDSes调查的相关工作。[31]将PIDSes分为五个层次,并总结了相应的技术。这项工作主要关注日志收集、保护和精简。[23, 37, 50]总结了用于攻击检测的技术。[13]从工业角度回顾了PIDSes,并提供了许多问题。[6]对DARPA-TC数据集上的SOTA基于异常的PIDSes进行了全面评估。据我们所知,我们的工作是第一个在现实世界场景中系统评估SOTA PIDSes的工作。
结论
在本文中,我们对工业场景中的PIDSes进行了系统性评估和分析。我们首先总结了工业界的三个主要新特征:异构多源输入、更强大的攻击者以及日益增加的良性活动复杂性。然后,我们选择了五种最先进的PIDSes,并构建了多个数据集来评估这些PIDSes的性能。评估结果揭示了现有PIDSes面临的挑战,包括在不同主机和平台上的可移植性差、对真实世界攻击的检测性能低,以及随着良性活动不断变化而导致的高假正率。基于评估结果和我们的工业实践,我们提供了若干见解,旨在解决上述问题并改进PIDSes。我们希望我们的工作能够启发其他研究人员设计更有效的PIDSes,并将其部署在现实世界的工业场景中。
附录
通过类型信息计算节点间距离
我们展示了如何通过Magic的类型信息计算两个节点之间的距离。对于每个节点 v,我们从 v 开始,使用深度优先搜索记录所有带边的相邻节点的类型,定义如下:
Info(v): { (type(u), type(u→w), type(w)), u, w ∈ 𝒩_k(v) },
其中 type() 是节点或边的类型,𝒩_k(v) 是 v 的 k 跳邻居节点集。然后,我们通过计算 Info(v) 中每种类型出现的次数,将 v 表示为一个向量 x_v,如下所示:
x_v = [c₀, …, c_s], c_i ∈ ℕ,
其中 s 是图中类型元组的总数,c_i 是第 i 个类型元组在 Info(v) 中出现的次数。最后,我们使用向量表示之间的欧几里得距离计算两个节点 v 和 v' 之间的距离,如下所示:
d(v, v') = √(∑_{i=0}^s (c_i - c_i')²)。
在第 V 节的评估中,我们设置 k=2,因为 Magic 只考虑 2 跳邻居来生成嵌入。此外,为了确保评估的效率,我们最多考虑每个节点的 100 个邻居。
假正检测
我们展示了第 V 节中使用的假正检测方法的细节。该方法包含两个主要步骤:(1) 我们将每个进程表示为其行为序列的向量。(2) 我们使用 Louvain 社区检测算法将进程聚类到不同的社区,并将大社区中的进程视为假正。
一个进程 p 总是有许多行为,可以表示为:
p: { (action, object, timestamp) },
其中 action 包含诸如文件读/写等操作,object 可以是进程、文件或网络连接。我们参考词频-逆文档频率将进程 p 表示为一个向量 x_p,定义如下:
x_p = [ freq(object_i) * log(N_p / n_i), … ],
其中 object_i 是图中的第 i 个对象,freq(object_i) 是 p 与 object_i 交互的次数,N_p 是进程总数,n_i 是与 object_i 交互的进程数。我们使用欧几里得距离来计算两个进程之间的相似度。然后,我们应用 Louvain 社区检测算法将进程聚类到不同的社区。最后,我们将大小大于 20 的社区中的进程视为假正进程。
为节点分配 UUID
表 IX:不同类型节点生成 UUID 使用的字段。
| 节点类型 | 生成 UUID 的字段 |
|---|---|
| 进程 | PID, 文件路径 |
| 文件 | 文件路径 |
| 网络 | 域名 url 源IP,源端口,目标IP,目标端口 |
| 注册表键 | 文件路径 |
| 脚本 | 脚本内容 |