Page 413 - 《软件学报》2025年第8期
P. 413

3836                                                       软件学报  2025  年第  36  卷第  8  期


                 并未设计完整的      DDoS  攻击检测与防御流程. 文献       [11] 中提出的  Euclid  基于可编程数据平面, 使用地址熵的方式
                 实现了   DDoS  攻击检测, 在记录当前观察窗口的流量信息的同时保存了安全状态下窗口的流量信息, 从而用于
                 DDoS  受害者的识别及     DDoS  数据包过滤, Euclid  使用过多的计算与存储资源, 仍无法满足可编程交换机的硬件资
                 源限制. 为了保存安全窗口的流量信息, Euclid          中使用了不符合可编程交换机流水线要求的计算流程. 如图                   4 所示,
                 Euclid  使用多组  Sketch  进行流量信息的记录, 其窗口变化时计算流程为读取当前窗口                 Sketch_curr 的记录值并记
                 录在上一窗口     Sketch_last 中, 之后处理当前进入的数据包, 在处理完成后将更新后的流量信息写入当前窗口
                 Sketch_curr 中. 在这一流程中两个不同的流水线阶段均访问了同一组数据结构, 这使得该机制无法在真实可编程
                 交换机上运行.

                                             表 1 基于可编程数据面的检测方法对比

                   DDoS攻击检测方法           是否P4实现         数据面是否部署完整的检测与防御机制              是否满足硬件资源限制
                      P4DDoS [33]    是 (软件模拟环境)                     否                        否
                       文献[34]        是 (软件模拟环境)                     否                        否
                       Euclid [11]   是 (软件模拟环境)                     是                        否
                      本文机制           是 (真实交换机环境)                    是                        是


                                       流水线阶段 1             流水线阶段 2             流水线阶段 3
                                     读取 Sketch_curr 并                        将更新后的记录值
                                     记录在 Sketch_last 中    处理当前数据包            写入 Sketch_curr 中



                              读取 Sketch_curr  写入 Sketch_curr       X
                                                                  写入 Sketch_curr
                                    当前窗口 Sketch_curr

                                                         相同数据结构只能被一个阶段直接访问, 编译失败
                                     上一窗口 Sketch_last

                                                  图 4 Euclid  部分运行流程

                    针对现有工作的不足, 本文提出了一种完全部署于可编程数据平面的                        DDoS  攻击检测与防御机制, 使用地址
                 熵的方式实现有效的        DDoS  攻击检测与防护. 与原有工作相比, 本文机制在检测效果上有明显的提升并能够完全
                 部署于真实可编程交换机硬件上.

                 3   DDoS  攻击检测与防御方法

                    本节首先介绍      DDoS  攻击下的流量特征模式. 然后, 以此为基础提出了基于               IP  地址熵差的窗口级     DDoS  攻击
                 检测方法, 以有效地解决异常流量占比相对较小时的误检率高的问题. 最后, 设计了基于源目地址计数值差的攻击
                 数据包过滤机制, 以有效地实现         DDoS  攻击防御.

                 3.1   DDoS  攻击下的流量与  IP  地址变化特征
                    DDoS  攻击中, 攻击发起者通过大规模的僵尸网络向一个目标主机发动攻击, 利用大量的数据占用目标主机
                 的网络与系统资源, 从而使得被攻击者无法为正常用户提供服务                     [35] . 正常流量与  DDoS  攻击流量在行为上的差异
                 会导致网络中流量统计特性的变化            [36] .
                    图  5(a) 展示了在未受到攻击时, 合法用户中的正常流量经过可编程交换机与外部网络进行通信. 这一情况下,
   408   409   410   411   412   413   414   415   416   417   418