Page 415 - 《软件学报》2025年第8期
P. 415
3838 软件学报 2025 年第 36 卷第 8 期
检率. 这一缺陷产生的原因在于此类方法仅关注源目地址自身的变化, 未能利用源地址与目的地址熵的相关性, 从
而容易被网络中正常的熵值波动所影响.
×10 4 ×10 4
8.5 8.5
源地址熵
8.0 8.0 目的地址熵
7.5
7.5
熵值计算结果 7.0 熵值计算结果 7.0
6.5
6.5
6.0
源地址熵 6.0
5.5 5.5
目的地址熵
5.0 5.0
0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120 140 160
观察窗口序号 观察窗口序号
(a) 安全状态 (b) DDoS 攻击状态
图 6 安全状态与 DDoS 攻击状态
为了解决这一问题, 本文采用基于熵差的 DDoS 检测机制. 首先将计算得到的源地址熵与目的地址熵记为 S src
S dst , 通过分析源目地址的熵值之差, 可以判断当前窗口中是否含有 DDoS 攻击流量, 若之差超过预先设定的阈
和
值, 则认为当前的观察窗口中可能包含 DDoS 攻击流量, 这一过程可以由公式 (3) 表示.
{
S src −S dst > T S , DDoS
(3)
S src −S dst ⩽ T S , Safe
其中, T S 表示一个预先设定的固定阈值. 在此判别方式下, 熵值差仍可能会由于正常波动, 使得在个别时间点中正
常状态下的熵值差超过阈值或在受到攻击的状态下熵值差小于阈值. 为了避免这一现象所导致的假阳性与假阴性
a 个观察窗口中的熵差均高于阈值时, 观察窗口才会被认定为受到 DDoS 攻击. 同理, 当该机制目
错误, 仅当连续
前认为网络正发生 DDoS 攻击时, 仅当连续 a 个观察窗口中的熵差均低于阈值时, 观察窗口才会被认定 DDoS 攻
击结束, 回到正常状态, 否则将会保持原有的状态不变. 其中, 参数 a 的值可以根据具体网络状况由用户定义.
3.3 基于源目地址计数值差的攻击数据包过滤
基于熵差的 DDoS 攻击检测机制仅能实现观察窗口级的攻击检测, 无法查找到具体的被攻击主机 IP 地址, 从
而难以进行有效的防御. 为解决这一问题, 在 DDoS 攻击检测机制检测到观察窗口发生 DDoS 攻击后, 利用网络中
的流量特征实现一种恶意流量分离机制, 从而实现对 DDoS 攻击的防御. 从总体上看, 本文机制所采用的是一种两
段式的 DDoS 攻击检测与防御, 仅当基于熵差的检测机制报告 DDoS 攻击发生时才会启动恶意流量的分离. 相比
于原有的直接基于阈值的过滤方法 [39] , 通过两段式的配合避免了在 DDoS 攻击未发生时对合法流量产生的误检.
对于被攻击者的识别以及攻击流量的过滤问题, 采用了一种基于源目地址计数值差的攻击数据包过滤机制.
在 DDoS 攻击发生时网络中将新增大量僵尸主机产生的攻击流量, 此时可编程交换机中记录的源目 IP 地址计数
值将会发生不对称的变化, 对于源地址, 新增的攻击流量在源 IP 地址上的计数值会被大量攻击者分散, 每个攻击
者的源 IP 地址计数值不会产生大幅上升; 对于目的地址, 被攻击者 IP 地址的计数值会因为攻击流量的集中流入
而显著提升, 从而产生了源目地址计数不对称变化的现象. 为了衡量上述不对称变化特征, 针对某一对源目 IP 地
址的出现频次, 使用公式 (4) 衡量其不对称特征.
(4)
D = k dst −k src
其中, k dst 是该目的 IP 地址在当前观察窗口中的计数值, k src 是当前窗口中源地址的计数值, D 是两者之差. 与正常
状态下相比, 当目的 IP 地址受到 DDoS 攻击时, 其计数值会显著上升, 但对于源地址而言, 由于僵尸网络中大量主
机对攻击任务的分摊, 其计数值上升并不明显. 因此, 二者的计数值差在发生 DDoS 攻击时将会升高. 根据这一原
理, 设计了如公式 (5) 所示的规则来判断目的 IP 地址是否受到攻击.

