异常检测的革新:利用LLM提升命令行分类性能

本文介绍了Sophos AI在Black Hat USA 2025上的研究成果,通过结合异常检测与大语言模型(LLM)来增强命令行分类器性能,显著降低误报率并提升检测系统鲁棒性的创新方法。

异常检测的革新:利用LLM提升命令行分类性能

网络安全中的异常检测长期以来承诺通过识别与预期行为的偏差来发现威胁。然而,在识别恶意命令时,其实际应用往往导致高误报率——这使得它成本高昂且效率低下。但随着人工智能的最新创新,是否还有我们尚未探索的新角度?

在Black Hat USA 2025的演讲中,我们展示了开发不依赖异常检测作为故障点的流水线研究。通过将异常检测与大语言模型(LLM)相结合,我们可以自信地识别关键数据,用于增强专用的命令行分类器。

使用异常检测来供给不同流程,避免了无监督方法可能灾难性的高误报率。相反,我们在针对分类的监督模型中创造了改进。

出乎意料的是,该方法的成功并不依赖于异常检测定位恶意命令行。相反,当异常检测与基于LLM的标记配对时,产生了异常多样的良性命令行。在训练命令行分类器时利用这些良性数据,显著降低了误报率。此外,它使我们能够使用丰富的现有数据,而无需在生产数据中大海捞针般地寻找恶意命令行。

在本文中,我们将探讨实验的方法论,重点说明通过异常检测识别的多样化良性数据如何拓宽分类器的理解,并有助于创建更具弹性的检测系统。

通过将重点从仅寻找恶意异常转向利用良性多样性,我们为命令行分类策略提供了潜在的范式转变。

全新的方法

网络安全从业者通常必须在昂贵的标记数据集和嘈杂的无监督检测之间取得平衡。传统的良性标记侧重于频繁观察到的低复杂度良性行为,因为这易于大规模实现,无意中排除了罕见和复杂的良性命令。这种差距促使分类器将复杂的良性命令误分类为恶意,推高了误报率。

LLM的最新进展使得能够大规模进行高精度的基于AI的标记。我们通过标记真实生产遥测中检测到的异常(每天超过5000万条命令)来测试这一假设,在良性异常上实现了近乎完美的精度。明确使用异常检测来增强良性数据的覆盖范围,我们的目标是改变异常检测的角色——从不稳定地识别恶意行为转向可靠地突出良性多样性。这种方法本质上是全新的,因为异常检测传统上优先考虑恶意发现,而不是增强良性标签多样性。

使用异常检测与先进LLM(特别是OpenAI的o3-mini模型)的自动化、可靠良性标记相结合,我们增强了监督分类器并显著提升了其性能。

我们如何实现

数据收集与特征化

我们在2025年1月比较了两种不同的数据收集和特征化实现,每天应用每种实现以评估在代表性时间线上的性能。

全规模实现(所有可用遥测)

第一种方法处理完整的每日Sophos遥测,每天包括约5000万条唯一命令行。该方法需要使用Apache Spark集群和通过AWS SageMaker的自动扩展来扩展基础设施。

全规模方法的特征主要基于特定领域的手工工程。我们计算了几个描述性命令行特征:

  • 基于熵的特征测量命令的复杂性和随机性
  • 字符级特征编码特定字符和特殊标记的存在
  • 标记级特征捕获跨命令行分布的标记频率和重要性
  • 行为检查专门针对通常与恶意意图相关的可疑模式,如混淆技术、数据传输命令以及内存或凭证转储操作。

缩减规模嵌入实现(采样子集)

我们的第二种策略通过使用每日采样子集(每天400万条唯一命令行)来解决可扩展性问题。减少计算负载允许评估性能权衡和资源效率,这是一种成本较低的方法。

值得注意的是,该方法的特征嵌入和异常处理可以在廉价的Amazon SageMaker GPU实例和EC2 CPU实例上可行地执行——显著降低了运营成本。

与特征工程不同,采样方法使用从预训练的transformer嵌入模型生成的语义嵌入,该模型专门为编程应用设计:Jina Embeddings V2。该模型明确在命令行、脚本语言和代码库上进行了预训练。嵌入在语义上有意义的高维向量空间中表示命令,消除了手动特征工程的负担,并固有地捕获了复杂的命令关系。

尽管基于transformer模型的嵌入可能计算密集,但该方法较小的数据大小使其计算变得可管理。

采用两种不同的方法论使我们能够评估是否可以在没有显著检测性能损失的情况下获得计算减少——这对生产部署是有价值的见解。

异常检测技术

特征化后,我们使用三种无监督异常检测算法检测异常,每种算法因其独特的建模特性而被选择。隔离森林识别稀疏随机分区;修改的k-means使用质心距离找到不遵循数据中常见趋势的非典型点;主成分分析(PCA)定位在投影子空间中具有大重构误差的数据。

异常去重和LLM标记

初步异常发现完成后,我们解决了一个实际问题:异常重复。许多异常命令彼此仅略有不同,如小的参数更改或变量名替换。为避免冗余和无意中加重某些类型命令的权重,我们建立了一个去重步骤。

我们使用transformer模型(Jina Embeddings V2)计算命令行嵌入,然后通过余弦相似性比较测量异常候选的相似性。余弦相似性提供了嵌入表示之间语义相似性的鲁棒且高效的基于向量的度量,确保下游标记分析专注于实质新颖的异常。

随后,使用基于LLM的自动化标记对异常进行分类。我们的方法使用OpenAI的o3-mini推理LLM,特别选择其有效的对网络安全相关文本数据的上下文理解,得益于其在各种推理任务上的通用微调。

该模型自动为每个异常分配清晰的良性或恶意标签,大幅减少了昂贵的人工分析员干预。

LLM标记的验证显示了异常高的良性标签精度(接近100%),随后由专家分析员对整周异常数据的手动评分确认。这种高精度支持将标记的良性异常直接集成到后续分类器训练阶段,具有高信任度和最小的人工验证。

这种精心构建的方法论流水线——从全面数据收集到精确标记——产生了多样化的良性标记命令数据集,并在监督分类模型中实施时显著降低了误报率。

结果与见解

全规模和缩减规模实现产生了两个独立的分布,分别如图1和图2所示。为证明我们方法的泛化能力,我们增强了两个独立的基线训练数据集:正则表达式基线(RB)和聚合基线(AB)。正则表达式基线从基于静态正则表达式的规则中获取标签,旨在代表最简单的可能标记流水线之一。聚合基线从基于正则表达式的规则、沙箱数据、客户案例调查和客户遥测中获取标签。这代表了一个更成熟和复杂的标记流水线。

图1: 使用全规模方法在测试月内每天收集的命令行的累积分布。图表显示所有命令行、按唯一命令行去重以及按命令行嵌入的余弦相似性近去重。

图2: 使用缩减规模方法在测试月内每天收集的命令行的累积分布。缩减规模平台较慢,因为采样数据可能找到更多局部最优。

训练集 事件测试AUC 时间分割测试AUC
聚合基线 (AB) 0.6138 0.9979
AB + 全规模 0.8935 0.9990
AB + 缩减规模组合 0.8063 0.9988
正则表达式基线 (RB) 0.7072 0.9988
RB + 全规模 0.7689 0.9990
RB + 缩减规模组合 0.7077 0.9995

表1: 使用额外异常衍生良性数据训练的聚合基线和正则表达式基线模型的曲线下面积。聚合基线训练集由客户和沙箱数据组成。正则表达式基线训练集由正则表达式衍生数据组成。

如表1所示,我们在时间分割测试集和专家标记基准上评估了训练的模型,该基准源自事件调查和主动学习框架。时间分割测试集跨越训练期后的三周。专家标记基准密切类似于先前部署模型的生产分布。

通过整合异常衍生的良性数据,我们将聚合和正则表达式基线模型在专家标记基准上的曲线下面积(AUC)分别提高了27.97点和6.17点。

结论

我们展示了异常检测在丰富长尾中良性数据覆盖方面的卓越效用,而不是无效的直接恶意分类——这是一种增强分类器准确性和最小化误报率的范式转变。

现代LLM使得良性数据标记的自动化流水线成为可能——这是直到最近才不可能的事情。我们的流水线无缝集成到现有生产流水线中,突出了其通用和适应性强的性质。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计