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

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


                 level  attack  detection  is  increased  by  17.75%  on  average,  and  the  accuracy  of  packet-level  attack  filtration  is  increased  by  3.7%  on
                 average.
                 Key words:  distributed denial of service attack (DDoS); programmable data plane; anomaly detection; P4; cyber security

                    分布式拒绝服务攻击        (distributed denial of service, DDoS) 的检测与防御是网络安全人员重点关注的问题之
                 一  [1–3] . 随着网络技术的发展, DDoS  攻击的种类和数量都在不断增加, 根据            Telia Carrier 发布的  DDoS  威胁态势报
                 告  [4] , 在  2020  年新冠疫情大流行开始后, DDoS  攻击的发送数量相较于        2019  年增长了  50%, 攻击流量的峰值跃升
                 至  1.18 TB/s. 在  2021  年, 这一增长趋势仍未停止, 根据卡巴斯基      2021  年第四季度的   DDoS  攻击报告  [5] , 2021  年第
                 四季度的    DDoS  攻击数量相较于     2020  年第四季度提高了约      365.22%. 日益泛滥的   DDoS  攻击已经成为现今互联
                 网中最大的安全威胁之一. 因此, 如何实现高效而准确的                   DDoS  攻击检测与防御对保证网络安全有着重要的
                 意义.
                    传统  DDoS  攻击检测与防御机制的主要研究思路是通过对网络流量的镜像、采样、分析与建模, 获得流量的
                 多维度特征, 并以此设计不同的          DDoS  攻击检测算法    (如基于随机森林的流量分类方法            [6] 、基于深度残差网络的
                 异常流量检测算法       [7] 等), 从而实现对  DDoS  攻击流的精准识别. 然而, 网络流量的采集和集中式的流量分析必然
                 会增加额外的性能开销, 无法实现实时、高效的网络安全防护.
                    随着可编程交换机、智能网卡等新型网络设备的快速发展, 可编程数据面                         [8] 的能力得到不断增强, 可实现网
                                                                                          [9]
                 络数据包的边传边算. 通常来讲, 可编程数据面被抽象成                 Match+Action  的流水线模式, 利用   P4 等数据面编程语
                 言定制化数据包的处理逻辑, 可实现网络流量及状态的实时监控、计算与更新等一系列网络任务. 可编程数据面
                 直接面对网络数据包, 对其进行转发、处理与操作. 因此, 在可编程数据面实现在网的                          DDoS  攻击检测, 可实现攻
                 击流量的更早发现及防御策略的更早部署, 从而满足实时防护需求. 因此, 研究并实现基于可编程数据面的                                 DDoS
                 攻击检测与防御机制对保障高性能网络安全有着重要意义.
                    当前, 学术界已广泛开展相关研究, 但已有工作或需要网络控制面频繁参与决策, 从而导致整个                             DDoS  攻击检
                 测与防御性能的急剧降低, 或受限于硬件可编程交换机                  (如  Intel Tofino) 严格的资源约束, 难以将  DDoS  攻击检测
                 与防御机制部署在真实的可编程数据面. 例如, 文献               [10] 中提出的  Jaqen  在可编程交换机中利用       Sketch  与计数器
                 等方法收集网络中的流量信息并上报至控制平面, 并在控制平面中实现多种类型的                            DDoS  攻击检测. 这种方法导
                 致  DDoS  攻击检测过程中数据面与控制面需要频繁交互, 降低性能. 为此, 文献                  [11] 进一步提出了    Euclid. 这项工
                 作是当前唯一一种能够完全部署在可编程数据面的                  DDoS  攻击检测与防御机制, 可在不中断原有正常流量的情况
                 下实现有效的网络安全防护. 然而, 这一工作所提出的检测算法在                    DDoS  攻击流量占比较低时难以保证检测的准
                 确率, 同时检测算法操作复杂, 仅能部署于虚拟可编程软件交换机 (behavioral model version 2, BMv2)           [12] 上. 导致上
                 述部署受限问题的原因在于真实的可编程交换机对计算与存储资源的使用有着严格的限制, 大部分成熟的检测算
                 法难以直接进行部署. 总结而言, 其关键挑战在于以下几个方面.
                    ● 可编程交换机逐包处理模式. 相比于基于采样或直接镜像的流量采集方法, 可编程交换机无法在一次计算
                 中同时获得多个数据包的信息, 仅允许在每个数据包到达时进行处理和状态更新.
                    ● 可编程交换机计算能力受限. 可编程交换机仅支持简单的整数算术运算, 不支持对数、熵值等复杂运算类
                 型及浮点数的计算.
                    ● 可编程交换机流水线        stage 资源受限. 在数据面编程中, 具有相互依赖的网络功能处理逻辑需要被编译部署
                 到不同的交换机流水线阶段          (stage) 之上. 因此, 复杂网络功能需要消耗大量的交换机流水线               stage, 难以在当前流
                 水线  stage 资源受限  (如  12  个  stage) 可编程交换机上进行实现部署.
                    为了解决现有工作中检测准确率不足、检测机制难以真实部署的问题, 本文设计并实现了一种可在真实可编
                 程交换机完整部署的        DDoS  攻击检测与防御机制, 在达到攻击检测高性能的同时满足高检测准确率. 针对检测准
                 确率低的问题, 本文提出了一种基于熵差的              DDoS  攻击检测机制以及基于源目地址计数值差的攻击防御机制, 能
                 够实现在网的     DDoS  攻击检测以及攻击数据包的快速过滤, 可显著提高检测准确率. 针对在真实可编程交换机中
   404   405   406   407   408   409   410   411   412   413   414