Page 416 - 《软件学报》2025年第8期
P. 416
武文浩 等: 可编程数据平面 DDoS 检测与防御机制 3839
{
D now − D safe > T D , 目标IP受到DDoS
(5)
D now − D safe ⩽ T D , 目标IP未受攻击
其中, D now 表示当前观察窗口中源目地址计数值之差, D safe 表示在 DDoS 攻击未发生的情况下对应源目地址的计
数值之差, T D 为一个预先设定的阈值. 如果当前窗口中源目地址计数值之差相比于正常窗口下的增大幅度超过阈
值, 则认为这一 IP 受到了攻击, 并且在 DDoS 攻击状态结束之前始终过滤掉目的地址为该 IP 的数据包, 从而实现
对 DDoS 攻击的防御.
4 基于可编程交换机的 DDoS 攻击检测与防御机制设计
本节首先介绍整个 DDoS 攻击检测与防御系统的整体架构, 然后分别从地址频率统计与状态保存、IP 地址
熵值在网计算以及 DDoS 攻击状态判定和准确防御等关键技术出发, 介绍其在可编程交换机上的具体实现
细节.
4.1 系统工作流程与关键技术
为了实现基于熵的 DDoS 攻击检测以及基于源目地址计数值差的攻击数据包过滤机制, 需要完成的流程如
图 7 所示, 具体的流程如下. (1) 当数据包到达可编程交换机后, 按顺序将到达可编程交换机的数据包划分为大小
为固定数量的观察窗口, 可编程交换机首先统计每一种源 IP 在这一观察窗口的出现次数. (2) 获取对应 IP 在上一
安全观察窗口中出现的次数. (3) 之后, 根据公式 (2) 所示的熵值计算方法计算当前窗口的源目地址熵. (4) 根据计
算得到的熵值判断是否发生 DDoS 攻击. (5) 基于源目地址计数值差判断当前数据包类别. (6) 最后, 保存被判断为
受到 DDoS 攻击的 IP 地址, 并且在 DDoS 攻击状态结束之前过滤掉目的地址为该 IP 的数据包. 这一操作流程能
够在常规的计算方式 (如远程服务器或控制平面程序) 中通过简单的代码实现, 但由于可编程交换机对于计算与
存储资源的严格限制, 在真实的可编程交换机中实现以上的全部流程面临着以下的难点.
地址频率统计与状态保存模块 熵值计算模块
逐包累加方法
多组 Sketch 轮换的新型数据结构
基于查找转发的计算方法
获取上一观察
统计每一种 IP 窗口中每一种 根据公式 (2) 计
出现的次数 算当前窗口熵值
IP 出现的次数
根据公式 (3) 判断 根据公式 (5) 受攻击 IP 存储
当前受攻击状态 数据包类别判定
状态维护与状态变换 数据包判别与过滤
DDoS 攻击状态判定模块 数据包类别判定及受攻击 IP 地址存储
图 7 DDoS 攻击检测与防御机制流程与关键技术
● 难以在统计当前观察窗口 IP 出现次数的同时保存上一安全窗口的统计信息. 由于可编程交换机流水线
stage 资源受限, 同时保留多个观察窗口的数据意味着需要多组相互依赖的网络功能处理逻辑. 现有的技术难以在
有限的流水线 stage 中实现复杂的 DDoS 攻击检测与防御功能的同时完成多组网络统计信息的保存.

