基于评分迭代的无监督网络流量异常检测
平国楼, 曾婷玉, 叶晓俊    
清华大学 软件学院, 北京 100084
摘要:针对计算机网络流量异常检测中缺乏标注信息的挑战, 该文提出一种基于评分迭代的无监督异常检测方法。设计了基于自编码器的异常评分迭代过程来学习通用异常特征, 获取其初始异常评分。设计了基于深度序数回归模型的异常评分迭代过程来学习判别异常特征, 进一步提高异常评分准确性。另外, 还通过深度模型、多视图特征、集成学习提高检测准确率。在多个数据集上的实验表明, 在无标注信息的情况下, 该方法的性能相比对照方法具有明显优势, 可以有效地用于现实网络流量异常检测。
关键词计算机网络    异常评分    无监督    自编码器    深度序数回归模型    集成学习    
Unsupervised network traffic anomaly detection based on score iterations
PING Guolou, ZENG Tingyu, YE Xiaojun    
School of Software, Tsinghua University, Beijing 100084, China
Abstract: Network traffic anomaly detection is limited by the lack of annotation information in the traffic. This paper presents an unsupervised anomaly detection method based on score iterations that overcomes this limitation. An autoencoder based anomaly score iteration process was designed to learn generic anomaly features to determine an initial anomaly score. A deep ordinal regression model based anomaly score iteration process was then designed to learn discriminative anomaly features to further improve the anomaly score accuracy. Deep models, multi-view features and ensemble learning are also used to improve the detection accuracy. Tests on several datasets show that this method has significant advantages over other methods in the absence of annotation information and can be effectively applied to network traffic anomaly detection.
Key words: computer networks    anomaly scores    unsupervised    autoencoder    deep ordinal regression model    ensemble learning    

随着无线通信、5G网络、物联网等技术的发展,网络流量的获取变得更加容易,但对流量数据进行标记仍然面临着诸多不可逾越的困难,因此未来网络入侵检测必须在缺少标签的情况下进行。

近年来,为了在缺少标签场景下检测网络攻击,研究人员提出了大量的无监督入侵检测方法,基于异常检测的方法因具有检测新型攻击的能力更是成为主流。无监督流量异常检测的基本原理是通过建模历史正常行为,将所有违背正常特性的行为视为异常,因此通常假设训练数据集中仅有正常流量或者正常流量远远多于异常流量,主要有基于邻近性、基于重构和基于聚类分析的方法等。基于邻近性的方法假定异常点与近邻点的邻近性显著偏离正常点与近邻点的邻近性,常用算法主要有孤立森林[1]、局部异常因子[2]、KNN(k-nearest neighbor)[3]等。基于重构的方法假设异常点是不能被有效压缩或不能从低维映射空间被有效重构的,前者对应的方法主要有主成分分析[4]、鲁棒主成分分析[5]等,后者常用的方法主要有深度自编码器[6]等。基于聚类分析的方法是在无监督的情况下,将给定数据划分为簇,正常的簇与异常的簇明显不同,因此可以判断潜在恶意的簇,常用算法主要有k-means及其改进方法等[7-8]。然而,这些方法仍然以传统算法为主,难以处理高维数据,少部分深度学习模型仍然不能学习判别性的异常特征,并且这些方法通常仅利用网络流量的统计特征进行入侵检测,忽略了网络流量的时序特征,检测准确率低。

针对上述问题,本文提出一种基于评分迭代的无监督网络流量异常检测方法。设计了一种基于自编码器的异常评分迭代过程,提高了初始流量异常评分有效性。设计了一种基于深度序数回归模型的异常评分迭代过程,深度序数回归模型学习了更具异常判别性的特征表示,自训练迭代提升了流量特征表示和异常检测的有效性。为了解决传统算法无法处理复杂高维数据、忽略时序特征、检测准确率低等问题,分别采用深度模型、统计特征和时序特征结合、集成式无监督异常检测器来逐一缓解。在两类不同流量公开数据集上对该方法进行了实验验证。结果表明,在没有标注信息的情况下,该方法的性能与对照方法相比具有明显的优势。

1 基于评分迭代的无监督网络流量异常检测

图 1为本文提出的无监督异常检测(unsupervised deep anomaly detection,USDAD)方法框架,包括2个阶段。第1阶段为基于自编码器的异常评分迭代,本文使用自编码器来学习流量通用统计特征和时序特征,异质集成无监督异常检测器来获取流量初始异常评分。其中,初始异常评分最低的伪正常流量被用于替代原始流量来迭代学习更有效的流量通用特征和更准确的流量初始异常评分。第2阶段为基于深度序数回归模型的异常评分迭代,为解决现有方法不能学习判别异常特征的问题,本文选取初始异常评分最低和最高的伪正常和伪异常流量训练深度序数回归监督模型和异常检测器来提取更具判别性的流量特征表征并获取新的异常评分。该过程以自训练的方式不断迭代来提升流量异常检测器的性能。最后,集成每一轮迭代中的异常检测器实现最终的无监督流量异常检测。

图 1 无监督流量异常检测框架及模块

1.1 基于自编码器的异常评分迭代

基于自编码器的异常评分迭代过程见图 2, 包括2次基于自编码器的特征学习和异质集成无监督异常检测的迭代。

图 2 基于自编码器的异常评分迭代

1) 基于自编码器的特征学习。

考虑传统无监督异常检测方法难以直接处理复杂高维数据,本文使用深度模型来学习网络流量的通用特征表示。对于统计特征,选择降噪自编码器(DAE)[9]提取其抽象表示。对于时序特征,使用堆叠双向GRU(Bi-GRU)[10]自编码器作为特征提取器。编码器将原始输入编码为通用特征表示,解码器利用通用特征表示重构原始输入,并通过下列重建损失函数最小化来训练。

$ L(f, g)=\frac{1}{n} \sum\limits_{i=1}^{n} \operatorname{MSE}\left(g\left(f\left(x_{i}\right)\right), x_{i}\right). $

其中,fg、MSE、nxi分别为编码器、解码器、均方误差损失函数、训练批次大小和输入样本。此外,本文还以0.5的概率随机掩盖了网络输入层的节点,模拟输入数据的损坏,使自编码器能够拥有良好的抗噪声能力。

2) 异质集成无监督异常检测。

考虑不同类型异常检测算法可以发现不同类型的异常流量,本文通过异质集成无监督异常检测算法对学到的流量特征进行异常评分。除了常见的KNN算法之外,还集成了孤立森林[1]和COPOD(copula-based outlier detection)[11]算法。孤立森林算法认为异常点是分布稀疏且距离高密度分布的群体较远的离群点,因此可以将处于稀疏分布区域的数据点判定为异常点。COPOD算法通过使用copula统计概率函数对多维累计分布建模,估算多维数据的联合分布的极值概率作为样本的异常评分。为了提高算法的鲁棒性,KNN和COPOD本身也是由多个基模型集成得到(孤立森林本身作为集成算法,无需额外集成)。在得到3种模型之后,本文使用平均集成方式计算样本的初始异常评分:

$ S\left(x_{i}\right)=\frac{1}{3} \sum\limits_{j=1}^{3} S_{j}\left(x_{i}\right). $

其中Sj为每个方法得到的异常评分。

3) 特征提取与异常检测的二次迭代。

考虑原始网络流量中可能存在一定比例的异常流量,自编码器提取的特征通常还不能很好地区分正常流量和异常流量,本文进一步选用初始异常评分最低的β比例伪正常样本替代原始流量训练自编码器和异常检测器来获取新的初始异常评分。通过学习仅重构伪正常流量,自编码器能够提取更具差异性的正常流量和异常流量特征,因此训练得到的异常检测器能够获取更准确的流量初始异常评分。

1.2 基于深度序数回归模型的异常评分迭代

基于深度序数回归模型的异常评分迭代过程见图 3,实质上是深度序数回归模型和异质集成无监督异常检测器的迭代自训练过程。

图 3 基于深度序数回归模型的异常评分迭代

首先,考虑以异常检测为目的的判别特征表示通常比自编码器的通用特征表示更有效,使用流量初始异常评分最低的β比例和最高的α比例样本作为伪正常、伪异常样本训练一个深度序数回归模型来学习流量判别特征表示。在深度序数回归模型中,复用了自编码器的编码器结构,并增加了一个全连接层和异常评分计算层,其中自编码器和全连接层共同构成了深度序数回归模型的表征学习结构。在训练中,在原自编码器基础上进行微调,并采用了以下绝对值损失函数进行训练。

$ L(\rho)=\frac{1}{n} \sum\limits_{i=1}^{n} \operatorname{MAE}\left(\rho\left(x_{i}\right)-y_{i}\right). $

其中:ρ为深度序数回归模型;yixi的伪标签,值为0和1分别表示伪正常和伪异常标签。

然后,本文基于这些判别特征表示重新训练异质集成无监督异常检测器,获取新的流量异常评分。另外,这里使用的异常检测器与1.1节中基于自编码器的异常评分迭代阶段中的一致。

最后,考虑基于伪正常样本和伪异常样本训练得到的异常检测模型性能仍然有限,本文以自训练的思想不断选取异常评分最高和最低的伪异常样本和伪正常样本来迭代训练序数回归模型和异常检测器。最终,再次集成所有轮次的异常检测模型为每个样本计算最终的平均异常评分:

$ \text { anomaly_score }\left(x_{i}\right)=\frac{1}{T} \sum\limits_{t=1}^{T} \delta_{t}\left(\varphi_{t}\left(x_{i}\right)\right). $