一种DDOS防御系统中检测伪造源IP的方法和装置与流程

文档序号:12752743阅读:538来源:国知局
一种DDOS防御系统中检测伪造源IP的方法和装置与流程

本发明涉及网络安全技术领域,更具体地,涉及一种DDOS防御系统中检测伪造源IP的方法和装置。



背景技术:

分布式拒绝服务(DDoS,Distributed Denial of Service)攻击是攻击者通过让大量的网络流量同时涌向攻击目标,造成目标主机网络拥塞、资源耗尽甚至宕机,实现让目标主机拒绝服务的目的。

DDOS攻击通常是由僵尸网络和代理服务器上各种攻击软件、应用软件产生大量流量来实现的。在攻击中,伪造源IP攻击是很常用的方式,原因有:(1)可以避免监管和追溯;(2)避免目标主机对攻击数据的响应给攻击主机带来压力;(3)通过伪造源IP还可以实现反射攻击,其威力巨大。

DDOS防御系统就是用来检测和清洗这些异常流量,保障被攻击主机能够持续在线服务。在该系统中,源IP识别和与之相关的统计是常用的流量清洗依据。例如,(1)通过源IP与白名单、恶意名单匹配与否来决定是否放行;(2)在避免SYNFLOOD攻击时需要计算SYN cookie或者使用SYN首包丢弃/SYN proxy技术并维护大量的连接状态表;(3)在HTTP应用中,通过封源IP、对源IP限速的方式来解决源IP访问频率过快、流量过大、恶意访问等;(4)通过对爬虫源IP进行反向DNS查找来辨别google、百度等搜索网站爬虫的真伪,避免爬虫DDOS攻击。

在上述DDOS防御过程中,如果有大量伪造源IP攻击,会导致攻击流量绕过防御系统或者给防御系统带来巨大压力:

(1)伪造源IP如果命中白名单可能会直接穿透DDOS防御系统而不被阻拦;

(2)伪造源IP的攻击特征是,攻击报文多,但是属于同一个源IP/同一个流的报文个数很少,大部分情况下一个源IP只会有一个报文,使得基于统计,流分析方式的清洗算法不能有效发挥,清洗效果不理想;

(3)短时间内伪造源IP数量巨大,使得维护源IP统计表/连接状态表/计算syn cookie将耗费很多DDOS防御系统的资源。这对防御系统本身带来挑战。



技术实现要素:

鉴于上述问题,本发明提出了一种DDOS防御系统中检测伪造源IP的方法和装置,能够准确地识别伪造源IP。

本发明实施例中提供了一种DDOS防御系统中检测伪造源IP的方法,包括:

获取其中一个待检测报文的源IP地址和生存时间值,根据该生存时间值计算该待检测报文途径网络节点的跳数;

在本地数据表中查询所述源IP地址对应的跳数集合;

当所述跳数属于所述跳数集合,或该跳数与所述跳数集合中最大或最小跳数的差距小于预设阈值时,判断所述待检测报文为非伪造源IP的攻击报文,更新所述本地数据表;否则,判断所述待检测报文为伪造源IP的攻击报文。

优选地,当在本地数据表中查询不到所述源IP地址,或查询到的所述跳数集合为空集,或跳数与所述跳数集合中所述最大或最小跳数的差距不小于预设阈值,或所述源IP地址的反探测次数少于预设置信值时,向所述源IP地址发送反探测报文;

若收到所述源IP地址对所述反探测报文的响应报文,则根据所述响应报文的生存时间值计算反向跳数,并将该反向跳数添加至所述源IP地址对应的跳数集合之中;

若收不到所述源IP地址对所述反探测报文的响应报文,则减少所述本地数据表中该源IP地址的可信度。

优选地,所述本地数据表至少包含由连续的IP地址组成的IP地址段和该IP地址段对应的跳数集合,在本地数据表中查询所述源IP地址对应的跳数集合的步骤,包括:

在本地数据表中以升序或降序对所述IP地址段进行排列;

根据所述源IP地址归属的IP地址段,获取对应的跳数集合。

优选地,将该反向跳数添加至所述源IP地址对应的跳数集合之中的步骤之后,还包括:

根据所述反向跳数校验所述跳数集合之中的其他跳数;

当所述源IP地址的反向跳数与其所属的IP地址段对应的跳数集合中其他跳数的差距不小于预设阈值,将该源IP地址从其所属的IP地址段分离;

当所述源IP地址的反向跳数与其相邻的IP地址段对应的跳数集合中其他跳数的差距小于预设阈值,将该源IP地址与其相邻的IP地址段合并。

优选地,根据该生存时间值计算该待检测报文途径网络节点的跳数的步骤,包括:

从报文生存时间的系统初始设置值当中,选取一个大于且最接近所述生存时间值的系统初始设置值,作为所述待检测报文的报文初始值;

将所述报文初始值减去所述生存时间值,获得该待检测报文途径网络节点的跳数。

相应地,本发明实施例提供了一种DDOS防御系统中检测伪造源IP的装置,包括:

跳数计算单元,用于获取其中一个待检测报文的源IP地址和生存时间值,根据该生存时间值计算该待检测报文途径网络节点的跳数;

数据查询单元,用于在本地数据表中查询所述源IP地址对应的跳数集合;

数据更新单元,用于当所述跳数属于所述跳数集合或该跳数与所述跳数集合中最大或最小跳数的差距小于预设阈值时,判断所述待检测报文为非伪造源IP的攻击报文,更新所述本地数据表;否则,判断所述待检测报文为伪造源IP的攻击报文。

优选地,还包括:

所述反向探测单元,用于当在本地数据表中查询不到所述源IP地址,或查询到的所述跳数集合为空集,或跳数与所述跳数集合中所述最大或最小跳数的差距不小于预设阈值,或所述源IP地址的反探测次数少于预设置信值时,向所述源IP地址发送反探测报文;

所述反向探测单元还与所述跳数计算单元相连,所述跳数计算单元还用于若收到所述源IP地址对所述反探测报文的响应报文,则根据所述响应报文的生存时间值计算反向跳数;所述数据更新单元,还用于将该反向跳数添加至所述源IP地址对应的跳数集合之中;

所述反向探测单元还与所述数据更新单元相连,所述数据更新单元还用于若收不到所述源IP地址对所述反探测报文的响应报文,则减少所述本地数据表中该源IP地址的可信度。

优选地,所述本地数据表至少包含由连续的IP地址组成的IP地址段和该IP地址段对应的跳数集合,所述数据查询单元,包括:

IP段排列单元,用于在本地数据表中以升序或降序对所述IP地址段进行排列;

归属查询单元,用于根据所述源IP地址归属的IP地址段,获取对应的跳数集合;

IP段校验单元,用于根据所述反向跳数校验所述跳数集合之中的其他跳数;当所述源IP地址的反向跳数与其所属的IP地址段对应的跳数集合中其他跳数的差距不小于预设阈值,将该源IP地址从其所属的IP地址段分离;当所述源IP地址的反向跳数与其相邻的IP地址段对应的跳数集合中其他跳数的差距小于预设阈值,将该源IP地址与其相邻的IP地址段合并。

优选地,所述跳数计算单元,包括:

初值估算单元,用于从报文生存时间的系统初始设置值当中,选取一个大于且最接近所述生存时间值的系统初始设置值,作为所述待检测报文的报文初始值;

跳数推测单元,用于将所述报文初始值减去所述生存时间值,获得该待检测报文途径网络节点的跳数。

相应地,本发明实施例提供了一种DDOS防御系统,包括:交换机、清洗设备和检测设备;其中,所述检测设备包含如前述的DDOS防御系统中检测伪造源IP的装置,所述清洗设备用于清洗伪造源IP;其中,所述交换机与目标服务器相连,用于转发访问地址为目标服务器的报文;所述清洗设备与所述交换机并联,用于分流访问地址为目标服务器的报文;所述检测设备连接在所述交换机与所述清洗设备之间,用于检测访问地址为目标服务器的报文,生成本地数据表,以供所述清洗设备。

相对于现有技术,本发明提供的方案,首先,获取其中一个待检测报文的源IP地址和生存时间值TTL,根据该生存时间值TTL计算该待检测报文途径网络节点的跳数。基于IP报文头部中的生存时间值TTL来检测伪造源IP,其原理是,有线网络拓扑、核心网络节点和主机位置相对稳定,报文所经过的跳数(由生存时间值TTL体现)在本质上反映网络通信各节点之间的相对逻辑位置关系,因此跳数、源IP地址的节点和目标服务器节点三者强相关,在一定时间内报文的跳数趋于稳定且不存在线性规律。攻击者伪造源IP容易,但是要得到伪造攻击源IP和攻击目标服务器之间的网络拓扑关系就很难,尤其是要得到大量的攻击源IP和攻击目标服务器之间的网络拓扑是几乎不可能的。故此,在存储有IP地址和相应跳数的本地数据表中查询所述源IP地址对应的跳数集合;当所述跳数属于所述跳数集合或该跳数与所述跳数集合中最大或最小跳数的差距小于预设阈值时,判断所述待检测报文为非伪造源IP的攻击报文,更新所述本地数据表;否则,判断所述待检测报文为伪造源IP的攻击报文。当所述跳数属于所述跳数集合,可以增加所述跳数在所述跳数集合中的出现概率,以此更新本地数据表,提高本地数据表的准确性。所述跳数集合中最大或最小跳数的差距小于预设阈值时,说明该跳数集合还是在准确范围之内,因为报文在途径网络节点时,有个别网络节点出现故障或关闭,以此更新本地数据表,将所述跳数添加至所述跳数集合之中,提高本地数据表的准确性。本发明中基于源IP地址和跳数集合的方式来识别源IP是否伪造,而不是单纯的基于源IP和TTL的配对方式。另外,本发明中源IP地址及对应的跳数集合是通过学习训练来实现并不断完善的,充分利用了IP地址属性特征和人工智能思维,而不是单纯的需要时才检测,因此,本发明能够准确地识别伪造源IP。

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

附图说明

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

图1为本发明一种DDOS防御系统中检测伪造源IP的方法的流程图。

图2为本发明一种DDOS防御系统中检测伪造源IP的方法的实施例流程图。

图3为本发明一种DDOS防御系统中检测伪造源IP的装置的示意图。

图4为本发明一种DDOS防御系统中检测伪造源IP的装置的实施例示意图。

图5为本发明一种DDOS防御系统的示意图。

具体实施方式

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

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

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

图1为本发明一种DDOS防御系统中检测伪造源IP的方法的流程图,包括:

S101:获取其中一个待检测报文的源IP地址和生存时间值,根据该生存时间值计算该待检测报文途径网络节点的跳数;

S102:在本地数据表中查询所述源IP地址对应的跳数集合;

S103-1:当所述跳数属于所述跳数集合或该跳数与所述跳数集合中最大或最小跳数的差距小于预设阈值时,判断所述待检测报文为非伪造源IP的攻击报文,更新所述本地数据表;

S103-2:否则,判断所述待检测报文为伪造源IP的攻击报文。

相对于现有技术,本发明提供的方案,首先,获取其中一个待检测报文的源IP地址和生存时间值TTL,根据该生存时间值TTL计算该待检测报文途径网络节点的跳数。基于IP报文头部中的生存时间值TTL来检测伪造源IP,其原理是,有线网络拓扑、核心网络节点和主机位置相对稳定,报文所经过的跳数(由生存时间值TTL体现)在本质上反映网络通信各节点之间的相对逻辑位置关系,因此跳数、源IP地址的节点和目标服务器节点三者强相关,在一定时间内报文的跳数趋于稳定且不存在线性规律。攻击者伪造源IP容易,但是要得到伪造攻击源IP和攻击目标服务器之间的网络拓扑关系就很难,尤其是要得到大量的攻击源IP和攻击目标服务器之间的网络拓扑是几乎不可能的。故此,在存储有IP地址和相应跳数的本地数据表中查询所述源IP地址对应的跳数集合;当所述跳数属于所述跳数集合或该跳数与所述跳数集合中最大或最小跳数的差距小于预设阈值时,判断所述待检测报文为非伪造源IP的攻击报文,更新所述本地数据表;否则,判断所述待检测报文为伪造源IP的攻击报文。当所述跳数属于所述跳数集合,可以增加所述跳数在所述跳数集合中的出现概率,以此更新本地数据表,提高本地数据表的准确性。所述跳数集合中最大或最小跳数的差距小于预设阈值时,说明该跳数集合还是在准确范围之内,因为报文在途径网络节点时,有个别网络节点出现故障或关闭,以此更新本地数据表,将所述跳数添加至所述跳数集合之中,提高本地数据表的准确性。

例如,在IPv4中,TTL(Time To Live,生存时间)是一个8个二进制位的IP协议的一个header。这个值可以被认为是数据包在internet系统中可以跳跃的次数上限。主流操作系统TTL初始值有32,64,128,255,且一般通信过程跳数不超过30跳。TTL是由数据包的发送者设置的,在前往目的地的过程中,每经过一台主机或设备,这个值就要减少一点。如果在数据包到达目的地前,TTL值被减到了0,那么这个包将作为一个ICMP错误的数据包被丢弃。

本发明技术方案的基本工作原理是,由于DDOS防御系统通常位于被保护机房的入口位置,因此可以学习和探测所有可能的源IP发出的报文在到达该目标服务器时的跳数集合并形成本地数据表。当攻击可能发生时,通过对比每个IP所携带的报文跳数与本地数据表中记录的该IP到达该目标服务器所需要的跳数集合,当误差超过设置阀值后,即判定该报文携带伪造源IP,直接丢弃。因为攻击者不知道其随机设定的攻击源IP真实位置到目标服务器之间的确切跳数,本方案可以通过反向探测或主动学习的方式获得两者之间的确切实跳数,当与根据待检测报文计算出来的跳数不一致时,判定为攻击报文,丢弃该报文。

本发明中基于上述源IP地址和跳数集合的方式来识别源IP是否伪造,而不是单纯的基于源IP和TTL的配对方式。另外,本发明中源IP地址及对应的跳数集合是通过学习训练来实现并不断完善的,充分利用了IP地址属性特征和人工智能思维,而不是单纯的需要时才检测,因此,本发明能够准确地识别伪造源IP。

图2为本发明一种DDOS防御系统中检测伪造源IP的方法的实施例流程图。

S201:获取其中一个待检测报文的源IP地址和生存时间值,根据该生存时间值计算该待检测报文途径网络节点的跳数;

S202:在本地数据表中查询所述源IP地址对应的跳数集合;

S203-1:当所述跳数属于所述跳数集合或该跳数与所述跳数集合中最大或最小跳数的差距小于预设阈值时,判断所述待检测报文为非伪造源IP的攻击报文,更新所述本地数据表;

S203-2:否则,判断所述待检测报文为伪造源IP的攻击报文。

S204:当在本地数据表中查询不到所述源IP地址,或查询到的所述跳数集合为空集,或跳数与所述跳数集合中所述最大或最小跳数的差距不小于预设阈值,或所述源IP地址的反探测次数少于预设置信值时,向所述源IP地址发送反探测报文;

S205:若收到所述源IP地址对所述反探测报文的响应报文,则根据所述响应报文的生存时间值计算反向跳数,并将该反向跳数添加至所述源IP地址对应的跳数集合之中;

S206:若收不到所述源IP地址对所述反探测报文的响应报文,则减少所述本地数据表中该源IP地址的可信度。

通过上述反向探测,可以不断地训练跳数集合,进一步提高筛查待检测报文的准确度。优选地,本地数据表内存储的跳数集合如下表所示:

例如待检测报文的源IP为IP1时,当待检测报文的跳数属于所述跳数集合,例如为14步,且判定所述待检测报文符合所述目标服务器预设的筛查条件时,例如目标服务器自身的筛查黑名单当中并没有包含该待检测报文的源IP,此时,可以将该待检测报文转发到所述目标服务器。

例如待检测报文的源IP为IP5时,当在本地数据表中查询不到所述源IP地址,或查询到的所述跳数集合为空集时,向所述源IP地址发送反探测报文。

例如待检测报文的源IP为IP1时,向所述源IP地址发送反探测报文。若收到所述源IP地址对所述反探测报文的响应报文,则根据所述响应报文的生存时间值计算跳数,例如根据响应报文计算的跳数为13,将该跳数添加至所述源IP地址对应的跳数集合之中,以备下一个待检测报文的查询。通过对1000个待检测报文的计算学习,获知这1000个报文当中,跳数与概率分布为(15,80%),(14,5%),(13,5%)。而通过发送10个反探测报文,也获得15,14等跳数。可知IP1的跳数集合是比较准确的,其可信度设置为1。可信度也可以作为所述目标服务器预设的筛查条件之一,当流量接近目标服务器所能承受的界限时,可以将筛查条件设置为仅允许可信度为1的待检测报文进入目标服务器。

例如待检测报文的源IP为IP2时,向所述源IP地址发送反探测报文。若收不到所述源IP地址对所述反探测报文的响应报文,则将所述待检测报文途径网络节点的跳数,添加至所述源IP地址对应的跳数集合之中,以备下一个待检测报文的查询。通过对17个待检测报文的学习,获知(17,80%),(18,20%)的跳数集合。但是,发送1个反探测报文后,并没收到任何的响应报文,此时设置该跳数集合的可信度为0.5。

例如待检测报文的源IP为IP3时,计算获得的跳数为23步,阈值设置为3,置信值设置为5次,跳数23步与所述(17,80%),(18,20%)跳数集合中所述最大跳数18的差距不小于预设阈值3,或所述源IP地址的反探测次数1少于预设置信值5次时,向所述源IP地址发送反探测报文。若收到所述源IP3地址对所述反探测报文的响应报文,则根据所述响应报文的生存时间值计算反向跳数,若反向跳数为19,将该反向跳数19添加至所述源IP地址对应的跳数集合之中,例如,将跳数集合调整为(17,80%),(18,18%)(19,2%)。

为了进一步快速的查询源IP地址,所述本地数据表至少包含由连续的IP地址组成的IP地址段和该IP地址段对应的跳数集合,在本地数据表中查询所述源IP地址对应的跳数集合的步骤,包括:

在本地数据表中以升序或降序对所述IP地址段进行排列;

根据所述源IP地址归属的IP地址段,获取对应的跳数集合。

源IP理论上有大约40亿个,如果直接描述源IP与跳数或者IP与TTL关系,数据量巨大,不能直接加载进内存,不仅查找和比对速度慢,而且需要反向探测的源IP数量也很多,工程实现上不可取。经过对IP库源IP分析及其跳数探测发现,归属于统一地区和运营商的IP通常是连续的,这些连续的源IP到同一个目的服务器的跳数通常是相对固定的。因此,在本发明中,不直接记录源IP与跳数关系,也不是记录IP和TTL关系,而是记录源IP段与跳数的关系。一个IP段是IP库中地区和运营商相同的IP聚合,在后续学习和探测过程中也会根据实际探测信息对IP段进行某些拆分,以描述特殊的IP地址或IP地址段的跳数信息.

在第一优选实施例当中,从运营商获知的IP地址段119.33.110.01至119.33.180.33,其跳数应为18步,但通过反向探测,获知其中的IP地址段119.33.180.5至119.33.180.12的跳数为20,则可以将本地数据表中跳数集合(119.33.110.01-119.33.180.33,18)一项拆分为(119.33.110.01-119.33.180.4,18),(119.33.180.5-119.33.180.12,20),(119.33.180.13-119.33.180.33,18)等三项。当源IP为119.33.120.11时,通过大小比对,可以快速地查询其所属的IP地址段为119.33.110.01-119.33.180.4,则获取对应的跳数集合中的跳数为18。

为了便于与跳数集合的跳数进行比对,将该反向跳数添加至所述源IP地址对应的跳数集合之中的步骤之后,还包括:

根据所述反向跳数校验所述跳数集合之中的其他跳数;

当所述源IP地址的反向跳数与其所属的IP地址段对应的跳数集合中其他跳数的差距不小于预设阈值,将该源IP地址从其所属的IP地址段分离;

当所述源IP地址的反向跳数与其相邻的IP地址段对应的跳数集合中其他跳数的差距小于预设阈值,将该源IP地址与其相邻的IP地址段合并。

在第二优选实施例当中,接前述第一优选实施例所述,如果反向跳数的差距的预设阈值为2,则将本地数据表中跳数集合(119.33.110.01-119.33.180.33,18)一项拆分为(119.33.110.01-119.33.180.4,18),(119.33.180.5-119.33.180.12,20),(119.33.180.13-119.33.180.33,18)等三项。如果反向跳数的差距的预设阈值为1,则将本地数据表中跳数集合(119.33.110.01-119.33.180.4,18),(119.33.180.5-119.33.180.12,20),(119.33.180.13-119.33.180.33,18)等三项合并为(119.33.110.01-119.33.180.33,18/20)一项。

为了进一步准确获得报文跳数,根据该生存时间值计算该待检测报文途径网络节点的跳数的步骤,包括:

从报文生存时间的系统初始设置值当中,选取一个大于且最接近所述生存时间值的系统初始设置值,作为所述待检测报文的报文初始值;

将所述报文初始值减去所述生存时间值,获得该待检测报文途径网络节点的跳数。

需要补充说明的是,一般而言,在本地数据表中所述源IP地址对应的跳数集合当中,如果包含的是源IP与目标服务器之间的跳数,则上述优选的跳数计算方式只是自源IP地址到截获该报文的网络节点之间的跳数,因为为避免对目标服务器的冲击,上述计算必定发生在报文到达目标服务器之前。所以,此时还需考虑截获该报文的网络节点与目标服务器之间的跳数,如果截获该报文的网络节点发生在目标服务器的入口交换机一级,在入口交换机一级与目标服务器之间相差一步跳数。

图3为本发明一种DDOS防御系统中检测伪造源IP的装置的示意图,包括:

跳数计算单元,用于获取其中一个待检测报文的源IP地址和生存时间值,根据该生存时间值计算该待检测报文途径网络节点的跳数;

数据查询单元,用于在本地数据表中查询所述源IP地址对应的跳数集合;

数据更新单元,用于当所述跳数属于所述跳数集合或该跳数与所述跳数集合中最大或最小跳数的差距小于预设阈值时,判断所述待检测报文为非伪造源IP的攻击报文,更新所述本地数据表;否则,判断所述待检测报文为伪造源IP的攻击报文。

图3与图1相对应,图中各单元的运行方式与方法中的相同。

图4为本发明一种DDOS防御系统中检测伪造源IP的装置的实施例示意图。

如图4所示,还包括:

所述反向探测单元,用于当在本地数据表中查询不到所述源IP地址,或查询到的所述跳数集合为空集,或跳数与所述跳数集合中所述最大或最小跳数的差距不小于预设阈值,或所述源IP地址的反探测次数少于预设置信值时,向所述源IP地址发送反探测报文;

所述反向探测单元还与所述跳数计算单元相连,所述跳数计算单元还用于若收到所述源IP地址对所述反探测报文的响应报文,则根据所述响应报文的生存时间值计算反向跳数;所述数据更新单元,还用于将该反向跳数添加至所述源IP地址对应的跳数集合之中;

所述反向探测单元还与所述数据更新单元相连,所述数据更新单元还用于若收不到所述源IP地址对所述反探测报文的响应报文,则减少所述本地数据表中该源IP地址的可信度。

图4与图2相对应,图中各单元的运行方式与方法中的相同。

优选地,所述本地数据表至少包含由连续的IP地址组成的IP地址段和该IP地址段对应的跳数集合,所述数据查询单元,包括:

IP段排列单元,用于在本地数据表中以升序或降序对所述IP地址段进行排列;

归属查询单元,用于根据所述源IP地址归属的IP地址段,获取对应的跳数集合;

IP段校验单元,用于根据所述反向跳数校验所述跳数集合之中的其他跳数;当所述源IP地址的反向跳数与其所属的IP地址段对应的跳数集合中其他跳数的差距不小于预设阈值,将该源IP地址从其所属的IP地址段分离;当所述源IP地址的反向跳数与其相邻的IP地址段对应的跳数集合中其他跳数的差距小于预设阈值,将该源IP地址与其相邻的IP地址段合并。

优选地,所述跳数计算单元,包括:

初值估算单元,用于从报文生存时间的系统初始设置值当中,选取一个大于且最接近所述生存时间值的系统初始设置值,作为所述待检测报文的报文初始值;

跳数推测单元,用于将所述报文初始值减去所述生存时间值,获得该待检测报文途径网络节点的跳数。

图5为本发明一种DDOS防御系统的示意图,包括:交换机、清洗设备和检测设备;其中,所述检测设备包含如前述的DDOS防御系统中检测伪造源IP的装置,所述清洗设备用于清洗伪造源IP;其中,所述交换机与目标服务器相连,用于转发访问地址为目标服务器的报文;所述清洗设备与所述交换机并联,用于分流访问地址为目标服务器的报文;所述检测设备连接在所述交换机与所述清洗设备之间,用于检测访问地址为目标服务器的报文,生成本地数据表,以供所述清洗设备。

具体处理过程是:

<1>检测设备在判定没有攻击发生时,启动(IP段,跳数)的学习和探测逻辑;

<2>对镜像过来的每个报文,进行分析,如果报文无异常,进入学习过程;如果报文有特殊协议指纹,则该次学习的可信度会更高;其中,特殊协议指纹是指由正版软件的软件商服务器所发出的报文。

<3>学习过程首先提取每个报文的源IP和TTL;然后根据TTL估算跳数,主流操作系统TTL初始值有32,64,128,255,且一般通信过程跳数不超过30跳,所以根据当前TTL向上就近推测出初始TTL,初始TTL减去当前TTL即得到源IP到达目标服务器A的跳数D1;

<4>利用源IP去查询本地数据表,得到其所属的IP段,跳数集合,学习和探测信息,可信度等信息。并将跳数D1与本地数据表中的跳数集合进行比对处理;当然,如果之前没有学习和探测过,该记录为空;

<5>根据已经学习和探测的次数情况,可信度,跳数比对情况和预配置策略,决定是否需要继续探测;如果能够判定此次数据明显错误,则丢弃不予处理;如果判定此次数据为有效,则跳到<10>,更新本地数据表;如果需要继续探测,则向探测模块提交探测任务;

<6>探测模块根据提交的源IP,以及端口等信息向源IP发起ping或者tcpsyn反探测报文;

<7>如果源IP响应了反探测报文,可以得到响应报文,计算源IP到达检测设备的跳数为D2;

<8>比较D1和D2,如果D1和D2的偏差为1,则认为D1有效;如果D1和D2误差偏大,则需要参考检测设备IP和目标服务器A的网络差异(是否跨运营商)来修正,根据修正结果来判定D1是否有效;如果判定D1有效,则跳到<10>更新本地数据表,否则丢弃不予处理;

<9>如果源IP不响应探测流量,也会跳到<10>更新本地数据表,区别是可信度会比较低,经过多次有效学习后(比如带有特殊协议指纹)才会不断提到其可信度;

<10>更新本地数据表记录,修改学习和探测次数,修改可信度,优化跳数集合及其概率分布。如果该IP明显区别于该IP段中其他IP,则把该IP拆分出来单独记录。

<11>探测时,不论源IP是否反馈响应报文,均会根据本地数据表中记录的学习情况、配置策略以及探测模块的负载来决定是否选择一些与该源IP相邻的IP作为探测对象,重复<6>中过程。

<12>总之,学习和探测过程是一个择优、验证、迭代的人工智能过程,随着程序运行,记录的结果就会越多越准确。

对于清洗处理过程:

<1>清洗时,首先根据报文中携带的TTL值推测出跳数;

<2>然后利用源IP查询本地数据表得到所归属的IP段及其跳数集合分布,可信度等信息;

<3>根据查找信息来判断该源IP是否是确定的伪造源IP或真实源IP。

本技术方案带来的有益效果是,有效的防止伪造源IP的DDOS攻击方式,以及伪造源攻击时DDOS防御可能不能有效工作的情况。

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

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

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