攻击防范方法和设备与流程

文档序号:13396704阅读:149来源:国知局
攻击防范方法和设备与流程
本发明涉及通信技术,尤其涉及一种攻击防范方法和设备。

背景技术:
安全套接层(SecureSocketLayer;以下简称:SSL)协议是一种网络安全通信协议,用于在两台机器之间提供安全通道,其具有保护传输数据以及识别通信机器的功能。SSL拒绝服务(DenialofService;以下简称:DOS)攻击行为是通过一台普通电脑与数字用户线路(DigitalSubscriberLine;以下简称:DSL)连接,通过对加密密钥进行重新请求来攻击SSL服务器的攻击方式。在这种攻击方式下,由于在协商加密算法时,SSL服务器的中央处理器(centralprocessingunit;以下简称:CPU)开销是客户端访问的15倍左右,因此这种攻击行为严重消耗了服务器的CPU资源。但是,目前还没有有效的方法,可以对SSLDOS攻击行为进行防范。

技术实现要素:
本发明实施例提供一种攻击防范方法和设备,能够有效地对安全套接层(SecureSocketLayer;以下简称:SSL)拒绝服务(DenialofService;以下简称:DOS)攻击行为进行防范。第一方面,本发明实施例提供一种攻击防范方法,包括:统计传输控制协议TCP连接中的重协商次数,所述重协商次数为所述TCP连接中的客户端与服务器之间进行重复协商的次数;当所述TCP连接中的重协商次数大于预设的重协商次数阈值时,确定所述TCP连接为异常连接;断开所述TCP连接。在第一方面的第一种可能的实现方式中,所述统计所述TCP连接中的重协商次数包括:通过所述TCP连接中的客户端与服务器之间交互的报文的类型来识别所述报文是否为协商报文;根据所述TCP连接中的协商报文的个数来统计所述TCP连接中的重协商次数。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述协商报文包括ChangeCipherSpec类型的报文。在第一方面的第三种可能的实现方式中,所述统计TCP连接中的重协商次数包括:通过统计所述TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文数量来获得所述TCP连接中的重协商次数。结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式中,在第四种可能的实现方式中,本发明提供的攻击防范方法还包括:判断传输控制协议TCP连接中的客户端的IP地址是否在黑名单中,其中,所述黑名单中包含了发起异常连接的客户端的IP地址;当所述客户端的IP地址不在黑名单中时,进入所述统计TCP连接中的重协商次数的步骤;当所述客户端的IP地址在所述黑名单中时,断开所述TCP连接。结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,本发明提供的攻击防范方法还包括:统计所述TCP连接中客户端发起的异常连接的数量;当所述客户端发起的异常连接的数量大于预设的连接数量阈值时,将所述客户端的IP地址加入所述黑名单。第二方面,本发明实施例提供一种攻击防范设备,包括:第一统计模块,用于统计传输控制协议TCP连接中的重协商次数,所述重协商次数为所述TCP连接中的客户端与服务器之间进行重复协商的次数;异常连接确定模块,用于当所述TCP连接中的重协商次数大于预设的重协商次数阈值时,确定所述TCP连接为异常连接;处理模块,用于断开所述TCP连接。在第二方面的第一种可能的实现方式中,所述第一统计模块包括:识别单元,用于通过所述TCP连接中的客户端与服务器之间交互的报文的类型来识别所述报文是否为协商报文;统计单元,用于根据所述识别单元识别的所述TCP连接中的协商报文的个数来统计所述TCP连接中的重协商次数。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述协商报文包括ChangeCipherSpec类型的报文。在第二方面的第三种可能的实现方式中,所述第一统计模块具体用于通过统计所述TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文数量来获得所述TCP连接中的重协商次数。结合第二方面、第二方面的第一种可能的实现方式、第二方面的第二种可能的实现方式或在第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,本发明提供的攻击防范设备还包括:判断模块,用于判断TCP连接中的客户端的IP地址是否在黑名单中,其中,所述黑名单中包含了发起异常连接的客户端的IP地址,当所述客户端的IP地址不在黑名单中时,触发第一统计模块;当所述客户端的IP地址在所述黑名单中时,触发所述处理模块。结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,本发明提供的攻击防范设备还包括:第二统计模块,用于统计所述TCP连接中客户端发起的异常连接的数量;管理模块,用于当所述第二统计模块统计的所述TCP连接中客户端发起的异常连接的数量大于预设的连接数量阈值时,将所述客户端的IP地址加入所述黑名单。第三方面,本发明实施例提供一种攻击防范设备,包括:所述攻击防范设备包括处理器、通信接口和通信总线;其中,所述处理器和所述通信接口通过所述通信总线进行通信;所述通信接口用于与客户端和服务器通信,建立客户端和服务器之间的传输控制协议TCP连接;所述处理器,用于统计所述TCP连接中的重协商次数,所述重协商次数为所述TCP连接中的客户端与服务器之间进行重复协商的次数;当所述TCP连接中的重协商次数大于预设的重协商次数阈值时,确定所述TCP连接为异常连接;断开所述TCP连接。在第三方面的第一种可能的实现方式中,所述处理器用于统计所述TCP连接中的重协商次数包括:所述处理器用于通过所述TCP连接中的客户端与服务器之间交互的报文的类型来识别所述报文是否为协商报文,根据所述TCP连接中的协商报文的个数来统计所述TCP连接中的重协商次数。结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述协商报文包括更改密码规格ChangeCipherSpec类型的报文。结合第三方面,在第三方面的第三种可能的实现方式中,所述处理器用于统计所述TCP连接中的重协商次数包括:所述处理器通过统计所述TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文数量来获得所述TCP连接中的重协商次数。结合第三方面、第三方面的第一种可能的实现方式、第三方面的第二种可能实现方式或第三方面的第三种可能实现方式中,在第三方面的第四种可能的实现方式中,所述处理器还用于:判断所述TCP连接中的客户端的IP地址是否在设置的黑名单中,其中,所述黑名单中包含了发起异常连接的客户端的IP地址;当所述客户端的IP地址不在所述黑名单中时,进入所述统计TCP连接中的重协商次数的步骤;当所述客户端的IP地址在所述黑名单中时,断开所述TCP连接。结合第三方面的第四种可能实现方式中,在第三方面的第五种可能的实现方式中,所述处理器还用于:统计所述客户端发起的异常连接的数量;当所述客户端发起的异常连接的数量大于预设的连接数量阈值时,将所述客户端的IP地址加入所述黑名单。本实施例根据SSLDOS攻击通过不断的重新协商以消耗服务器CPU的特点,通过统计TCP连接中的重协商次数,当统计到该TCP连接中的重协商次数大于重协商次数阈值时,确定该TCP连接为异常连接,并断开该TCP连接。从而有效地实现了对SSLDOS攻击行为进行防范,避免服务器受到SSLDOS攻击。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种攻击防范方法的应用网络架构示意图;图2为本发明实施例提供的一种攻击防范方法的流程图;图3为本发明实施例提供的又一种攻击防范方法的流程图;图4为本发明实施例提供的再一种攻击防范方法的流程图;图5为本发明实施例提供的一种攻击防范设备的结构示意图;图6为本发明实施例提供的又一种攻击防范设备的结构示意图;图7为本发明实施例提供的又一种攻击防范设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本实施例提供的攻击防范方法可以在网关产品上实现,将网关产品部署在安全套接层(SecureSocketLayer;以下简称:SSL)服务器的前面,从而实现对SSL服务器的保护;也可以以软件的形式部署在SSL服务器上,对SSL请求进行检测,从而防止SSL拒绝服务(DenialofService;以下简称:DOS)攻击行为。图1为本发明实施例提供的一种攻击防范方法的应用网络架构示意图,如图1所示,攻击者可以与正常用户一样使用普通电脑来与SSL服务器进行交互,攻击者通过与SSL服务器建立传输控制协议(TransmissionControlProtocol;以下简称:TCP)连接后,并在建立的TCP连接中不停的快速重复协商密钥,以对SSL服务器进行攻击。其中,攻击者可以通过与SSL服务器建立的一个TCP连接对SSL服务器发起攻击,也可以通过与SSL服务器建立的多个TCP连接对SSL服务器发起攻击,当然,TCP连接的连接数越多,对SSL服务器造成的危害越大。并且,攻击者也可能有多个。本实施例的攻击防范方法可以在路由器或防火墙等网关产品上实现,也可以通过路由器和防火墙实现,还可以应用到分布式拒绝服务(DistributedDenialofservice;以下简称:DDOS)清洗设备中,其中路由器、防火墙等网关产品或DDOS清洗设备部署在SSL服务器的前端,从而能够阻挡攻击者对SSL服务器发起的攻击。图2为本发明实施例提供的一种攻击防范方法的流程图,如图2所示,本实施例提供了一种攻击防范方法,该攻击防范方法可以用于防范安全套接层(SecureSocketLayer;以下简称:SSL)拒绝服务(Denialofservice;以下简称:DOS)攻击。可以理解的是,实际应用中,同一个客户端也可以和服务器建立多条连接。为了描述清楚,本发明实施例以客户端与服务器之间建立的一条TCP连接为例进行说明,该方法可以包括如下步骤:步骤201,统计传输控制协议TCP连接中的重协商次数。实际应用中,在客户端与服务器进行正常交互时,客户端与服务器之间可能只存在一个TCP连接,也可能同时存在多条TCP连接,攻击者可以通过与服务器间建立的一个TCP连接对服务器造成攻击,也可以通过与服务器间建立的多个TCP连接对服务器造成攻击,当与服务器建立多个TCP连接时,可以分别对每个TCP连接进行监控,分别统计各个TCP连接中客户端与服务器之间的重协商次数。本发明实施例以客户端与SSL服务器建立的一个TCP连接为例进行说明。具体的,可以对一个TCP连接进行监控并统计该TCP连接中的重协商次数,其中,重协商次数为该TCP连接中的客户端与服务器之间进行重复协商的次数。由于在一个TCP连接中,客户端与SSL服务器之间的每一次协商密钥的过程均会伴随一个更改密码规格ChangeCipherSpec类型的协商报文,其中第一次协商为正常协商,其他非第一次协商则为重复协商。因此,统计传输控制协议TCP连接中的重协商次数时可以通过所述TCP连接中的客户端与服务器之间交互的报文的类型来识别所述报文是否为协商报文,并根据所述TCP连接中的协商报文的个数来统计所述TCP连接中的重协商次数。具体的,TCP连接中的重协商次数可以通过统计该TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文数量来获得。由于SSLDOS攻击是攻击者通过在与服务器建立连接后短时间内快速的发起重复协商来对服务器进行攻击,因此可以根据预设时间内该TCP连接中的协商报文的数量与1的差来获得预设时间内该TCP连接中的重协商次数。步骤202,如果所述TCP连接中的重协商次数大于预设的重协商次数阈值,确定所述TCP连接为异常连接。具体的,重协商次数阈值为预先设置的一个TCP连接中在一定时间内允许的重协商的最大次数。正常情况下在预设的时间内一个TCP连接中的重协商次数不会超过该重协商次数阈值,当其超过该重协商阈值时,表明该TCP连接中的重协商过程可能由外部的恶意攻击者发起攻击,则确定该TCP连接为异常连接。可以理解的是,在实际应用中,如果存在多个TCP连接,可以分别判断各个TCP连接中的重协商次数是否大于预设的重协商次数阈值,以分别确定各TCP连接是否为异常连接。步骤203,断开该TCP连接。当确定TCP连接为异常连接时,为确保服务器不会受到黑客攻击,则断开该TCP连接。可以理解的是,本发明实施例还可以通过直接统计TCP连接中的协商报文的个数获得所述TCP连接中的协商次数,并根据设置的协商次数阈值来判断所述TCP连接是否为异常连接,具体的,在步骤201中,可以直接根据预设时间段内TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文的数量来获得协商次数,在步骤202中,可以判断所述TCP连接中的协商次数是否大于预设的协商次数阈值,其中,所述协商次数阈值为预先设置的一个TCP连接中在设定时间段内允许的协商次数。本实施例根据SSLDOS攻击通过在建立的TCP连接中不断的重新协商密钥以消耗服务器CPU资源的特点,通过统计TCP连接中的重协商次数,当统计到该TCP连接中的重协商次数大于重协商次数阈值时,确定该TCP连接为异常连接,并断开该TCP连接。从而有效地实现了对SSLDOS攻击行为进行防范,避免服务器受到SSLDOS攻击。图3为本发明实施例提供的又一种攻击防范方法的流程图,本发明实施例仍然以客户端与SSL服务器建立的一个TCP连接为例进行说明。可以理解的是,实际应用中,当客户端与SSL服务器之间存在多个TCP连接时,可以参照本实施例描述的方法对各个TCP连接进行处理。如图3所示,该方法包括:步骤300,判断TCP连接中的客户端的IP地址是否在黑名单中,如果客户端的IP地址在黑名单中,则进入步骤303,否则进入步骤301;具体的,可以在路由器、防火墙等网关产品或DDOS清洗设备中预先设置攻击者的黑名单,该黑名单中包含有检测出的攻击者的IP地址。当接收到客户端发送的报文时,可以根据该报文中携带的源IP地址判断该TCP连接中的客户端的IP地址是否在预设的黑名单中,如果不在黑名单中,则进入步骤301,否则进入步骤303,直接断开该TCP连接。需要说明的是,在TCP连接中的客户端的IP地址在黑名单的情况下,进入步骤303断开所述TCP连接之后,不需要继续进入步骤304来统计所述TCP连接中的客户端发起的异常连接的数量,因为在这种情况下,已经根据黑名单确认客户端是攻击者了,所以不需要再进一步判断是否将所述客户端的IP地址加入黑名单。步骤301,统计所述TCP连接中的重协商次数,进入步骤302;具体的,由于在一个TCP连接中,客户端与SSL服务器之间的每一次重协商密钥的过程均会伴随一个更改密码规格ChangeCipherSpec类型的协商报文,其中第一次协商为正常协商,其他非第一次协商则为重复协商。因此,TCP连接中的重协商次数可以通过统计该TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文数量来获得。由于SSLDOS攻击是攻击者通过在与服务器建立连接后短时间内快速的发起重复协商来对服务器进行攻击,因此可以根据预设时间内该TCP连接中的协商报文的数量与1的差来获得预设时间内该TCP连接中的重协商次数。例如,若在1小时内,某个TCP连接中出现的ChangeCipherSpec类型的协商报文数量为10个,则可以得到该TCP连接在1个小时内的重协商次数为9次。具体的,实际应用中,在统计预设时间内该TCP连接中重协商次数时,可以预先设定统计的时间,实际应用中,可以将统计周期设定为30秒或1分钟,具体时间设定可以根据实际业务的需要来设定,也可以根据网络流量来确定。统计时,可以在接收到协商报文时,将协商报文数量记录一次,并记录一个时间戳,从而在后续接收到协商报文时,可以根据前面记录的时间戳来确定统计周期,并根据确定的统计周期来统计该统计周期内的重协商次数。例如,在接收到第一个协商报文时,将协商报文次数记录为一次,并记录一个时间戳,当接收到第二个协商报文时,将协商报文次数增加1次,记录第二个时间戳,从而可以根据记录的两个时间戳来确定这段时间内接收到得协商报文数量。步骤302,如果所述TCP连接中的重协商次数大于预设的重协商次数阈值,确定所述TCP连接为异常连接,进入步骤303;其中,重协商次数阈值为预先设置的一个TCP连接中在一定时间内允许的重协商的最大次数。正常情况下在预设的时间内一个TCP连接中的重协商次数不会超过该重协商次数阈值,当其超过该重协商阈值时,表明该TCP连接中的重协商过程可能由外部的恶意攻击者发起攻击,则确定该TCP连接为异常连接。例如,预设的一个TCP连接在1个小时内允许的最大重协商次数为10次,则将该TCP连接的重协商次数阈值设置为10,当1小时内,该TCP连接中的重协商次数超过10时,则认为该TCP连接为异常连接。当然,可以理解的是,重协商次数阈值是根据实际应用中一个正常的TCP连接可能存在的正常的协商次数的经验值来确定的,具体确定时,可以根据业务需要或网络流量来设定,实际应用中,可以将重协商次数阈值设置为每30秒3次(3次/30秒)。步骤303,断开所述TCP连接,进入步骤304;当在步骤302中,确定所述TCP连接为异常连接时,可以断开所述TCP连接,以防止攻击者通过该TCP连接对SSL服务器进行SSLDOS攻击。具体的,可以通过发送双向复位(Reset;以下简称:RST)报文来断开该TCP连接,即向该TCP连接中源IP地址指向的客户端发送RST报文,并向该TCP连接中目的IP地址指向的服务器发送RST报文,从而断开客户端与SSL服务器之间的TCP连接。步骤304,统计所述TCP连接中的客户端发起的异常连接的数量,进入步骤305;当确定TCP连接为异常连接并断开所述TCP连接之后,可以对该TCP连接的客户端的IP地址进行监控以进一步确定所述TCP连接中的客户端是否为攻击者,具体的,可以建立一个异常连接监控表,该异常连接监控表中记录有客户端的IP地址以及该IP地址指向的客户端发起的异常连接的数量。具体的,当在步骤302中识别某个TCP连接为异常连接后,则可以在该异常连接监控表中查找与该TCP连接中的客户端的IP地址相同的IP地址,如果查找到与所述客户端的IP地址相同的IP地址,则将该IP地址对应的异常连接的数量加1;如果没有查找到相同的IP地址,则在所述异常连接监控表中新增一条记录,记录下该IP地址,并将该IP地址对应的异常连接的数量记录为1次。可以理解的是,统计所述TCP连接中的客户端发起的异常连接的数量时也是统计设定的统计周期内的异常连接数量,具体的,可以在确定一次异常连接时,记录一个时间戳,根据记录的时间戳来确定统计周期,并统计设定的统计周期内的异常连接数量。具体统计方法可以参考步骤301部分对统计重协商次数部分的描述,此处不再赘述。步骤305,如果所述TCP连接中的客户端发起的异常连接的数量大于预设的连接数量阈值,将所述客户端的IP地址加入黑名单;具体的,连接数量阈值可以是预设的时间内允许该IP地址指向的客户端发起的异常连接的最大数量。当步骤304中统计的该TCP连接中的客户端发起的异常连接的数量大于预设的连接数量阈值时,确定该客户端为攻击者,将该客户端的IP地址加入黑名单,从而能够动态的更新所述黑名单,以便下一次接收到从该IP地址发送的报文时,可以直接丢弃该报文,或断开该IP地址发起的TCP连接,提高检测效率,其中,设置的所述黑名单中记录有检测出的攻击者的IP地址。可以理解的是,本发明实施例还可以直接通过统计TCP连接中的协商报文的个数获得所述TCP连接中的协商次数,并根据设置的协商次数阈值来判断所述TCP连接是否为异常连接,具体的,在步骤301中,可以直接根据预设时间段内TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文的数量来获得协商次数,在步骤302中,可以判断所述TCP连接中的协商次数是否大于预设的协商次数阈值,其中,所述协商次数阈值为预先设置的一个TCP连接中在设定时间段内允许的协商次数。本发明实施例中的攻击防范方法,在统计TCP连接中的重协商次数之前,先判断所述TCP连接中的客户端的IP地址是否在预设的黑名单中,如果在黑名单中,则直接断开该TCP连接,当不在黑名单中时,则通过统计所述TCP连接中的重协商次数来判断所述TCP连接是否为异常连接,如果所述TCP连接为异常连接,则断开所述TCP连接,并在设置的异常连接监控表中记录所述TCP连接中客户端发起的异常连接的数量,当该TCP连接中的客户端发起的异常连接的数量超过预设的连接数量阈值时,将该客户端的IP地址加入黑名单,以便对设置的黑名单进行及时更新,从而不仅能够防止客户端对SSL服务器发起的SSLDOS攻击,还能够提高防范效率。图4为本发明实施例提供的另一种攻击防范方法的流程图,如图4所示,本实施例提供了一种攻击防范方法,可以具体包括如下步骤:步骤400,接收客户端发送的报文,进入步骤401。步骤401,判断接收的报文是否命中会话,如果是,则执行步骤402,否则执行步骤410。在接收到客户端发送的报文后,判断该报文是否命中会话,具体的,可以根据该报文的五元组信息来判断是否命中已建立的会话,其中,五元组信息为:源IP地址、目的IP地址、源端口、目的端口以及协议类型。如果命中会话,则表明该报文的源IP地址为真实IP地址,然后执行步骤402;如果未命中会话,则表明该报文的源IP地址为虚拟IP地址,可以执行步骤410,丢弃该报文。步骤402,根据接收的报文判断客户端的IP地址是否在黑名单中,如果是,则执行步骤410,否则执行步骤403。当接收到的报文命中会话后,进一步判断发送该报文的客户端的IP地址是否在黑名单中,以防止攻击者利用真实IP地址对服务器发起攻击,其中,黑名单中记录有已检测出的攻击者的IP地址。如果是,则执行步骤410,将该报文进行丢弃处理;否则执行步骤403。步骤403,统计该报文对应的TCP连接中的重协商次数,进入步骤404。本步骤为当发送所述报文的客户端的IP地址不在黑名单中时,通过对客户端的IP地址指向的客户端与SSL服务器之间建立的TCP连接进行监控,以统计接收到的报文对应的TCP连接中的重协商次数。在识别TCP连接中的重协商行为时,可以具体通过TCP连接中客户端与SSL服务器之间交互的报文来识别。由于在一个TCP连接中,客户端与SSL服务器之间的每一次重协商过程均会伴随一个ChangeCipherSpec类型的协商报文,其中第一次协商为正常协商,其他非第一次协商则为重复协商。因此,本实施例可以通过判断接收到的报文的类型是否为ChangeCipherSpec类型的报文来判断该报文是否为协商报文。又由于SSLDOS攻击是攻击者通过在与服务器建立连接后短时间内快速的发起重复协商来对服务器进行攻击,因此可以根据预设时间内该TCP连接中的协商报文的数量与1的差来获得该TCP连接中的重协商次数。例如,若在1小时内,某个TCP连接中出现的ChangeCipherSpec类型的协商报文数量为10个,则可以得到该TCP连接在1个小时内的重协商次数为9次。具体的,实际应用中,在统计预设时间内该TCP连接中重协商次数时,可以预先设定统计的时间,实际应用中,可以将统计周期设定为30秒或1分钟,具体时间设定可以根据实际业务的需要来设定,也可以根据网络流量来确定。统计时,可以在接收到协商报文时,将协商报文数量记录一次,并记录一个时间戳,从而再后续接收到协商报文时,可以根据前面记录的时间戳来确定统计周期,并根据确定的统计周期来统计该统计周期内的重协商次数。例如,在接收到第一个协商报文时,将协商报文次数记录为一次,并记录一个时间戳,当接收到第二个协商报文时,将协商报文次数增加1次,记录第二个时间戳,从而可以根据记录的两个时间戳来确定这段时间段内接收到得协商报文数量。步骤404,判断TCP连接中的重协商次数是否大于预设的重协商次数阈值,如果是,则执行步骤405,否则返回执行步骤400。经过上述步骤403的统计过程,判断统计的TCP连接中的重协商次数是否大于预设的重协商次数阈值,具体的可以在每次对TCP连接中的重协商次数进行更新后,判断该TCP连接中的重协商次数是否大于预设的重协商次数阈值。例如,当判断接收到的报文为ChangeCipherSpec类型的协商报文时,将该报文所属的TCP连接中的协商报文数量加1,即,该TCP连接中的重协商次数相应增加1次,如果更新后的重协商次数大于预设的重协商次数阈值,则可以执行步骤405,确定该TCP连接为异常连接;否则返回执行步骤400,继续接收客户端发送的其他报文。在本实施例中,在执行上述步骤403之前,还可以包括:预先配置所述重协商次数阈值和连接数量阈值。具体可以根据实际情况来设定这两个阈值。此处的重协商次数阈值为用户配置的设定时间段内重协商最大允许的次数,此处的连接数量阈值为用户配置的设定时间段内异常连接最大允许的数量。具体确定时,可以根据业务需要或网络流量来设定,实际应用中,可以将重协商次数阈值设置为每30秒3次(3次/30秒),将连接数量阈值设置为每15秒3次(3次/15秒)。步骤405,确定所述TCP连接为异常连接,进入步骤406。当TCP连接中的重协商次数大于预设的重协商次数阈值时,则表明该TCP连接中的重协商过程可能由外部恶意攻击的黑客发起,可以确定该TCP连接为异常连接。例如,预设的一个TCP连接在1个小时内允许的最大重协商次数为10次,则将该TCP连接的重协商次数阈值设置为10,当1小时内,该TCP连接中的重协商次数超过10时,则认为该TCP连接为异常连接。当然,可以理解的是,重协商次数阈值是根据实际应用中一个正常的TCP连接可能存在的正常的协商次数的经验值来确定的。步骤406,向所述TCP连接中的源IP地址指向的客户端发送复位报文,向所述TCP连接中目的IP地址指向的服务器发送复位报文,通过复位报文来断开客户端与服务器之间的TCP连接,进入步骤407。在本实施例中,当确定一个TCP连接为异常连接时,则可以断开该TCP连接,以防止攻击者通过该TCP连接对SSL服务器进行SSLDOS攻击。可以通过发送RST报文来断开该TCP连接。本步骤为在确定一个TCP连接为异常连接后,向该TCP连接中源IP地址指向的客户端发送RST报文,并向该TCP连接中目的IP地址指向的服务器发送RST报文。客户端在接收到RST报文后,便自动断开对应的TCP连接,服务器在接收到RST报文后,便自动断开对应的TCP连接,从而通过RST报文将客户端与SSL服务器之间的TCP连接断开。步骤407,统计TCP连接中的客户端发起的异常连接的数量,进入步骤408。当确定TCP连接为异常连接并断开所述TCP连接之后,可以对该TCP连接的客户端的IP地址进行监控以进一步确定所述TCP连接中的客户端是否为攻击者,具体可以建立一个异常连接监控表,在该异常连接监控表中记录该客户端发起的异常连接的数量。在本实施例中,当确定TCP连接为异常连接后,若该TCP连接为该TCP连接中的客户端发起的第一个异常连接,则需要建立一个异常连接监控表,以对该TCP连接的客户端的IP地址进行监控,统计该客户端发起的异常连接的数量。当然,如果该TCP连接不是客户端发起的第一异常连接,则可以在异常连接监控表中更新所述客户端发起的异常连接的数量。可以理解的是,统计所述TCP连接中的客户端发起的异常连接的数量时也是统计设定的统计周期内的异常连接数量,具体的,可以在确定一次异常连接时,记录一个时间戳,根据记录的时间戳来确定统计周期,并统计设定的统计周期内的异常连接数量。此外,在本实施例中,当检测出某个TCP连接为异常连接时,还可以将该检测结果作为日志信息记录到日志中,以便后续查询使用。步骤408,判断该TCP连接中的客户端发起的异常连接的数量是否大于预设的连接数量阈值,如果是,则执行步骤409,否则返回执行步骤400。判断统计的该TCP连接中的客户端发起的异常连接的数量是否大于预设的连接数量阈值,如果是,则执行步骤409,将该客户端的IP地址加入黑名单,否则返回执行步骤400,继续接收客户端发送的报文。步骤409,将所述客户端的IP地址加入黑名单。当异常连接监控表中统计的客户端发起的异常连接的数量于预设的连接数量阈值时,则表明该客户端可能为攻击者,将该客户端的IP地址加入黑名单,以便能够动态的更新所述黑名单。下一次接收到从该IP地址发送的报文时,可以直接丢弃该报文,或断开该IP地址发起的TCP连接,以提高检测效率。在本实施例中,当检测出某个IP地址被加入黑名单后,还可以将该检测结果作为日志信息记录到日志中,以便后续查询使用。步骤410,丢弃该报文。当从客户端接收到一个报文后,如果该报文未命中会话,或该报文的源IP地址在黑名单中,则将该报文进行丢弃处理。本实施例提供了一种攻击防范方法,在接收到客户端发送的报文后,先判断该报文是否命中会话;如果命中会话,则继续根据接收到的报文判断客户端的IP地址是否在黑名单中;如果IP地址不在黑名单中,且统计到TCP连接中的重协商次数大于重协商次数阈值时,确定该TCP连接为异常连接,并断开该TCP连接,并在设置的异常连接监控表中记录所述TCP连接中客户端发起的异常连接的数量,当该TCP连接中的客户端发起的异常连接的数量超过预设的连接数量阈值时,将该客户端的IP地址加入黑名单,以便对设置的黑名单进行及时更新,从而不仅能够防止客户端对SSL服务器发起的SSLDOS攻击,还能够提高防范效率。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图5为本发明实施例提供的一种攻击防范设备的结构示意图,如图5所示,本实施例提供了一种攻击防范设备50,该攻击防范设备50可以用于防范安全套接层(SecureSocketLayer;以下简称:SSL)拒绝服务(Denialofservice;以下简称:DOS)攻击行为,攻击防范设备50可以包括第一统计模块501、异常连接确定模块502和处理模块503。其中:第一统计模块501,用于统计传输控制协议(TransmissionControlProtocol;以下简称:TCP)连接中的重协商次数,所述重协商次数为所述TCP连接中的客户端与服务器之间进行重复协商的次数。由于在一个TCP连接中,客户端与SSL服务器之间的每一次协商密钥的过程均会伴随一个更改密码规格ChangeCipherSpec类型的协商报文,其中第一次协商为正常协商,其他非第一次协商则为重复协商。因此,第一统计模块501所统计的TCP连接中的重协商次数可以通过统计该TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文数量来识别。具体的,可以通过将预设时间内该TCP连接中的协商报文的数量减一,则可以获得该TCP连接中的重协商次数。具体的,实际应用中,第一统计模块501在统计预设时间内该TCP连接中重协商次数时,可以预先设定统计周期,即,统计所述预设的统计周期内的重协商次数。实际应用中,可以将统计周期设定为30秒或1分钟,具体时间设定可以根据实际业务的需要来设定,也可以根据网络流量来确定。统计时,可以在接收到协商报文时,将协商报文数量记录一次,并记录一个时间戳,从而再后续接收到协商报文时,可以根据前面记录的时间戳来确定统计周期,并根据确定的统计周期来统计该统计周期内的重协商次数。例如,在接收到第一个协商报文时,将协商报文次数记录为一次,并记录一个时间戳,当接收到第二个协商报文时,将协商报文次数增加1次,记录第二个时间戳,从而可以根据记录的两个时间戳来确定这段时间内接收到得协商报文数量。异常连接确定模块502,用于当第一统计模块501统计的所述TCP连接中的重协商次数大于预设的重协商次数阈值时,确定所述TCP连接为异常连接。具体的,重协商次数阈值为预先设置的一个TCP连接中在一定时间内允许的重协商的最大次数。正常情况下在预设的时间内一个TCP连接中的重协商次数不会超过该重协商次数阈值,当其超过该重协商阈值时,表明该TCP连接中的重协商过程可能由外部的恶意攻击者发起攻击,则异常连接确定模块502确定该TCP连接为异常连接。实际应用中,可以根据业务需要或网络流量来设定重协商次数阈值,例如可以将重协商次数阈值设置为每30秒3次(3次/30秒)。处理模块503,用于在异常连接确认模块502确定所述TCP连接为异常连接时,断开所述TCP连接。具体的,当异常连接确认模块502确定TCP连接为异常连接时,为确保服务器不会受到黑客攻击,则断开该TCP连接。本实施例提供的攻击防范设备50,可以具体执行上述图2至图4所示的方法实施例中的相关步骤。本发明实施例所述攻击防范设备,根据SSLDOS攻击是通过攻击者在与服务器建立的TCP连接中不断的重复协商密钥以消耗服务器CPU资源的特点,通过统计TCP连接中的重协商次数,当统计到该TCP连接中的重协商次数大于重协商次数阈值时,确定该TCP连接为异常连接,并断开该TCP连接。从而有效地实现了对SSLDOS攻击行为进行防范,避免服务器受到SSLDOS攻击。图6为本发明实施例提供的又一攻击防范设备的结构示意图,如图6所示,本实施例提供了一种攻击防范设备60,可以具体执行上述图2至图4所示的方法实施例中的相关步骤,此处不再赘述。本实施例提供的攻击防范设备60在上述图5所示实施例的基础之上,还可以包括判断模块601,其中:判断模块601,用于判断TCP连接中的客户端的IP地址是否在黑名单中,其中,所述黑名单中包含了发起异常连接的客户端的IP地址,当所述客户端的IP地址不在黑名单中时,触发第一统计模块501;当所述客户端的IP地址在所述黑名单中时,触发所述处理模块503。具体的,可以在攻击防范设备中预先设置攻击者的黑名单,该黑名单中包含有检测出的攻击者的IP地址,其中,本实施例中的攻击防范设备可以是路由器、防火墙等网关产品或DDOS清洗设备等网络设备。当接收到客户端发送的报文时,判断模块601可以根据该报文中携带的源IP地址判断该TCP连接中的客户端的IP地址是否在预设的黑名单中,如果不在黑名单中,则触发第一统计模块501,否则触发所述处理模块503,直接断开该TCP连接,从而可以提高攻击防范效率。更进一步地,本实施例提供的攻击防范设备还可以包括第二统计模块602和管理模块603。其中:第二统计模块602,用于统计所述TCP连接中客户端发起的异常连接的数量。具体的,可以在攻击防范设备中建立一个异常连接监控表,用于统计客户端发起的异常连接的数量。该异常连接监控表中记录有客户端的IP地址以及该IP地址指向的客户端发起的异常连接的数量。具体的,当异常连接确定模块502确定某个TCP连接为异常连接后,则第二统计模块602可以在该异常连接监控表中查找与该TCP连接中的客户端的IP地址相同的IP地址,并对该IP地址下的异常连接数量进行统计。具体的,如果查找到与所述客户端的IP地址相同的IP地址,则第二统计模块602将该IP地址对应的异常连接的数量加1;如果没有查找到相同的IP地址,则第二统计模块602在所述异常连接监控表中新增一条记录,记录下该IP地址,并将该IP地址对应的异常连接的数量记录为1次。可以理解的是,统计所述TCP连接中的客户端发起的异常连接的数量时也是统计设定的统计周期内的异常连接数量,具体的,可以在确定一次异常连接时,记录一个时间戳,根据记录的时间戳来确定统计周期,并统计设定的统计周期内的异常连接数量。具体统计方法可以参考前面方法实施例部分的描述,此处不再赘述。管理模块603,用于当第二统计模块602统计的所述TCP连接中客户端发起的异常连接的数量大于预设的连接数量阈值时,将所述客户端的IP地址加入所述黑名单。其中,连接数量阈值可以是预设的时间内允许该IP地址指向的客户端发起的异常连接的最大数量。实际应用中,可以根据业务需要或网络流量来设定连接数量阈值,例如可以将连接数量阈值设置为每30秒3次(3次/30秒)。当第二统计模块602统计的该TCP连接中的客户端发起的异常连接的数量大于预设的连接数量阈值时,管理模块603确定该客户端为攻击者,将该客户端的IP地址加入黑名单,从而能够动态的更新所述黑名单,以便下一次接收到从该IP地址发送的报文时,可以直接丢弃该报文,或断开该IP地址发起的TCP连接,提高检测效率。进一步的,在另一种实施方式中,第一统计模块501可以具体包括识别单元511和统计单元521。其中:识别单元511,用于通过所述TCP连接中的客户端与服务器之间交互的报文的类型来识别所述报文是否为协商报文;本实施例的识别单元511中识别的所述协商报文包括ChangeCipherSpec类型的报文。具体的,由于在一个TCP连接中,客户端与SSL服务器之间的每一次重协商过程均会伴随一个ChangeCipherSpec类型的协商报文,其中第一次协商为正常协商,其他非第一次协商则为重复协商。因此,识别单元511可以通过判断客户端与服务器之间交互的报文的类型是否为ChangeCipherSpec类型,来识别该报文是否为协商报文。统计单元521,用于根据识别单元511识别的所述TCP连接中的协商报文的个数来统计所述TCP连接中的重协商次数。实际应用中,TCP连接中的重协商次数可以通过统计该TCP连接中客户端与SSL服务器之间交互的ChangeCipherSpec类型的协商报文数量来获得。具体的,统计单元521可以通过将预设时间内该TCP连接中的协商报文的数量减一,则可以获得该TCP连接中的重协商次数。例如,若在1小时内,某个TCP连接中出现的ChangeCipherSpec类型的协商报文数量为10个,则可以得到该TCP连接在1个小时内的重协商次数为9次。进一步的,在另一种情况下,该攻击防范设备60还可以包括:接收模块600,用于接收客户端发送的报文。所述判断模块601,还用于判断接收模块600接收的报文是否命中会话,如果命中会话,则继续判断所述接收的报文的客户端的IP地址是否在黑名单中,如果在黑名单中则触发处理模块503,否则,触发第一统计模块501。本实施例提供的一种攻击防范设备,在接收到客户端发送的报文后,先通过判断模块判断该报文是否命中会话;如果命中会话,则继续根据接收到的报文判断客户端的IP地址是否在黑名单中;如果不在黑名单中,且统计到TCP连接中的重协商次数大于重协商次数阈值时,确定该TCP连接为异常连接,并断开该TCP连接,并在设置的异常连接监控表中记录所述TCP连接中客户端发起的异常连接的数量,当该TCP连接中的客户端发起的异常连接的数量超过预设的连接数量阈值时,将该客户端的IP地址加入黑名单,以便对设置的黑名单进行及时更新,从而不仅能够防止具有真实IP地址的客户端对SSL服务器发起的SSLDOS攻击,还能够防止攻击者通过虚拟IP地址对服务器发起的攻击,并进一步的通过设置的黑名单对接收到的报文进行过滤,从而提高了防范的效率。图7为本发明实施例提供的又一种攻击防范设备的结构示意图,该攻击防范设备可以为路由器、防火墙或DDOS清洗设备,还可以是包含攻击防范能力的主机服务器,本发明具体实施例并不对攻击防范设备的具体实现做限定。如图7所示,该攻击防范设备可以包括:处理器(processor)710,通信接口(CommunicationsInterface)720,存储器(memory)730,通信总线740。处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。通信接口720,用于与网元通信,比如客户端或SSL服务器等。处理器710,用于执行程序732,具体可以执行上述图2至图4所示的方法实施例中的相关步骤。。具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。处理器710可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器730,用于存放程序732。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序732具体可以包括:第一统计模块,用于统计所述TCP连接中的重协商次数,所述重协商次数为所述TCP连接中的客户端与服务器之间进行重复协商的次数;异常连接确定模块,用于当第一统计模块统计的所述TCP连接中的重协商次数大于预设的重协商次数阈值时,确定所述TCP连接为异常连接;处理模块,用于在异常连接确认模块确定所述TCP连接为异常连接时,断开所述TCP连接。程序732中各模块的具体实现可以参见图5-图6所示实施例中的相应模块,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1