摘要
随着网络攻击的日益复杂化、自动化和智能化,网络中不断出现新的攻击类型。这些前所未有的新攻击给基于特征码的网络攻击检测和响应带来了巨大挑战。网络流量异常检测可以通过分析网络流量来检测出明显不同于正常流量的流量。由于它不依赖于静态特征码,被视为检测未知新攻击的有效手段。研究人员提出了许多异常网络流量检测方案,包括统计学习、无监督机器学习和有监督机器学习。从流量特征、特征工程到检测模型,再到应用场景,对这些方案进行了系统总结。
内容目录:
1网络流量数据收集
1.1连接的基本特征
1.2连接的内容特征
1.3交通统计特征
1.4原始负载
2检测模型
2.1统计模型
2.1.1简单统计模型
2.1.2基于协方差矩阵的模型
2.1.3基于隐马尔可夫模型
2.2监督分类模型
2.3无监督模型
2.3.1基于聚类算法的模型
2.3.2基于孤立森林的模型
2.3.3基于自编码器的模型
2.3.4基于LSTM模型
3未来的研究方向和挑战
4结论
传统的流量端攻击检测方案依赖于分析师在分析攻击流量后提取的静态特征码。该方案的检测速度极快,但检测精度严重依赖于特征库。如果攻击的签名不包括在特征数据库中,则该方案不能检测到该攻击。此外,一些攻击对其流量进行加密,不解密就无法从负载中提取签名,这导致传统的基于签名的检测方案无法检测到加密的流量。
正常情况下产生的网络流量与攻击情况下产生的网络流量的通信行为有明显的不同,这种不同不会因为负载数据被加密而消失。反过来,如果网络中的流量明显不同于正常流量,是否说明网络中存在攻击?答案是不一定。由于网络复杂多变的特性,一些正常的行为也会导致网络流量的不同变化。但是这种情况比较少见,如果有一个好的模型正常流动,这种情况可以控制在一个小范围内。因此,当从网络中检测到异常流量时,有较大概率是攻击产生的流量,是否是攻击可以通过其他手段进一步验证。鉴于此,网络流量异常检测常用于检测未加密流量和加密流量中未知的新攻击,不依赖于传统的静态特征库。通过分析网络流量的通信行为,可以检测出明显不同于正常流量的流量,从而发现潜在的攻击行为。
异常的概念有许多不同的定义。Kafadar等人将其定义为一组看起来与其他数据不同的数据。Chandola等人认为,异常是偏离明确定义的正常行为的数据模式。Lakhina和其他人将网络中的异常定义为网络流量水平的不频繁发生和巨大变化。通过这些定义可以清楚地看出,如何定义正常状态是异常检测的关键步骤。
许多安全研究者在网络流量异常检测领域进行了研究,并提出了许多可行的技术方案。通过对这些技术方案的研究可以发现,从网络流量端进行异常检测的方案,都是把采集什么样的流量数据,使用什么样的算法作为重点。在这些方案中,流量数据和算法没有紧密耦合。事实上,一种流量数据需要用许多不同的算法来处理。同样,一种算法也可以处理不同种类的交通数据,技术人员可以根据实际应用场景自由组合交通数据和算法,获得最优的检测方案。为了实现这一目标,本文将从网络流量数据采集和异常检测算法模型两个维度对相关检测技术进行总结,并预测未来的研究方向和可能面临的挑战。
01网络流量数据收集收集什么样的流量数据是异常检测中非常重要的问题。不同的数据描述网络流量的角度和能力不同,需要根据实际应用场景和要解决的问题选择合适的流量数据。根据KDD 99数据集对特征的描述,网络中的流量特征可以分为三种类型:连接的基本特征、连接的内容特征和流量统计特征。此外,随着深度学习技术的出现,数据包的原始负载也可以直接用于异常检测。
1.1连接的基本特征
连接的基本特征是由传输控制协议/网际协议(TCP/IP)族中不同级别和不同种类的协议建立的连接的基本属性信息,包括但不限于连接的持续时间、使用的协议类型、发送的数据量和接收的数据量。Jadidi等人和Bartos等人使用传输控制协议(TCP)连接的基本特征训练模型来检测异常。
连接的基本特征使用的是通信过程中双方的一些基本信息和行为信息,不包括与通信内容相关的特征,所以对连接的描述不够全面,但是在加密流量检测的场景下,主要取决于连接的基本特征。
1.2连接的内容特征
连接的内容特征是分析连接中的负载数据,提取可能反映入侵行为的特征,包括但不限于访问连接中系统敏感文件和目录的次数、登录失败的次数、shell命令的次数等。
连接的内容特征可以从内容上描述攻击,准确率较高,但需要该领域的专家对攻击进行分析,提取相关内容,人工成本高,泛化能力有限,无法用于加密流量场景。
1.3交通统计特征
流量统计特征不再是针对单个连接,而是能够反映特定时间窗口或特定数量连接中的攻击行为的特征。可以统计当前连接的目的IP地址相同、当前连接的源IP地址相同、当前连接的服务类型相同等的连接数。还可以统计前n个连接中与当前连接的目的IP地址相同的连接数量,前n个连接中与当前连接的目的IP地址和服务相同的连接数量等。还可以统计指定时间窗口内发送到同一个目的IP地址的数据量,新连接的数量,收发的数据包数量等。Thottan等人、Fontugne等人和Lim等人从局域网内主机的角度出发,统计一台主机与其他主机在指定时间窗口内的流量特征,进行异常检测。
在协议层收集数据的好处是可以反映每个协议的变化,可以发现与特定协议密切相关的攻击。与基于连接的特征相比,流量统计特征可以从更宏观的角度描述网络流量,反映多个连接之间的关系,可以用来发现复杂和持续的攻击。
1.4原始负载
随着深度学习的发展,消息中的原始负载也可以作为异常检测的训练模型。深度学习模型可以根据目标函数,通过梯度下降和反向传播技术,从原始负载中自动提取适合目标任务的特征。
使用原有的负载特征不需要特征工程,可以减少对领域专家的依赖,但是这种方法需要大量的样本数据,消耗大量的计算资源。此外,当载荷被加密时,模型很难收敛到理想水平。
02检测模型目前的检测技术都有相应的使用场景和局限性。同时,很多检测技术本质上是同一类型或者是互补的。从最初基于统计的方案,到后来基于机器学习和深度学习的方案,核心都是尽可能准确地刻画正常流量和异常流量的区别。根据实际情况,可以采用正常流量、攻击流量以及正常流量和异常流量的组合来建模。
检测模型由算法组成,利用提取的特征向量学习正常流量的规律或正常流量与异常流量的区别。一般来说,这些模型可以分为统计模型、监督分类模型、非监督模型等。不同的数据量、数据类型和应用场景需要选择不同的检测模型。
2.1统计模型
统计模型广泛应用于异常检测领域,其主要应用场景是异常发生点的网络数据会发生剧烈变化。统计模型需要有一个学习期,在此期间,提取的流量数据将被记录下来,然后用于创建统计模型。
2.1.1简单统计模型
Rousseeuw等人使用3模型对网络流量中的各种指标进行建模。该模型首先计算历史数据的均值和方差,然后将均值波动的3个标准差的范围作为正常流量指标的取值范围,如果超过这个范围,则判定为定位异常。该方法的主要思想来源于正态分布的置信区间,优点是计算简单,但只能应用于流量变化稳定的场景,在其他复杂场景下会出现过高的误报,并且如果用于计算均值和方差的历史数据中存在极端异常值,检测结果会有较大偏差。
为了消除历史数据中异常值的影响,Vinutha等人使用分位数来检测异常。分位数是指将一个随机变量的概率分成若干个相等的数值点,如二进制(中位数)、四分位数和百分位数。图1显示了一个四分位方框。
图1四分位数方框
使用四分位数进行异常检测主要通过图形库测试。以四分位数为例,异常检测的公式可以表示为:
类型:
分别是一分、两分、三分;x是要检测的数据;k为异常系数,当k=3时,表示极异常;当k=1.5时,表示中度异常。
分位数法使用的分位数和分位数距离对噪声不敏感,比均值方差法更稳健,但这种方法只适用于数据变化稳定的网络环境。
2.1.2基于协方差矩阵的模型
协方差矩阵是二阶统计量,可以找出哪些变量对网络异常的影响最大。Yeung等人使用协方差分析来检测网络中的洪泛攻击。该方法用于对网络流量建模并形成协方差矩阵样本,使得时间序列样本中包含的统计信息可用于检测洪泛攻击。根据协方差矩阵的变化和相关特性的差异,揭示了正常流量和洪水攻击流量的区别。谢等在随机变量的帮助下,利用空间可预测性处理相邻数据段的集合,确定哪些数据段出现异常。为了降低计算复杂度,该方法使用了类似于Spearman秩相关系数的样本协方差矩阵和差分压缩概念。
协方差矩阵方法适用于低特征维数的场景。如果维数过高,计算复杂度会成倍增加。
2.1.3基于隐马尔可夫模型
隐马尔可夫模型可以对序列数据进行建模,网络流量中收集的部分数据是时间序列的格式。隐马尔可夫模型可以用来检测时间序列的异常。
Bang等人提出了一种通过使用隐马尔可夫模型来检测无线传感器网络中长期演进(LTE)网络中的信号异常的方案。首先利用隐马尔可夫模型对正常唤醒包生成过程的时空特性进行建模,并设置对数概率阈值。其次,将观测到的时空特征带入模型进行计算,如果得到的对数概率小于设定的对数概率阈值,则判定为异常。
Stefanidis等人使用隐马尔可夫模型对工业控制网络中的命令交互进行建模,以检测异常流量。首先,从正常的工业控制流量中提取关键交互流程段;其次,通过训练这些片段得到隐马尔可夫模型;最后,利用训练好的隐马尔可夫模型检测异常的命令交互过程。
隐马尔可夫模型可以从行为序列的角度分析流量,从而发现异常行为,但隐马尔可夫模型在处理长序列时存在计算下溢的风险。另外,模型中隐藏状态的数量一般需要领域专家根据应用场景来设置。
2.2监督分类模型
监督分类模型需要对获得的正常流量和异常流量进行训练,得到一个二元分类器,然后使用二元分类器对未知数据进行分类。监督分类模型常见的应用模式是离线获取大量正常和异常流量数据。经过预处理和特征提取后,这些数据将用于训练一个分类模型,然后将训练好的模型部署到产品中,以检测异常流量。该模式如图2所示。
图2离线培训督导分类模型
一般来说,监督学习因为可以同时看到正常流量和异常流量,所以可以更好地学习正常流量和异常流量的区别,所以在异常检测领域会有更好的表现,但事实并非如此。首先,在真实场景中获取正常流量很容易,而获取异常流量非常困难,导致异常流量样本数量少,覆盖面小。用这样的数据训练出来的样本容易过拟合,在训练集中表现很好,但在测试数据中表现很差。Catania等人提出了一种自标记网络流量的方法,以克服样本类别的不平衡,降低训练数据中的噪声。
此外,流量数据与网络环境密切相关,不同网络环境下的正常流量存在巨大差异,更不用说异常流量数据了。因此,在一个或几个网络环境中采集正常流量训练出来的模型,必然会部署到其他网络环境中。
为了克服监督模型离线训练存在的问题,Forestiero等人[20]提出了一种在线训练监督模型方案,利用当前网络流量数据进行训练,然后检测当前网络流量数据。该方案的总体思路如图3所示。
图3在线培训监督模式
首先使用其他异常检测技术检测流量,然后标记相应的标签。在标记数据达到一定数量级后,将开始监督模型的训练,在训练过程中会设定一个收敛条件。当训练好的指标达到收敛条件时,训练会自动停止,然后训练好的监督模型就可以应用到检测过程中。当使用监督模型进行预测时,首先需要设置一个置信度,即当监督模型预测流量异常或正常的概率大于或等于这个置信度时,将被标记为异常或正常,这些数据将用于更新模型,其他流量数据将被临时存储。模型更新后,用更新后的模型对暂存的交通数据进行预测,对概率大于或等于预测置信度的预测为异常或正常的数据进行标记并从暂存区中删除,重复上述过程。
监督分类模型既可以是逻辑回归、支持向量机、随机森林、梯度提升树等传统的机器学习模型,也可以是卷积神经网络(CNN)、长短期记忆网络(LSTM)、深度残差网络等深度学习模型。传统机器学习模型参数少,对样本数据要求低,资源消耗少,训练速度快,但学习能力不如深度学习模型强,需要依靠人工经验进行特征提取。深度学习模型需要训练大量数据,消耗大量资源,但模型学习能力强,可以直接利用原始数据实现端到端学习。
刘等人提出了一种利用原始消息载荷训练CNN和递归神经网络(RNN)模型的异常检测方案。该方案没有特征工程阶段,模型的输入是原始载荷经过简单处理后的数据。CNN模型的输入是经过分词和单词嵌入后的矩阵,RNN模型的输入是负载的前n个字符的ASCII值序列。这种利用深度学习模型从原始负载中自动提取特征并进行分类的模型可以取得很好的效果,但前提是需要大量不同类型和来源的样本数据来训练模型,否则模型很容易陷入过拟合的困境。因此,在实际应用中,深度学习模型在训练数据上可以取得较好的效果,但在实际应用中效果较差。
2.3无监督模型
无监督模型不需要训练数据,主要利用在线数据进行学习和检测,因此应用范围非常广泛。这种技术有一个前提,正常流量远远大于异常流量。如果这个假设不成立,那么在无监督模型中就会出现很多误报。无监督模型也需要一个学习期,系统会利用学习期的数据来训练模型。在此期间,模型不具备检测能力。当学习期结束时,该模型可用于检测异常流量。网络流量异常检测领域常用的无监督模型包括聚类、孤立森林、自编码器等。
2.3.1基于聚类算法的模型
聚类算法是一种典型的无监督学习算法。其主要目的是自动将相似的样本分类到一个聚类中。常用的聚类算法有K-means、DBSCAN等。聚类算法依赖于相似度计算方法,不同的相似度和算法得到的聚类结果会有所不同。常用的相似度计算方法有欧氏距离和闵可夫斯基距离。二维空间中的数据聚类如图4所示。
图4聚类
Pu等人采用了一种基于聚类算法的混合方法来检测异常。其思路是先积累学习期的流量数据,然后在数据积累后用聚类算法对这些数据进行聚类,最后聚类成两个簇,其中数据量小的簇称为异常簇。当观察到新的交通数据时,计算该数据所属的簇,如果属于正常簇,则判定该交通数据正常;如果属于异常簇,则判定流量数据异常,然后用流量数据更新簇。
聚类算法依赖于数据之间的距离度量。如果数据之间的距离度量不能很好地反映数据之间的相似性,那么基于聚类算法的模型会有更多的误报和漏报。
2.3.2基于孤立森林的模型
孤立森林是一种基于集成的模型,它不同于其他算法,用距离和密度来描述数据之间的相似或疏远。它使用孤立树的二叉查找树来隔离样本点以检测离群点。这片孤立的森林是由许多孤立的树木组成的。孤立森林中包含的孤立树越多,模型的稳定性越好,但预测时的计算量越大。
李等人利用孤立森林进行异常检测,可以实现低虚警率的异常检测。其思路是随机选取一定数量的样本作为孤立树的根节点,然后在孤立树的节点上递归随机选取一个特征维度将节点一分为二,直到所有节点只有一个样本,或者节点无法再细分,或者节点深度达到给定阈值。由于异常数据数量少,且与大部分正常数据有较大的疏离,所以异常数据会较早被隔离,即异常数据离根节点较近,正常数据离根节点较远。Tao等人提出了基于孤立森林和Spark的大规模并行网络流量异常检测算法。该算法充分利用了孤立森林的并行特性和Spark的分布式处理能力,能够快速处理海量交通数据。同时,由于处理数据的扩展,模型的检测精度大大提高。
使用孤立森林检测异常流量的优点是具有线性时间复杂度,可以在海量数据集上进行训练。而且由于每个孤立树都是独立的,非常适合通过并行方式部署在大规模分布式系统上,以加快运行速度。而孤立森林并不是特别适合特征维数特别高的场景,主要是因为在这种情况下,很多维度的信息都不会用到,会降低算法的可靠性。此外,高维空间中可能存在大量的噪声维度或无关维度,会降低模型的检测能力。
2.3.3基于自编码器的模型
自编码器是一种无监督学习模型,是一种神经网络。编码器将输入特征向量映射到另一个编码特征空间中的向量,然后解码器恢复编码特征空间中的向量。通过这样的过程,它可以学习输入数据的分布规律,使得编码还原后符合训练数据分布规律的数据与原始数据之间的误差相对较小,而编码还原后不符合训练数据分布规律的数据与原始数据之间的误差会较大。因此,基于自编码器的这一特性,可以检测到异常流量。
邱等人使用自编码器对正常流进行建模,然后使用正常流模型检测异常。该方案取得了良好的效果。首先,离线设计一个自编码器,并用采集到的流量数据对自编码器进行训练。其次,将离线训练好的自编码器模型部署到相关产品上,用学习期内的数据再次微调自编码器模型,直到检测精度达到预期精度或模型收敛。利用训练好的自编码器对学习周期内的数据进行编码和恢复,并统计恢复误差的平均值。
总方差
;最后,将自编码器应用于异常流量检测。对于输入数据,如果自编码器恢复误差大于
则判断为异常。
自编码器虽然有很强的拟合能力,但前提是需要使用大量的数据进行训练,这样才能学习到数据的分布规律。如果数据量小,模型容易出现过拟合,即训练数据重构误差小,其他数据重构误差大,导致误报较多。
2.3.4基于LSTM模型
LSTM是一种特殊的循环神经网络,主要用于处理序列数据,解决了长序列数据训练过程中的梯度消失和爆炸问题,所以对长序列数据也有很好的效果。网络流量中有许多长序列数据,使用基于LSTM的模型可以更好地了解这些数据的分布。
李等人提出了单分类模型,实现了端到端的异常流量检测。在该模型中,LSTM网络用于将交通数据映射到标量空间,用户定义的损失函数和预设的边界值用于训练模型。然后,根据模型的输出值不断更新边界值,并再次训练模型,直到模型收敛。该模型对数据噪声具有鲁棒性,并且可以在线训练。在设定的学习周期内,利用网络环境中部署的流量数据对模型进行训练,模型收敛后可用于异常检测。首先,经过训练的LSTM网络层将网络流量数据映射到标量空间中的一个值,然后将该值与学习到的边界值进行比较。如果小于或等于边界值,则判定为正常,否则判定为异常。
另外,上述方案中的LSTM网络可以用GRU网络代替。GRU是LSTM的简化版,与LSTM具有相同的效果,但更容易计算。
基于LSTM的无监督模型通过以序列形式对正常的网络流量数据建模来实现异常检测。由于LSTM模型的学习能力很强,这类模型往往具有良好的表现。但是由于模型的复杂性,需要的训练数据量和计算资源都比较大,模型的训练周期也比较长。
未来的研究方向和挑战本文研究的方法仍然依赖于领域专业人员对网络流量进行深入分析后提取的特征向量来检测异常。这个过程会丢失一些网络流量的信息,同时需要根据不同的应用环境选择不同的特征组合。如何减少对人的依赖,以准确、全面、易于算法分析的方式表达网络流量的相关信息,是今后需要重点研究的一个方向。这个方向的主要问题是计算量会比较大,在一些对性能要求比较高的场景下可能需要硬件加速装置。
结论本文从网络流量数据采集和检测模型两个方面对网络流量异常检测进行了深入研究。从连接的基本特征、连接的内容特征、流量的统计特征和原始负载四个方面讨论了网络流量数据收集。每类特征描述网络流量的能力不同,有各自的适用场景,需要根据实际应用场景选择合适的特征。异常流量检测模型有三种类型:统计模型、监督分类模型和非监督模型。目前主要的研究方向是利用无监督模型对正常流量进行建模,然后将偏离模型的流量识别为异常。
在这个过程中,深度学习模型由于其强大的表征学习能力,越来越受到研究者的重视。在某些场景下,传统的特征工程已经被深度学习模型中的特征提取层所取代,隐马尔可夫模型也逐渐被LSTM/GRU等模型所取代,由于网络流量复杂多变的特性,在网络流量异常检测领域,没有一个模型是万能的。只有了解各模型的特点及其适用场景和要点,灵活综合地使用各种模型,才能更有效地解决网络流量异常检测问题。
引用格式:吴,孙,曹朗,等.网络流量异常检测综述[J].信息安全与通信安全,2022(8):101-111。
作者简介
吴,男,学士,高级安全顾问,主要研究方向为网络安全检测模型分析与应用、网络安全异常流量检测、网络安全风险评估;
孙,男,学士,高级安全顾问,主要研究方向为网络安全、渗透测试、漏洞挖掘;
曹朗,男,学士,软件工程师,主要研究方向为渗透测试和主机安全风险评估模型;
谭天,男,硕士,高级工程师,主要研究方向为安全检测引擎和人工智能安全。
选自《信息安全与通信保密》,2022年第8期(为排版方便,参考文献已省略)