一. 引言
目前,对于恶意流量的识别,基于机器学习的检测技术愈发成熟。然而在高吞吐量的网络中,它对于流量特征提取的效率低,检测精确度低,不能实现实时检测。且由于攻击者在流量中注入了噪声,导致包级特征和流级特征不再适用,因此传统的机器学习技术不再可行。
本文介绍一篇来自ACM Computer and Communications Security 的文章《Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis》[1],主要介绍一种实时恶意流量检测系统Whisper,它是通过频域特征来实现恶意流量实时检测的高精度和高吞吐量。
二. 频域特征
文中开发了三步频域特征提取方法,通过流量的频域特征分析来提取流量的序列特征:
(1)将每个包的特征序列编码为特征向量,用于减少数据的规模;
(2)对编码后的特征向量分割,并进行离散傅里叶变换(DFT),用于提取流量的序列特征;
(3)对上述产生的频域特征作对数变换,用于解决数值不稳定而引起的浮点溢出问题。
三. Whisper
3.1
总体框架
Whisper恶意流量检测系统通过频域来提取流量的序列特征,因频域特征代表了报文序列的细粒度顺序特征,不受噪声报文的干扰,因此可以很好的实现鲁棒性检测。图1显示了Whisper系统的框架图。
图1 Whisper系统框架图
Whisper检测系统主要包括四种模块:
高速数据包解析模块:负责提取每个包的特征,如包的长度和到达时间间隔等,并向特征提取模块提供逐包特征序列,用于频域特征的提取,向自动参数选择模块提供编码向量。
频率特征提取模块:负责从每个包的特征序列中提取频域特征。以固定的时间间隔定期轮询来自高速包解析器模块的所需信息。并将逐包特征序列编码为向量,通过频域特征提取流量的序列特征。
自动参数选择模块:负责为特征提取模块计算编码向量。通过解决一个约束优化问题来决定编码向量,该问题减少了每个包不同特征之间的相互干扰。在训练阶段,该模块获取每个数据包并求解一个等价的可满足性模理论(SMT)问题来近似原问题的最优解。
统计聚类模块:负责从特征提取模块学习频域特征。在训练阶段,该模块计算良性流量频域特征的聚类中心和平均训练损失。在检测阶段,该模块计算频域特征与聚类中心之间的距离。如果距离明显大于训练损失,那么Whisper将会检测到恶意流量。
3.2
子模型介绍
3.2.1
频率特征提取模块
该模块通过轮询高速数据包解析模块(利用Intel DPDK来实现)来获取同一条流的N个数据包的逐包特征,并将数据包的逐包特征表示为矩阵如下:
对上述矩阵进行w线性变换以获得数据包的编码特征。通过步长分割向量获得帧数,对每个帧进行傅里叶变换来获得帧的特征频率。由于DFT输出的特征是复数向量,后续还需进行复数模与对数的计算。
在广域网中文章对于三种类型流量进行测试,选用1500个连续的包,提取包长度、协议类型和到达时间间隔等特征。对频域特征进行最小-最大归一化处理,并将结果映射到RGB空间中。图2反应出实际观察到的恶意流量比良性流量的频域特征区域更暗。
图2 三种典型流量攻击的频率特征映射到RGB空间的图谱
3.2.2
自动参数选择模块
自动参数选择模块可以对高速数据包解析模块产生的逐包特征序列进行向量编码。在这一过程中,通常将编码向量选择问题转化为约束优化问题,通过求解等价的SMT问题来获取原问题的最优解。以下是具体实现步骤:
假设可以用一组连续函数来描述逐包特征s(i)的变化,且所有包特征都是连续函数的采样,记为hi(t)。在限制整体范围的情况下,通过向量w来放大和叠加这些函数,并进行优化以使这些特征之间相互干扰最小化。
首先,可以先将编码向量w和叠加函数的范围绑定如下:
对函数的保序属性进行约束,确保包编码时各个包不同类型的特征之间不会相互干扰:
接下来通过优化w,使函数之间的距离最大,以使每个包特征之间的相互干扰最小化,得到优化对象:
而在具体实践中,需要将原点约束优化问题改造为具有优化对象的SMT问题,以近似最优解。最终,通过以下约束条件:
来获得使以下目标最大化的SMT问题的最优解:
3.2.3
统计聚类模块
该模块主要是用于学习从特征提取模块获得的频域特征的模式与所选择的参数。
训练过程中,该模块对于良性流量计算频域特征的聚类中心和平均训练损耗。为提高Whisper算法的鲁棒性,通过采用长度为W(win)的采样窗口对频域特征矩阵R进行分割,N(t)表示采样次数,l表示起始点,特征序列维度上对采样窗口取平均,聚类算法的输入r(i)表示为:
C(k)表示K(c)聚类中心,计算平均训练损失。对于每个r(i),找到最近的聚类中心C(i),并取平均L2范数作为训练损失,如下:
检测过程中,该模块计算流量频域特征与聚类中心之间的距离。对于每个给定的频域特征,在R上采样段N(t),长度为W(win)。在误差估计方面,可以找到最近的聚类中心C(i)作为r(i)的估计值,并计算L2范数作为估计误差:
如果估计误差loss(i)>= (0 x train_loss),可以认为统计聚类算法无法解析流量的频域特征,即该流量是恶意的。
四. 实验评估
4.1
数据集
实验使用来自WIDE MAWI Gigabit backbone network中的四组数据集,并在测试台上回放了四组与良性流量结合的恶意流量。具体数据如表1所示,包括:传统DoS和扫描攻击、多阶段TCP攻击、隐形TCP攻击和逃避攻击。
表1 攻击数据配置
4.2
准确性评估
对于Whisper检测系统,文中主要进行了精度方面的检测实验,以包级检测(Kitsune)、 流级统计聚类(FSC)、带有自编码器的流级频域特性(FAE)为基线,以TRP、FPR、AUC、EER为评价指标,在多种类型攻击数据下进行测试,其测试结果如表2所示。当AUC在0.931~0.996之间,EER在0.201之内时,Whisper可以检测到测试的所有攻击。
表2 在14种攻击下Whisper和基线的检测精度
4.3
鲁棒性评估
为验证Whisper的鲁棒性,假设攻击者将良性TLS流量和UDP视频流量注入恶意流量中,测试Whisper对于恶意流量的检测性能。实验发现,Whisper能更好的屏蔽混淆流量带来的干扰。实验结果展示如图3。
图3 采用以良性流量注入比为均值的规避策略的攻击检测精度
4.4
实时性评估
实验测试了总体检测时延的累积分布函数,如图4,发现在Whisper的检测时延在0.047~0.133秒之间。这表明Whisper可以实现高吞吐网络中的实时检测。
图4 延迟的累积分布函数
同样将Whisper、FAE、Kitsune在不同吞吐量下的累积分布函数做了比较,如图5。其中,Whisper能够达到11.35~13.22Gbps的平均吞吐量。与其他检测系统相比,Whisper吞吐量达到最高。
图5 三种检测系统的累计分布函数及吞吐量对比
五. 总结
本文介绍了一个实时恶意流量检测系统Whisper,通过频域分析利用流量的顺序特征,实现鲁棒攻击检测。Whisper具有有限信息损失的频域特征,因此既能达到较高的检测精度,同时又能达到较高的检测吞吐量。
参考文献
【1】Fu C, Li Q, Shen M, et al. Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis. In 2021 ACM SIGSAC Conference on Computer and Communications Security.
内容编辑:创新研究院 薛 甜
责任编辑:创新研究院 陈佛忠
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。