一种基于DPDK的DDoS实时防御系统转让专利

申请号 : CN202111103118.3

文献号 : CN113556364B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张帆陈欢赵子鸣宋卓学李亮汤尧

申请人 : 浙江大学

摘要 :

本发明公开了一种基于DPDK的DDoS实时防御系统,该系统包括快速转发路径、机器学习规则表、快速转发表、优先队列调度、流量监测等模块。本发明通过基于DPDK的数据转发平面针对未知复杂攻击,为受害者优先提供任务关键型偏好流量,高效转发数据包;其次本发明执行机器学习匹配规则并且运用灵活的调度方法进行流量管理,抵消机器学习模型缺陷导致的负面影响,该系统具有可部署、高效和容错的优点,能够实现基于机器学习规则数据驱动的流量分类,进而实时防御DDoS攻击,实现高效的网络内转发,提高良性流量转发率。

权利要求 :

1.一种基于DPDK的DDoS实时防御系统,其特征在于,包括快速转发表模块、流量监测模块、机器学习规则表模块、中间桶模块和优先队列调度模块:所述快速转发表模块利用快速转发表对网络流量进行匹配,所述快速转发表包括未被攻击者控制的源地址列表,所述网络流量先与快速转发表进行IP匹配,得到优先级标签;若匹配成功则绕过机器学习规则表模块直接进入优先队列调度模块,并使用高优先级标签进行标记;若匹配不成功则与机器学习规则表进行匹配;并对快速转发表进行定期验证更新;

所述流量监测模块利用trTCM算法实时监测当前的带宽利用率,触发快速转发表的验证或者重置;

所述机器学习规则表模块接收快速转发表模块匹配不成功的数据包:与快速转发表不匹配的数据包,将与机器学习规则表中的字节规则进行匹配;将机器学习生成的规则转换成在DPDK配置的字节规则;每个所述字节规则都是一个范围列表,第i个范围指定了一个整数范围,所述整数范围为[0,255],该整数范围与第i个字节位置的字节规则匹配;如果一个数据包至少匹配一个字节规则,则该数据包被视为良性数据包,并使用高优先级标签进行标记;否则,数据包将被转发到低优先级队列,使用 DPDK 中的访问控制库以及Trie树算法实现机器学习规则表的范围匹配;所述Trie树的步长设为 8 位,即一次匹配一个字节;对于每个字节规则,将字节规则转换为Trie树,并构造一个 256 位长位图的Trie树,其中Trie树的每个节点表示一个字节;

所述中间桶模块根据机器学习规则表模块给出的统计信息记录不同源 IP 发送的良性数据包数和恶意数据包数;当良性数据包占总数的比例大于N,同时良性数据包的总数大于M时,将这个 IP 地址添加到快速转发表中;所述N和M为自定义数值;

所述优先队列调度模块根据快速转发表模块、机器学习规则表模块给出的高优先级或低优先级标签维护两个独立的数据包队列,即带有高优先级标签的数据包进入高优先级队列,带有低优先级标签的数据包进入低优先级队列。

2.根据权利要求1所述的基于DPDK的DDoS实时防御系统,其特征在于,所述机器学习规则表模块中字节规则转换为Trie树的流程具体为:(a)定义规则后,规则中的每个字段都将转换为一个Trie节点,代表一个字节的匹配范围;

(b)将同一条规则的Trie节点合并以生成单条规则的Trie树;

(c)当前新生成的Trie树与现有原来的Trie树进一步合并生成整个规则集的Trie树。

3.根据权利要求1所述的基于DPDK的DDoS实时防御系统,其特征在于,所述优先队列调度模块中,数据包入队时,根据优先级标签,让不同类别的数据包进入不同优先级的队列;

数据包出队时,严格遵循优先级顺序,先高优先级队列中的数据包出队并转发,直到发送完高优先级队列中的所有数据包,然后再发送低优先级队列中的数据包;较低优先级队列可以重用较高优先级队列当前未使用的带宽;其中,无法保存在输出端口缓冲区中的低优先级数据包将被丢弃。

说明书 :

一种基于DPDK的DDoS实时防御系统

技术领域

[0001] 本发明涉及计算机网络安全技术领域,属于分布式拒绝服务攻击(DDoS)的防御,尤其涉及一种基于DPDK的DDoS实时防御系统。

背景技术

[0002] 分布式拒绝服务攻击已成为当前互联网面临的主要威胁之一。DDoS防御一直以来是一个很有研究价值的课题,引发学术界和工业界共同的广泛关注。目前针对DDoS防御的
方法面临的共同挑战是针对先前未知复杂的攻击的可部署性和效率。
[0003] 由于自治系统的异质性,要求在大量自治系统中进行部署的方法在实际环境中的部署受到很大的限制。因此,云安全服务提供商在当今的 DDoS 防护中起着至关重要的作
用。他们首先将DDoS 受害者的流量重定向到配置完善并配备过滤机制的数据中心,以便将
剩余的良性流量传递到目标之前移除攻击流量。然而,由于防御重点放在处理大型但特征
明显的攻击上,当面对没有先例或尚未充分展露的未知复杂攻击时,云安全服务提供商部
署的清理服务无法识别攻击,这对企业构成了严重威胁。现有基于目标驱动策略的方法只
能简单的按流或按源公平共享,无法实施复杂的目标流量优先策略。

发明内容

[0004] 本发明的目标在于针对现有技术的不足,提出了一种流量驱动的网络内流量管理系统的数据转发平面,实施新的流量优先策略保护良性流量,以此来实时防御复杂的 DDoS 
攻击。在数据平面中使用线性的匹配规则来近似复杂的机器学习模型,保证高效的网络内
转发,将系统引入的额外转发开销降到最低。
[0005] 本发明的目的是通过以下技术方案来实现的:一种基于DPDK的DDoS实时防御系统,包括以下模块:快速转发表模块、流量监测模块、机器学习规则表模块、中间桶模块和优
先队列调度模块。
[0006] 所述快速转发表模块利用快速转发表对网络流量进行匹配,所述快速转发表包括未被攻击者控制的源地址列表,所述网络流量先与快速转发表进行IP匹配,得到优先级标
签;若匹配成功则绕过机器学习规则表模块直接进入优先队列调度模块,并使用高优先级
标签进行标记;若匹配不成功则与机器学习规则表进行匹配;并对快速转发表进行定期验
证更新。
[0007] 所述流量监测模块利用trTCM算法实时监测当前的带宽利用率,触发快速转发表的验证或者重置。
[0008] 所述机器学习规则表模块接收快速转发表模块匹配不成功的数据包:与快速转发表不匹配的数据包,将与机器学习规则表中的字节规则进行匹配;将机器学习生成的规则
转换成在DPDK配置的字节规则;所述每个字节规则都是一个范围列表,第i个范围指定了一
个整数范围,所述整数范围为[0,255],该整数范围与第i个字节位置的字节规则匹配;如果
一个数据包至少匹配一个字节规则,则该数据包被视为良性数据包,并使用高优先级标签
进行标记;否则,数据包将被转发到低优先级队列;使用 DPDK 中的访问控制库以及Trie树
算法实现机器学习规则表的范围匹配;将Trie树的步长设为 8 位,即一次匹配一个字节;
对于每个字节规则,将字节规则转换为Trie树,在内部构造一个 256 位长位图的Trie树,
其中每个节点表示一个字节。
[0009] 所述中间桶模块根据机器学习规则表模块给出的统计信息记录不同源 IP 发送的良性数据包数和恶意数据包数;当良性数据包占总数的比例大于N,同时良性数据包的总
数大于M时,将这个 IP 地址添加到快速转发表中;所述N和M为自定义数值。
[0010] 所述优先队列调度模块根据与快速转发表模块、机器学习规则表模块给出的高优先级或低优先级标签维护两个独立的数据包队列,即带有高优先级标签的数据包进入高优
先级队列,带有低优先级标签的数据包进入低优先级队列。
[0011] 进一步地,所述机器学习规则表模块中字节规则转换为Trie树的流程具体为:
[0012] (a)定义规则后,规则中的每个字段都将转换为一个Trie节点,代表一个字节的匹配范围;
[0013] (b)将同一条规则的Trie节点合并以生成单条规则的Trie树;
[0014] (c)当前新生成的Trie树与现有原来的Trie树进一步合并生成整个规则集的Trie树。
[0015] 进一步地,所述优先队列调度模块中,数据包入队时,根据优先级标签,让不同类别的数据包进入不同优先级的队列;数据包出队时,严格遵循优先级顺序,先高优先级队列
中的数据包出队并转发,直到发送完高优先级队列中的所有数据包,然后再发送低优先级
队列中的数据包;较低优先级队列可以重用较高优先级队列当前未使用的带宽;其中,无法
保存在输出端口缓冲区中的低优先级数据包将被丢弃。
[0016] 本发明的有益效果是,本发明可以识别复杂未知的攻击,为受害者优先提供任务关键型偏好流量,实现高效的网络内转发,提高良性流量转发率。在攻击者可以在 DDoS 攻
击中动态改变策略的情况下,本系统可以转发绝大多数的良性流量。系统兼具高扩展性、低
开销的优点,执行机器学习匹配规则并且运用灵活的调度方法进行流量管理,抵消机器学
习模型缺陷导致的负面影响,确保了受害者可以在本系统中部署非常复杂的机器学习模
型。通过部署更多数据转发平面实例,快速转发的总容量可以水平扩展。

附图说明

[0017] 图1是基于DPDK的DDoS实时防御系统流程图;
[0018] 图2为本发明基于DPDK系统实现的架构图;
[0019] 图3展示了典型的 DDoS 攻击下系统成功转发的良性流量的百分比图;
[0020] 图4是复杂 DDoS 动态攻击的测试图,图4中的(a)为每个阶段的转发率示意图,图4中的(b)为每个阶段的吞吐率;
[0021] 图5是系统中各组件引入的额外处理时间曲线图。

具体实施方式

[0022] 下面根据附图详细说明本发明。
[0023] 图1为本发明基于DPDK的DDoS实时防御系统流程图,图2为本发明基于DPDK系统实现的架构图,包括快速转发表模块、流量监测模块、机器学习规则表模块、中间桶模块和优
先队列调度模块。
[0024] 所述快速转发表模块利用快速转发表对网络流量进行匹配,所述快速转发表包括未被攻击者控制的源地址列表,所述网络流量先与快速转发表进行IP匹配,得到优先级标
签;若匹配成功则绕过机器学习规则表模块直接进入优先队列调度模块,并使用高优先级
标签进行标记;若匹配不成功则与机器学习规则表进行匹配;并对快速转发表进行定期验
证更新。
[0025] 具体地,所述快速转发表动态维护未被攻击者控制的源地址列表,来自这些源地址的数据包可以直接绕过机器学习规则表,提高快速转发表模块的转发效率;因此机器学
习规则分类错误不会对这些数据包产生不利影响;使用来源于同一 IP 的被归类为良性的
数据包占总数的比例作为指标判断该源 IP 是否良性;如果来自该源 IP 的数据包的绝大
多数是良性的,例如良性的数据包占总数的比例接近机器学习模型准确度的值,那么将该
IP列入快速转发表中;利用机器学习规则表给出的统计信息,构建一个基于 IP 的过滤器;
数据包首先与快速转发表进行IP匹配,若匹配则绕过机器学习规则表直接进入优先队列调
度模块,若不匹配则进一步地与机器学习规则表进行匹配。
[0026] 所述快速转发表的定期验证更新具体为:攻击者可能突然开始控制某些良性 IP 发起DDoS 攻击。在这种情况下,接收到的具有高优先级标签的数据包的数量会一直不断地
增加,并且平均高优先级流量远远超过普通情况下的流量;逐渐从快速转发表中移除发送
过多数据包的 IP,从而迫使机器学习规则表处理它们的流量,以此来验证快速转发表;一
旦重新确定它们的信誉(由数据包统计信息确定),它们就会被重新添加回快速转发表中;
当高优先级队列长时间出现严重的拥塞情况时,可以通过清空快速转发表来强制所有数据
包遍历机器学习规则表进行分类。
[0027] 所述流量监测模块利用trTCM算法对快速转发表实时监测当前的带宽利用率,触发快速转发表的验证或者重置;所述流量监测模块利用trTCM算法为从中收集统计信息的
每个数据包流定义一个令牌桶;由于令牌是在转发数据包时更新的,因此可以根据这些令
牌桶中可用令牌的数量来估算带宽利用率。
[0028] 所述机器学习规则表模块接收快速转发表模块匹配不成功的数据包:与快速转发表不匹配的数据包,将与机器学习规则表中的字节规则进行匹配;将机器学习生成的规则
转换成可在DPDK配置的字节规则,其中每个字节规则都是一个范围列表,第i个范围指定了
一个整数范围(在 [0,255] 之内),该整数范围可以与第i个字节位置的字节规则匹配;如
果一个数据包至少匹配一个字节规则,则该数据包被视为良性数据包,并使用高优先级标
签进行标记;否则,数据包将被转发到低优先级队列;使用 DPDK 中的访问控制库以及字典
树(Trie树)算法实现机器学习规则表的范围匹配;所述Trie树的步长设为 8 位,即一次匹
配一个字节;对于每个字节规则,将字节规则转换为Trie树,在内部构造一个 256 位长位
图的Trie树,其中Trie树的每个节点表示一个字节。
[0029] 其中,所述字节规则转换为Trie树的流程具体为:
[0030] (a)定义规则后,规则中的每个字段都将转换为一个Trie节点,代表一个字节的匹配范围;
[0031] (b)将同一条规则的Trie节点合并以生成单条规则的Trie树;
[0032] (c)当前新生成的Trie树与现有原来的Trie树进一步合并生成整个规则集的Trie树。
[0033] 所述中间桶模块根据机器学习规则表模块给出的统计信息记录不同源 IP 发送的良性数据包数和恶意数据包数;当良性数据包占总数的比例大于N,同时良性数据包的总
数大于M时,将这个 IP 地址添加到快速转发表中;所述N和M为自定义数值;中间桶的搜索
和更新操作不在数据包转发的关键路径上,不会降低数据包的转发速度。
[0034] 所述优先队列调度模块根据与快速转发表模块、机器学习规则表模块给出的不同优先级标签维护两个独立的数据包队列,即带有高优先级标签的数据包进入高优先级队
列,带有低优先级标签的数据包进入低优先级队列,以严格的优先级顺序处理数据包队列:
较低优先级队列可以重用较高优先级队列当前未使用的带宽;数据包入队时,根据优先级
标签,让不同类别的数据包进入不同优先级的队列;数据包出队时,严格遵循优先级顺序,
先将高优先级队列中的数据包出队并转发,直到发送完高优先级队列中的所有数据包,然
后再发送低优先级队列中的数据包;其中,无法保存在输出端口缓冲区中的低优先级数据
包将被丢弃。
[0035] 本发明可以通过数据包处理管道和调度管道快速转发网络流量;所述数据包处理管道负责快速转发、机器学习规则匹配和基于匹配结果的优先级标签,所述数据包处理管
道包含维护动态良性源 IP 列表的快速转发表和保存机器学习规则生成的匹配规则的机
器学习规则表;所述网络流量根据快速转发表进行匹配,根据匹配结果得到优先级标签。所
述调度管道基于快速转发表和机器学习规则表匹配得到的优先级标签执行严格优先队列
调度。
[0036] 如果一个数据包的源地址与维护动态良性源 IP 列表的快速转发表匹配,系统会使用高优先级标签对其进行标记,并直接转发到数据包处理管道的输出端口,而无需遍历
机器学习规则表;否则,将数据包转发到机器学习规则表,首先对数据包进行规则匹配分类
分辨其是良性还是恶意,然后相应地进行标记;分类结果进一步驱动快速转发表的动态更
新;由于机器学习模型本身并不完善,而且在机器学习模型到规则的转换过程中可能会出
现一定的准确性损失,这将导致良性流量被错误丢弃,而快速转发路径能够解决良性IP列
表错误分类造成的不利影响。
[0037] 实验证明,系统实现高效的网络内转发,提高良性流量转发率;在攻击者可以在 DDoS 攻击中动态改变策略的情况下,本系统可以转发绝大多数(远远超过 99.9%)的良性
流量;同时,良性流量的转发时间比攻击流量的转发时间更短;即使在最坏的情况下,即当
所有数据包都被强制通过机器学习规则表进行匹配时,本系统在 10 Gbps 数据平面上引
入的转发开销仍不到 0.1%。
[0038] 物理测试平台实验在两台主机之间具有10 Gbps数据平面:一台用作数据包流量生成机器,另一台部署本系统。
[0039] 在典型的 DDoS 攻击场景下,攻击者发送过多的数据包使带宽耗尽;图3展示了典型的 DDoS 攻击下系统成功转发的良性流量的百分比;将良性流量p的预期流量从总流量
的 10% 增加到 50%,计算到达数据转发平面输入端口的良性数据包的数量 和离开输
出端口的良性数据包的数量 ;良性流量的转发率可以计算为 ;由图中可
得本系统可以转发绝大多数(远远超过 99.9%)的良性流量。
[0040] 图4展示了模拟现实世界中复杂 DDoS 动态攻击的测试;考虑攻击方部署不同攻击策略的5个阶段:首先在阶段1中,只有良性客户端处于活动状态,并且总数据包发送速率 
r 小于数据平面容量;在阶段2中,快速转发表仍然为空,并且所有数据包仅由机器学习规
则表匹配标记转发;攻击者发起DDoS攻击,攻击流量超过了 10 Gbps 数据平面容量;在阶
段 3 中,逐渐填充快速转发表;在阶段4中,攻击者更改其策略,使用快速转发表中包含的
某些IP地址发起攻击;来自这些IP的攻击量约为数据平面容量的30% 80%;这将触发本系统
~
启动快速转发表验证,以清除被控制的 IP;在阶段5中,攻击者将其攻击能力集中在使用快
速转发表中的所有IP源上;这将触发系统重置快速转发表,强制所有流量遍历 ML 规则表;
评估使用了大约 20,000 个 IPv4地址,快速转发表的容量大约为 2,000;图4展示了各个
阶段转发率和吞吐量的箱型图,包括平均值(图中三角)、离群值(图中圆点)和中位数(图中
实线)等参数;从图4中的(a)中可以看出,良性业务的总转发率非常接近 100%,尤其是在阶
段 3 中,当快速转发表没有被破坏时;其中阶段 1 中的转发率是 100% 是因为良性流量
不会使数据平面饱和;图4中的(b)显示了良性流量的输入端口和输出端口的吞吐量比率;
通过分析数据包的时间戳来计算输入和输出端口的吞吐量;在阶段 4 中,当攻击者开始使
用快速转发表中的源 IP 发起攻击时,会出现更多的异常值,因为系统需要一段时间来验
证快速转发表并从表中清除那些已经被控制的源地址;吞吐量比率本质上代表了本系统引
入的转发开销;在阶段 2 和阶段 5 中,当所有数据包都遍历 ML 规则表时,因为吞吐量比
率高于 99.9%,系统引入了最高的转发开销大约为 0.1%。
[0041] 图5展示了系统各组件引入的额外处理时间;在快速转发表、机器学习规则表和中间桶中加载不同数量的条目,然后通过这些来度量数据包转发开销;结果显示,这些组件引
入的处理开销可以忽略不计,例如,使用 5,000 条规则,快速转发表和机器学习规则表分
别消耗了 0.2 µ s 和 0.78 µ s 的处理时间,这比端到端转发延迟小了四个数量级;中间
桶的效率非常高,即使有 80,000 个条目,它的额外处理时间也只有约为 0.03 µ s。
[0042] 综上,本发明可以识别复杂未知的攻击,为受害者优先提供任务关键型偏好流量,实现高效的网络内转发,提高良性流量转发率。在攻击者可以在 DDoS 攻击中动态改变策
略的情况下,本系统可以转发绝大多数的良性流量。系统兼具高扩展性、低开销的优点,执
行机器学习匹配规则并且运用灵活的调度方法进行流量管理,抵消机器学习模型缺陷导致
的负面影响,确保了受害者可以在本系统中部署非常复杂的机器学习模型。通过部署更多
数据转发平面实例,快速转发的总容量可以水平扩展。