一种防御ddos流量攻击检测的方法与流程

文档序号:27314038发布日期:2021-11-09 23:26阅读:249来源:国知局
一种防御ddos流量攻击检测的方法与流程

1.本发明涉及计算机网络技术领域,具体为一种防御ddos流量攻击检测的方法。


背景技术:

2.随着互联网技术的快速发展,利用互联网进行攻击的行为也越来越多,其中,分布式拒绝服务(ddos)攻击就是一种常见的攻击手段,其共同的特征就是利用协议漏洞,并通过很多伪造的“僵尸主机”向受害目标主机发送大量看似合法的网络包,从而导致网络阻塞或目标服务器资源耗尽而导致服务不可用,分布式拒绝服务(ddos)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动ddos攻击,从而成倍地提高拒绝服务攻击的威力。
3.分布式拒绝服务攻击采取的攻击手段就是分布式的,其攻击的模式改变了传统的点对点的攻击模式,使攻击方式出现了没有规律的情况,而且在进行攻击的时候,通常使用的也是常见的协议和服务,这样只是从协议和服务的类型上是很难对攻击进行区分的。在进行攻击的时候,攻击数据包都是经过伪装的,在源ip地址上也是进行伪造的,这样就很难对攻击进行地址的确定,在查找方面也是很难的,这样就导致了分布式拒绝服务攻击在检验方法上是很难做到的,而且现有的检测方法检测异常流量的准确率低,识别精度不够好、处理速度慢,而且复杂度较高,不能满足人们的要求。


技术实现要素:

4.(一)解决的技术问题针对现有技术的不足,本发明提供了一种防御ddos流量攻击检测的方法,解决了现有的检测方法检测异常流量的准确率低,识别精度不够好、处理速度慢,而且复杂度较高,不能满足人们的要求的问题。
5.(二)技术方案为实现上述目的,本发明提供如下技术方案:一种防御ddos流量攻击检测的方法,包括以下步骤:s101:接收应用流量请求,并监视来访ip的访问请求;s102:判断ip地址是否在系统白名单中,如果是,则进入步骤s109直接转发请求,如果否,则进入步骤s103;s103:判断ip地址是否在系统黑名单中,如果是,则进入步骤s108直接丢弃该流量,如果否,则进入步骤s104;s104:判断源地址ip是否在流量top n动态过滤表的top n排序中,s4中首先根据预设的时间分段模式获得当前时间所属时间节点,采用24*m小时作为当前的周期,计算当前时间所属时间段,根据实际应用场景需要变换m的数值加大这个周期长度,采用当前时间/24*m来获得来访ip所属时间节点k,然后自动加载当前流量top n动态过滤表,流量top n动态过滤表可以通过链表来实现;
s105:如果ip地址在流量top n动态过滤表排序中,则根据预先设定的时间窗口周期,根据当前流量采集的时间节点,检索到该地址该时间点对应编号的流量模板数值,将当前流量数值与流量模板数值作比较运算,根据是否超出了预设的阀值来判定该流量是否为异常流量,如果超出阀值,则进入步骤s108,如果未超过阀值,则进入步骤s107;s106:如果ip地址不在流量top n动态过滤表的排序中,则根据预先设定的时间窗口周期,根据该地址当前流量采集的时间点,从表中的流量平均模板eq中检索到该时间点对应编号的流量模板数值,将当前流量数值与该流量模板数值作比较运算,根据是否超出了预设阀值β来判定该流量是否为异常流量,如果超出预设阀值β,则进入步骤s108,如果未超过,则进入步骤s107;s107:通过自学习算法更新该ip地址对应该时间节点的流量模板数值,并判定其流量为正常流量,转入步骤s109,通过自学习算法更新该ip地址对应该时间节点的流量模板数值的具体实现方法如下,第一步:模板初始化,流量模板数值通过类似极大似然估计的快速自学习得到,在每个固定的流量周期时间窗口内,对首个访问的正常流量根据各个对应的时间采样,其采样值作为一个初始化的流量模板,第二步:模板自学习,流量模板数值mn(k)通过流量自适应反馈式极大似然估计算法得到,通过快速检索获得上一个时间周期当前时间点的流量模板数值mn

1(k)与前一个时间窗口周期获得的未经过处理的流量数值xn

1(k),后者乘以异常判决结果因子b(k)(0/1),再与前者作平均运算,运算结果作为新的流量模板数值,第三步:模板锁定,经过一段时间自学习后,可以由人为的参与锁定流量模型,不再进行学习;s108:若检测到属于异常流量,则判定当前为ddos攻击行为,过滤来访ip请求;s109:若检测到不属于异常流量,则转发来访ip请求。
6.作为本发明再进一步的方案,所述s104中流量top n动态过滤表内容包含了从1
……
n+m个有记录的流量排序最靠前的ip信息链表,按照历史流量从大到小依次排序,其中排序为n的一个链表的内容包括:ip地址xxx.xxx.xxx.xxx、历史访问流量统计xx、流量模板rn=(mn(1)、mn(2)、mn(3)
……
mn(k),流量模板为该表项的主要内容,如果将一个特定流量周期的时间分成k份,则mn(k)表示时间点k上该ip地址在该时间段里历史流量的特征值,称作流量模板数值,这个值是由周期统计特性的历史流量最大期望值,计算方法由自学习算法来不断的动态更新,在实际应用中,应用流量的访问行为通常具有很强的周期性(天/周),这是采用该算法的关键所在,此外,流量top n动态过滤表内容还包含了链表e,它的ip地址和历史访问累计数为空,其流量平均模板eq=(e(1)、e(2)、e(3)
……
e(k))中的每个节点的流量模板数值是所有非topn历史访问流量在该时间点的统计平均值,例如将一个特定流量周期的时间分成k份,则ek表示时间点k内所有正常流量在该时间段的特征值,实际就是历史流量的求和平均值,这也是很多其它流量检测方法采用的最常见的方式,流量top n动态过滤表由自学习得到,也允许人工调整和修正流量top n动态过滤表,具备较大的人工操作空间。
7.进一步的,所述s104中自动加载当前流量top n动态过滤表,根据历史流量统计实时更新排列顺序,其中排列顺序的更新依据是ip地址的历史访问流量统计,前n个ip信息链表的具体排序说明如下:参考所有的ip地址历史访问流量统计,如果当前ip地址的历史访问流量统计数超过排序第n个的ip地址时,则将该ip地址的相关信息替换第n个ip信息链表
中,对应的第k个流量模板数值直接取流量平均模板eq中第k个值mn(k)=e(k),此外将第n个排序的原ip信息链表往下移一列,进入到由m个缓冲记录组成的潜在ip信息链表中,更新流量top n动态过滤表中链表对应的流量模板数值,具体说明如下:对每个来访的ip地址,当ip地址在流量排序前n+m个表中第n行,而且已经判定了该流量数值为正常流量,则将该流量数值r作为一个输入更新第n行对应时间点k的流量模板数值mn(k),方法由自学习算法来更新,当地址不在流量排序前n+m个表中,而且判定一条流量为普通正常流量,则将该流量作为一个输入值x(k)与流量平均模板对应时间点k的流量模板数值e(k)做平均运算,得到新的流量模板数值enew(k)并更新到信息链表中,方法同样由自学习算法enew(k)=[eold(k)+b(k)*x(k)]/2。
[0008]
在前述方案的基础上,所述s105和s106中比较运算算法如下:根据当前流量的时间节点k,检索到该时间节点的流量模板数值mn(k),将当前流量数值x(k)除以流量模板数值mn(k),即x(k)/mn(k),结果如果超过预设阀值β(β为预先设定,根据经验默认β=3),则直接判定该流量为异常流量,否则判定为疑似流量;如果判定是疑似流量,则根据当前流量模板,往后取i个(i为预先设定,根据经验默认i=5)流量数值x(k+1)
……
x(k+i)及对应的流量模板数值mn(k+1)
……
mn(k+i),如果x(k)/mn(k)+x(k+1)/mn(k+1)+
……
+x(k+i)/mn(k+i),结果超过预设阀值β,则判定为异常流量,否则为这个正常流量,如果超出阀值,则进入步骤s108,如果未超过阀值,则进入步骤s107。
[0009]
进一步的,所述s107中一个时间窗口周期t内量化的流量数值序列为x(x(1)、x(2)
……
x(k)),比较运算器负责把当前流量数值序列x与流量模板数值序列m(m(1)、m(2)
……
m(k))进行比较运算输出结果做为异常判定输出,此外根据输出结果做为异常判决结果因子b(k)(0/1)来决定是否将当前流量数值序列x(x(1)、x(2)
……
x(k))输入到流量模板更新中,更新方法是将x与上一个时间窗口周期t得到的旧流量模板mold(mold(1)、mold(2)
……
mold(k))进行求和运算获得新的流量模板m(m(1)、m(2)
……
m(k)),更新流量模板的递推公式表示为:mn(k)表示一个时间窗口周期内当前时间点的流量模板数值,mn

1(k)为前一个时间窗口周期当前时间点的流量模板数值,xn

1(k)是前一个接收到的未经过处理的流量数值,b(k)是异常判决结果因子,rinit(k)为初始化流量模板,初始值都为(0、0

0),假设b的结果都是正确的,经过n次平均运算处理后,异常流量的能量将减小到1/n,当n足够大时,可以认为此时的流量模板数值是最佳值。
[0010]
本发明还提出了一种异常流量攻击检测处置的装置,包括依次连接的流量接收单元、静态过滤单元、动态监测过滤单元和处理单元,动态监测过滤单元还连接有运算判决单元和自学习单元。
[0011]
(三)有益效果与现有技术相比,本发明提供了一种防御ddos流量攻击检测的方法,具备以下有益效果:1、本发明通过静态与动态结合的方式,采用一个动态更新的流量top n动态过滤表来对异常流量进行动态过滤,通过查表的动态过滤方式能够快速甄别出异常流量,而通过流量数值与流量top n动态过滤表中相应的流量模板数值的比较运算判定异常的方法提高了检测异常流量的准确率,确保将异常攻击从正常访问行为中甄别出来,相比其它基于flow统计的ddos攻击检测方法具有识别精度更高、处理速度更快而且实现复杂度较低的特
点。
[0012]
2、本发明能够提高异常行为的处理效率和检测准确率,快速检测和处理异常攻击流量而且不能影响正常的流量访问。
[0013]
3、本发明流量top n动态过滤表过滤的方法与攻击检测方法不同,本方法采用快速查询动态表的方式,并没有复杂的逻辑处理和判断,实现了ip访问情况的快速处理和转发,不会引起因应用访问的时延而影响访问体验,方法处理的精度主要取决于参数n、m和k的设定,这关系到算法的内存资源开销,具体实现中可以根据硬件资源灵活设定。
[0014]
4、本发明通过流量接收单元接收来访ip地址的流量请求,静态过滤单元可通过设置白名单和黑名单的方式,属于白名单中的判为正常流量,属于黑名单中的判为异常流量,动态监测过滤单元的功能是判断来访ip地址是否在流量top n动态过滤表中,运算判决单元是对属于和不属于流量top n动态过滤表排序中的ip地址进行运算并判定是否是异常流量,自学习单元执行的功能是动态维护和更新top n动态过滤表,对历史访问流量统计进行排序,并动态更新对应的来访ip地址的流量模板,处理单元的功能是丢弃异常的流量请求和转发正常的流量请求。
附图说明
[0015]
图1为本发明提出的一种防御ddos流量攻击检测的方法的流程结构示意图;图2为本发明提出的一种异常流量攻击检测处置的装置结构示意图;图3为本发明提出的一种防御ddos流量攻击检测的方法的流量自学习方法结构示意图。
具体实施方式
[0016]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0017]
参照图1

3,一种防御ddos流量攻击检测的方法,包括以下步骤:s101:接收应用流量请求,并监视来访ip的访问请求;s102:判断ip地址是否在系统白名单中,如果是,则进入步骤s109直接转发请求,如果否,则进入步骤s103;s103:判断ip地址是否在系统黑名单中,如果是,则进入步骤s108直接丢弃该流量,如果否,则进入步骤s104;s104:判断源地址ip是否在流量top n动态过滤表的top n排序中,s4中首先根据预设的时间分段模式获得当前时间所属时间节点,采用24*m小时作为当前的周期,计算当前时间所属时间段,根据实际应用场景需要变换m的数值加大这个周期长度,采用当前时间/24*m来获得来访ip所属时间节点k,然后自动加载当前流量top n动态过滤表,流量top n动态过滤表可以通过链表来实现,具体内容如下表所示:
;s105:如果ip地址在流量top n动态过滤表排序中,则根据预先设定的时间窗口周期,根据当前流量采集的时间节点,检索到该地址该时间点对应编号的流量模板数值,将当前流量数值与流量模板数值作比较运算,根据是否超出了预设的阀值来判定该流量是否为异常流量,如果超出阀值,则进入步骤s108,如果未超过阀值,则进入步骤s107;s106:如果ip地址不在流量top n动态过滤表的排序中,则根据预先设定的时间窗口周期,根据该地址当前流量采集的时间点,从表中的流量平均模板eq中检索到该时间点对应编号的流量模板数值,将当前流量数值与该流量模板数值作比较运算,根据是否超出了预设阀值β来判定该流量是否为异常流量,如果超出预设阀值β,则进入步骤s108,如果未超过,则进入步骤s107;s107:通过自学习算法更新该ip地址对应该时间节点的流量模板数值,并判定其流量为正常流量,转入步骤s109,通过自学习算法更新该ip地址对应该时间节点的流量模板数值的具体实现方法如下,第一步:模板初始化,流量模板数值通过类似极大似然估计的快速自学习得到,在每个固定的流量周期时间窗口内,对首个访问的正常流量根据各个对应的时间采样,其采样值作为一个初始化的流量模板,第二步:模板自学习,流量模板数值mn(k)通过流量自适应反馈式极大似然估计算法得到,通过快速检索获得上一个时间周期当前时间点的流量模板数值mn

1(k)与前一个时间窗口周期获得的未经过处理的流量数值xn

1(k),后者乘以异常判决结果因子b(k)(0/1),再与前者作平均运算,运算结果作为新的流量模板数值,这样使得异常流量不会被学习到,这样在理论上被证明是一种快速收敛的极大似然估计自学习算法,第三步:模板锁定,经过一段时间自学习后,可以由人为的参与锁定流量模型,不再进行学习,以确保异常处理的快速有效;s108:若检测到属于异常流量,则判定当前为ddos攻击行为,过滤来访ip请求,通过静态与动态结合的方式,采用一个动态更新的流量top n动态过滤表来对异常流量进行动态过滤,通过查表的动态过滤方式能够快速甄别出异常流量,而通过流量数值与流量top n动态过滤表中相应的流量模板数值的比较运算判定异常的方法提高了检测异常流量的准确率,确保将异常攻击从正常访问行为中甄别出来,相比其它基于flow统计的ddos攻击检测方法具有识别精度更高、处理速度更快而且实现复杂度较低的特点;s109:若检测到不属于异常流量,则转发来访ip请求,提高异常行为的处理效率和
检测准确率,快速检测和处理异常攻击流量而且不能影响正常的流量访问。
[0018]
本发明的s104中流量top n动态过滤表内容包含了从1
……
n+m个有记录的流量排序最靠前的ip信息链表,按照历史流量从大到小依次排序,其中排序为n的一个链表的内容包括:ip地址xxx.xxx.xxx.xxx、历史访问流量统计xx、流量模板rn=(mn(1)、mn(2)、mn(3)
……
mn(k),流量模板为该表项的主要内容,如果将一个特定流量周期的时间分成k份,则mn(k)表示时间点k上该ip地址在该时间段里历史流量的特征值,称作流量模板数值,这个值是由周期统计特性的历史流量最大期望值,计算方法由自学习算法来不断的动态更新,在实际应用中,应用流量的访问行为通常具有很强的周期性(天/周),这是采用该算法的关键所在,此外,流量top n动态过滤表内容还包含了链表e,它的ip地址和历史访问累计数为空,其流量平均模板eq=(e(1)、e(2)、e(3)
……
e(k))中的每个节点的流量模板数值是所有非topn历史访问流量在该时间点的统计平均值,例如将一个特定流量周期的时间分成k份,则ek表示时间点k内所有正常流量在该时间段的特征值,实际就是历史流量的求和平均值,这也是很多其它流量检测方法采用的最常见的方式,流量top n动态过滤表由自学习得到,也允许人工调整和修正流量top n动态过滤表,具备较大的人工操作空间,s104中自动加载当前流量top n动态过滤表,根据历史流量统计实时更新排列顺序,其中排列顺序的更新依据是ip地址的历史访问流量统计,前n个ip信息链表的具体排序说明如下:参考所有的ip地址历史访问流量统计,如果当前ip地址的历史访问流量统计数超过排序第n个的ip地址时,则将该ip地址的相关信息替换第n个ip信息链表中,对应的第k个流量模板数值直接取流量平均模板eq中第k个值mn(k)=e(k),此外将第n个排序的原ip信息链表往下移一列,进入到由m个缓冲记录组成的潜在ip信息链表中,更新流量top n动态过滤表中链表对应的流量模板数值,具体说明如下:对每个来访的ip地址,当ip地址在流量排序前n+m个表中第n行,而且已经判定了该流量数值为正常流量,则将该流量数值r作为一个输入更新第n行对应时间点k的流量模板数值mn(k),方法由自学习算法来更新,当地址不在流量排序前n+m个表中,而且判定一条流量为普通正常流量,则将该流量作为一个输入值x(k)与流量平均模板对应时间点k的流量模板数值e(k)做平均运算,得到新的流量模板数值enew(k)并更新到信息链表中,方法同样由自学习算法enew(k)=[eold(k)+b(k)*x(k)]/2,流量top n动态过滤表过滤的方法与攻击检测方法不同,本方法采用快速查询动态表的方式,并没有复杂的逻辑处理和判断,实现了ip访问情况的快速处理和转发,不会引起因应用访问的时延而影响访问体验,方法处理的精度主要取决于参数n、m和k的设定,这关系到算法的内存资源开销,具体实现中可以根据硬件资源灵活设定。
[0019]
需要特别说明的是,s105和s106中比较运算算法如下:根据当前流量的时间节点k,检索到该时间节点的流量模板数值mn(k),将当前流量数值x(k)除以流量模板数值mn(k),即x(k)/mn(k),结果如果超过预设阀值β(β为预先设定,根据经验默认β=3),则直接判定该流量为异常流量,否则判定为疑似流量;如果判定是疑似流量,则根据当前流量模板,往后取i个(i为预先设定,根据经验默认i=5)流量数值x(k+1)
……
x(k+i)及对应的流量模板数值mn(k+1)
……
mn(k+i),如果x(k)/mn(k)+x(k+1)/mn(k+1)+
……
+x(k+i)/mn(k+i),结果超过预设阀值β,则判定为异常流量,否则为这个正常流量,如果超出阀值,则进入步骤s108,如果未超过阀值,则进入步骤s107,s107中一个时间窗口周期t内量化的流量数值序列为x(x(1)、x(2)
……
x(k)),比较运算器负责把当前流量数值序列x与流量模板数值序列m
(m(1)、m(2)
……
m(k))进行比较运算输出结果做为异常判定输出,此外根据输出结果做为异常判决结果因子b(k)(0/1)来决定是否将当前流量数值序列x(x(1)、x(2)
……
x(k))输入到流量模板更新中,更新方法是将x与上一个时间窗口周期t得到的旧流量模板mold(mold(1)、mold(2)
……
mold(k))进行求和运算获得新的流量模板m(m(1)、m(2)
……
m(k)),更新流量模板的递推公式表示为:mn(k)表示一个时间窗口周期内当前时间点的流量模板数值,mn

1(k)为前一个时间窗口周期当前时间点的流量模板数值,xn

1(k)是前一个接收到的未经过处理的流量数值,b(k)是异常判决结果因子,rinit(k)为初始化流量模板,初始值都为(0、0

0),假设b的结果都是正确的,经过n次平均运算处理后,异常流量的能量将减小到1/n,当n足够大时,可以认为此时的流量模板数值是最佳值,这样在理论上被证明是一种快速收敛的极大似然估计自学习算法,是访问流量行为的最佳估计。
[0020]
本发明还提出了一种异常流量攻击检测处置的装置,包括依次连接的流量接收单元、静态过滤单元、动态监测过滤单元和处理单元,动态监测过滤单元还连接有运算判决单元和自学习单元,流量接收单元接收来访ip地址的流量请求,静态过滤单元可通过设置白名单和黑名单的方式,属于白名单中的判为正常流量,属于黑名单中的判为异常流量,动态监测过滤单元的功能是判断来访ip地址是否在流量top n动态过滤表中,运算判决单元是对属于和不属于流量top n动态过滤表排序中的ip地址进行运算并判定是否是异常流量,自学习单元执行的功能是动态维护和更新top n动态过滤表,对历史访问流量统计进行排序,并动态更新对应的来访ip地址的流量模板,处理单元的功能是丢弃异常的流量请求和转发正常的流量请求。
[0021]
在该文中的描述中,需要说明的是,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0022]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1