Page 412 - 《软件学报》2025年第8期
P. 412
武文浩 等: 可编程数据平面 DDoS 检测与防御机制 3835
2 相关研究工作
2.1 传统的 DDoS 攻击检测与防御方法
传统的 DDoS 攻击检测机制需要收集网络中的流量信息并进行集中式的攻击特征分析, 例如采用 sFlow [17] 进
行数据包采样或使用 NetFlow [18] 获取流量统计信息. 在此类方法中, 相关工作基于已有的网络流量数据集重点研
究 DDoS 攻击检测中的具体检测算法, 而较少关注 DDoS 攻击检测与防御机制的部署方式以及数据采集过程在数
据和控制平面之间产生的额外开销. 根据检测方法的不同, 现有的研究工作可以分为如下的两类.
(1) 基于统计特征的检测方法. 此类检测方法中计算当前网络流量的一个或多个统计特征, 并与网络正常工作
时的状态进行比较, 若统计特征发生了超过阈值的变化则可以判定 DDoS 攻击的发生. DDoS 攻击检测中常用的
统计特征包括相关性、熵、协方差、标准差等 [19] . Tao 等人 [20] 使用数据流的熵值检测局域网中的 DDoS 攻击, 若
该熵值在短时间内急剧下降, 则会发出 DDoS 攻击警报. Fortunati 等人 [21] 利用协方差矩阵判断当前流量与正常流
量之间是否存在差异, 从而实现对网络中异常流量行为的检测.
(2) 基于机器学习的检测方法. 此类检测方法中将 DDoS 攻击检测问题视为一个区分正常流量与恶意流量的
二分类问题, 首先需要训练样本对模型进行训练, 并使用训练完成的分类器对当前网络中的流量进行识别. 此类机
制中常用的分类方法包括支持向量机 [22] 、决策树 [23] 、神经网络 [24] 等. Hou 等人 [25] 利用 NetFlow 对流量特征进行
提取, 并设计了一种基于随机森林的 DDoS 攻击检测器. Christopher 等人 [26] 针对物联网场景设计了一种基于双向
长短期记忆的递归神经网络的攻击检测机制, 用于检测由大规模僵尸网络发起的多种 DDoS 攻击.
2.2 基于可编程数据面的 DDoS 攻击检测与防御方法
可编程数据面的出现为 DDoS 攻击检测与防御机制的设计提供了新的思路, 在现有的部分研究工作中, 可编
程数据平面已经被应用到原有的检测机制中, 用于对部分模块进行改进或者承担一部分数据采集与统计的工作.
Grigoryan 等人 [27] 针对 DDoS 攻击提供了一种 DDoS 攻击防御机制. 在数据包进入网路时, 可编程交换机会向包
中添加唯一标识符, 数据包到达目标主机前最后一个 P4 交换机将存储标识符与源地址的映射. 如果上层程序中
检测到某一 IP 地址疑似 DDoS 的攻击者, 将会通知交换机并丢弃带有该 IP 对应标识的所有包. Kuka 等人 [28] 利
用可编程数据平面实现数据包中特定信息的提取并将其转发给集中的攻击检测模块 (例如具备 DDoS 攻击检测
功能的 SDN 控制器), 攻击检测模块中将会基于阈值判别占比最大的前 N 条流并将其过滤. 文献 [29−31] 中使用
机器学习方法实现 DDoS 攻击检测机制. 其利用 P4 交换机实现数据收集, 并在控制平面上使用决策树、支持向
量机等模型对收集到的数据流进行分类. 文献 [32] 中提供了一种基于可编程数据平面的网络测量系统. 此类方
法在交换机中利用 Sketch 与计数器等方法收集网络中流量的信息并上报至控制平面, 同时, 为用户提供了多种
可用的原语, 通过不同原语的组合使用实现对指定数据包的过滤. 以上的工作使用可编程数据面完成 DDoS 攻击
检测中的数据采集工作, 但其核心的 DDoS 检测算法仍在控制面或远程服务器上独立执行, 难以实现实时的攻击
检测与安全防护.
为了能够将更多的攻击检测与防御功能卸到可编程数据平面上来完成, 文献 [11,33] 中在可编程数据平面中
通过计算流量的地址熵实现对恶意流量的检测, 一旦源地址熵产生突增或目的地址熵产生突降, 该算法将会认为
该窗口中 DDoS 攻击发生. 文献 [34] 中将上述基于地址熵的检测作为一种初检方法, 在可编程交换机检测到
DDoS 攻击时将异常流量输入到控制器中使用深度神经网络进行复检. 这一类工作中, 数据平面已经初步具有
DDoS 攻击检测与防御能力, 但未完全考虑到真实可编程交换机的限制, 仅在可编程软件交换机模型中实现, 难以
适用于真实环境.
我们在表 1 中详细对比了现有基于可编程数据平面的 DDoS 攻击检测机制存在的不足. 现有的同类型 DDoS
攻击检测机制仅能部署在模拟环境中, 无法适应真实可编程交换机的计算类型与计算资源限制. 具体而言, 文献 [33]
提出的 P4DDoS 重点关注可编程数据平面中的对数运算与熵值运算, 该方法中所提出的熵值计算方法超过了
Tofino 交换机的资源限制, 无法完全部署于可编程交换机硬件中. 同时, 该方法仅使用熵值对网络状态进行判断,

