在工业场景中评估基于溯源的入侵检测系统
大家读完觉得有帮助记得关注和点赞摘要基于溯源的入侵检测系统已被广泛用于检测高级持续性威胁。尽管许多研究在其原始论文的评估中取得了高性能但它们在工业场景中的表现仍不明确。为填补这一空白我们对工业场景中的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.73p值为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的检测性能尚不清楚。测量设置研究问题基于工业环境中的新特征我们旨在通过测量回答以下研究问题RQ1PIDSes跨多个源输入的可移植性如何有大量具有不同平台和配置的主机需要保护。理想情况下我们可以在一台主机上训练一个PIDS并将其部署在其他主机上这可以节省训练和维护成本。然而这种跨不同主机和不同平台的可移植性尚未得到充分研究。我们将在这个研究问题中探讨PIDSes的可移植性。RQ2PIDSes检测真实世界攻击的性能如何在现实世界中攻击者能力更强。例如一些攻击者在任何PIDS部署之前就已渗透进受害者训练数据可能包含恶意行为这违反了现有PIDSes的假设。本研究问题将评估PIDSes在面对此类强大攻击时的性能。RQ3PIDSes的假正率是多少原因是什么假正是基于异常的PIDSes的一个长期存在的问题。在真实场景中一些主机有不断变化的活动这可能导致高假正率。本研究问题将测量PIDSes的假正率并分析其原因。RQ4PIDSes的时间开销是多少要在实践中部署PIDSes性能开销应该是可接受的尤其是时间开销。本研究问题将测量PIDSes的时间成本。测量设置考虑的PIDSes。近年来基于异常的PIDSes因其检测零日攻击的能力而成为主流。我们在评估中考虑了五个代表性的基于异常的PIDSes包括节点级、进程级和图级检测方法。(1)Magic该方法应用图注意力网络学习节点嵌入并通过与良性节点的距离检测异常节点。(2)Flash该方法将异常检测转换为图上的节点类型预测并使用GraphSAGE学习节点嵌入。(3)OrthrusOrthrus依赖于边预测和图卷积网络进行节点级检测。(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安全终端上的检测结果。方法TPRFPRAUCTPTNFNFPMagic0.73320.45100.737932.2612940.9411.7410632.06Flash0.25910.04770.900411.4022449.6032.601123.40Orthrus0.02270.00010.96771.0023570.1243.002.88Kairos0.95450.11970.943742.0020752.002.002821.00Nodlink0.81330.35760.783721.961897.625.041056.38表 II云主机上的检测结果。方法TPRFPRAUCTPTNFNFPMagic0.33050.18830.5784278.30802.00563.70186.00Flash0.00190.02730.62541.60961.00840.4027.00Orthrus0.00360.01010.19113.00978.00839.0010.00Kairos0.27050.50650.2877227.80487.60614.20500.40Nodlink0.01810.02710.846415.20921.30823.8025.70我们创建了一个理想环境进行测量使我们能够专注于不同源输入的影响。具体来说我们使用安全终端沙箱和云主机沙箱来收集训练数据并发起攻击。训练数据仅包含关于系统初始化的良性活动。此外我们使用来自真实用户的安全终端来收集训练数据以评估跨不同主机的可移植性。攻击的细节如图3a和图3b所示。这两种攻击都旨在通过恶意软件在受害者系统上注入后门。然后攻击者可以从受害者那里窃取敏感信息或进行进一步攻击。理想环境中的检测结果。平均指标如表I和表II所示。从结果中我们可以看到不同PIDSes之间的检测结果不同。总的来说Orthrus和Flash采用了更保守的检测策略因此具有较低的TPR和FPR。与此同时Magic、Kairos和Nodlink具有较高的TPR和较高的FPR。比较两个平台所有PIDSes在安全终端上的表现都优于在云主机上的表现。一个可能的原因是在云主机中数据是不平衡的主要是进程节点以及进程打开和关闭的边。不平衡的数据减少了良性和恶意活动之间的差异使得检测更加困难。此外当使用此类训练数据时每种方法的表示学习都是无效的。另一方面云主机上的攻击者只安装后门并连接到C2服务器几次使其行为隐蔽。表 III跨不同主机的检测结果。方法TPRFPRAUCTPTNFNFPMagic0.47410.55310.536620.8610535.6823.1413037.32Flash0.36450.83080.263216.043989.3027.9619583.70Orthrus0.04410.00050.83511.9423561.5442.0611.46Kairos0.37500.04070.552016.5023573.0027.501000.50Nodlink0.64810.19020.808117.502392.029.50561.98表 IV从 Linux 到 Windows 的检测结果。方法TPRFPRAUCTPTNFNFPmagic0.93020.99380.664540.93147.203.0723425.80flash0.34090.54360.311615.0010758.0029.0012815.00orthrus0.00000.00020.72190.0023487.0044.004.00kairos0.65910.47050.231029.0023491.0015.0020877.00nodlink0.04440.03090.50271.202862.7025.8091.30表 V从 Windows 到 Linux 的检测结果。方法TPRFPRAUCTPTNFNFPmagic0.99070.76440.7436834.20232.807.80755.20flash0.00260.03080.93352.20957.60839.8030.40orthrus0.00120.00510.40651.00983.00841.005.00kairos1.00000.49360.6009842.00988.000.00963.00nodlink0.99960.83780.5235838.70153.600.30793.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挖矿攻击的检测结果。方法TPRFPRAUCTPTNFNFPMagic0.39490.51420.394312528.63109931.1019200.37116373.90Flash0.00350.04270.5375111.00216637.4031618.009667.60Orthrus0.00030.00000.64199.00226296.0031720.009.00Kairos0.01630.52370.55773427.0025744.00206981.0028302.00Nodlink0.86170.18500.921727243.60175477.804372.4039830.20云上的恶意挖矿。我们发现了一次旨在攻陷云主机进行挖矿的大规模攻击。该攻击影响了超过2,000台云主机。这次攻击是针对云的典型攻击涉及入侵、执行和持久化。此外该攻击使用了许多策略来保持隐蔽。因此我们选择它作为一个评估案例。攻击的细节如图4所示。首先它利用弱密码获取PostgreSQL的访问权限并使用PROGRAM功能执行命令。然后它通过Tor网络下载恶意软件并修改PATH变量以将恶意软件伪装成合法的postmaster命令。为了实现持久化攻击者修改crontab以安排其定期执行。最后该攻击使用内存执行来清除其他潜在的挖矿程序连接到矿池并进行自我复制。执行的命令行总是用Base64编码以隐藏其语义信息。内存执行可以利用现有进程执行并抑制遥测使检测更加困难。我们随机选择了一台受此攻击影响的云主机并从攻击的第一天开始收集其日志进行测试。我们使用攻击前4天的日志进行训练。检测结果如表VI所示。从结果可以看出除了Nodlink之外大多数PIDSes的AUC较低并且只检测到一小部分恶意节点。原因类似于沙箱结果数据高度不平衡有大量进程节点。此外Base64编码等策略使攻击难以检测。相反涉及Base64命令行的恶意进程非常罕见以至于Nodlink可以有效识别它们。图5说明在 PIDS 部署之前就入侵受害者并试图窃取敏感信息的攻击。表 VII信息窃取攻击的检测结果。方法TPRFPRAUCTPTNFNFPMagic0.19190.34750.42163.0713518.5012.937199.50Flash0.25000.29550.48554.0014596.4012.006121.60Orthrus0.00000.00080.53990.0020702.0016.0016.00Kairos0.12500.25680.48402.0015398.0014.005320.00Nodlink0.95000.12700.937211.4010613.600.601543.40使用安全终端沙箱中的数据训练Magic0.77940.77970.445212.474565.103.5316152.90Flash0.26250.39150.42524.2012606.2011.808111.80Orthrus0.00000.00030.67040.0020711.5016.006.50Kairos1.00000.94750.571416.001087.000.0019631.00Nodlink0.73330.74690.55448.803076.873.209080.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提取关键信息如脚本名称和CC服务器地址。最后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 节点及其对应的实体。方法TPTP-实体FPFP-实体Magic14,808125112,8469,854Flash1131138,3688,368Orthrus0066Kairos2,06915625,57711,100Nodlink27,32911239,817321见解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) √(∑_{i0}^s (c_i - c_i)²)。在第 V 节的评估中我们设置 k2因为 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目标端口注册表键文件路径脚本脚本内容