DDoS攻击检测方法、DDoS攻击流量过滤方法、装置

专利2024-11-11  42


ddos攻击检测方法、ddos攻击流量过滤方法、装置
技术领域
1.本发明涉及ddos攻击检测技术领域,尤其涉及一种ddos攻击检测方法、ddos攻击流量过滤方法、装置。


背景技术:

2.在网络中实现对分布式拒绝服务攻击ddos有效的检测与防御对保证网络安全有着重要的意义。现有的ddos攻击检测与防御机制主要依赖于网络控制面或应用层程序,数据平面和控制平面之间所需的协调过程会在ddos攻击检测中产生不可忽视的延迟,往往难以同时满足当前高速网络对检测准确性、检测延迟、吞吐量、部署成本和灵活性上日益严格的要求。可编程交换机技术使得直接在数据面中实现ddos攻击检测与防御工作成为可能,然而当前能够完全依靠控制面执行的ddos攻击检测与防御机制较少,且在真实环境下缺乏可行性。


技术实现要素:

3.针对现有技术的不足,本发明提出一种ddos攻击检测方法、ddos攻击流量过滤方法、装置,该方法基于可编程交换机,能够有效的对多种ddos攻击进行检测与防御,并且能够在真实环境中实现。
4.为了实现上述目的,本发明一方面提供一种ddos攻击检测方法,包括:
5.将进入可编程交换机数据平面的数据包划分为多个观察窗口,
6.分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵;
7.依据所述源ip地址的地址熵与所述目的ip地址的地址熵,判断当前观察窗口中是否含有ddos攻击流量。
8.可选的,所述分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵,包括:
9.分别统计每个源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次;
10.利用所述源ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次计算所述源ip地址的地址熵;
11.利用所述目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次计算所述目的ip地址的地址熵。
12.可选的,在每一个观察窗口内的源ip地址的地址熵表示为:
[0013][0014]
其中,m表示一个观察窗口中的数据包数,n1表示当前观察窗口中共有n1种不同的源ip地址,ki表示第i种源ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次;
[0015]
在每一个观察窗口内的目的ip地址的地址熵表示为:
[0016][0017]
其中,m表示一个观察窗口中的数据包数,n2表示当前观察窗口中共有n2种不同的目的ip地址,kj表示第j种目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。
[0018]
可选的,所述依据所述源ip地址的地址熵与所述目的ip地址的地址熵,判断当前观察窗口中是否含有ddos攻击流量,包括:
[0019]
若所述源ip地址的地址熵与所述目的ip地址的地址熵的差值超过第一熵值阈值,则所述观察窗口中存在ddos攻击发生。
[0020]
可选的,可编程交换机数据平面采用基于sketch的多组数据流统计结构轮换工作机制统计并保存源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。
[0021]
可选的,所述基于sketch的多组数据流统计结构包括:
[0022]
一标识寄存器,用于指示多组sketch的工作状态;
[0023]
ip地址对应部分,用于使用多个互不相关的哈希函数确定目的ip地址在sketch中的对应位置,在同一个sketch中每一行对应的哈希函数互不相关;
[0024]
ip地址出现频次记录部分,用于记录同一个观察窗口中的源ip地址或目的ip地址的出现频次;
[0025]
频次输出部分,用于在每一组sketch的多行计数值中取最小作为源ip地址或目的ip地址的出现频次。
[0026]
可选的,采用基于sketch的两组数据流统计结构,在每个观察窗口结束时翻转所述标识寄存器的值,将两组sketch轮换进行更新,保存源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。
[0027]
本发明另一方面还提供了一种ddos攻击流量过滤方法,包括:
[0028]
将进入可编程交换机数据平面的数据包划分为多个观察窗口;
[0029]
识别当前观察窗口中的ddos攻击状态;
[0030]
若当前观察窗口中的ddos攻击状态为ddos攻击发生,则判别当前数据包是否属于ddos攻击流量;
[0031]
若当前数据包的目的ip地址被判别为被攻击者,可编程交换机将指向被攻击者的数据包识别为攻击数据包并丢弃。
[0032]
可选的,所述判别当前数据包是否属于ddos攻击流量,包括:
[0033]
判断当前数据包的源ip地址与目的ip地址之差的变化量是否超过第二阈值;
[0034]
若所述源ip地址与目的ip地址之差的变化量超过第二阈值,则认定当前数据包指向的目的ip地址受到ddos攻击,将当前数据包的目的ip地址判别为被攻击者。
[0035]
可选的,所述源ip地址与所述目的ip地址之差的变化量表示为:
[0036]
d=(dst
now-src
now
)-(dst
safe-src
safe
)
[0037]
其中,dst
now
与src
now
分别是当前观察窗口中数据包源ip地址的出现频次与目的ip地址的出现频次,dst
safe
与src
safe
是当前观察窗口的上一个安全状态的观察窗口中数据包
源ip地址的出现频次与目的ip地址的出现频次。
[0038]
本发明另一方面还提供一种ddos攻击检测与防御装置,部署于可编程交换机数据平面实现ddos攻击检测与防御,包括:
[0039]
入口模块,所述入口模块用于ddos攻击检测,所述入口模块还包括:
[0040]
熵值计算模块,用于将进入可编程交换机数据平面的数据包划分为多个观察窗口,以及分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵;
[0041]
攻击状态判定模块,用于依据所述源ip地址的地址熵与所述目的ip地址的地址熵的差值,判断当前观察窗口中是否含有ddos攻击流量;
[0042]
若所述源ip地址的地址熵与所述目的ip地址的地址熵的差值超过第一熵值阈值,则所述观察窗口中存在ddos攻击发生;
[0043]
出口模块,所述出口模块用于ddos攻击流量过滤,所述出口模块还包括:
[0044]
攻击识别模块,用于识别当前观察窗口中的ddos攻击状态,以及
[0045]
若当前观察窗口中的ddos攻击状态为ddos攻击发生,则判别当前数据包是否属于ddos攻击流量;
[0046]
流量过滤模块,用于若当前数据包的目的ip地址被判别为被攻击者,可编程交换机将指向被攻击者的数据包识别为攻击数据包并丢弃。
[0047]
由以上方案可知,本发明的优点在于:
[0048]
本发明提供的ddos攻击检测方法、ddos攻击流量过滤方法、装置,通过将进入可编程交换机数据平面的数据包划分为多个观察窗口,分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵;依据源ip地址的地址熵与目的ip地址的地址熵,判断当前观察窗口中是否含有ddos攻击流量;若当前观察窗口中的ddos攻击状态为ddos攻击发生,则判别当前数据包是否属于ddos攻击流量;若当前数据包的目的ip地址被判别为被攻击者,将指向被攻击者的数据包识别为攻击数据包并丢弃。本发明基于源目地址熵值差的窗口级ddos攻击检测、以及基于源目地址计数值差的ddos攻击防御,将ddos攻击检测与防御完整的实现在可编程交换机数据平面上,不依赖控制面和远程服务器,有效避免了数据平面与控制平面交互过程带来的额外开销。此外,不针对特定的ddos攻击类型,能够在多种ddos攻击中生效,具体一定的普适性。该方法适用于可编程交换机,能够保证在真实环境中的可行性,满足当前的高速网络的需求。
附图说明
[0049]
图1为本发明实施例一提供的ddos攻击检测方法的流程示意图;
[0050]
图2为基于sketch的多组数据流统计结构原理图;
[0051]
图3为多组数据流统计结构轮换工作机制示意图;
[0052]
图4为本发明实施例二提供的ddos攻击流量过滤方法的流程示意图;
[0053]
图5为本发明的ddos攻击检测与防御装置的框架图;
[0054]
其中:
[0055]
400-ddos攻击检测与防御装置;
[0056]
401-入口模块;
[0057]
4011-熵值计算模块;
[0058]
4012-攻击状态判定模块;
[0059]
402-出口模块;
[0060]
4021-攻击识别模块;
[0061]
4022-流量过滤模块。
具体实施方式
[0062]
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
[0063]
如前所述,现有的ddos攻击检测与防御方法在数据和控制平面之间所需的协调过程会在ddos攻击检测中产生不可忽视的延迟,难以适用于当前的高速网络。可编程交换机技术使得直接在数据面中实现ddos攻击检测与防御工作成为可能,然而当前能够完全依靠可编程交换机数据面执行的ddos攻击检测与防御机制较少,且在真实环境下缺乏可行性。为解决以上问题,本发明实施例在可编程交换机中实现了一种基于源目地址熵值差的ddos攻击检测机制和基于源目地址计数值差的ddos攻击防御机制,能够有效的对多种ddos攻击进行检测与防御,并且能够在真实环境中实现。具体的,
[0064]
具体的,参考图1中所示,图1示出了实施例一提供的ddos攻击检测方法的流程示意图;
[0065]
一种ddos攻击检测方法,包括:
[0066]
s11、将进入可编程交换机数据平面的数据包划分为多个观察窗口。
[0067]
在具体实现中,可以将数据包按顺序划分为多个观察窗口。
[0068]
s12、分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵。
[0069]
在具体实现中,分别统计每个源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次,利用所述源ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次计算所述源ip地址的地址熵,利用所述目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次计算所述目的ip地址的地址熵。地址熵越大,表示当前窗口中的ip地址分布越分散。
[0070]
在ddos攻击期间,源ip地址的地址熵s
src
将会由于攻击者的地址欺骗而增加;而目的ip地址的地址熵s
dst
由于被攻击者ip地址的频繁出现而降低。通过分析源ip地址的地址熵与目的ip地址的地址熵之差,可以判断当前窗口中是否含有ddos攻击流量。
[0071]
理论上,在每一个观察窗口内的源ip地址的地址熵表示为:
[0072][0073]
其中,m表示一个观察窗口中的数据包数,n1表示当前观察窗口中共有n1种不同的源ip地址,ki表示第i种源ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次;
[0074]
在每一个观察窗口内的目的ip地址的地址熵表示为:
[0075]
[0076]
其中,m表示一个观察窗口中的数据包数,n2表示当前观察窗口中共有n2种不同的目的ip地址,kj表示第j种目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。
[0077]
而在具体实现中,由于交换机的限制,无法在数据平面中完成循环操作及浮点运算。因此本实施例采用了一种逐数据包累加的方式进行熵值更新,并将原有的熵值扩大后近似为整数。将熵值计算的公式可以改写为如下形式:
[0078]
察窗口中共有n种不同的ip地址,ki表示第i种ip地址在当前观察窗口中的出现频次。当得到一个ip地址对应的计数值x后,通过添加新熵值与原有熵值之间的差以进行更新。交换机只需在熵值上进行如下的更新:
[0079]
s'=s'-(xlog2(x)-(x-1)log2(x))
[0080]
每当一个观察窗口结束,交换机将会重置熵值为mlog2(m)。对于交换机无法执行的复杂运算,通过预先计算所有可能的计数值x对应的(xlog2(x)-(x-1)log2(x))的计算结果,通过控制面程序在机制启动时配置入交换机的表中,在涉及到目的ip地址的地址熵与源ip地址的地址熵计算时可以通过查表得到,简化了熵值计算。
[0081]
s13、依据所述源ip地址的地址熵与所述目的ip地址的地址熵,判断当前观察窗口中是否含有ddos攻击流量。
[0082]
在具体实现中,若所述源ip地址的地址熵与所述目的ip地址的地址熵的差值超过第一熵值阈值,则所述观察窗口中存在ddos攻击发生。
[0083]
此外,ddos攻击防御机制中需要在统计当前窗口中源ip地址与目的ip地址出现频次的同时保存安全状态观察窗口中源ip地址与目的ip地址的计数值,本实施例中可编程交换机数据平面采用基于sketch的多组数据流统计结构,并通过轮换工作机制保存源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。
[0084]
具体的,本实施例采用基于sketch的两组数据流统计结构,在每个观察窗口结束时翻转所述标识寄存器的值,将两组sketch轮换进行更新,保存源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。数据流统计结构如图2中所示,所述基于sketch的多组数据流统计结构包括:
[0085]
一标识寄存器201,用于指示多组sketch的工作状态,数据包到达后首先会查询标识寄存器,并在标识寄存器所指定的sketch上进行更新。例如该标识寄存器为0,则会更新编号为0的两个sketch,而另一组sketch则仅进行查询操作。
[0086]
ip地址对应部分202,用于使用多个互不相关的哈希函数确定目的ip地址在sketch中的对应位置,在同一个sketch中每一行对应的哈希函数互不相关,同一组哈希结果可以在不同的sketch中共用。
[0087]
ip地址出现频次记录部分203,用于记录同一个观察窗口中的源ip地址或目的ip地址的出现频次,sketch0为对应编号为0的两个sketch,由于标识寄存器为0,这一组sketch0处于更新状态。sketch1为对应编号1的两个sketch,由于标识寄存器为0,这一组sketch1不进行更新,仅输出当前计数值。
[0088]
频次输出部分204,用于在每一组sketch的多行计数值中取最小作为源ip地址或目的ip地址的出现频次。这一部分中在sketch的多行计数值中取最小作为输出结果,其中编号为0的两个sketch0输出当前观察窗口的计数结果,编号为1的两个sketch1输出上一安全窗口中的计数结果。
[0089]
与普通的count-min sketch结构不同,本实施例中为每一个观察窗口进行编号,sketch在记录计数值的同时将会记录这一计数值所属的观察窗口号。当sketch中的某一位置需要更新时,首先将会判断标识寄存器是否与该sketch的编号相同,若相同则会进行后续的更新操作,若不同则仅读取当前计数值。如果sketch内部记录的窗口号与当前窗口一致,则该位置计数值增加。若与当前窗口不一致,说明观察窗口发生了变化,此时将会把被选中位置的计数值置为1以实现sketch的自动刷新。
[0090]
此外,多组数据流统计结构轮换工作机制的工作原理如图3中所示。通过在每个观察窗口结束翻转标识寄存器的值,两组sketch将会轮换的进行更新,从而实现在完成当前计数的同时保留上一个安全状态的观察窗口中的计数状态。具体的,
[0091]
步骤301、302、303:该部分表示了在第二观察窗口中的数据包经过交换机时的更新过程。此时标识寄存器为0,sketch0将会更新并记录第二观察窗口中各ip的出现频次,sketch1仅进行查询操作,保存第一观察窗口时的状态不变。
[0092]
步骤304:当第二观察窗口结束时,将会对标识寄存器的值进行更新,若第二观察窗口的检测结果表示未发生ddos攻击,则会将标识寄存器的值翻转为1,若发生了ddos攻击则标识寄存器不变。
[0093]
步骤305:当ddos攻击发生时,第三观察窗口中的数据包经过交换机的更新过程,标识寄存器没有发生转换,仍然会使用与上一个观察窗口中相同的sketch进行计数。此时另一组sketch中的安全状态下的第一观察窗口计数值将会得到保留,而发生ddos攻击的第二观察窗口的计数值将被刷新。
[0094]
步骤306:当ddos攻击未发生时,第三观察窗口中的数据包经过交换机的更新过程,标识寄存器翻转为1,使用sketch1进行计数。此时另一组sketch中将会保存第二观察窗口的计数值。
[0095]
本实施例中,数据包进入交换机后,首先会判断数据包是否为重发数据包,若为重发数据包则更新sketch前的标识寄存器。之后,分别获取该数据包的源ip地址与目的ip地址在两组sketch中的计数值,计算源ip地址与目的ip地址对应的熵值。若当前观察窗口结束,则根据熵值之差并检测其是否超过阈值并判断ddos攻击状态。最后,将计算结果封装至数据包头部并根据需求完成数据包的重发或桥接。
[0096]
综上,本实施例基于源目地址熵值差的窗口级ddos攻击检测,将ddos攻击检测完整的实现在可编程交换机数据平面上,不依赖控制面和远程服务器,有效避免了数据平面与控制平面交互过程带来的额外开销。此外,基于源目地址熵差的ddos攻击检测机制能够针对整体网络特征进行检测,不针对特定的ddos攻击类型,能够在多种ddos攻击中生效,具体一定的普适性。
[0097]
基于上述的ddos攻击检测方法,本发明进一步提供了ddos攻击流量过滤方法,用于ddos攻击防御。具体参考图4中所示,图4示出了实施例二提供的ddos攻击流量过滤方法的流程示意图。
[0098]
一种ddos攻击流量过滤方法,包括:
[0099]
s21、将进入可编程交换机数据平面的数据包划分为多个观察窗口;
[0100]
s22、识别当前观察窗口中的ddos攻击状态;
[0101]
若当前观察窗口中的ddos攻击状态为ddos攻击发生,则判别当前数据包是否属于ddos攻击流量。
[0102]
在具体实现中,可编程交换机的入口模块的逆解析器将会依照标识寄存器的标志位对数据包进行桥接或重发操作,出口模块直接读取桥接数据包中来自入口模块的检测结果以进行当前状态识别,即解析器对桥接头部进行解析,提取入口模块所封装的攻击检测结果和源ip地址与目的ip地址的计数值信息,并依据桥接包头中的当前ip计数信息和安全状态下的计数信息判别该数据包是否属于ddos攻击流量。
[0103]
同时,ddos攻击发生时,被攻击的ip地址出现频次会显著上升,但由于大量主机对攻击任务的分摊,各攻击源的出现频次上升并不明显。这一现象会导致观察窗口中对应源ip地址与目的ip地址的计数出现差异性变化。若源ip地址与目的ip地址的变化量超过固定阈值,则认为此时的目的ip受到ddos攻击,并在后续流量中直接丢弃掉目的地址为该ip的数据包。具体的,所述判别当前数据包是否属于ddos攻击流量,包括:
[0104]
判断当前数据包的源ip地址与目的ip地址之差的变化量是否超过第二阈值;若所述源ip地址与目的ip地址之差的变化量超过第二阈值,则认定当前数据包指向的目的ip地址受到ddos攻击,将当前数据包的目的ip地址判别为被攻击者。
[0105]
所述源ip地址与所述目的ip地址之差的变化量表示为:
[0106]
d=(dst
now-src
now
)-(dst
safe-src
safe
)
[0107]
其中,dst
now
与src
now
分别是当前观察窗口中数据包源ip地址的出现频次与目的ip地址的出现频次,dst
safe
与src
safe
是当前观察窗口的上一个安全状态的观察窗口中数据包源ip地址的出现频次与目的ip地址的出现频次。
[0108]
s23、若当前数据包的目的ip地址被判别为被攻击者,可编程交换机将指向被攻击者的数据包识别为攻击数据包并丢弃。
[0109]
若没有发生ddos攻击,说明该数据包对应的目的ip地址处于安全状态,则会将对应位置清零。以上流程结束后交换机会检查该目的ip地址在哈希表中的对应位置是否有值,若发现对应位置非零,则会将该数据包丢弃。
[0110]
综上,本实施例基于源目地址计数值差的ddos攻击防御机制,在识别当前观察窗口中的ddos攻击状态为ddos攻击发生时,通过判断当前数据包的源ip地址与目的ip地址之差的变化量是否超过第二阈值,以判别ddos攻击流量,进而对攻击流量过滤。该方法能够有效识别ddos攻击流量并进行过滤。
[0111]
表1.1与表1.2中展示了本发明与现有ddos攻击检测方法在同一数据集下的ddos攻击检测效果对比。选用数据集为boun ddos数据集,数据集中包含tcp-syn洪泛攻击和udp洪泛攻击两种攻击场景下的网络流量。表1.1显示了tcp-syn洪泛攻击的测试结果,表1.2显示了udp洪泛攻击的测试结果,测试结果中包含对当前观察窗口状态的检测结果,以观察窗口为单位;以及ddos攻击流量过滤方法对具体数据包进行的分类结果,以数据包为单位。
[0112]
从测试结果来看,本发明提供的ddos攻击检测方法与ddos攻击流量过滤方法能够有效的检测并防御ddos攻击流量,在各项指标上均优于对比算法。这是因为基于熵值差的
攻击检测算法不易受背景网络流量变化的影响,能够在复杂的网络环境中有效的实现多种ddos攻击的检测与防御。
[0113]
表1.1 tcp-syn洪泛攻击
[0114][0115]
表1.2 udp洪泛攻击
[0116][0117][0118]
综上,本发明提供的ddos攻击检测方法、ddos攻击流量过滤方法,基于源目地址熵值差的窗口级ddos攻击检测、以及基于源目地址计数值差的ddos攻击防御,将ddos攻击检测与防御完整的实现在可编程交换机数据平面上,不依赖控制面和远程服务器,有效避免了数据平面与控制平面交互过程带来的额外开销。此外,基于源目地址熵差的ddos攻击检测机制能够针对整体网络特征进行检测,以及基于源目地址计数值差的ddos攻击防御,不针对特定的ddos攻击类型,能够在多种ddos攻击中生效,具体一定的普适性。该方法适用于可编程交换机,能够保证在真实环境中的可行性,满足当前的高速网络的需求。
[0119]
本发明上述实施例可以应用于ddos攻击检测方法、ddos攻击流量过滤方法功能的终端设备中,该终端设备可以包括个人终端、以及上位机终端等,本发明实施例对此不加以限制。该终端可以支持windows、android(安卓)、ios、windowsphone等操作系统。
[0120]
参照图5,图5示出了一种ddos攻击检测与防御装置400,部署于可编程交换机中,其可实现通过如图1、图4所示的ddos攻击检测方法、ddos攻击流量过滤方法的各个过程。
[0121]
一种ddos攻击检测与防御装置400,该ddos攻击检测与防御装置可以为部署ddos攻击检测方法、ddos攻击流量过滤方法的可编程交换机设备,利用可编程交换机数据平面实现ddos攻击检测与防御,包括:
[0122]
入口模块401,所述入口模块用于ddos攻击检测,所述入口模块还包括:
[0123]
熵值计算模块4011,用于将进入可编程交换机数据平面的数据包划分为多个观察窗口,以及
[0124]
分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵;
[0125]
攻击状态判定模块4012,用于依据所述源ip地址的地址熵与所述目的ip地址的地址熵的差值,判断当前观察窗口中是否含有ddos攻击流量;
[0126]
若所述源ip地址的地址熵与所述目的ip地址的地址熵的差值超过第一熵值阈值,则所述观察窗口中存在ddos攻击发生;
[0127]
出口模块402,所述出口模块用于ddos攻击流量过滤,所述出口模块还包括:
[0128]
攻击识别模块4021,用于识别当前观察窗口中的ddos攻击状态,以及
[0129]
若当前观察窗口中的ddos攻击状态为ddos攻击发生,则判别当前数据包是否属于ddos攻击流量;
[0130]
流量过滤模块4022,用于若当前数据包的目的ip地址被判别为被攻击者,可编程交换机将指向被攻击者的数据包识别为攻击数据包并丢弃。
[0131]
本实施例提供的ddos攻击检测与防御装置400,将ddos攻击检测与防御完整的实现在可编程交换机数据平面上,不依赖控制面和远程服务器,有效避免了数据平面与控制平面交互过程带来的额外开销。此外,基于源目地址熵差的ddos攻击检测机制能够针对整体网络特征进行检测,以及基于源目地址计数值差的ddos攻击防御,不针对特定的ddos攻击类型,能够在多种ddos攻击中生效,具体一定的普适性。该方法适用于可编程交换机,能够保证在真实环境中的可行性,满足当前的高速网络的需求。
[0132]
此外,应当理解,在根据本技术实施例的ddos攻击检测与防御装置400中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即ddos攻击检测与防御装置400可划分为与上述例示出的模块不同的功能模块,以完成以上描述的全部或者部分功能。
[0133]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。

技术特征:
1.一种ddos攻击检测方法,其特征在于,包括:将进入可编程交换机数据平面的数据包划分为多个观察窗口,分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵;依据所述源ip地址的地址熵与所述目的ip地址的地址熵,判断当前观察窗口中是否含有ddos攻击流量。2.根据权利要求1所述的方法,其特征在于,所述分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵,包括:分别统计每个源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次;利用所述源ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次计算所述源ip地址的地址熵;利用所述目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次计算所述目的ip地址的地址熵。3.根据权利要求2所述的方法,其特征在于,在每一个观察窗口内的源ip地址的地址熵表示为:其中,m表示一个观察窗口中的数据包数,n1表示当前观察窗口中共有n1种不同的源ip地址,k
i
表示第i种源ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次;在每一个观察窗口内的目的ip地址的地址熵表示为:其中,m表示一个观察窗口中的数据包数,n2表示当前观察窗口中共有n2种不同的目的ip地址,k
j
表示第j种目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。4.根据权利要求1-3任一项所述的方法,其特征在于,所述依据所述源ip地址的地址熵与所述目的ip地址的地址熵,判断当前观察窗口中是否含有ddos攻击流量,包括:若所述源ip地址的地址熵与所述目的ip地址的地址熵的差值超过第一熵值阈值,则所述观察窗口中存在ddos攻击发生。5.根据权利要求2所述的方法,其特征在于,可编程交换机数据平面采用基于sketch的多组数据流统计结构轮换工作机制统计并保存源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。6.根据权利要求4所述的方法,其特征在于,所述基于sketch的多组数据流统计结构包括:一标识寄存器,用于指示多组sketch的工作状态;ip地址对应部分,用于使用多个互不相关的哈希函数确定目的ip地址在sketch中的对
应位置,在同一个sketch中每一行对应的哈希函数互不相关;ip地址出现频次记录部分,用于记录同一个观察窗口中的源ip地址或目的ip地址的出现频次;频次输出部分,用于在每一组sketch的多行计数值中取最小作为源ip地址或目的ip地址的出现频次。7.根据权利要求6所述的方法,其特征在于,采用基于sketch的两组数据流统计结构,在每个观察窗口结束时翻转所述标识寄存器的值,将两组sketch轮换进行更新,保存源ip地址与目的ip地址在当前观察窗口以及上一个安全状态的观察窗口内的出现频次。8.一种ddos攻击流量过滤方法,其特征在于,包括:将进入可编程交换机数据平面的数据包划分为多个观察窗口;识别当前观察窗口中的ddos攻击状态;若当前观察窗口中的ddos攻击状态为ddos攻击发生,则判别当前数据包是否属于ddos攻击流量;若当前数据包的目的ip地址被判别为被攻击者,可编程交换机将指向被攻击者的数据包识别为攻击数据包并丢弃。9.根据权利要求8所述的方法,其特征在于,所述判别当前数据包是否属于ddos攻击流量,包括:判断当前数据包的源ip地址与目的ip地址之差的变化量是否超过第二阈值;若所述源ip地址与目的ip地址之差的变化量超过第二阈值,则认定当前数据包指向的目的ip地址受到ddos攻击,将当前数据包的目的ip地址判别为被攻击者。10.根据权利要求9所述的方法,其特征在于,所述源ip地址与所述目的ip地址之差的变化量表示为:d=(dst
now-src
now
)-(dst
safe-src
safe
)其中,dst
now
与src
now
分别是当前观察窗口中数据包源ip地址的出现频次与目的ip地址的出现频次,dst
safe
与src
safe
是当前观察窗口的上一个安全状态的观察窗口中数据包源ip地址的出现频次与目的ip地址的出现频次。11.一种ddos攻击检测与防御装置,其特征在于,部署于可编程交换机数据平面实现ddos攻击检测与防御,包括:入口模块,所述入口模块用于ddos攻击检测,所述入口模块还包括:熵值计算模块,用于将进入可编程交换机数据平面的数据包划分为多个观察窗口,以及分别计算每一个观察窗口内的源ip地址的地址熵与目的ip地址的地址熵;攻击状态判定模块,用于依据所述源ip地址的地址熵与所述目的ip地址的地址熵的差值,判断当前观察窗口中是否含有ddos攻击流量;若所述源ip地址的地址熵与所述目的ip地址的地址熵的差值超过第一熵值阈值,则所述观察窗口中存在ddos攻击发生;出口模块,所述出口模块用于ddos攻击流量过滤,所述出口模块还包括:攻击识别模块,用于识别当前观察窗口中的ddos攻击状态,以及若当前观察窗口中的ddos攻击状态为ddos攻击发生,则判别当前数据包是否属于ddos
攻击流量;流量过滤模块,用于若当前数据包的目的ip地址被判别为被攻击者,可编程交换机将指向被攻击者的数据包识别为攻击数据包并丢弃。

技术总结
本发明提出一种DDoS攻击检测方法、DDoS攻击流量过滤方法、装置,方法包括:将进入可编程交换机数据平面的数据包划分为多个观察窗口,分别计算每一个观察窗口内的源IP地址的地址熵与目的IP地址的地址熵;依据源IP地址的地址熵与目的IP地址的地址熵,判断当前观察窗口中是否含有DDoS攻击流量;若当前观察窗口中的DDoS攻击状态为DDoS攻击发生,则判别当前数据包是否属于DDoS攻击流量;若当前数据包的目的IP地址被判别为被攻击者,将指向被攻击者的数据包识别为攻击数据包并丢弃。该方法将DDoS攻击检测与防御的机制完整的实现在可编程交换机上,不依赖控制面和远程服务器,有效避免了数据面与控制平面交互过程带来的额外开销。数据面与控制平面交互过程带来的额外开销。数据面与控制平面交互过程带来的额外开销。


技术研发人员:武文浩 李振宇 张磊磊 李恩晗
受保护的技术使用者:中国科学院计算技术研究所
技术研发日:2022.06.29
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-10232.html

最新回复(0)