一种基于DDOS攻击中恶意地址的检测方法及装置与流程

文档序号:12376833阅读:273来源:国知局
一种基于DDOS攻击中恶意地址的检测方法及装置与流程

本发明涉及网络安全技术领域,更具体地,涉及基于DDOS攻击中恶意地址的检测方法及装置。



背景技术:

DDOS(Distributed Denial of Service,分布式拒绝服务)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDOS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃账号将DDOS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。

现今针对DDOS攻击的防御技术主要使用:(1)反向探测;(2)协议栈分析及;(3)指纹识别。首先,反向探测是对通过数据包的来源地址进行验证分析,判断诸如真实性,地理位置,端口开放情况等,决定IP地址是否合法,但实际使用中,有限的资源不允许对所有访问的地址来源进行反向探测,反向探测适合于对已筛选出少量的可疑地址进一步核实,反向探测技术本身并没有解决如何从海量地址中筛选出疑似攻击地址的问题。然后,协议栈分析是基于RFC(Request For Comments,一系列以编号排定的文件)规范,由于每个数据包类型最基本需符合RFC规范,攻击者通过工具构造的数据包存在不符合规范的情形,此时通过协议栈分析可检测出攻击行为,但随着攻击的升级,高级的攻击者仍然可以构造出尽可能符合协议栈规范的数据包,增加协议栈分析的难度,该分析工具只能应对初级程度的攻击者,也无法准确地筛选恶意攻击的IP地址。最后,指纹识别用于识别DDOS攻击具有最高的精度,同时需要更多的资源消耗,且无法识别指纹库当中暂未收录的新型攻击,在系统主机受到攻击时难以做出快速的反应。

因此,虽然定位攻击者的IP地址具有实际应用价值,但如何从大量数据包通信中确定恶意的IP地址,并保证足够的准确率,尤其需要防范将正常访问的IP地址列入黑名单,对正常用户造成影响,是目前业界有待解决的问题。



技术实现要素:

鉴于上述问题,本发明提出了一种基于DDOS攻击中恶意地址的检测方法及装置。

本发明实施例中提供了一种基于DDOS攻击中恶意地址的检测方法,包括:

获取预设时间窗当中一个数据包的头文件,由该头文件内的预设N个字段项目组成N项集;

在由预设数个数据包的头文件的所述N个字段项目组成的候选集当中查找包含所述N项集的子集的记录;

设定所述记录的次数或频率的最小支持度;

当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包;

当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。

优选地,所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型当中的至少三个项目,其中,N≥3;或者,所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型,其中,N≥5;或者,所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型、源端口、网络路径当中的至少五个项目,其中,N≥5。

优选地,获取预设时间窗当中一个数据包的头文件的步骤之前,包括:

监控网络的数据包流量,当所述数据包流量超过第一告警阈值时,获取预设数量或预设时长内的所述数个数据包。

优选地,在由预设数个数据包的头文件的所述N个字段项目组成的候选集当中查找包含所述N项集的子集的记录的步骤,包括,

从所述N项集的一元子集开始,到所述N项集的N-1元子集,依次在所述候选集当中查找包含所述N项集的k元子集的记录,其中,1≤k≤N-1;

在所述设定所述记录的次数或频率的最小支持度的步骤之后,还包括,

当所述N项集的k元子集的记录的次数或频率不小于所述最小支持度时,在所述候选集当中查找包含所述N项集的k+1元子集的记录。

优选地,当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址的步骤之后,还包括:

将所述N项集的记录的次数或频率设置为该恶意地址的风险估值;

设定所述恶意地址的风险估值的最小可信度;

当监控网络的数据包流量超过第二告警阈值时,限制非白名单内的风险估值大于所述最小可信度的恶意地址的访问;

当监控网络的数据包流量低于第三告警阈值时,分析风险估值大于所述最小可信度的恶意地址的地址来源,并根据分析的结果将该恶意地址加入所述白名单。

相应地,本发明实施例提供了一种基于DDOS攻击中恶意地址的检测装置,包括:

指针获取单元,用于获取预设时间窗当中一个数据包的头文件,由该头文件内的预设N个字段项目组成N项集;

记录查找单元,用于在由预设数个数据包的头文件的所述N个字段项目组成的候选集当中查找包含所述N项集的子集的记录;

门限设定单元,用于设定所述记录的次数或频率的最小支持度;

指针跳转单元,用于当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包;

结果判定单元,用于当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。

优选地,所述指针获取单元,包括:

项目指定单元,用于指定预设的N个字段项目;

所述N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型当中的至少三个项目,其中,N≥3;或者,

所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型,其中,N≥5;或者,

所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型、源端口、网络路径当中的至少五个项目,其中,N≥5。

优选地,包括:

第一告警单元,用于监控网络的数据包流量,当所述数据包流量超过第一告警阈值时,获取预设数量或预设时长内的所述数个数据包。

优选地,所述记录查找单元,包括:

递归查找单元,用于从所述N项集的一元子集开始,到所述N项集的N-1元子集,依次在所述候选集当中查找包含所述N项集的k元子集的记录,其中,1≤k≤N-1;当所述N项集的k元子集的记录的次数或频率不小于所述最小支持度时,在所述候选集当中查找包含所述N项集的k+1元子集的记录。

优选地,还包括:

风险估值单元,用于将所述N项集的记录的次数或频率设置为该恶意地址的风险估值;

可信度设定单元,用于设定所述恶意地址的风险估值的最小可信度;

第二告警单元,用于当监控网络的数据包流量超过第二告警阈值时,限制非白名单内的风险估值大于所述最小可信度的恶意地址的访问;

第三告警单元,用于当监控网络的数据包流量低于第三告警阈值时,分析风险估值大于所述最小可信度的恶意地址的地址来源,并根据分析的结果将该恶意地址加入所述白名单。

相对于现有技术,本发明提供的方案,获取检测时间窗口当中一个数据包的头文件,由该头文件内的预设N个字段项目组成N项集。尽管不同网络的数据包格式会略有不同,但对于同一网络类型的数据包头文件格式是一致的,本发明只需从一个数据包的头文件内指定的项目信息,就能快速地分析该数据包是否由恶意的IP地址发出,操作简便、通用性强。在开始分析之前,先由预设数个数据包的头文件的所述N个字段项目组成候选集,再在该候选集当中查找包含所述N项集的子集的记录。该候选集是在遭遇大批数据包的流量冲击时,从该批数个数据包的头文件中提取指定的N个字段项目组成的集合。因此,该候选集相应的数据包当中隐藏了DDOS攻击者通过切换虚拟IP发出的恶意数据包,通过对当前一个数据包的N项集与候选集之间的关联性的跟踪挖掘,即可以通过N项少量的项目数据快速地匹配关联性,准确地锁定恶意IP地址。对于准确度的把握,可以通过设定所述记录的次数或频率的最小支持度来实现。一个数据包的N项集的子集在所述候选集当中出现的次数越多,和/或出现的频率越大,则表示该数据包由恶意地址发出的可能性越大。当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包;当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。本方案的第一个优势是,对于恶意地址发出的数据包的N项集,该N项集的任一非空子集相对于候选集的记录的次数或频率,必然是超过最小支持度的。因为假如N项集的任一非空子集I小于最小支持度阈值,当有元素A添加到I中时,组成的新的子集(A∩I)不可能比原来的子集I出现次数或出现频率更多。因此新的子集(A∩I)也不会大于所述最小支持度阈值。由此可知,我们通过N项集的子集进行筛查,是可以确保对非恶意地址筛查的准确性,避免影响正常用户的访问;同时,本方案的第二个优势是,通过一元子集或二元子集等低阶的集合进行比对筛查,由于元素较少,筛查的速度可以非常迅速的。故此,采用本方案,在系统主机受到攻击时就可以做出快速的反应,避免网络瘫痪。本方案的第三个优势是,显然本方案的准确性与N项集中元素的个数N也有关系,当N越大,分析的项目越多,准确性越高。同时,N项集的子集也会随着N的增大而激增。但由于前述一元子集或二元子集依然是所述N项集的子集,这些低阶的子集依然能迅速地排除一大批非恶意地址,故此,N的增大在提高分析的准确性之余,并不会带来大量的运算,也就不会显著地降低分析速度,故能满足实际网络访问当中的实时性要求。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明IP数据包格式的示意图;

图2为本发明一种基于DDOS攻击中恶意地址的检测方法的第一实施例流程图;

图3为第一实施例的第n时间窗内数据包的头文件字段项目信息示意图;

图4为本发明一种基于DDOS攻击中恶意地址的检测方法的第二实施例流程图;

图5为本发明一种基于DDOS攻击中恶意地址的检测方法的第二实施例监控网络示意图;

图6为本发明一种基于DDOS攻击中恶意地址的检测方法的第二实施例递归查找示意图;

图7为本发明一种基于DDOS攻击中恶意地址的检测装置的第一实施例示意图;

图8为本发明一种基于DDOS攻击中恶意地址的检测装置的第二实施例示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

从攻击者的角度而言,DDOS攻击流量实际上尽最大可能模拟正常访问的方式以绕过检测,攻击访问和正常访问两者最大区别在于在相同的时间内,出于DDOS攻击目的的访问量将是正常业务访问量的数十倍乃至更多,超出服务器的性能上限,从而达到拒绝服务的目的。本方法就是利用该区别,将超出正常访问次数的,经不同方式(如不同的源端口,不同的网络传输路径)针对同一目标主机重复发送相同内容的数据包找出来。例如,本方案可应用于IP数据包。

图1为本发明IP数据包格式的示意图。对于IP数据包格式,具体地,可从一个数据包的头文件(如图1的首部)提取并进行分析的字段项目包括:

1.源地址:固定源地址,目的是定位可疑攻击来源;

2.目的地址:固定目的地址为所需保护服务器,目的是分析针对该服务器的所有数据包;

3.源端口:允许源端口不重复,这是由于黑客在进行攻击时,可能会同时开启多个服务或进程,用多个端口向目的地址发送数据包

4.目的端口:固定目的端口为所需保护服务器端口(服务),目的是分析针对该端口(服务)的所有数据包;

5.协议/协议类型:协议类型主要分为UDP及TCP两种,由于协议类型与攻击方式高度相关,因此固定协议类型(如属于TCP协议时,可包含TCP协议标志位信息)

6.总长度/包长度:固定包长度,这是由于攻击者一旦启动攻击程序,攻击程序倾向生成大量固定长度,相同内容的数据包发往目的主机;

7.TTL(Time to live,生存时间):TTL反映了数据包由源地址到达目的地址的网络路径,不同的TTL预示着数据包从不同的路径到达目的主机。攻击数据包由可能短时间内循不同路径到达目的主机,因此允许TTL不重复。

除此之外,如图1所示,一个数据包的头文件(如图1的首部)可被提取并进行分析的字段项目还包括:版本,头文件长度/首部长度,区分服务,标识,标志,片偏移,首部检验和等,在此不一一解释。

另外,本方案也可以应用于其他的数据包格式。例如,针对TCP数据包格式,可提取的字段项目包括源端口(source port),目的端口(destination port),顺序号(sequence port),确认号(acknowledgement port),TCP头文件长度,窗口大小(window size),校验和(checksum),紧急指针(urgent pointer)等等;针对UDP数据包格式,可提取的字段项目包括源端口(source port),目的端口(destination port),长度(length),校验和(checksum),伪首部(pseudo header)等等;针对ARP数据包格式,可提取的字段项目包括硬件类型,协议类型,硬件地址长度,协议地址长度,操作代码,发送方硬件地址,发送方协议地址,目标方硬件地址,目标方协议地址等等。除上述数据包格式之外,本方案还可以应用于分析ICMP数据包,IPSEC数据包,OSPF数据包,以太网数据包等等,这些数据包的格式及相应的字段项目,在此不一一列举。由此可见,本方案可针对不同的数据包格式,提取相应的字段项目进行分析,操作简单,应用范围广。下面以图1的IP数据包格式为例,结合图2、图3对本发明第一实施例做进一步的说明。

图2为本发明一种基于DDOS攻击中恶意地址的检测方法的第一实施例流程图,包括:

S101:获取预设时间窗当中一个数据包的头文件,由该头文件内的预设N个字段项目组成N项集;

S102:在由预设数个数据包的头文件的所述N个字段项目组成的候选集当中查找包含所述N项集的子集的记录;

S103:设定所述记录的次数或频率的最小支持度;

S104:当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包;

S105:当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。

图3为第一实施例的第n时间窗内数据包的头文件字段项目信息示意图。

假设系统主机已经存储了过去一段时间之内恶意访问的数据包的头文件字段项目信息。如图3所示,现在提取“g=189”的时间窗的八条数据包记录进行分析。

首先,指针移到“g=189”的时间窗的第一条记录。

获取“g=189”时间窗口当中第一条记录的第一数据包的头文件,由该头文件内的预设N个字段项目组成N项集。尽管不同网络的数据包格式会略有不同,但对于同一网络类型的数据包头文件格式是一致的。

优选地,所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型当中的至少三个项目,其中,N≥3;或者,

优选地,所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型,其中,N≥5;或者,

优选地,所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型、源端口、网络路径当中的至少五个项目,其中,N≥5。

本第一实施例当中,假设N=3,预设N个字段项目为源地址、目的地址、包长度。即,所述第一数据包的N项集为{78.210.156.40,119.84.68.11,40}。本发明只需从第一数据包的上述三项字段项目信息,就能快速地分析该数据包是否由恶意的IP地址发出,操作简便、通用性强。

在开始分析之前,先由预设数个数据包的头文件的所述N个字段项目组成候选集,例如,从“g=001”时间窗至“g=90”时间窗之内仅有大概一千个数据包的正常访问业务,但从“g=091”时间窗至“g=180”时间窗之内激增到一万个数据包,则很可能遭遇恶意攻击,可以从该一万个数据包的头文件的源地址、目的地址、包长度等三个字段项目组成的候选集,对接下来“g=189”时间窗的第一数据包进行分析。又例如,也可以从历史记录中提取上一轮或上一周或上个月出现的激增数据包恶意攻击记录作为本次分析的候选集。再在该候选集当中查找包含所述N项集{78.210.156.40,119.84.68.11,40}的子集的记录。该候选集是在遭遇大批数据包的流量冲击时,从该批数个数据包的头文件中提取指定的N个字段项目组成的集合。因此,该候选集相应的数据包当中隐藏了DDOS攻击者通过切换虚拟IP发出的恶意数据包,通过对当前第一数据包的N项集与候选集之间的关联性的跟踪挖掘,即可以通过N项少量的项目数据快速地匹配关联性,准确地锁定恶意IP地址。

对于准确度的把握,可以通过设定所述记录的次数或频率的最小支持度来实现。例如,设定记录的次数的最小支持度为300次,和/或,设定记录的频率的最小支持度为20%。一个数据包的N项集的子集在所述候选集当中出现的次数越多,和/或出现的频率越大,则表示该数据包由恶意地址发出的可能性越大。

当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包。例如,所述N项集{78.210.156.40,119.84.68.11,40}的子集{78.210.156.40}的记录在候选集出现的次数为180次,小于最小支持度设定的300次。则无需再计算其他子集或N项集出现的次数或频率,可将指针跳转到当前“g=189”的时间窗的第二条记录。或者,所述N项集{78.210.156.40,119.84.68.11,40}的子集{78.210.156.40,40}的记录在候选集出现的频率为11%,小于最小支持度设定的20%,则也无需继续计算其他子集或N项集出现的次数或频率,可跳转到第二条记录。

当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。即,所述N项集{78.210.156.40,119.84.68.11,40}的一元子集{78.210.156.40}、{119.84.68.11}、{40};二元子集{78.210.156.40,40},{119.84.68.11,40}、{78.210.156.40,119.84.68.11};三元子集{78.210.156.40,119.84.68.11,40}之中,当N项集{78.210.156.40,119.84.68.11,40}本身及其上述任一子集当中的至少一个,例如上述一元子集/二元子集/三元子集当中的至少一个,它们的记录在候选集出现的频率不小于最小支持度设定的20%,或,出现的次数均不小于最小支持度设定的300次,则当前“g=189”的时间窗的第一条记录数据包的源地址IP=78.210.156.40为恶意地址。

然后,指针移到“g=189”的时间窗的第二条记录。分析如前,只要第二条记录的N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包。逐一检测。

最后,完成对“g=189”的时间窗的八条记录的检测分析。

本方案的第一个优势是,对于恶意地址发出的数据包的N项集,该N项集的任一非空子集相对于候选集的记录的次数或频率,必然是超过最小支持度的。因为假如N项集的任一非空子集I小于最小支持度阈值,当有元素A添加到I中时,组成的新的子集(A∩I)不可能比原来的子集I出现次数或出现频率更多。因此新的子集(A∩I)也不会大于所述最小支持度阈值。由此可知,我们通过N项集的子集进行筛查,是可以对非恶意地址确保筛查的准确性,避免影响正常用户的访问;同时,本方案的第二个优势是,通过一元子集或二元子集等低阶的集合进行比对筛查,由于元素较少,筛查的速度可以非常迅速的。故此,采用本方案,在系统主机受到攻击时就可以做出快速的反应,避免网络瘫痪。本方案的第三个优势是,显然本方案的准确性与N项集中元素的个数N也有关系,当N越大,分析的项目越多,准确性越高。同时,N项集的子集也会随着N的增大而激增。但由于前述一元子集或二元子集依然是所述N项集的子集,这些低阶的子集依然能迅速地排除一大批非恶意地址,故此,N的增大在提高分析的准确性之余,并不会带来大量的运算,也就不会显著地降低分析速度,故能满足实际网络访问当中的实时性要求。

需要补充说明的是,通过上述描述,不难得知,本发明是以Apriori算法原理为基础,是Apriori的改进算法在网络安全领域的具体实现方案。与传统的Apriori相比,本发明方案不需要找出N项集的频繁项集,也不需要分析N项集内各字段的强规则。例如,对于前述例子述N项集{78.210.156.40,119.84.68.11,40},即便其中的子集{78.210.156.40,119.84.68.11}在候选集当中,出现的次数或频率非常之高,是传统Apriori算法概念中的频繁项集,但只要有一个子集,例如{40}是非频繁的,那么,就无需继续计算,直到找到上述最终的频繁项集{78.210.156.40,119.84.68.11},更不必计算该频繁项集的强规则。故此,本发明Apriori的改进算法比传统算法运算速度更快。

图4为本发明一种基于DDOS攻击中恶意地址的检测方法的第二实施例流程图。图4第二实施例与图2第一实施例相比,图4字段项目指定N=5的N项集进行分析,分析更为准确。同时,通过递归查找的方式,从一元子集到N-1元子集单维、单层的递归查找,筛选更为快捷。

S201:监控网络的数据包流量,当所述数据包流量超过第一告警阈值时,获取预设数量或预设时长内的数个数据包;

S202:获取预设时间窗当中一个数据包的头文件,由该头文件内的预设N个字段项目组成N项集;所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型,其中,N≥5;

S203:从所述N项集的一元子集开始,到所述N项集的N-1元子集,依次在所述候选集当中查找包含所述N项集的k元子集的记录,其中,1≤k≤N-1;

S204:设定所述记录的次数或频率的最小支持度;

S205:当所述N项集的k元子集的记录的次数或频率不小于所述最小支持度时,在所述候选集当中查找包含所述N项集的k+1元子集的记录。

S206:当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包;

S207:当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。

前述的第一实施例即可以应用于实时监测,也可以用于事后分析。而本第二实施例具体应用于实时监测。图5为本发明一种基于DDOS攻击中恶意地址的检测方法的第二实施例监控网络示意图。如图5所示,本实施例采用抓包软件,对网络实时监测,监控网络的数据包流量,当所述数据包流量超过第一告警阈值时,获取预设数量或预设时长内的数个数据包。第一告警阈值是根据本地系统主机的业务处理能力而设定的,达到该阈值时,系统主机需进进入警备状态,避免网络瘫痪。优选地,可以从流量超过第一告警阈值的时刻起往前追溯一段时长内的数个数据包,用于组建候选集;也可以从流量超过第一告警阈值的时刻起往前追溯预设数量,假定一万个,的数据包,用于组建候选集。

由于是实时监测,本实施例在流量超过第一告警阈值的时间窗开始,获取预设时间窗当中一个数据包的头文件,由该头文件内的预设N个字段项目组成N项集。优选地,所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型等五个项目。以图3的第二条记录为例,实施例二检测的数据包的N项集为{221.228.253.156,119.84.68.7,1344,555,UDP}。

接下来,使用递归方式进行查找。

图6为本发明一种基于DDOS攻击中恶意地址的检测方法的第二实施例递归查找示意图。如图6所示,从所述N项集的一元子集开始,到所述N项集的N-1元子集,依次在所述候选集当中查找包含所述N项集的k元子集的记录,其中,1≤k≤N-1。设定所述记录的次数或频率的最小支持度;当所述N项集的k元子集的记录的次数或频率不小于所述最小支持度时,在所述候选集当中查找包含所述N项集的k+1元子集的记录。

由于低阶的子集元素少,查找其他非常迅速,而且高阶的子集只需要在低阶子集的筛查结果之中进行二次筛查,所以,子集的元素越多,其在候选集当中需要筛查的记录就越少。例如,在本实施例二中,k=4时,对于{221.228.253.156,119.84.68.7,1344,555}这个四元子集的筛查,因为在筛查该四元子集之前,该四元子集的所有三元子集已经完成筛查,并获得了所有三元子集的三元筛查集合。显然,三元筛查集合只是占原有候选集的少部分,故此,只需要在其中一个三元筛查集合当中对进行{221.228.253.156,119.84.68.7,1344,555}二次筛查。由此可见,递归方式可以进一步提高本发明的运算速度,而且避免重复查找。

需要补充说明的是,除了使用递归方式进行查找,还可以根据特定数据包的字段项目的特点,来进行纵深查找。比如,我们要保护的系统主机的地址就是某几个目的地址,此时,目的地址字段项目是非常重要的,其应该被优先考虑。简单来讲,如果一个数据包的目的地址不是我们要保护的系统主机的地址,则无需考虑。那么,对于本实施例二的N项集{221.228.253.156,119.84.68.7,1344,555,UDP}可以采用纵深筛查,从包含目的地址字段的子集优先开始查找,具体查找顺序为:首先是,{119.84.68.7},{119.84.68.7,555},{119.84.68.7,1344}…直到对N项集{221.228.253.156,119.84.68.7,1344,555,UDP}全集的筛查。显然,高阶的子集也只需要在低阶子集的筛查结果之中进行二次筛查,能避免重复查找。同样也是从所述N项集的一元子集开始,到所述N项集的N-1元子集依次查找。但得益于对目的地址的把握,我们无需要查找所述N项集的所有一元子集,例如,{555}这一类的子集,所以,递归结合纵深的查找方式,会让我们的算法进一步加快。

当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包;当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。优选地,实施例二考虑以频率作为支持度,将最小支持度设置参数为x(0≤x≤1),表明通过本算法在候选集当中找出所有重复频率比例超过x的包含N项集的集合中的源地址,通过合理设置x,以该方法提取出的源地址,将有很高概率是攻击目的地址的恶意IP地址。例如,本实施例二当中,x=30%,而上述N项集{221.228.253.156,119.84.68.7,1344,555,UDP}全集的频率为85%,此时,认定221.228.253.156为恶意IP,我们可以让系统主机对这些恶意IP地址进行限流限速,以避免网络瘫痪、服务中断。

进一步地,本实施例二还可以包括如下步骤:

S208:将所述N项集的记录的次数或频率设置为该恶意地址的风险估值;

S209:设定所述恶意地址的风险估值的最小可信度;

S210:当监控网络的数据包流量超过第二告警阈值时,限制非白名单内的风险估值大于所述最小可信度的恶意地址的访问;

S211:当监控网络的数据包流量低于第三告警阈值时,分析风险估值大于所述最小可信度的恶意地址的地址来源,并根据分析的结果将该恶意地址加入所述白名单。

如前所述,在实时监测的过程中,当监控网络的数据包流量超过第一告警阈值时,系统主机开始进入警备状态,收集可疑的数据包;当监控网络的数据包流量超过第二告警阈值时,系统主机已经完成分析,开始限制恶意地址的访问,使数据包流量回归正常访问量;当监控网络的数据包流量低于第三告警阈值时,前述的限制可能无法避免地影响到了部分正常用户的访问,此时,由于系统主机的cpu资源、存储器资源充足,可以使用反向探测技术,通过分析风险估值大于所述最小可信度的恶意地址的地址来源,并根据分析的结果将该恶意地址加入所述白名单,以避免对正常用户的影响。

上述优选实施方案的优势是,在原本方案对超过最小支持度的N项集中对应的源地址列入恶意地址黑名单,进行限制访问的基础上。将所述N项集的记录的次数或频率设置为该恶意地址的风险估值,设定所述恶意地址的风险估值的最小可信度。根据风险估值与预设的最小可信度的比较,剔除白名单内的恶意地址,这样可以避免正常访问业务中的虚假地址(例如,代理IP)被纳入恶意地址之列。这是由于恶意攻击时,使用的虚假地址是趋于完全随机的方式,而正常访问业务中固定使用单一虚假地址(例如,代理IP)重复发包的频率理论上不会超过最小支持度,万一超过最小支持度,本优选实施方案通过再设置最小可信度,根据前述风险估值从高到低排序。正常访问业务的风险估值会比恶意访问业务的风险估值更低,限制非白名单内的风险估值大于所述最小可信度的恶意地址的访问,可使正常访问业务中的虚假地址不被限制。

综上所述,本发明基于Apriori算法原理,并对其进行改良,使之对数据包格式良好适应,本发明能够挖掘频繁关联规则,从最低维度(即单一要素)开始,发现满足给定频率或次数水平的单一要素,继而从满足出现频率单一要素延展开去构造双要素集,避免了多要素的完全组合问题,提高了筛选效率。

图7为本发明一种基于DDOS攻击中恶意地址的检测装置的第一实施例示意图,包括:

指针获取单元,用于获取预设时间窗当中一个数据包的头文件,由该头文件内的预设N个字段项目组成N项集;

记录查找单元,用于在由预设数个数据包的头文件的所述N个字段项目组成的候选集当中查找包含所述N项集的子集的记录;

门限设定单元,用于设定所述记录的次数或频率的最小支持度;

指针跳转单元,用于当所述N项集的任一子集的记录的次数或频率小于所述最小支持度时,检测下一个数据包;

结果判定单元,用于当所述N项集及其任一子集的记录的次数或频率不小于所述最小支持度时,判定当前所述一个数据包的源地址为恶意地址。

图7与图2的第一实施例相对应,图7中单元的运行方式与方法中的相同。

图8为本发明一种基于DDOS攻击中恶意地址的检测装置的第二实施例示意图。

如图8所示,所述指针获取单元,包括:

项目指定单元,用于指定预设的N个字段项目;

所述N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型当中的至少三个项目,其中,N≥3;或者,

所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型,其中,N≥5;或者,

所述预设N个字段项目,包括源地址、目的地址、包长度、目的端口、协议类型、源端口、网络路径当中的至少五个项目,其中,N≥5。

如图8所示,包括:

第一告警单元,用于监控网络的数据包流量,当所述数据包流量超过第一告警阈值时,获取预设数量或预设时长内的所述数个数据包。

如图8所示,所述记录查找单元,包括:

递归查找单元,用于从所述N项集的一元子集开始,到所述N项集的N-1元子集,依次在所述候选集当中查找包含所述N项集的k元子集的记录,其中,1≤k≤N-1;当所述N项集的k元子集的记录的次数或频率不小于所述最小支持度时,在所述候选集当中查找包含所述N项集的k+1元子集的记录。

图8与图4的第二实施例相对应,图8中单元的运行方式与方法中的相同。

在其中一个优选实施例当中,还包括:

风险估值单元,用于将所述N项集的记录的次数或频率设置为该恶意地址的风险估值;

可信度设定单元,用于设定所述恶意地址的风险估值的最小可信度;

第二告警单元,用于当监控网络的数据包流量超过第二告警阈值时,限制非白名单内的风险估值大于所述最小可信度的恶意地址的访问;

第三告警单元,用于当监控网络的数据包流量低于第三告警阈值时,分析风险估值大于所述最小可信度的恶意地址的地址来源,并根据分析的结果将该恶意地址加入所述白名单。

在其中一个实施例当中,上述装置的工作流程概述如下:

(1)目标系统主机的数据包流量达到第一告警阈值,触发网络抓包;

(2)提取抓包文件中的头文件的部分,包含指定的字段项目,组成N项集;

(3)对于给定最小支持度,寻找满足条件的N项集,并收集其中的源地址;

(4)剔除白名单中的源地址;

(5)根据N项集的风险估值从高到低排序,设定最小可信度,对大于最小可信度的源地址依次限制其访问,直至网络和系统主机恢复正常的访问量;

(6)待访问量回落,系统主机的CPU资源、存储器资源许可前提下,对受限制部分的源地址使用反向探测,核实其真实身份。进一步确认恶意地址,或剔除虚假地址。

本发明技术方案带来的有益效果:

(1)检测准确,保证发现的恶意地址均具有统计意义上的显著性,避免人工判断的主观性和片面性。

(2)通过灵活调整最小支持度,可控制发现恶意地址的数量及表征其恶意程度的风险估值。

(3)避免了正常访问业务中虚假IP地址造成的分析干扰。

(4)根据风险估值排序进行打击,可通过限制当中少量恶意度高的IP,将网络及主机资源恢复至可接受水平。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1