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

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


                 编程交换机中. 在数据平面的实现中包含了在第                4  节中所涉及的全部     DDoS  攻击检测与防御模块, 基于        P4  语言
                 和  Tofino  交换机架构实现的   DDoS  攻击检测与防御机制被抽象成多个匹配-动作表的流水线模式, 其中                     DDoS  攻
                 击检测机制部署于可编程交换机入口流水线, 包括地址频率统计及状态保存模块、熵值计算模块、攻击状态判定
                 模块; DDoS  攻击防御机制部署于可编程交换机的出口流水线, 包括数据包类别判定模块和受攻击                            IP  地址存储模
                 块, 通过将检测与防御分开部署可有效地实现资源物理隔离, 降低资源冲突. 在控制平面的实现中, 使用                              Python  语
                 言实现了该    DDoS  攻击检测与防御机制的控制功能. 控制平面的主要功能包括向数据平面中的查找表中预先配置
                 熵值计算中所需要的表项, 同时通过           API 查询数据平面中对应寄存器获取数据平面状态. 当                DDoS  攻击检测与防
                 御机制启动时, 需要先将       P4  代码部署于可编程交换机的数据平面, 然后运行控制面                 Python  代码完成数据面表项
                 配置, 之后, 交换机中部署的       DDoS  攻击检测与防御机制将会自动检测通过交换机的所有流量中是否存在                         DDoS
                 攻击.

                               入口流水线              逆解析器                解析器          出口流水线
                                                                               计数值及检测结果
                                 计数值及检测结果
                                                   桥接数据包
                                                                                     DDoS 攻击
                             DDoS 攻击检测
                                                                              原头部     防御流程
                                                                        ...
                                 原数据包


                                                 源目地址当前          源目地址安全状态
                           桥接包头   DDoS 检测结果                                          原数据
                                                观察窗口计数值          观察窗口计数值
                                        图 14 利用桥接数据包实现出入口流水线信息传递

                    本文的测试工作中, 在实验室使用           Intel-Tofino  可编程交换机搭建了如图     15  所示的实验网络. 该实验网络中
                 多台用户主机产生的流量将会通过一台              Tofino  可编程交换机流向另一侧的目的主机. 实验中所使用的背景流量
                 来自  BOUN DDoS  数据集, 使用   tcpreplay  对该流量记录进行修改与重放, 含有        TCP-SYN  洪泛攻击、UDP    洪泛攻
                 击、DNS   反射放大攻击、ICMP      洪泛攻击的流量将会穿过可编程交换机到达被攻击者. 在固定参数的设定上, 观
                 察窗口大小设置为       10 000, 熵差的固定阈值    T S  设定为  512, 连续窗口数量  a 设定为  3, DDoS  防御机制中计数值差
                            T D  设定为  300.
                 变化量的阈值


                                          DDoS
                                             DDoS 攻击者  Internet
                                                                   可编程交换机
                                                                  Controller.py
                                                                  Ddos_detection.p4


                                                合法用户

                                                             被攻击者
                                                      图 15 原型系统

                 5.2   实验数据
                    实验中使用     BOUN DDoS  数据集  [13] 对本文中所提出的    DDoS  攻击检测机制进行检验. 这一数据集包含两组
                 以  csv  格式记录的网络流量, 两组网络流量数据中分别发生了               TCP-SYN  洪泛攻击和    UDP  洪泛攻击. 在每一组数
   418   419   420   421   422   423   424   425   426   427   428