基于评分迭代的无监督网络流量异常检测
平国楼, 曾婷玉, 叶晓俊    
清华大学 软件学院, 北京 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). $

其中:T为总的自训练迭代轮次,δtφt分别为第t个轮次训练得到的异常检测器和序数回归模型的表征学习结构。

2 实验结果与分析 2.1 数据集

本文分别在常用的公开入侵检测数据集CSE-CIC-IDS2018[12]和DNS隧道攻击数据集CIRA-CIC-DoHBrw2020[13]中验证提出方法的有效性。为简化描述,下文中统一分别用IDS2018和DoHBrw表示上述数据集。在实验中,本文基于CICFlowMeter工具抽取了上述数据集中原始流量数据流级的6个时序特征和83个统计特征,并根据所需异常比率分别从所有的数据流级流量中抽取500 000条数据。实验中的训练集即测试集。为了保持数据集的原有特征分布,本文仅对整体的异常比率进行了调整,保持各个攻击类型的相对比率不变。

2.2 实验设置

在对照实验中,选取了一些最新的常用无监督异常检测方法:AE[6],基于正常流量训练的自编码器,通常效果会优于基于所有流量训练的完全无监督算法;Deep SVDD[14],基于正常流量训练的单分类无监督算法,通常效果会优于基于所有流量训练的完全无监督算法;CAE-l2 Cluster[15],完全无监督深度聚类算法;EnOD[1, 3, 11],完全无监督集成异常检测算法,集成了流行的孤立森林、COPOD算法和KNN算法;AE+EnOD,本文结合自编码器[6]和传统异常检测[1, 3, 11]构成的完全无监督深度异常检测方法。

在算法消融实验中,对提出模型的各个结构有效性进行了验证,主要包括:1) 集成方法有效性,分别使用单独的KNN、孤立森林、COPOD算法对USDAD的集成异常检测算法进行替换,并分别命名为KNN-USDAD、IForest-USDAD、COPOD-USDAD来测试集成算法有效性;2) 自训练机制有效性,保留了模型在不同轮次中的实验效果来验证自训练迭代的有效性;3) 多视图特征有效性,对比单独使用时序特征的方法SEQ-USDAD、单独使用统计特征的方法STAT-USDAD和同时使用2种视图特征的方法USDAD的结果。

考虑真实网络场景中流量类别极其不平衡的情况,使用AUROC(area under the receiver operating characteristic curve),以下简称AUC,作为主要评价指标。另外,本文的方法均通过Pytorch进行实验,其中异常检测器集成算法基于PyOD包[16]实现,模型的具体参数如表 1所示。

表 1 算法模型参数设置
参数 默认取值
编码器结构 (65, 100, 50, 25, 20)
解码器结构 (20, 25, 50, 100, 65)
GRU编码器结构 (2, 8, 8)
GRU解码器结构 (8, 8, 2)
学习速率 0.001
批次大小 512
统计特征异常评分计算层结构 (20, 1)
时序特征异常评分计算层结构 (100, 1)
自训练轮次T 6
伪异常样本比例α 5%
伪正常样本比例β 20%

2.3 实验分析

1) 不同流量异常比率实验分析。

为了验证提出方法的有效性,在IDS2018和DoHBrw数据集上,均以1%、3%、5%、10%、15%、20%(仅IDS2018)的流量异常比率分别进行了5次实验。2个数据集的实验结果分别如表 23所示,每个结果为5次实验的平均值。可以看到,USDAD在基于无标签流量训练的方法中始终保持着最优的结果,部分结果可以达到甚至超过基于正常流量训练的Deep SVDD效果。同时,随着流量异常比率的上升,USDAD的AUC指标呈现下降的趋势。这是因为随着流量异常样本比率的增加,无标签流量不再符合其中正常样本远远多于异常样本的假设。然而,真实网络环境中流量异常比率通常不超过10%,因此USDAD仍然能够保证良好的性能。

表 2 IDS2018不同流量异常比率实验AUC结果
训练数据 方法 1% 3% 5% 10% 15% 20%
正常流量 AE 0.607 4 0.683 8 0.681 5 0.673 6 0.678 8 0.674 3
Deep SVDD 0.807 1 0.802 4 0.708 2 0.834 8 0.688 2 0.761 2
无标签流量 CAE-l2 Cluster 0.779 1 0.712 2 0.619 9 0.610 6 0.631 6 0.622 6
EnOD 0.598 6 0.529 6 0.514 8 0.469 8 0.456 0 0.447 7
AE+EnOD 0.813 3 0.713 2 0.667 1 0.665 2 0.517 4 0.447 7
USDAD 0.855 0 0.933 6 0.824 4 0.765 0 0.745 4 0.628 5

表 3 DoHBrw不同流量异常比率实验AUC结果
训练数据 方法 1% 3% 5% 10% 15%
正常流量 AE 0.988 4 0.940 1 0.912 5 0.746 5 0.879 4
Deep SVDD 1.000 0 1.000 0 1.000 0 1.000 0 1.000 0
无标签流量 CAE-l2 Cluster 0.976 2 0.882 9 0.727 6 0.738 5 0.656 3
EnOD 0.574 1 0.565 3 0.631 7 0.507 0 0.457 7
AE+EnOD 0.956 3 0.951 1 0.946 4 0.850 0 0.780 3
USDAD 0.990 9 0.991 6 0.977 1 0.904 2 0.820 2

2) 不同异常流量类型实验分析。

为了验证提出方法对不同异常类型的检测性能,在IDS2018和DoHBrw数据集上均以5%和10%的流量异常比率,分别针对不同的异常类型进行了实验,实验结果分别如表 45所示,其中All表示包含蛮力攻击(Brute)、拒绝服务攻击(Dos)、分布式拒绝服务攻击(DDos)、渗透攻击(Infiltration)、僵尸网络攻击(Bot)的所有类型的综合性异常。可以看出,本文方法在检测综合性异常、蛮力攻击、隧道攻击(Tunnel)时具有较好的效果,而在检测拒绝服务攻击时的效果则略差。这可能是由于在无标签流量中拒绝服务攻击样本在数据集中所占的比例过高,因此容易被误认为是正常流量。

表 4 不同异常类型实验AUC结果(流量异常比率为5%)
训练数据 方法 IDS2018 DoHBrw
Brute Dos DDos Infiltration Bot All Tunnel
正常流量 AE 0.776 4 0.451 2 0.498 3 0.505 0 0.241 1 0.681 5 0.912 5
Deep SVDD 0.935 6 0.328 0 0.674 4 0.557 4 0.625 7 0.708 2 0.999 9
无标签流量 CAE-l2 Cluster 0.806 9 0.312 3 0.716 3 0.518 4 0.667 3 0.619 9 0.727 6
EnOD 0.649 5 0.250 4 0.403 9 0.485 6 0.201 7 0.514 7 0.631 7
AE+EnOD 0.849 8 0.515 0 0.564 3 0.537 9 0.598 6 0.667 1 0.946 4
USDAD 0.918 9 0.293 7 0.596 7 0.560 0 0.688 9 0.824 4 0.977 1

表 5 不同异常类型实验AUC结果(流量异常比率为10%)
训练数据 方法 IDS2018 DoHBrw
Brute Dos DDos Infiltration Bot All Tunnel
正常流量 AE 0.741 9 0.746 5 0.662 3 0.526 5 0.611 6 0.673 6 0.899 1
Deep SVDD 0.974 7 0.417 8 0.722 4 0.582 5 0.675 7 0.834 8 1.000 0
无标签流量 CAE-l2 Cluster 0.684 1 0.834 1 0.735 7 0.504 2 0.563 2 0.514 9 0.518 5
EnOD 0.562 2 0.235 0 0.371 3 0.473 0 0.156 9 0.469 9 0.501 7
AE+EnOD 0.801 1 0.249 1 0.369 2 0.470 4 0.435 6 0.665 2 0.850 0
USDAD 0.897 4 0.271 0 0.529 8 0.575 3 0.609 3 0.765 0 0.904 2

3) 算法消融实验分析。

(a) 集成方法有效性分析。

为了验证集成方法有效性,用单个异常检测算法代替集成方法进行实验,实验结果如表 6所示。可以看出,单个异常检测算法的效果各有差异,并且明显比集成异常检测算法差,这可能是由于不同异常检测算法能够适用和发现不同类型的异常。

表 6 单个和集成方法AUC结果
方法 IDS2018 DoHBrw
KNN-USDAD 0.717 8 0.271 0
IForest-USDAD 0.682 0 0.800 7
COPOD-USDAD 0.705 1 0.899 5
USDAD 0.765 0 0.904 2

(b) 自训练机制有效性分析。

为了验证自训练机制有效性,本文记录了流量异常比率为10%时不同自训练迭代轮次的实验结果,如图 4所示。可以看出,USDAD的AUC性能随着自训练迭代轮次的增加先上升后趋于平缓,对于部分异常类型来说,相比初始评分,USDAD最终评分的AUC性能有近10%的提升,这说明自训练机制能够有效提升算法的检测性能。

图 4 自训练机制有效性分析(流量异常比率为10%)

(c) 多视图特征有效性分析。

为了验证多视图特征有效性,本文将单视图特征方法与USDAD进行了实验对比,结果如表 7所示。可以看出,使用多视图联合评估的USDAD效果明显好于单一视图特征的方法,这可能是由于不同视图特征能够发现不同的异常类型,因此多视图特征联合可以检测更多的异常类型。

表 7 单视图和多视图特征方法AUC结果
方法 IDS2018 DoHBrw
STAT-SUDAD 0.598 3 0.835 6
SEQ-SUDAD 0.735 7 0.874 2
USDAD 0.765 0 0.904 2

3 结论

在缺乏标注信息的挑战下,本文提出了基于评分迭代的无监督网络流量异常检测方法。该方法通过两阶段的异常评分迭代提高了异常检测的性能,可以有效地用于真实的无监督网络流量异常检测。在公开数据集上的实验结果表明,该方法优于其他同类算法,达到甚至超过仅基于正常流量训练的无监督方法,对缺乏标注信息的大规模无监督网络流量异常检测具有较强的适应能力。下一步考虑使用更有效的集成异常评估方式如动态调整集成权重参数等;在自训练迭代学习中通过加入少量真实标签进行训练,进一步提升检测框架的准确率。

参考文献
[1]
LIU F T, TING K M, ZHOU Z H. Isolation forest [C]// Proceedings of the 2008 8th IEEE International Conference on Data Mining. Pisa, Italy: IEEE Press, 2008: 413-422.
[2]
ZHANG J, JONES K, SONG T Y, et al. Comparing unsupervised learning approaches to detect network intrusion using netflow data [C]// Proceedings of the 2017 Systems and Information Engineering Design Symposium. Charlottesville, USA: IEEE Press, 2017: 122-127.
[3]
ESKIN E, ARNOLD A, PRERAU M, et al. A geometric framework for unsupervised anomaly detection [M]// BARBARá D, JAJODIA S. Applications of Data Mining in Computer Security. Boston, MA, USA: Springer, 2002: 77- 101.
[4]
RINGBERG H, SOULE A, REXFORD J, et al. Sensitivity of PCA for traffic anomaly detection [C]// Proceedings of the 2007 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems. California, USA: Association for Computing Machinery, 2007: 109-120.
[5]
PASCOAL C, DE OLIVEIRA M R, VALADAS R, et al. Robust feature selection and robust PCA for internet traffic anomaly detection [C]// 2012 Proceedings IEEE INFOCOM. Orlando, USA: IEEE Press, 2012: 1755-1763.
[6]
MIRZA A H, COSAN S. Computer network intrusion detection using sequential LSTM neural networks autoencoders [C]// Proceedings of the 2018 26th Signal Processing and Communications Applications Conference. Izmir, Turkey: IEEE Press, 2018: 1-4.
[7]
MVNZ G, LI S, CARLE G. Traffic anomaly detection using k-means clustering [C]// Proceedings of Leistungs-, Zuverlässigkeits- und Verlässlichkeitsbewertung von Kommunikationsnetzen und Verteilten Systemen, 4 GI/ITG Workshop MMBnet. Hamburg, Germany, 2007: 13-14.
[8]
BOHARA A, THAKORE U, SANDERS W H. Intrusion detection in enterprise systems by combining and clustering diverse monitor data [C]// Proceedings of the Symposium and Bootcamp on the Science of Security. Pittsburgh, PA, USA: Association for Computing Machinery, 2016: 7-16.
[9]
VINCENT P, LAROCHELLE H, LAJOIE I, et al. Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion[J]. Journal of Machine Learning Research, 2010, 11: 3371-3408.
[10]
MANDIC D P, CHAMBERS J. Recurrent neural networks for prediction: Learning algorithms, architectures and stability[M]. New York: John Wiley & Sons, Inc., 2001.
[11]
LI Z, ZHAO Y, BOTTA N, et al. COPOD: Copula-based outlier detection [C]// Proceedings of the 2020 IEEE International Conference on Data Mining. Sorrento, Italy: IEEE Press, 2020: 1118-1123.
[12]
SHARAFALDIN I, LASHKARI A H, GHORBANI A A. Toward generating a new intrusion detection dataset and intrusion traffic characterization [C]// Proceedings of the 4th International Conference on Information Systems Security and Privacy. Funchal, Madeira Island, Portugal: SciTePress, 2018: 108-116.
[13]
MONTAZERISHATOORI M, DAVIDSON L, KAUR G, et al. Detection of DoH tunnels using time-series classification of encrypted traffic [C]// Proceedings of the 2020 IEEE International Conference on Dependable, Autonomic and SecureComputing, International Conference on Pervasive Intelligence and Computing, International Conference on Cloud and Big Data Computing, International Conference on Cyber Science and Technology Congress. Calgary, Canada: IEEE, 2020: 63-70.
[14]
RUFF L, VANDERMEULEN R A, GÖRNITZ N, et al. Deep one-class classification [C]// Proceedings of the 35th International Conference on Machine Learning. Stockholm, Sweden: PMLR, 2018: 4393-4402.
[15]
AYTEKIN C, NI X Y, CRICRI F, et al. Clustering and unsupervised anomaly detection with l2 normalized deep auto-encoder representations [C]// Proceedings of the 2018 International Joint Conference on Neural Networks. Rio de Janeiro, Brazil: IEEE, 2018: 1-6.
[16]
ZHAO Y, NASRULLAH Z, LI Z. PyOD: A Python toolbox for scalable outlier detection[J]. Journal of Machine Learning Research, 2019, 20: 1-7.