网络流量异常检测综述
摘 要
随着网络安全威胁呈现出日益复杂的态势以及智能化和自动化的程度不断提升,在网络安全领域不断涌现新型攻击手段。这些前所未有的攻击行为对传统的基于特征码的安全防护机制构成了巨大挑战。在网络安全领域中通过分析网络流量的行为特征就可以识别出与常规流量存在显著差异的数据流这类动态行为分析技术不依赖于固定的静态特征码因而被视为应对未知新型网络攻击的有效手段。研究者们针对异常流量的检测开发出多种技术方案其中不仅包括基于统计学习法的设计还包括了无监督机器学习以及监督机器学习等不同类型的解决方案从数据特性构建到行为建模再到实际应用等多个维度对相关技术进行了全面梳理
内容目录:
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 结 语
随着网络技术的迅速发展及其带来的显著便利,在生产与生活等日常领域中得到了广泛的应用。然而伴随这一进程而来的是针对网络上主机以及基础设施的一系列恶意攻击行为。据 2021 年 Check Point 软件公司的安全报告显示:全球针对企业的网络攻击总量增长了 29%;其中美国企业每周平均遭受 443 次这样的攻击事件;而亚太地区平均每周则会遭遇 1338 次此类攻击行为。在这些频繁发生的事件中许多采用了新型类型的攻击手段与工具 这种做法导致传统依靠静态特征码进行检测防护的方式逐渐失去了效力。从流量层面进行实时监控并及时阻断异常流量是当前网络安全防护的主要策略之一:传统的基于流量侧的攻击检测方案依赖于分析人员提取出的静态特征码来进行识别 这种方法虽然能够快速响应 攻击一旦出现且其特征码未被纳入特征库则无法及时发现此类威胁 同时如果遇到加密数据包则由于缺乏解密能力同样无法获取有效的威胁线索 这就使得基于传统特征码检测方案的方法难以应对日益复杂的网络安全威胁
在正常工作状态下生成的网络通信行为与遭受攻击时所产生的通信行为之间存在显著差异,并且这种差异不会因负载数据被加密而消失。相反地,在网络安全环境中观察到与常规水平明显偏离的流量并不一定意味着存在恶意攻击活动。然而,在实际应用中由于网络安全环境的动态变化一些原本被视为正常的活动也可能会导致网络流量出现异常的变化这种情况较为罕见因此当能够在可靠模型的基础上将这类异常纳入可管理范围内就可以认为检测到的异常流量具有较高的可能性来自攻击活动后续可以通过其他技术手段进一步确认其性质
这一概念有着多样化的分类标准。研究者们如Kafadar等对其进行了详细阐述,他们将异常数据归类为与常规数据显著不同的样本群。Chandola等学者则将异常视为与清晰界定的正常行为存在本质差异的数据特征。Lakhina团队则侧重于从网络流量的角度分析,在这种情况下异常现象往往具有罕见性和显著波动性特征,从而表现出明显的区别于常规的情况。通过以上分析可以看出构建统一的标准来识别正常模式对于实现有效的异常检测至关重要
大量安全研究人员已深入网络流量异常检测领域,并开发出了多种实用有效的技术方案。在对现有技术方案进行深入研究时可以发现,在这一领域内的各种解决方案都将其关注的重点集中在如何准确高效地识别特定类型的数据流特征上。进一步研究表明,在这些解决方案中,一种特定的数据流类型往往会被多种不同的算法处理以确保更高的识别准确率。值得注意的是,在现有的各种解决方案中,并非所有的数据流类型都会被相同的算法所覆盖。相反地,在当前的技术体系中存在一种更为灵活的设计模式:一种特定的数据流类型可以通过与不同算法的有效结合实现最优的结果。基于此思路,本研究将重点考察现有技术中的两个核心维度:一是网络数据采集机制的具体实现方式;二是基于不同场景构建的异常检测算法模型之间的相互关系及其优化融合策略。同时,在总结现有技术的基础上并结合实际应用场景需求, 本文还将对未来的主要研究方向及可能的技术瓶颈问题作出展望。
01
网络流量数据采集

确定适合的流量数据类型对于异常检测至关重要。不同数据类型对网络流量的表征角度和表现能力各有差异。应根据不同具体应用场景及解决目标的需求,选择最合适的流量数据类型。依据KDD'99 数据集对流量特性的描述可知,网络中的流量特性可分为连接基础属性、连接内容属性以及流量统计属性三大类。值得注意的是,在深度学习技术的发展下,原始的数据包承载的信息可以直接用于实现异常检测任务。
1.1 连接的基本特征
连接的主要特性是\dots TCP/IP 族中不同层次与类型之间通信所形成的连接的基础属性信息, 涵盖以下信息: 连接持续的时间, 使用的协议类型, 发送的数据量以及接收的数据量等. 他们的研究利用 \dots TCP 连接的主要特性训练模型以实现异常检测.
连接的基础特征基于双方在通信过程中的基础信息与行为表现,并未涉及通信内容相关的属性;这使得对连接的整体描述显得不够完整,在加密流量检测场景中,则主要依赖于这些基础特征
1.2 连接的内容特征
该方法旨在对网络流量进行分析以识别潜在的安全威胁。通过提取可能指示入侵行为的关键特征,包括但不限于以下几点:首先,在同一连接中频繁访问系统敏感文件和目录;其次,在登录过程中出现异常尝试;最后,在请求处理中频繁使用 shell 命令。
连接的内容特征能够从内容上描述攻击,并表现出极高的准确性。然而,在该领域专家进行攻击分析后提取相关的内容时(即需要该领域专家对攻击进行分析后抽取与之相关的内容),该方法的人力成本较高,并且泛化能力有限,在加密流量场景中也无法应用。
1.3 流量统计特征
流量统计特征不再局限于单个连接,在一个指定时间窗口内或在指定数量的连接中提取能够反映攻击行为的特征。这些特征可以通过以下指标进行统计:在指定时间窗口内与当前连接的目的IP地址相同的连入次数;在该时间段与当前链接相关的源IP地址连入次数;以及与当前链接共享相同服务类型的服务的数量。另外还可以统计以下指标:在前n个链接中有多少与目标链接目的IP地址相同的连入次数;以及在前n个链接中有多少既共享目标IP地址又共享服务类型的情况。此外还可以关注以下几点:1)在一个特定时间段内发送到同一目标IP地址的所有数据包总量;2)新创建链接的数量;3)发送接收的数据包总数等信息。研究者如Thottan等人(Fontugne等人)以及Lim等人从局域网内部主机的角度出发,在一定时间段内分析主机之间流量特征以实现异常检测功能
在数据采集层面的重要性在于能够展示每个协议的动态特征。
1.4 原始负载
随着人工智能技术的进步, 网络通信实体的原始运行状态同样可以被用来构建训练数据集, 进行故障检测. 深度学习模型基于目标函数, 通过梯度下降和反向传播技术能够自动提取适应目标任务的特征.
通过使用原始负载特征无需进行特征工程;无需依赖领域专家的专业知识;然而这种方式要求大量样本数据,并且消耗大量计算资源;此外,在加载数据被加密的情况下模型难以达到理想的效果。
02
检测模型

现有的多种检测技术各有特定的应用场景及局限性。此外,在本质层面上很多检测技术要么属于同一种类型要么相互补充。从一开始的研究阶段仅依赖统计分析的方法逐步发展出结合机器学习以及深度学习方法的过程。它们的核心目标在于尽可能清晰地区分正常网络流量与异常网络流量的本质特征。根据不同具体情况可以选择单一类型的数据流(如正常数据流)或混合类型的数据流(如将正常数据流与异常数据流结合)来进行建模分析。
检测系统由一系列算法构成,在分析过程中会基于提取的特征向量学习识别正常流量模式或区分正常与异常流量间的差异。从整体上看,在实际应用中这些检测方案通常会被划分为统计分析方法、有监督分类技术以及无监督学习体系等几大类别;具体采用哪种方案则需根据处理的数据规模、网络流量特性以及实际应用场景进行合理匹配。
2.1 统计模型
统计模型已被广泛应用于异常检测领域,在这一领域的应用中其主要用途是当异常发生时点的网络数据会有显著变化的情况。这些模型通常都具备一个学习阶段,在这个阶段中会收集到所提取的流量数据作为基础数据集来建立这些模型。
2.1.1 简单统计模型
Rousseeuw 等人 采用了 3σ 模型来建模网络流量的各项指标。该模型首先计算历史数据的均值与方差,并基于均值上下波动着 3个标准差的范围区间作为正常流量指标的取值范围。超出该范围区间的则被判定为定位异常事件。其核心理念源自正态分布置信区间理论,在流量变化较为平稳的情景下具有简便易行的优势。但这种方法在复杂多变的场景中容易出现过高的误报率,并且当历史数据中存在极端异常值时,其检测效果会受到显著影响。
为了消除历史数据中可能存在的异常值所带来的影响, Vinutha 研究团队 采用基于分位数的方法进行数据异常检测. 分为多个相等部分的数值点被称为 分 例如 常见类型包括 中间水平线、四分数范围以及百分比区间. 如图所示

图 1 四分位数箱体
基于四分位数进行异常值识别的主要方法是图基检验;如以四分位数为例,则异常检测的公式表现为:

式中:

通常指一四分位数、二四分位数及三四分位数;其中x代表待分析的数据集;而k代表异常程度调节因子,在具体应用中其取值范围通常设定在1至5之间以确保算法稳定性和有效性
运用分位数方法所使用的分位点及分位距具备抗噪声的能力;其相对于均值-方差方法显示出更高的鲁棒性;但该技术主要局限于数据变化平稳的网络环境
2.1.2 基于协方差矩阵的模型
协方差矩阵被定义为一个二阶统计量,在网络分析中具有重要应用价值。研究者Yeung等人采用协方差分析方法来检测网络中的泛洪攻击。通过建立基于该方法的网络流量模型来生成协方差矩阵样本,并从中提取统计信息以识别泛洪攻击。通过分析协方差矩阵的变化以及相关特征间的差异性来区分正常流量与泛洪攻击流量的不同。研究者Xie等人通过引入随机变量的概念来处理相邻数据段集合,并利用空间可预测性概念来整合相邻数据段的信息以确定那些异常的数据段。为了减少计算复杂度的影响,在构建样本协方差矩阵时采用了与Spearman秩相关系数及差分压缩概念相似的方法。
基于协方差矩阵的方法适用于处理特征维度较低的情况,在特征维度过高的情况下,计算复杂度将呈指数级上升趋势
2.1.3 基于隐马尔可夫的模型
隐马尔科夫模型可用于建模序列数据,在分析网络流量时所获得的部分数据呈现为时间序列形式;基于隐马尔科夫模型的方法能够有效识别出时间序列中的异常行为。
该研究团队提出了一种基于隐马尔可夫模型的方法用于在无线传感器网络中检测LTE信号异常。首先,他们通过对正常唤醒包生成过程的时间-空间特征建立隐马尔科夫模型,并设定一个对数值作为判别标准。其次,通过代入观测数据到模型中进行计算,当计算得到的概率值低于设定阈值时,则认为该信号属于异常状态。
研究者们借助隐马尔可夫模型分析工控网络中的命令互动模式以识别异常流量。随后,在分析正常工作状态下的网络流量时提取关键互动序列。通过上述关键序列训练构建隐马尔科夫模型。最后应用此优化后的模型识别不寻常的行为模式。
通过隐马尔可夫模型可以从行为序列的维度对网络流量展开分析研究,并进一步识别出异常行为模式;然而,在实际应用中当处理过长的行为序列时可能会导致计算结果出现下溢问题;此外,在建立这类模型时通常需依据具体业务需求由相关领域的专业人士来确定其内部的状态数量
2.2 监督分类模型
该监督学习型的分类型算法旨在利用获取的正常流量与异常流量进行训练以生成一个二分类器;然后使用此二分类器对未知数据进行分门别类;其常见应用模式通常包括首先在离线环境中收集海量正常流量与异常流量数据;随后经过预处理及特征提取后用于训练分类型模型;最后将训练好的分类型算法部署至产品端以便识别并监控异常流量;如图所示即为该算法的整体工作流程框架。

图 2 线下训练监督分类模型
一般来说,在监督学习中能够观察到正常数据流与异常数据流的情况下也能够更有效地学习两者之间的差异但实际情况并非如此
另外,在任何情况下,流量数据与网络环境紧密相连。由于不同网络环境下正常流量之间的差异普遍较大,在面对异常流量时,在一个或几个环境中训练建立起来的模型部署到其他环境中时就很难良好运行。
为了解决监督学习模型在离线训练过程中的局限性问题, 研究者 Forestiero 等人(参考文献[20])提出了基于在线学习框架的监督学习模型优化方法. 该方法通过收集和分析实时网络流量数据特征作为训练样本, 并在此基础上构建相应的预测模型. 其总体工作流程如图 3 所示

图 3 在线训练监督模型
采用其他异常检测技术对流量进行初步筛查后,并将其标记为相应的标签;当标记的数据量达到一定规模时启动监督模型的训练过程,并设定一个收敛终止条件;当训练指标满足该条件后自动终止模型训练过程;随后将训练好的监督学习模型部署至流量检测系统中执行异常流量识别任务;在预测环节首先设定一个置信度阈值,在其异常或正常概率超过或达到置信度水平时给予相应分类并加入数据集;其余未被分类的数据则暂存起来;待模型更新完成后利用新版本模型继续对暂存区数据进行识别筛选;将满足异常或正常概率判定标准的数据重新打上标签并从暂存区移除;重复上述操作直至暂存区无数据为止
监督分类模型既包括逻辑回归等传统的机器学习算法也包括卷积神经网络(CNN)、长短时记忆网络(LSTM)、深度残差网络等前沿的深度学习架构
刘等人提出了一种基于原始报文信息载体的新颖异常检测方案。该方案摒弃了传统特征工程阶段,在设计过程中直接采用了经过预处理后的原始负载数据作为输入。其中,CNN模型接收的是经过分词和词嵌入处理后的矩阵形式数据,RNN模型则将连续n个字符的ASCII值序列作为其输入。尽管这种深度学习方法能够自动从原始负载中提取特征并实现分类,但其依赖于大量高质量样本数据进行充分训练的前提条件也必须明确,否则容易陷入过拟合状态。因此在实际应用中,该方法在训练数据上取得了较好的效果,但在实际应用中的表现则较为有限。
2.3 无监督模型
无需预先收集训练数据即可运行,在线数据环境中进行实时学习与异常检测的能力使得其应用范围非常广泛
2.3.1 基于聚类算法的模型
聚类方法是一种典型的无监督学习分类方法,在此过程中数据集仅包含数据特征而缺乏类别信息。该过程的主要目标是将被系统地分组为若干个互不重叠的群组或者类簇。基于不同优化目标的K均值聚类(K-means)和基于密度峰值的DBSCAN(Density-Based Spatial Clustering of Applications with Noise, DBSCAN)等经典方法均可应用于此类问题建模与求解。其性能高度依赖于相似性度量方案的选择,在实际应用中通常会采用欧式距离和闵可夫斯基距离等指标来表征数据间的差异性特征。对于二维空间中的数据分布情况,请参考图4的可视化展示。

图 4 聚类
Pu 等人采用了基于聚 cluster算法的混合策略来实现 异常检测。具体而言,在学习期间内他们收集了大量网络流量 数据作为训练集。当这些 数据被完全收集后,则使用 聚 cluster算法对其进行分组。最终将这些分组结果分成 两个类别:较小的数据量被视为 异常类别。当新的 流量信息到达时 计算其所属分类群:若属于 正常分类群 则视为正常的网络行为 若属于 异常分类群 则被视为 异常行为 并根据此 更新当前 的分类群结构
聚类算法的高度依赖于数据之间距离度量的表现。当这种距离度量未能充分反映数据间的相似性特征时,在基于聚类算法构建的模型中会出现较多的误判与遗漏情况。
2.3.2 基于孤立森林的模型
该模型采用集成学习的方法对数据进行建模与传统方法不同的是,在识别数据间相似程度或异常程度时它采用独特的机制即通过构造多棵独立构建的二叉搜索树对样本点进行隔离处理以识别异常值这种机制使得其在处理高维数据以及噪声数据方面具有显著优势与传统基于距离或密度的方法相比该方法更加注重局部结构特征从而能够更准确地捕捉潜在的异常模式同时由于其基于多棵树构建的特点整体性能表现更为稳定然而由于每棵树都需要单独构建并在预测过程中需要综合考虑所有决策路径因此计算复杂度相对较高
Li 等人提出了一种基于孤立森林的方法来进行网络流量异常检测,在这种方案下可以达到极低的误报率。该方法的基本思想是通过随机选取一定数量的样本作为树的根节点,并通过随机选择特征维度将节点进行二分划分,直至所有叶子节点仅包含一个样本或达到设定的最大深度为止。由于异常数据数量极少且与正常数据具有较大的疏离性,在这种情况下这些异常样本会被较早地被隔离出来。Tao 等人则在此基础上提出了一个结合孤立森林模型和 Spark 并行计算框架的新算法,在充分挖掘孤立森林并行特性的基础上实现了对大规模网络流量数据的有效分析,并且通过 Spark 的分布式计算能力显著提升了整体处理效率的同时也进一步验证了该方法在实际应用中的可行性与有效性
isolated forest 在 异常流量检测 方面具有的优点是可以在线性时间复杂度下运行,并且能够有效地在海量数据集中进行训练。此外由于每棵树都是独立的 它非常适合通过并行计算部署到大规模分布式系统中以提高运算效率 因此能够在较短时间内完成大量数据处理任务。然而 在 特征维度特别高的情况下 孤立森林并非非常适用 主要原因是在这种情况下存在大量未被利用的信息维度 这降低了算法的可靠性和检测能力
2.3.3 基于自编码器的模型
自编码器是一种无监督学习模型,并属于神经网络领域的一部分。它通过使用一个编码器将输入的特征向量映射至另一个较低维度的隐式表示空间中,并随后利用解码器将其还原为与原始数据具有高度相似性的输出。在这一系列过程中使模型得以学习并掌握输入数据的整体分布规律,在这种情况下当符合训练数据分布规律的数据经过上述过程处理后其重建结果与原始数据之间的误差会相对较小;而对于那些不符合训练数据分布规律的数据其重建误差则会显著增大。基于这一特性可以看出,在实际应用中我们可以利用自编码器来识别异常流量
Qiu等人基于自编码器构建正常流量模型,并通过该模型实现异常流量检测的整体表现令人满意。具体而言:
首先,在线下构建一个自编码器架构。
基于收集到的多组流量数据对该架构进行训练;
随后,在线部署训练完成后的模型至相关系统中。
通过应用学习期内的历史数据对该架构进一步优化;
最终通过对优化后架构的学习期内数据进行压缩重建,并计算重建均方误差作为评估指标。

计算样本数据集的协方差矩阵Σ,并在此基础上构建对应的逆协方差矩阵Σ⁻¹;随后,在这一框架下构建广义重构损失函数L = tr(Σ⁻¹E),其中E代表重构误差矩阵;最后,在评估阶段中使用该损失函数对未知数据样本进行评估;当自编码器对输入数据进行重构后的误差E = ||X - X̂||₂²超过设定阈值T时,则认为该数据样本属于异常流量。
尽管自编码器具备较强的拟合能力,但其应用前提是必须利用大量数据进行训练以掌握数据的整体分布特征。当数据样本数量较小时,模型容易出现过拟合的现象:即训练集上的重构误差相对较小,在测试集上的重构误差却显著增大,并会导致误报率较高。
2.3.4 基于 LSTM 的模型
LSTM 属于一类独特的循环神经网络架构,在深度学习领域具有重要的地位。该算法特别适用于处理具有顺序特性的数据,并成功解决了传统 recurrent neural networks 在训练过程中面临的问题:当模型深度较大时容易导致梯度消失或梯度爆炸现象的发生。特别是在分析涉及时间依赖性的复杂序列数据时(如时间序列预测问题),基于 LSTM 的模型表现出色,并能有效地提取出这些特殊场景下的统计规律和特征信息。
Li 等人构建了一种基于 LSTM 的单分类模型,在端到端系统中实现对异常流量的实时检测能力。该模型通过 LSTM 网络将流量数据映射至单一数值空间,并采用自定义损失函数与预设边界值相结合的方式进行模型训练。在每轮迭代中根据模型输出不断优化边界值并持续进行模型再训练直至达到收敛状态。该系统具备较强的抗噪声能力支持在线学习机制并在设定的学习期间内使用部署在网络环境中的实时流量数据进行在线学习以实现异常行为的有效识别阶段性的系统运行状态能够根据当前处理的数据动态调整其检测阈值从而提升整体系统的性能表现
此外,在现有方案中可用作替代方案的门控循环单元(Gate Recurrent Unit, GRU)网络也可应用于该方案中。GRU可视为LSTM的一个简化模型,在性能表现上与LSTM相似但计算复杂度较低
该无监督模型利用LSTM架构对有序网络流量数据进行建模以实现异常检测 借助其强大的学习能力 这类无监督方法通常表现出色 然而由于该类模型架构较为复杂 需要大量的训练数据以及较高的计算资源 并且其训练过程所需的时间也相对较长
03
未来研究方向及挑战

本文所研究的方法仍依赖领域专家通过对网络流量的深入分析提取出特征向量来进行异常检测。这一过程会导致网络流量部分信息的丢失,并且需要根据不同应用场景选择相应的特征组合。如何尽量减少对人工干预的依赖,并将网络流量中除承载数据外的相关信息以准确、全面且便于算法处理的方式表示出来,则是未来研究的重点方向之一。在此方向上的主要挑战在于计算复杂度较高,在对性能要求较高的场景中可能需要借助硬件加速来提升效率。
04
结 语

本文从网络流量数据采集与检测机制两个维度展开了深入研究。在数据采集方面,则从连接的基础特征、内容特征、流量统计特征以及原始负载四个维度进行了详细探讨,在此过程中不同类型的特征对网络流量的描述能力各具特色,并根据具体应用场景选择合适的特征表示方式。在异常流量检测领域中存在三种主要类型:统计建模方法、监督分类方法以及无监督建模方法等;目前的研究重点主要集中在基于无监督建模方法对正常流量进行建模并识别异常流量上;在这个过程中深度学习技术因其强大的表征提取能力逐渐成为研究热点;特别是在某些应用场景下传统的特征工程方案已被深度学习框架中的自动表征提取模块所取代;与此同时基于序列记忆特性的隐马尔科夫模型也在逐步被长短时记忆型神经单元(LSTM/GRU)等先进架构所替代;鉴于网络流量呈现出多变性和复杂性的特点因此在异常流量检测领域中没有一种单一算法能够完美应对所有情况;只有深入了解各类算法的特点及其适用场景与侧重点并灵活且综合运用多种算法才能达到更好的检测效果
本文从网络流量数据采集与检测机制两个维度展开了深入研究
