本发明是关于计算机技术领域,尤其是关于一种拦截业务处理请求的方法和装置。
背景技术:
DDOS(Distributed Denial of Service,分布式拒绝服务)是网络中黑客攻击服务器的一种手段,由于其攻击成本低廉、效果明显,是各种黑客惯用的攻击手段,为了防止网络中黑客对服务器的攻击,通常会在终端与服务器的传输线路中设置DDOS防御系统。
现有技术中,在DDOS防御系统中一般设置指纹算法,可以获取接收到的业务处理请求的每个数据包,并获取每个数据包的负载(除去包头的内容),然后将每个数据包的负载进行重组,得到业务处理请求的内容,并进行识别,得到业务处理请求的指纹特征(如业务处理请求的前三个字节、业务处理请求的某些特殊字段等),如果该业务处理请求的指纹特征与预存的指纹特征不匹配,则确定该业务处理请求是黑客发送的业务处理请求。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
如果业务处理请求中包含加密的数据包,DDOS防御系统由于没有密码,会直接对加密的数据进行指纹特征的匹配判断,由于加密后的数据和加密前的数据不同,所以DDOS防御系统会识别出指纹特征与预存的指纹特征不匹配,进而将业务处理请求进行拦截,这样有可能会拦截正常的业务处理请求,影响用户的正常使用。并且当黑客使用非法获得的指纹特征任意构造攻击报文,或者采用重放攻击方式(截取业务处理请求的数据包,将数据包重组之后重新划分数据包,并反复向服务器发送),向服务器发送业务处理请求时,由于发送的业务处理请求的指纹特征与正常用户发送的业务处理请求的指纹特征相同,无法对业务处理请求进行拦截处理,从而导致服务性的安全性较差。
技术实现要素:
为了克服相关技术中存在的问题,本发明提供了一种拦截业务处理请求的方法和装置。技术方案如下:
第一方面,提供一种拦截业务处理请求的方法,所述方法包括:
接收终端发送的目标业务处理请求;
根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
获取所述目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息;
如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息相匹配,则将所述目标业务处理请求发送给业务服务器;如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息不匹配,则拦截所述目标业务处理请求。
可选的,所述根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息,包括:
如果单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,则根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息。
这样,可以节约DDOS防御系统的处理资源。
可选的,所述方法还包括:
如果单位时长内接收到的业务处理请求的数据流量不满足预设拦截条件,则确定所述业务标识与业务流特征信息的对应关系中是否存在所述目标业务标识;
如果所述业务标识与业务流特征信息的对应关系中不存在所述目标业务标识,则将所述目标业务标识和所述目标业务处理请求对应的业务流特征信息,对应的添加到所述业务标识与业务流特征信息的对应关系中,如果所述业务标识与业务流特征信息的对应关系中存在所述目标业务标识,则根据所述第一业务处理对应的业务流特征信息,在所述业务标识与业务流特征信息的对应关系中,对所述目标业务标识对应的业务流特征信息进行更新。
这样,可以获取到相对准确的业务标识与业务流特征信息的对应关系。
可选的,所述数据包的特征信息包括数据包的协议类型、数据包的长度、数据包之间的时间间隔和数据包的数目中的一种或多种。
可选的,所述业务流特征信息包括协议类型、最大包长、最小包长、数据包的数目、相邻数据包的最小时间间隔和最大传输速率中的一种或多种。
可选的,所述获取所述目标业务处理请求对应的目标业务标识,包括:
获取所述目标业务处理请求中携带的目标业务标识;或者,
根据所述目标业务处理请求中携带的业务端口标识与目的IP地址,确定所述目标业务处理请求的目标业务标识。
这样,可以获取到业务处理请求的唯一标识。
可选的,所述根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息,包括:
确定所述目标业务处理请求对应的流描述信息,如果预先存储的业务处理请求的拦截表中不包括所述目标业务处理请求对应的流描述信息,则根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
所述如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息不匹配,则拦截所述目标业务处理请求之后,还包括:
将所述目标业务处理请求对应的流描述信息添加至所述业务处理请求的拦截表中;
所述方法还包括:
如果预先存储的业务处理请求的拦截表中包括所述目标业务处理请求对应的流描述信息,则拦截所述目标业务处理请求。
这样,可以节约DDOS防御系统的处理资源。
第二方面,提供一种拦截业务处理请求的装置,所述装置包括:
接收模块,用于接收终端发送的目标业务处理请求;
第一确定模块,用于根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
第二确定模块,用于获取所述目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息;
发送模块,用于如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息相匹配,则将所述目标业务处理请求发送给业务服务器;
拦截模块,用于如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息不匹配,则拦截所述目标业务处理请求。
可选的,所述第二确定模块,用于:
如果单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,则根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息。
可选的,所述第二确定模块,还用于:
如果单位时长内接收到的业务处理请求的数据流量不满足预设拦截条件,则确定所述业务标识与业务流特征信息的对应关系中是否存在所述目标业务标识;
所述装置,还包括:
添加模块,用于如果所述业务标识与业务流特征信息的对应关系中不存在所述目标业务标识,则将所述目标业务标识和所述目标业务处理请求对应的业务流特征信息,对应的添加到所述业务标识与业务流特征信息的对应关系中,更新模块,用于如果所述业务标识与业务流特征信息的对应关系中存在所述目标业务标识,则根据所述第一业务处理对应的业务流特征信息,在所述业务标识与业务流特征信息的对应关系中,对所述目标业务标识对应的业务流特征信息进行更新。
可选的,所述数据包的特征信息包括数据包的协议类型、数据包的长度、数据包之间的时间间隔和数据包的数目中的一种或多种。
可选的,所述业务流特征信息包括协议类型、最大包长、最小包长、数据包的数目、相邻数据包的最小时间间隔和最大传输速率中的一种或多种。
可选的,所述第一确定模块,用于:
获取所述目标业务处理请求中携带的目标业务标识;或者,
根据所述目标业务处理请求中携带的业务端口标识与目的IP地址,确定所述目标业务处理请求的目标业务标识。
可选的,所述第一确定模块,用于:
确定所述目标业务处理请求对应的流描述信息,如果预先存储的业务处理请求的拦截表中不包括所述目标业务处理请求对应的流描述信息,则根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
所述添加模块,还用于:
将所述目标业务处理请求对应的流描述信息添加至所述业务处理请求的拦截表中;
所述拦截模块,还用于:
如果预先存储的业务处理请求的拦截表中包括所述目标业务处理请求对应的流描述信息,则拦截所述目标业务处理请求。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,接收终端发送的目标业务处理请求,根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息,获取目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定目标业务标识对应的目标业务流特征信息,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息相匹配,则将目标业务处理请求发送给业务服务器,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,则拦截目标业务处理请求。这样,DDOS防御系统可以根据业务处理请求对应的业务流特征信息,拦截该业务处理请求,而不需要获取业务处理请求的指纹特征,不会造成业务处理请求发送的延迟,另外,即使接收到加密的业务处理请求,由于不需要对业务处理请求的数据包进行解密,就能得到业务流特征信息,从而不会对正常的业务处理请求进行拦截,另外,即使黑客使用非法获得的指纹特征任意构造攻击报文,或者采用重放攻击方式(截取业务处理请求的数据包,将数据包重组之后重新划分数据包,并反复向服务器发送),由于是根据业务处理请求的业务流特征信息进行拦截,会将黑客发送的业务处理请求进行拦截,从而可以提高服务器的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种拦截业务处理请求的方法示意图;
图2(a)是本发明实施例提供的一种拦截业务处理请求的系统示意图;
图2(b)是本发明实施例提供的一种拦截业务处理请求的系统示意图;
图2(c)是本发明实施例提供的一种拦截业务处理请求的系统示意图;
图2(d)是本发明实施例提供的一种拦截业务处理请求的系统示意图;
图3是本发明实施例提供的拦截业务处理请求的装置的结构示意图;
图4是本发明实施例提供的拦截业务处理请求的装置的结构示意图;
图5是本发明实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种拦截业务处理请求的方法,该方法的执行主体可以是DDOS防御系统。其中,DDOS防御系统可以由一个服务器和一个交换机构成,也可以由多个服务器和一个交换机构成。服务器中可以设置有处理器、存储器、收发器等,处理器可以用于拦截业务处理请求的过程的处理,存储器可以用于存储拦截业务处理请求的过程中需要的数据以及产生的数据,收发器可以用于接收以及发送数据。
如图1所示,该方法的处理流程可以包括如下的步骤:
步骤101,接收终端发送的目标业务处理请求。
其中,目标业务处理请求是任意的业务处理请求,业务处理请求可以是终端与业务服务器进行交互时发送的消息、以及数据。
在实施中,如图2(a)所示,技术人员可以将DDOS防御系统设置在终端与业务服务器的传输线路中,DDOS防御系统中可以包括两个服务器和一个交换机,两个服务器可以是检测服务器和拦截服务器,DDOS防御系统既可以对业务标识与业务流特征信息的对应关系进行更新,也可以对业务处理请求进行拦截或转发。用户在终端中安装了某个应用程序(如网页浏览器等),然后操作开启该应用程序,如果用户想要浏览该应用程序的某个界面,用户可以点击相应的选项,终端则会检测到该选项的点击指令,并生成相应的目标业务处理请求,然后向该应用程序对应的业务服务器发送目标业务处理请求,传输线路中的交换机接收到目标业务处理请求后,将目标业务处理请求转发至拦截服务器,拦截服务器将会接收到终端发送的目标业务处理请求。
步骤102,根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息。
在实施中,目标业务处理请求一般包括多个数据包,拦截服务器可以确定目标业务处理请求中包括的数据包的特征信息,如数据包的协议类型(如UDP协议(User Datagram Protocol,用户数据包协议)等)、数据包的长度等,然后根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息,如相邻数据包的最小时间间隔、最大包长等。
可选的,数据包的特征信息包括数据包的协议类型、数据包的长度、数据包之间的时间间隔和数据包的数目中的一种或多种。
在实施中,数据包的特征信息可以包括数据包的协议类型、数据包的长度、数据包之间的时间间隔和数据包的数目中的一种或多种。数据包的协议类型可以是UDP协议或者TCP协议,可以根据报文的格式得到,数据包的长度可以是目标业务处理请求中包括的每个数据包的有效负载的长度,数据包之间的时间间隔是接收到任意两个数据包的时间差,数据包的数目是第一业务处理模块包括的数据包的数目。
可选的,业务流特征信息包括协议类型、最大包长、最小包长、数据包的数目、相邻数据包的最小时间间隔和最大传输速率中的一种或多种。
在实施中,业务流特征信息可以包括协议类型、最大包长、最小包长、数据包的数目、相邻数据包的最小时间间隔和最大传输速率中的一种或多种。最大包长为包含有效负载最多的数据包的长度,最小包长为包含有有效负载最少的数据包的长度,数据包的数目为一个业务处理请求中包含的数据包的数目,相邻数据包的最小时间间隔为服务器连续接收到终端发送的两个数据包之间的最小时间间隔,最大传输速率为单位时长内传输速率的最大值。
另外,业务流特征信息还包括最大传输字节,最大传输字节是业务处理请求包括的所有数据包中的有效负载长度的总和。对于UDP协议类型的数据包,每个数据包中都包含有效负载报文,在确定最大传输字节时,可以直接将业务处理请求包括的所有数据包中的有效负载长度进行相加得到。对于TCP协议类型的数据包,在确定最大传输字节时,由于TCP类型的数据包有重传的机制,不能将所有数据包的有效负载长度的总和作为最大传输字节,而是将FIN(Finish,完成)数据包的SEQ(sequence,序列号)值减去SYN(synchronism,同步)数据包的SEQ值,得到最大传输字节。对于TCP协议的数据包,由于TCP协议的数据包由多个报文组成,TCP协议的数据包的包长有可能检测几个连续的报文才能得到。对于TCP协议的数据包的最小时间间隔包括一组TCP数据包中相邻报文之间的最小时间间隔,和相邻两个TCP数据包之间的最小时间间隔。
可选的,拦截服务器中还存储有业务处理请求的拦截表,还可以根据业务处理请求的拦截表对目标业务处理请求进行处理,步骤102的处理可以如下:
确定目标业务处理请求对应的流描述信息,如果预先存储的业务处理请求的拦截表中不包括目标业务处理请求对应的流描述信息,则根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息;
如果预先存储的业务处理请求的拦截表中包括目标业务处理请求对应的流描述信息,则拦截目标业务处理请求。
其中,流描述信息包括源IP地址、目的IP地址、协议类型、源业务端口标识和目的业务端口标识,也可以称为五元组信息,源IP地址为业务处理请求的发送终端的IP地址,目的IP地址为业务处理请求对应的业务服务器的IP地址,协议类型为UDP协议、TCP协议,源业务端口标识与目的业务端口标识为业务处理请求中携带的源端口标识与目的端口标识(如数据包中携带的源端口标识与目的端口标识等)。业务处理请求的拦截表可以由技术人员预设,并且存储至拦截服务器中,业务处理请求的拦截表中包括需要被拦截的业务处理请求的流描述信息。
在实施中,拦截服务器接收到目标业务处理请求后,拦截服务器可以解析目标业务处理请求,从中解析得到目标业务处理请求对应的流描述信息,然后获取预先存储的业务处理请求的拦截表,确定预先存储的业务处理请求的拦截表是否包括目标业务处理请求对应的流描述信息,如果业务处理请求的拦截表中不包括目标业务处理请求对应的流描述信息,则服务器可以根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息(确定目标业务处理请求对应的业务流特征信息前面已经描述,此处不再赘述)。如果业务处理请求的拦截表中包括目标业务处理请求对应的流描述信息,则拦截服务器可以直接拦截目标业务处理请求,这样,可以根据接收到的业务处理请求的第一个数据包,获取到该业务处理请求的流描述信息,进而确定该业务处理请求是否需要拦截,而无需根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息,从而可以节约拦截服务器的处理资源。
步骤103,获取目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定目标业务标识对应的目标业务流特征信息。
其中,业务标识与业务流特征信息的对应关系可以由技术人员预设,并且存储至服务器中,技术人员可以根据历史记录的每个业务处理请求,确定对应的业务流特征信息,然后将业务处理请求的业务标识与对应的业务流特征信息添加到业务标识与业务流特征信息的对应关系中,或者预先存储的业务标识与业务流特征信息的对应关系可以接收自检测服务器。
在实施中,拦截服务器可以获取目标业务处理请求对应目标业务标识,每一种业务处理请求都对应唯一的业务标识,拦截服务器获取到目标业务处理请求对应的目标业务标识后,拦截服务器可以获取预先存储的业务标识与业务流特征信息的对应关系,然后从该对应关系中,查找目标业务标识对应的目标业务流特征信息。
可选的,获取目标业务处理请求对应的目标业务标识有多种,以下给出两种可选的方式:
方式一:获取目标业务处理请求中携带的目标业务标识。
在实施中,业务处理请求中可以携带业务标识,拦截服务器可以解析接收到的目标业务处理请求,然后从中解析得到目标业务处理请求对应的目标业务标识。
方式二:根据目标业务处理请求中携带的业务端口标识与目的IP地址,确定目标业务处理请求的目标业务标识。
在实施中,业务处理请求中携带有业务端口标识、以及目的IP地址,对于某一个确定的应用程序,每一种业务处理请求对应唯一的业务端口标识,目的IP地址为应用程序对应的后台业务服务器的IP地址。拦截服务器接收到目标业务处理请求后,拦截服务器可以解析目标业务处理请求,从中获取到业务端口标识与目的IP地址,然后可以将业务端口标识与目的IP地址作为目标业务处理请求的目标业务端口标识,例如,目标业务处理请求中携带的业务端口标识与目的IP地址分别为80与203.201.19,则目标业务处理请求的目标业务标识可以是“80+203.201.19”。
可选的,可以在业务处理请求的数据流量满足预设拦截条件时,确定目标业务标识对应的目标业务流特征信息,相应的步骤103的处理可以如下:
如果单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,则根据预先存储的业务标识与业务流特征信息的对应关系,确定目标业务标识对应的目标业务流特征信息。
在实施中,预设拦截条件可以由技术人员预设,并且存储至拦截服务器中,预设拦截条件可以是单位时长内接收的数据流量的阈值、单位时长内新增终端的数目等,拦截服务器可以检测单位时长内接收的业务处理请求的数据流量,如果确定单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,则拦截服务器可以获取预先存储的业务标识与业务流特征信息的对应关系,然后从该对应关系中,查找目标业务标识对应的目标业务流特征信息。
步骤104,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息相匹配,则将目标业务处理请求发送给业务服务器;如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,则拦截目标业务处理请求。
在实施中,拦截服务器获取到目标业务标识对应的目标业务流特征信息后,可以将目标业务处理请求对应的业务流特征信息与目标业务流特征信息进行对比,如果确定目标业务处理请求对应的业务流特征信息与目标业务流特征信息相匹配(如目标业务处理请求每个数据包的包长不能超过目标业务流特征信息的最大包长、目标业务处理请求任意两个连续数据包的时间间隔不能低于目标业务流特征信息的最小时间间隔等),则拦截服务器可以确定目标业务处理请求为正常的业务处理请求,然后可以将目标业务处理请求发送至将第一业务请求发送来的交换机,交换机可以将目标业务处理请求发送给业务服务器,如果确定目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配(如目标业务处理请求每个数据包的长度超过目标业务流特征信息的最大包长、或者目标业务处理请求任意两个连续数据包的时间间隔低于目标业务流特征信息的最小时间间隔等),则拦截服务器可以确定目标业务处理请求为黑客发送的业务处理请求,并拦截目标业务处理请求。例如,如果目标业务标识对应的目标业务流特征信息为最大包长145字节、最小传输时间间隔0.12秒、最大包个数3个等,目标业务处理请求中某个数据包的包长143字节、任意两个连续数据包的传输时间间隔0.15秒、最大包个数3个等,拦截服务器认为目标业务处理请求对应的业务流特征信息与目标业务流特征信息相匹配,拦截服务器可以将目标业务处理请求发送至将第一业务请求发送来的交换机,交换机可以将目标业务处理请求发送给业务服务器,如果目标业务标识对应的目标业务流特征信息为最大包长145字节、最小传输时间间隔0.12秒、最大包个数3个等,目标业务处理请求的某个数据包的包长147字节、任意两个数据包的传输时间间隔0.12秒、最大包个数3个等,拦截服务器认为目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,拦截服务器可以拦截目标业务处理请求。
可选的,在步骤102中有业务处理请求的拦截表时,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,则拦截目标业务处理请求之后,将目标业务处理请求对应的流描述信息添加至业务处理请求的拦截表中。
在实施中,拦截服务器如果确定目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,则可以在拦截目标业务处理请求后,将目标业务处理请求对应的流描述信息添加至业务处理请求的拦截表中,这样,后续再接收到与目标业务处理请求的流描述信息相同的业务处理请求,可以直接拦截该业务处理请求。
本发明实施例中,如果DDOS防御系统中拦截服务器的业务标识与业务流特征信息的对应关系是接收自检测服务器,检测服务器可以自己学习业务处理请求的业务流特征信息,相应的处理可以如下:
如果单位时长内接收到的业务处理请求的数据流量不满足预设拦截条件,则确定业务标识与业务流特征信息的对应关系中是否存在目标业务标识,
如果业务标识与业务流特征信息的对应关系中不存在目标业务标识,则将目标业务标识和目标业务处理请求对应的业务流特征信息,对应的添加到业务标识与业务流特征信息的对应关系中,如果业务标识与业务流特征信息的对应关系中存在目标业务标识,则根据第一业务处理对应的业务流特征信息,在业务标识与业务流特征信息的对应关系中,对目标业务标识对应的业务流特征信息进行更新。
在实施中,预设拦截条件可以由技术人员预设,并且存储至检测服务器中,预设拦截条件可以是单位时长内接收的数据流量的阈值、单位时长内新增终端的数目等。如图2(b)所示,终端将目标业务处理请求发送至传输线路的交换机,该交换机不向拦截服务器发送目标业务处理请求,而是将目标业务处理请求复制一份,并将一份目标业务处理请求发送至业务服务器,另一份发送至检测服务器,检测服务器可以检测单位时长内接收的业务处理请求的数据流量,如果确定单位时长内接收到的业务处理请求的数据流量不满足预设拦截条件,则检测服务器可以从业务标识与业务流特征信息的对应关系中查找是否存在目标业务标识。如果业务标识与业务流特征信息的对应关系中不存在目标业务标识,则检测服务器认为并未学习过目标业务处理请求的业务流特征信息,可以直接将目标业务标识和目标业务处理请求对应的业务流特征信息,对应的添加到业务标识与业务流特征信息的对应关系中,并且进行保存。如果业务标识与业务流特征信息的对应关系中存在目标业务标识,则检测服务器认为已经学习过目标业务处理请求的业务流特征信息,则可以在业务标识与业务流特征信息的对应关系中,对目标业务标识对应的业务流特征信息进行更新。例如,业务标识与业务流特征信息的对应关系中的目标业务标识对应的业务流特征信息为最大包长145字节、最小时间间隔0.12秒、最大包个数3个等,这次目标业务处理请求对应的业务流特征信息为最大包长147字节、最小时间间隔0.10秒、最大包个数3个,则可以将业务标识与业务流特征信息的对应关系中的目标业务标识对应的业务流特征信息更新为最大包长147字节、最小时间间隔0.10秒、最大包个数3个。
如图2(c)所示,检测服务器可以检测单位时长内接收的业务处理请求的数据流量,如果确定单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,则检测服务器可以向连接的交换机发送满足预设拦截条件消息,满足预设拦截条件消息中包括业务标识与业务流特征信息的对应关系和拦截请求,连接的交换机接收到满足预设拦截条件消息后,可以将业务标识与业务流特征信息的对应关系发送至拦截服务器。如图2(d)所示,连接的交换机可以将后续接收到的业务处理请求发送至拦截服务器,拦截服务器可以从接收到的业务标识与业务流特征信息的对应关系中,查找业务标识对应的业务流特征信息,对接收到的业务处理请求进行拦截处理。
本发明实施例中,还提供了限定检测服务器自己学习业务处理请求的业务流特征信息的次数,相应的处理可以如下:
如果根据与目标业务标识对应的业务处理请求对应的业务流特征信息,对业务标识与业务流特征信息的对应关系进行更新的次数达到预设阈值,则之后接收到与目标业务标识对应的业务处理请求时,不再对业务标识与业务流特征信息的对应关系进行更新。
在实施中,预设阈值可以由技术人员预设,并且存储至检测服务器中,如1000次等。检测服务器每次根据与目标业务标识对应的业务处理请求对应的业务流特征信息,对业务标识与业务流特征信息的对应关系进行更新后,可以记录上述进行更新的次数,如果上述进行更新的次数达到预设阈值,则认为对目标业务标识对应的业务特征信息已经学习成功,不需要根据接收到的目标业务标识对应的业务流特征信息,对业务标识与业务流特征信息的对应关系进行更新。
另外,检测服务器每次根据与目标业务标识对应的业务处理请求对应的业务流特征信息,对业务标识与业务流特征信息的对应关系进行更新后,可以记录上述进行更新的次数,如果上述进行更新的次数达到预设阈值,且连续两次接收的目标业务标识对应的业务流特征信息中各特征量的变化量已经小于对应的变化阈值,则认为对目标业务标识对应的业务特征信息已经学习成功,不需要不需要根据接收到的目标业务标识对应的业务流特征信息,对业务标识与业务流特征信息的对应关系进行更新。例如,预设阈值为1000次,最大包长的变化阈值为0.2,最小时间间隔的变化阈值为0.1,最大包个数的变化阈值为1个,进行更新的次数达到1000次,第999次学习到的目标业务标识对应的业务流特征信息为最大包长145字节、最小时间间隔0.12秒、最大包个数3个等,第1000次学习到的目标业务标识对应的业务流特征信息为最大包长145.1字节、最小时间间隔0.121秒、最大包个数3个等,可见两次最大包长的变化量、最小时间间隔的变化量和最大包个数的变化量都分别小于对应的变化阈值,检测服务器不需要根据接收到的目标业务标识对应的业务流特征信息,对业务标识与业务流特征信息的对应关系进行更新。
另外,DDOS防御系统由一个服务器构成时,终端将业务处理请求发送至传输线路的交换机,该交换机可以将业务处理请求复制一份,并将一份业务处理请求发送至业务服务器,另一份发送至服务器,如果单位时长内接收到的业务处理请求的数据流量不满足预设拦截条件,服务器可以学习业务处理请求的业务流特征信息,并且根据确定的业务流特征信息,对业务标识与业务流特征信息的对应关系进行更新,如果单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,服务器向连接的交换机发送满足拦截条件消息,交换机接收到满足拦截条件消息后,可以将接收自终端的业务处理请求发送至服务器,服服务器不再学习业务处理请求的业务流特征信息,而是对业务处理请求进行拦截处理,拦截处理过程与拦截服务器对业务处理请求处理的过程相同(此处不再赘述)。
本发明实施例中,接收终端发送的目标业务处理请求,根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息,获取目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定目标业务标识对应的目标业务流特征信息,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息相匹配,则将目标业务处理请求发送给业务服务器,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,则拦截目标业务处理请求。这样,DDOS防御系统可以根据业务处理请求对应的业务流特征信息,拦截该业务处理请求,而不需要获取业务处理请求的指纹特征,不会造成业务处理请求发送的延迟,另外,即使接收到加密的业务处理请求,由于不需要对业务处理请求的数据包进行解密,就能得到业务流特征信息,从而不会对正常的业务处理请求进行拦截,另外,即使黑客使用非法获得的指纹特征任意构造攻击报文,或者采用重放攻击方式(截取业务处理请求的数据包,将数据包重组之后重新划分数据包,并反复向服务器发送),由于是根据业务处理请求的业务流特征信息进行拦截,会将黑客发送的业务处理请求进行拦截,从而可以提高服务器的安全性。
基于相同的技术构思,如图3所示,本发明实施例还提供了一种拦截业务处理请求的装置,该装置包括:
接收模块310,用于接收终端发送的目标业务处理请求;
第一确定模块320,用于根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
第二确定模块330,用于获取所述目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息;
发送模块340,用于如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息相匹配,则将所述目标业务处理请求发送给业务服务器;
拦截模块350,用于如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息不匹配,则拦截所述目标业务处理请求。
可选的,所述第二确定模块330,用于:
如果单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,则根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息。
可选的,所述第二确定模块330,还用于:
如果单位时长内接收到的业务处理请求的数据流量不满足预设拦截条件,则确定所述业务标识与业务流特征信息的对应关系中是否存在所述目标业务标识;
如图4所示,所述装置,还包括:
添加模块360,用于如果所述业务标识与业务流特征信息的对应关系中不存在所述目标业务标识,则将所述目标业务标识和所述目标业务处理请求对应的业务流特征信息,对应的添加到所述业务标识与业务流特征信息的对应关系中,更新模块,用于如果所述业务标识与业务流特征信息的对应关系中存在所述目标业务标识,则根据所述第一业务处理对应的业务流特征信息,在所述业务标识与业务流特征信息的对应关系中,对所述目标业务标识对应的业务流特征信息进行更新。
可选的,所述数据包的特征信息包括数据包的协议类型、数据包的长度、数据包之间的时间间隔和数据包的数目中的一种或多种。
可选的,所述业务流特征信息包括协议类型、最大包长、最小包长、数据包的数目、相邻数据包的最小时间间隔和最大传输速率中的一种或多种。
可选的,所述第一确定模块320,用于:
获取所述目标业务处理请求中携带的目标业务标识;或者,
根据所述目标业务处理请求中携带的业务端口标识与目的IP地址,确定所述目标业务处理请求的目标业务标识。
可选的,所述第一确定模块320,用于:
确定所述目标业务处理请求对应的流描述信息,如果预先存储的业务处理请求的拦截表中不包括所述目标业务处理请求对应的流描述信息,则根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
所述添加模块360,还用于:
将所述目标业务处理请求对应的流描述信息添加至所述业务处理请求的拦截表中;
所述拦截模块350,还用于:
如果预先存储的业务处理请求的拦截表中包括所述目标业务处理请求对应的流描述信息,则拦截所述目标业务处理请求。
本发明实施例中,接收终端发送的目标业务处理请求,根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息,获取目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定目标业务标识对应的目标业务流特征信息,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息相匹配,则将目标业务处理请求发送给业务服务器,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,则拦截目标业务处理请求。这样,DDOS防御系统可以根据业务处理请求对应的业务流特征信息,拦截该业务处理请求,而不需要获取业务处理请求的指纹特征,不会造成业务处理请求发送的延迟,另外,即使接收到加密的业务处理请求,由于不需要对业务处理请求的数据包进行解密,就能得到业务流特征信息,从而不会对正常的业务处理请求进行拦截,另外,即使黑客使用非法获得的指纹特征任意构造攻击报文,或者采用重放攻击方式(截取业务处理请求的数据包,将数据包重组之后重新划分数据包,并反复向服务器发送),由于是根据业务处理请求的业务流特征信息进行拦截,会将黑客发送的业务处理请求进行拦截,从而可以提高服务器的安全性。
需要说明的是:上述实施例提供的拦截业务处理请求的方法在拦截业务处理请求时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的设备完成,即将装置的内部结构划分成不同的设备,以完成以上描述的全部或者部分功能。另外,上述实施例提供的拦截业务处理请求的装置与拦截业务处理请求的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的服务器的结构示意图。该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器500上执行存储介质930中的一系列指令操作。
服务器500还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,一个或一个以上键盘856,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务器500可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收终端发送的目标业务处理请求;
根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
获取所述目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息;
如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息相匹配,则将所述目标业务处理请求发送给业务服务器;如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息不匹配,则拦截所述目标业务处理请求。
可选的,所述根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息,包括:
如果单位时长内接收到的业务处理请求的数据流量满足预设拦截条件,则根据预先存储的业务标识与业务流特征信息的对应关系,确定所述目标业务标识对应的目标业务流特征信息。
可选的,所述方法还包括:
如果单位时长内接收到的业务处理请求的数据流量不满足预设拦截条件,则确定所述业务标识与业务流特征信息的对应关系中是否存在所述目标业务标识;
如果所述业务标识与业务流特征信息的对应关系中不存在所述目标业务标识,则将所述目标业务标识和所述目标业务处理请求对应的业务流特征信息,对应的添加到所述业务标识与业务流特征信息的对应关系中,如果所述业务标识与业务流特征信息的对应关系中存在所述目标业务标识,则根据所述第一业务处理对应的业务流特征信息,在所述业务标识与业务流特征信息的对应关系中,对所述目标业务标识对应的业务流特征信息进行更新。
可选的,所述数据包的特征信息包括数据包的协议类型、数据包的长度、数据包之间的时间间隔和数据包的数目中的一种或多种。
可选的,所述业务流特征信息包括协议类型、最大包长、最小包长、数据包的数目、相邻数据包的最小时间间隔和最大传输速率中的一种或多种。
可选的,所述获取所述目标业务处理请求对应的目标业务标识,包括:
获取所述目标业务处理请求中携带的目标业务标识;或者,
根据所述目标业务处理请求中携带的业务端口标识与目的IP地址,确定所述目标业务处理请求的目标业务标识。
可选的,所述根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息,包括:
确定所述目标业务处理请求对应的流描述信息,如果预先存储的业务处理请求的拦截表中不包括所述目标业务处理请求对应的流描述信息,则根据所述目标业务处理请求包括的数据包的特征信息,确定所述目标业务处理请求对应的业务流特征信息;
所述如果所述目标业务处理请求对应的业务流特征信息与所述目标业务流特征信息不匹配,则拦截所述目标业务处理请求之后,还包括:
将所述目标业务处理请求对应的流描述信息添加至所述业务处理请求的拦截表中;
所述方法还包括:
如果预先存储的业务处理请求的拦截表中包括所述目标业务处理请求对应的流描述信息,则拦截所述目标业务处理请求。
本发明实施例中,接收终端发送的目标业务处理请求,根据目标业务处理请求包括的数据包的特征信息,确定目标业务处理请求对应的业务流特征信息,获取目标业务处理请求对应的目标业务标识,根据预先存储的业务标识与业务流特征信息的对应关系,确定目标业务标识对应的目标业务流特征信息,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息相匹配,则将目标业务处理请求发送给业务服务器,如果目标业务处理请求对应的业务流特征信息与目标业务流特征信息不匹配,则拦截目标业务处理请求。这样,DDOS防御系统可以根据业务处理请求对应的业务流特征信息,拦截该业务处理请求,而不需要获取业务处理请求的指纹特征,不会造成业务处理请求发送的延迟,另外,即使接收到加密的业务处理请求,由于不需要对业务处理请求的数据包进行解密,就能得到业务流特征信息,从而不会对正常的业务处理请求进行拦截,另外,即使黑客使用非法获得的指纹特征任意构造攻击报文,或者采用重放攻击方式(截取业务处理请求的数据包,将数据包重组之后重新划分数据包,并反复向服务器发送),由于是根据业务处理请求的业务流特征信息进行拦截,会将黑客发送的业务处理请求进行拦截,从而可以提高服务器的安全性。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。