《Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis》阅读笔记

时间:2021 ACM Computer and Communications Security Conference
作者:Chuanpu Fu, Qi Li, Meng Shen, and Ke Xu
下载地址:https://dl.acm.org/doi/abs/10.1145/3460120.3484585

阅读本篇论文所需的背景知识

  1. 频域
    我们日常看见的图像是展示在空域中的,而图像在空域中的具有很强的相关性,图像的某些特征在空域熵难以描述,这时就可以利用傅里叶变换将图像由空域转换到频域。在空域中相互交叉难以描述的特征,往往能够更直观、集中或分离的表现在频域中。

举个例子:图像傅里叶变换实验 视频中,在原图的基础上加上噪声后,在空域中图像变得难以识别,但是在频域中,仍旧可以较为容易的识别出。

一、研究背景

(一)现有研究方法:

  1. 传统的恶意流量检测通过根据预先配置的规则分析流量的特征来识别恶意流量。
    • 优点:在高带宽网络中实现高准确率;
    • 缺点:无法检测零日攻击。
  2. 基于ML的恶意流量检测方法的处理开销较大,不能实现实时检测。攻击者可以向数据包中注入噪音来规避基于ML方法的检测。
    • packet-level:分析每个数据包的特征序列,鲁棒性较差;且不能检测复杂的零日攻击。
    • flow-level:分析流统计特征,检测延迟较大;粗粒度的检测容易被规避。

(二)本文提出方法-Whisper

Whisper通过域频分析提取流的序列特征(称为频域特征),提取的特征有较小的信息损失,较低的特征冗余。频域特征表示数据包序列的细粒度顺序信息,这些信息不受注入噪音的影响,所以Whisper是稳定的。

  • 准确率:低有界信息损失能够保证准确率。
  • 鲁棒性:细粒度检测实现鲁棒性检测。
  • 实时检测:低特征冗余保证高通量流量检测。

二、威胁模型和设计目标

  1. 威胁模型
    (1)流量来源:中间盒通过端口镜像复制流量,并转发给检测系统。因此检测系统不会干扰良性流量的转发。
    (2)攻击类型:主动攻击,可以检测零日攻击。

  2. 设计目标
    (1)稳定的、准确的检测:可以检测零日攻击和逃避攻击。
    (2)在高带宽网络中能够实时检测:检测的延迟要足够低。

三、设计细节

1. High Speed Packet Parser Module(高速数据包解析模块)

(1)高速提取每个数据包的特征:数据包长度、时间戳和协议类型。
(2)将每个数据包的特征序列编码为向量。
(3)为自动参数选择模块确定编码向量。

2. Frequency Features Extraction Module(频域特征提取模块)

该模块工作在训练阶段和检测阶段,主要功能是以固定的时间间隔定期从高速数据包解析器模块轮询N个数据包的特征序列,并提取这些特征序列的频域特征。

(1)编码数据包特征:N个数据包的特征序列组成一个NxM的矩阵S,每个数据包序列有M个特征。
将每个数据包的特征进行线性组合,即每个特征乘上一个特征权重w,并相加。 v i v_i vi 表示第i个数据包的特征组合值。v是N个数据包的特征列向量。
(2)分割向量:通过约束数据包之间的长期依赖来降低频域特征的复杂性。N个数据包特征分为 N f N_f Nf个段。
(3)离散傅里叶变换:DFT输出的所有频率特征都是带有复数的向量,不能直接作为机器学习算法的输入。
(4)计算复数的模:将复数转换成实数。因为DFT是共轭的,所以选择每个段的前半部分 K f K_f Kf个特征作为向量。
(5)对数转换:防止机器学习模型训练时出现浮点数溢出。输出频域特征向量,共有 K f ∗ N f K_f*N_f KfNf个特征。
《Realtime Robust Malicious Traffic Detection via Frequency Domain Analysis》阅读笔记_第1张图片

疑问&思考:

  1. 为什么要分割向量?
    如果不进行向量分割,那么最后得到的频域特征就有N个特征,与 K f ∗ N f K_f*N_f KfNf相比,在频域上提取特征时间就会变长。

3. Automatic Parameter Selection Module(自动参数选择模块)

该模块是选择上一模块中编码数据包特征所使用的编码向量w。求解编码向量w可视为一个约束优化问题,通过求解SMT问题来逼近原始问题的最优解。

  1. 解决约束优化问题,SMT问题,减少了每个数据包的不同特征之间的相互干扰。
  2. 在选择编码向量w过程中要尽可能减少特征之间的干扰。
  3. 限定编码向量w的数值范围,和其与特征加权求和后的整体范围。
  4. 限制函数的保序性。(为什么这么做?
  5. 最大化函数之间的距离。
  6. 转化为可满足性模理论(SMT)问题,逼近最优解。

疑问&思考:

  1. 为什么不同特征之间会有相互干扰?
    因为假设M个特征是一个连续函数的采样,在一个连续函数中,如果距离较近,则可能有相互干扰。

4. Statistical Clustering Module(统计聚类模块)

  1. 训练阶段:计算频域特征的聚类中心、平均训练损失。
    (1)对频域特征使用长度为 W w i n W_{win} Wwin的窗口进行分割,求解每个窗口的平均值作为聚类算法的输入。这样做减少了极端样本引起的假阳性。
    (2)使用K-Means算法计算聚类中心,使用 L 2 L_2 L2范式找到距离每个输入最近的聚类中心。
    (3)使用 L 2 L_2 L2范式计算训练损失。

  2. 检测阶段:计算流量的频域特征与聚类中心的距离。通过比较损失值来判断流量是否是恶意的。
    (1)同样需要对频域特征进行分割,得到输入。
    (2)使用 L 2 L_2 L2范式计算每个输入与聚类中心的最短距离,作为损失。
    (3)如果损失大于训练损失的Φ倍,就被定义为恶意流量。

  3. 只用良性流量来训练统计聚类模型。

疑问&思考:

  1. 为什么要分割频域特征?
    如果直接对所有的特征求聚类中心,某些极端值可能会使聚类中心偏移,因此先对每个窗口先求一个平均值,然后再对这些平均值求聚类中心,以便消除一些特殊值的影响。

5 theoretical analysis

  1. Whisper的信息损失
    (1)传统流级检测方法中的信息损失随着每包特征序列的长度近似线性增加。
    (2)当参与特征提取的数据包数量很大时,Whisper 几乎没有信息丢失。因此,Whisper 的特征效率并不比包级方法差。此外,数据包级方法具有较大的特征尺度,导致机器学习的开销很高。
    (3)传统流级方法中信息丢失的减少增加超过线性。因此,通过减少传统流级方法中的信息丢失,Whisper 可以比传统流级方法更有效地从正在进行的流量中提取特征。

  2. 可扩展性和开销
    Whisper通过将packet-level的特征压缩为词频特征来减小特征规模,并减小处理开销,实现高吞吐量。

疑问&思考:

  1. 为什么使用频域会减小开销?
    如果使用flow-level,需要使用 M ∗ N M*N MN个特征训练模型,而使用频域方法,则只需要使用 K f ∗ N f K_f*N_f KfNf个特征(小于N个特征)。

6 experimental evaluation

源码:[https://github. com/fuchuanpu/Whisper](https://github. com/fuchuanpu/Whisper)

  1. 评估内容
    (1) 高检测率
    (2)强大的检测能力
    (3)高检测吞吐量和低检测延迟

  2. 实验方案
    (1)Packet-level Detection:Kisune
    (2)Flow-level Statistics Clustering (FSC):每个数据包特征的最大值、最小值、方差、平均值、范围、流持续时间和流字节数。
    (3)Flow-level Frequency Domain Features with Auto-Encoder (FAE):类似kisune中的自动编码器+频域特征

疑问&思考:

  1. 0.5突发间隔是什么?
    每隔0.5秒重放攻击。

看到了一篇很有帮助的阅读笔记https://blog.csdn.net/Dajian1040556534/article/details/129299443

你可能感兴趣的:(论文阅读笔记,加密流量,流量分类,恶意流量)