一种支持特征跨包的编码攻击检测方法和装置与流程

文档序号:11843062阅读:307来源:国知局
一种支持特征跨包的编码攻击检测方法和装置与流程

本申请涉及信息安全领域,特别涉及一种支持特征跨包的编码攻击检测方法和装置。



背景技术:

随着网络入侵事件的不断增加和攻击水平的不断提高,一些企业和单位的网络时刻面临着大量进攻威胁。为解决这一问题,一般部署IPS(IntrusionPrevention System,入侵防御系统)设备进行攻击防护。IPS设备检查攻击基于特征匹配原理,根据预先下发的攻击特征与网络中数据包进行匹配,匹配成功则认为数据包存在攻击,匹配失败则对该数据包放行。

如果网络中传输的报文经过编码,且攻击特征因报文分段而跨包时,IPS设备可能无法检测到完整的攻击特征,造成安全防御出现漏洞。



技术实现要素:

有鉴于此,本申请提供一种支持特征跨包的编码攻击检测方法和装置,用于解决网络中传输的报文经过编码,且攻击特征因报文分段而跨包时,IPS设备无法检测到报文中完整的攻击特征的问题。

具体地,本申请是通过如下技术方案实现的:

一种支持特征跨包的编码攻击检测方法,应用于IPS设备,包括:

在针对接收到的报文进行解码时,判断与所述报文所在会话对应的结构体中是否存在未解码字符;所述结构体用于存储对应于所述会话的未解码字符、编码方式以及多模式匹配进度;

当所述结构体存在未解码字符时,合并所述未解码字符和所述报文的报文负载;

根据所述结构体中的编码方式,对合并后的所述未解码字符和所述报文的报文负载进行解码处理;

基于预先配置的攻击特征,在所述多模式匹配进度的基础上,基于预设的多模式匹配算法对解码后的所述未解码字符和所述报文的报文负载进行多模式匹配,以确定所述报文是否为攻击报文。

在所述支持特征跨包的编码攻击检测方法中,还包括:

当接收到所述报文时,读取所述报文的编码方式字段;

基于读取到的所述编码方式字段中记录的信息判断所述报文是否经过编码。

在所述支持特征跨包的编码攻击检测方法中,在针对接收到的报文进行解码时,判断与所述报文所在会话对应的结构体中是否存在未解码字符,包括:

在针对接收到的报文进行解码时,判断所述报文所在的会话是否存在对应的结构体;

如果所述报文所在的会话不存在所述结构体,为所述报文所在的会话创建所述结构体;

将所述报文的编码方式存储在所述结构体中。

在所述支持特征跨包的编码攻击检测方法中,还包括:

当针对解码后的所述未解码字符和所述报文的报文负载进行多模式匹配后,未查找到完整的攻击特征时,在所述结构体中记录当前的多模式匹配进度,对所述结构体中记录的多模式匹配进度进行更新。

在所述支持特征跨包的编码攻击检测方法中,还包括:

当所述结构体中不存在未解码字符时,根据所述结构体中记录的编码方式,对所述报文的报文负载进行解码处理;

基于预先配置的所述攻击特征,在所述多模式匹配进度的基础上,基于预设的多模式匹配算法对解码后的所述报文的报文负载进行多模式匹配;

当针对解码后的所述报文的报文负载进行多模式匹配后,未查找到完整的攻击特征时,在所述结构体中记录当前的多模式匹配进度,对所述结构体中记录的多模式匹配进度进行更新。

在所述支持特征跨包的编码攻击检测方法中,还包括:

当解码处理后仍存在无法解码的字符时,将该字符作为所述未解码字符存储到所述结构体中。

所述多模式匹配算法为AC算法。

一种支持特征跨包的编码攻击检测装置,应用于IPS设备,包括:

判断单元,用于在针对接收到的报文进行解码时,判断与所述报文所在会话对应的结构体中是否存在未解码字符;所述结构体用于存储对应于所述会话的未解码字符、编码方式以及多模式匹配进度;

合并单元,用于当所述结构体存在未解码字符时,合并所述未解码字符和所述报文的报文负载;

解码单元,用于根据所述结构体中的编码方式,对合并后的所述未解码字符和所述报文的报文负载进行解码处理;

查找单元,用于基于预先配置的攻击特征,在所述多模式匹配进度的基础上,基于预设的多模式匹配算法对解码后的所述未解码字符和所述报文的报文负载进行多模式匹配,以确定所述报文是否为攻击报文。

在所述支持特征跨包的编码攻击检测装置中,还包括:

读取单元,用于当接收到所述报文时,读取所述报文的编码方式字段;

所述判断单元,进一步用于基于读取到的所述编码方式字段中记录的信息判断所述报文是否经过编码。

在所述支持特征跨包的编码攻击检测装置中,所述判断单元,进一步用于:

在针对接收到的报文进行解码时,判断所述报文所在的会话是否存在对应的结构体;

如果所述报文所在的会话不存在所述结构体,为所述报文所在的会话创建所述结构体;

将所述报文的编码方式存储在所述结构体中。

在所述支持特征跨包的编码攻击检测装置中,还包括:

存储单元,用于当针对解码后的所述未解码字符和所述报文的报文负载进行多模式匹配后,未查找到完整的攻击特征时,在所述结构体中记录当前的多模式匹配进度,对所述结构体中记录的多模式匹配进度进行更新。

在所述支持特征跨包的编码攻击检测装置中,还包括:

所述解码单元,进一步用于当所述结构体中不存在未解码字符时,根据所述结构体中记录的编码方式,对所述报文的报文负载进行解码处理;

所述查找单元,进一步用于基于预先配置的所述攻击特征,在所述多模式匹配进度的基础上,基于预设的多模式匹配算法对解码后的所述报文的报文负载进行多模式匹配;

所述存储单元,进一步用于当针对解码后的所述报文的报文负载进行多模式匹配后,未查找到完整的攻击特征时,在所述结构体中记录当前的多模式匹配进度,对所述结构体中记录的多模式匹配进度进行更新。

在所述支持特征跨包的编码攻击检测装置中,还包括:

所述存储单元,进一步用于当解码处理后仍存在无法解码的字符时,将该字符作为所述未解码字符存储到所述结构体中。

所述多模式匹配算法为AC算法。

在本申请实施例中,IPS设备在针对接收到的报文进行解码时,判断与所述报文所在会话对应的结构体中是否存在未解码字符,如果上述结构体中存在未解码字符,合并所述未解码字符和所述报文的报文负载,将未解码字符与接收到报文的报文负载进行解码处理;然后基于预先配置的攻击特征,在多模式匹配进度的基础上,对解码后的字符进行多模式匹配,以确定所述报文是否为攻击报文。

由于本申请提供了用于存储未解码字符和多模式匹配进度的结构体,一方面,IPS设备在对接收到的报文进行多模式匹配的过程中,不会丢弃暂时无法解码的字符;另一方面,在攻击特征跨包的情况下,可以在已保存的多模式匹配进度的基础上继续进行多模式匹配,从而提升了在攻击特征跨包的情况下,从报文中查找到完整的攻击特征的概率,解决了网络中传输的报文经过编码,且攻击特征因报文分段而跨包时,IPS设备无法检测到报文的攻击特征的问题。

附图说明

图1是本申请示出的一种相关技术中编码攻击检测方法的流程图;

图2是本申请示出的一种支持特征跨包的编码攻击检测方法的流程图;

图3是本申请示出的一种特征二叉树的示意图;

图4是本申请示出的一种支持特征跨包的编码攻击检测装置的逻辑框图;

图5是本申请示出的一种支持特征跨包的编码攻击检测装置的硬件结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。

参见图1,图1为本申请示出的一种相关技术中编码攻击检测方法的流程图,该技术方案应用于IPS设备上。

在相关技术中,IPS设备通常可以在内存中预先配置两个缓冲区(例如:缓冲区A和缓冲区B),其中一个缓冲区用于存放报文负载,另一个缓冲区用于存放报文负载解码后的字符序列。

IPS设备在接收到报文后,通常可以读取该报文的编码方式字段,根据读取到的上述编码方式字段中记录的信息,判断该报文是否经过编码。如果该编码方式字段为空,则表明该报文未经过编码,此时,报文中不包括经过编码的攻击特征,IPS设备可以正常处理该报文。如果该编码方式字段不为空,则表明该报文经过编码。

IPS设备在确认报文经过编码后,可以复制该报文的报文负载到预先配置的缓冲区A,根据读取到的报文的编码方式字段中记录的信息,对报文负载进行解码,并将解码后的字符序列输出到缓冲区B。

当解码完成,解码后的字符序列被输出到缓冲区B后,可以根据预先下发的攻击特征,基于预设的多模式匹配算法对缓冲区B的字符序列进行多模式匹配,即对攻击特征与解码后的字符序列进行匹配,如果匹配成功,则确定报文为攻击报文,对该报文进行拦截;反之,则正常处理该报文。

然而,对于报文经过编码的情况,编码后的报文的长度可能增加;例如,以采用UTF-8(8-bit Unicode Transformation Format,万国码)对报文进行编码为例,UTF-8编码是一种针对Unicode的可变长度字符编码,通常情况下,UTF-8使用1到6个字节对Unicode进行编码,其中,如果使用6字节编码,报文经过编码后,长度会增加6倍。

在这种情况下,编码后的报文在网络传输出现分段的可能性大大增加,从而导致被报文承载的攻击特征出现分段,由多个报文承载。

然而,在图1示出的流程中,通常并不支持攻击特征跨包的编码攻击检测。当攻击特征跨包后,单个报文在解码后可能存在未解码字符,由于通常情况下IPS设备对分段报文的处理过程保持最大的容错性,即在处理到未解码字符时,会直接跳过。在这种情况下,如果攻击特征的一部分恰好在未解码字符中,则在跳过这部分特征后,即使IPS设备能够检测到该攻击特征的其它部分,也无法根据预先配置的攻击特征匹配到一个完整的攻击特征,因此会导致特征匹配失败,无法检测到攻击报文。

为解决上述问题,本申请实施例的技术方案,针对特征跨包的情况,保存未解码字符和多模式匹配进度;IPS设备在接收到新的报文后,合并新接收报文的报文负载和已保存的未解码字符,然后对合并后的字符序列进行解码处理;在解码完成后,基于预先配置的攻击特征,在已保存的多模式匹配进度的基础上,对解码后的字符序列进行多模式匹配。并且,本申请实施例在每次多模式匹配完未查找到完整攻击特征时更新多模式匹配进度。通过上述措施,提升了从报文中查找到完整的攻击特征的概率,解决了网络中传输的报文经过编码,而攻击特征因报文分段而跨包时,IPS设备无法检测攻击报文的问题。

参见图2,本申请示出的一种支持特征跨包的编码攻击检测方法的流程图,该实施例的执行主体是IPS设备;所述方法包括以下步骤:

步骤201:在针对接收到的报文进行解码时,判断与所述报文所在会话对应的结构体中是否存在未解码字符;所述结构体用于存储对应于所述会话的未解码字符、编码方式以及多模式匹配进度。

步骤202:当所述结构体存在未解码字符时,合并所述未解码字符和所述报文的报文负载。

步骤203:根据所述结构体中的编码方式,对合并后的所述未解码字符和所述报文的报文负载进行解码处理。

步骤204:基于预先配置的攻击特征,在所述多模式匹配进度的基础上,基于预设的多模式匹配算法对解码后的所述未解码字符和所述报文的报文负载进行多模式匹配,以确定所述报文是否为攻击报文。

上述多模式匹配算法,用于在一段文本中查找多个模式字符序列,应用于关键字过滤、入侵检测、病毒检测、分词等等问题中。在本实施例,用于检测攻击报文。其中,多模式匹配算法可以包括Trie树,AC(Aho-Corasick)算法,WM(Wu-Manber)算法,等等。

以下以AC算法为例,对本申请实施例的技术方案进行说明,当然,在实际应用中,上述多模式匹配算法也可以是其它类型的多模式匹配算法,在此不一一说明。

其中,基于AC算法的多模式匹配也可以称之为AC查找,相似的,多模式匹配进度也可以称之为AC查找进度。

在本实施例中,AC查找通常是基于预先下发的攻击特征来完成的,攻击特征出自特征库,特征库的大量攻击特征编译出来就是一个特征二叉树。

如图3所示,为本申请示出的一种特征二叉树的示意图。ABC、ABD、AEG、AEF分别为攻击特征,基于攻击特征对解码后的字符序列进行匹配。如果攻击特征能在一个报文里匹配到,则确定该报文为攻击报文;如果攻击特征跨包,即一个攻击特征被分拆后由多个报文承载,此时如果未查找到完整的攻击特征,则需记录AC查找进度。例如:在第一个报文中AC查找获得AB,此时AB为AC查找进度,记录该AC查找进度,在下一个报文中基于该AC查找进度继续查找,获得ABC,则确定存在攻击报文。

在现有技术中,IPS设备对经过编码的报文进行AC查找,通常只能检测攻击特征被一个报文完整承载的攻击报文,如果出现攻击特征跨包,则无法检测出攻击特征。

为解决上述问题,在本例中,可以通过保存AC查找过程中的未解码字符和AC查找进度,在出现攻击特征跨包的情况下,使属于同一会话的报文建立联系,将被多个报文承载的攻击特征逐步收集、检测出来,从而解决了攻击特征跨包,无法检测攻击报文的问题。

在本例中,当IPS设备接收到报文后,可以读取该报文的编码方式字段(例如:char-set字段),判断该报文是否经过编码。

其中,报文的编码方式有许多种,常见的是UTF-8编码,UTF-8编码是一种针对Unicode的可变长度字符编码,又称万国码。

一方面,当该报文的编码方式字段为空时,则说明该报文未经过编码,在这种情况下,该报文不携带经过编码的攻击特征,可以对该报文进行正常处理。

另一方面,当该报文经过编码时,该报文可能携带经过编码的攻击特征。由于报文经过编码后,报文长度会增大,在网络传输中,报文被分段的可能性大大增加;如果报文携带攻击特征,此时,攻击特征会跨包,即由多个报文承载,因此,为了检测出被多个报文承载的攻击特征,可以为属于同一会话的报文建立联系。

在示出的一种实施方式中,IPS设备可以针对不同的会话分别建立一个对应的结构体,该结构体用于存储对应于上述会话的相关信息;例如,该结构体可以存储对应于上述会话的未解码字符、编码方式以及AC查找进度。

在本实施例中,当IPS设备确定接收到的报文经过编码时,首先判断该报文所在的会话是否存在对应的结构体。

一方面,如果不存在该报文所在的会话对应的结构体,说明是第一次接收到该报文所在的会话的报文,在这种情况下,可以为该报文所在的会话创建一个结构体,并将读取到的该报文的编码方式存储在该结构体中,以便于后续根据该编码方式对该会话的报文进行解码。

另一方面,如果存在该报文所在的会话对应的结构体,说明此前已接收到与该报文同属一个会话的报文。因此,上述结构体中可能存在此前对报文解码而留下的未解码字符,该未解码字符可能包括攻击特征的一部分,需要对该未解码字符进行解码。

可以在IPS设备的内存中预先配置两个缓冲区(缓冲区A和缓冲区B),一个缓冲区用于存放未解码字符和未解码的报文负载,另一个缓冲区用于存放解码后的字符序列。

在本实施例中,在IPS设备针对接收到的上述报文进行解码时,判断与上述报文所在会话对应的结构体中是否存在未解码字符。

一方面,如果上述结构体中存在未解码字符,该未解码字符可能包括攻击特征的一部分,并可能与上述报文包括的特征有关联(如果上述报文也包括攻击特征)。此时,可以合并该未解码字符和上述报文的报文负载,并将合并后的字符序列复制到缓冲区A。

在合并后的字符序列被复制到缓冲区A后,获取上述结构体中的编码方式,根据该编码方式对合并后的字符序列进行解码处理。将解码处理完成后的字符序列保存到缓冲区B;

此时,如果存在无法解码的字符,将该字符作为未解码字符存储到上述结构体中。上述字符可能与后续接收的报文包括的特征存在关联,因此保存上述字符,可以避免攻击特征的遗漏。

当解码完成后,获取上述结构体中的AC查找进度,在该AC查找进度的基础上,基于预先配置的攻击特征,对缓冲区B的字符序列进行AC查找,查找完成后,根据查找结果更新AC查找进度,确定是否存在攻击报文。

其中,如果更新后的AC查找进度中存在完整的攻击特征,则说明存在攻击报文,此时,可以针对攻击报文进行拦截。

另外,如果更新后的AC查找进度中存在的攻击特征不完整,则将更新后的AC查找进度存储到上述结构体中。由于攻击特征在编码后可能被多个报文承载,保存AC查找进度,可以在每次接收到携带部分攻击特征的报文时,更新AC查找进度,最终查找到完整的攻击特征。

除此以外,如果更新后的AC查找进度与更新之前的AC查找进度相同,则说明解码后的字符序列中不存在攻击特征的内容,上述报文不是攻击报文,在这种情况下,可以正常处理上述报文。

另一方面,如果上述结构体中不存在未解码字符,可以将上述报文的报文负载复制到缓冲区A,然后,获取上述结构体中的编码方式,根据该编码方式对上述报文的报文负载进行解码处理。将解码处理完成后的字符序列保存到缓冲区B,此时,如果存在无法解码的字符,将该字符作为未解码字符存储到上述结构体中。上述字符可能与后续接收的报文包括的特征存在关联,因此保存上述字符,可以避免攻击特征的遗漏。

当解码完成后,获取上述结构体中的AC查找进度,在该AC查找进度的基础上,基于预先配置的攻击特征,对缓冲区B的字符序列进行AC查找,查找完成后,根据查找结果更新AC查找进度,确定是否存在攻击报文。

其中,如果更新后的AC查找进度中存在完整的攻击特征,则说明存在攻击报文,此时,可以针对攻击报文进行拦截。

另外,如果更新后的AC查找进度中存在的攻击特征不完整,则将更新后的AC查找进度存储到上述结构体中。由于攻击特征在编码后可能被多个报文承载,保存AC查找进度,可以在每次接收到携带部分攻击特征的报文时,更新AC查找进度,最终查找到完整的攻击特征。

除此以外,如果更新后的AC查找进度与更新之前的AC查找进度相同,则说明解码后的字符序列中不存在攻击特征的内容,上述报文不是攻击报文,在这种情况下,可以正常处理上述报文。

综上所述,本实施例通过保存解码后的未解码字符,以及多模式匹配进度,在接收到新的报文后,合并报文负载和未解码字符,再对合并后的字符序列进行解码和基于多模式匹配进度的多模式匹配;使得由多个报文承载的攻击特征能够被解码,并被检测出来,从而提升了从报文中查找到完整的攻击特征的概率,解决了网络中传输的报文经过编码,且攻击特征因报文分段而跨包时,IPS设备无法检测到报文的攻击特征的问题。

与本发明支持特征跨包的编码攻击检测方法的实施例相对应,本发明还提供了用于执行上述方法实施例的装置的实施例。

参见图4,为本发明支持特征跨包的编码攻击检测装置的一个实施例框图:

如图4所示,该支持特征跨包的编码攻击检测装置40包括:

判断单元410,用于在针对接收到的报文进行解码时,判断与所述报文所在会话对应的结构体中是否存在未解码字符;所述结构体用于存储对应于所述会话的未解码字符、编码方式以及多模式匹配进度。

合并单元420,用于当所述结构体存在未解码字符时,合并所述未解码字符和所述报文的报文负载。

解码单元430,用于根据所述结构体中的编码方式,对合并后的所述未解码字符和所述报文的报文负载进行解码处理。

查找单元440,用于基于预先配置的攻击特征,在所述多模式匹配进度的基础上,基于预设的多模式匹配算法对解码后的所述未解码字符和所述报文的报文负载进行多模式匹配,以确定所述报文是否为攻击报文。

在本例中,所述装置还包括:

读取单元450,用于当接收到所述报文时,读取所述报文的编码方式字段。

所述判断单元410,进一步用于基于读取到的所述编码方式字段中记录的信息判断所述报文是否经过编码。

在本例中,所述判断单元410,进一步用于:

在针对接收到的报文进行解码时,判断所述报文所在的会话是否存在对应的结构体。

如果所述报文所在的会话不存在所述结构体,为所述报文所在的会话创建所述结构体。

将所述报文的编码方式存储在所述结构体中。

在本例中,所述装置还包括:

存储单元460,用于当针对解码后的所述未解码字符和所述报文的报文负载进行多模式匹配后,未查找到完整的攻击特征时,在所述结构体中记录当前的多模式匹配进度,对所述结构体中记录的多模式匹配进度进行更新。

在本例中,所述装置还包括:

所述解码单元430,进一步用于当所述结构体中不存在未解码字符时,根据所述结构体中记录的编码方式,对所述报文的报文负载进行解码处理。

所述查找单元440,进一步用于基于预先配置的所述攻击特征,在所述多模式匹配进度的基础上,基于预设的多模式匹配算法对解码后的所述报文的报文负载进行多模式匹配。

所述存储单元460,进一步用于当针对解码后的所述报文的报文负载进行多模式匹配后,未查找到完整的攻击特征时,在所述结构体中记录当前的多模式匹配进度,对所述结构体中记录的多模式匹配进度进行更新。

在本例中,所述装置还包括:

所述存储单元460,进一步用于当解码处理后仍存在无法解码的字符时,将该字符作为所述未解码字符存储到所述结构体中。

在本例中,所述多模式匹配算法为AC算法。

本申请支持特征跨包的编码攻击检测装置的实施例可以应用在IPS设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在IPS设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请支持特征跨包的编码攻击检测装置所在IPS设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的IPS设备通常根据该支持特征跨包的编码攻击检测装置的实际功能,还可以包括其他硬件,对此不再赘述。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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