Page 414 - 《软件学报》2025年第8期
P. 414
武文浩 等: 可编程数据平面 DDoS 检测与防御机制 3837
经过可编程交换机的流量在源目地址 IP 的分布情况上相似, 并且流量的各项统计特征在短时间内不会产生较大
的变化. 图 5(b) 表示 DDoS 攻击出现时网络中的新增流量变化, 由攻击发起者控制的多台僵尸主机将向可编程交
换机另一侧的特定被攻击者发送大量数据. 与正常状态相比, 经过交换机的数据包的源地址的基数将会增大且会
变得更加分散, 而目的地址的分布将会集中于被攻击主机.
Internet . . . Internet
新增正常流量 原有流量 新增 DDoS 流量 原有流量
(a) 正常流量 (b) DDoS 攻击流量
图 5 正常流量与 DDoS 攻击流量
3.2 基于 IP 地址熵差的窗口级 DDoS 攻击检测
如第 3.1 节中所述, DDoS 攻击发生时流量的显著特征是在源目地址的分布上产生了不同的变化. 针对这一类
问题, 通常可以使用熵度量状态的多样性与分散程度. 熵的概念由德国物理学家克劳修斯 [37] 于 1865 年提出, 并最
初用于描述一个系统内在性质的改变, 这一概念在统计物理学领域有着广泛的应用. 香农 [38] 于 1948 年将这一概
念拓展到通信领域, 并开创了信息论这一学科. 香农熵用于描述信源中一个消息所提供的平均信息量, 表示为对一
S 的定
个随机变量的不确定度的度量. 假设 X 为一个离散随机变量, 其样本空间为 X = {x 1 , x 2 , x 3 ,..., x n }, 则香农熵
义可以表示为公式 (1) 所示形式.
n ∑
S = − p(x i )log (p(x i )) (1)
2
i=0
当随机变量的样本空间越大, 概率分布越分散时, 随机变量的熵值越大. 网络中经过可编程交换机的数据包
的 IP 地址可以视为一个离散随机变量, 通过估计数据包 IP 地址的熵值可以直观地判断网络中流量的分布是否发
生了变化. 以源 IP 地址为例, 首先按顺序将到达可编程交换机的每 m 个数据包划分为一个观察窗口, 之后会统计
每一种源 IP 在这一观察窗口中出现的次数, 并以频次估计每一种样本的出现概率, 则此时源 IP 地址熵定义如公
式 (2) 所示.
( )
∑
n k i k i
S src = − log (2)
i=0 m 2 m
其中, m 表示一个观察窗口中的数据包数, n 表示当前窗口中共有 n 种不同的 IP 地址, k i 表示第 种 i IP 地址在当前
观察窗口中的出现频次. 地址熵越大, 表示当前窗口中的 IP 地址分布越分散.
在正常状态下, 源地址熵与目的地址熵随观察窗口的变化趋势如图 6(a) 所示, 在较短的时间范围内, 源目地址
的熵值都在一定范围中上下波动. 同时, 源地址熵与目的地址熵两者有着明显的相关性, 源地址熵与目的地址熵在
每一个观察窗口中的计算结果都相近, 并且在发生波动时有着相同的变化趋势. 图 6(b) 为 DDoS 攻击状态下源地
址熵和目的地址熵随观察窗口的变化情况. 在观察窗口序号 52 后的网络中发生了 UDP 洪泛攻击, 这一事件的发
生导致源地址的熵有着明显的升高, 而目的地址的熵值则会下降. 同时, 两者之间的熵值的差异相对于正常状态显
著提升.
基于上述的特征, 分析熵值的变化可以有效地判断网络中是否出现了 DDoS 攻击检测. 现有的基于熵值的流
量异常检测方法分别检测源地址与目的地址是否超过或低于某一阈值, 从而判断是否发生异常 [18,19] . 这一类方法
在 DDoS 攻击流量占比较大 (如超过 20%) 时具有较好的效果, 但在异常流量占比相对较小时将会产生较大的误

