本发明涉及网络安全技术领域,尤其涉及一种网络攻击的识别方法及装置。
背景技术:
当WEB应用越来越为丰富的同时,WEB服务器以其强大的计算能力、处理性能及蕴含的较高价值逐渐成为主要攻击目标。SQL注入、网页篡改、网页挂马等安全事件,频繁发生。随着Web应用的丰富,各类攻击工具不断的普遍和强大,互联网上的安全隐患越来越多。随着客户核心业务系统对网络依赖程度的增加,Web应用攻击事件数量将会持续增长,损失严重程度也会剧增。企业等用户一般采用防火墙作为安全保障体系的第一道防线。但是,在现实中,他们存在这样那样的问题,由此产生了WAF(Web应用防护系统)。Web应用防护系统(Web Application Firewall,简称:WAF)代表了一类新兴的信息安全技术,用以解决诸如防火墙一类传统设备束手无策的Web应用安全问题。与传统防火墙不同,WAF工作在应用层,因此对Web应用防护具有先天的技术优势。WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护。
WAF会对HTTP的请求进行异常检测,拒绝不符合HTTP标准的请求。并且,它也可以只允许HTTP协议的部分选项通过,从而减少攻击的影响范围。正常情况下,应用收到的HTTP数据包应该符合RFC对HTTP的数据包格式规定的范畴内,除此之外,在具体的应用中对HTTP Header中的字段的数据类型以及参数长度都有明确的规定,如果超过了这个范畴,就会造成安全问题。因此,通过检测HTTP Header中字段的具体内容就可以判断该HTTP数据包是否存在异常,对于异常的数据包再通过匹配已知的网络攻击的特征就可以识别出该数据包是否为网络攻击并根据识别结果做进一步的防护操作。然而,目前的异常检测大多是利用网络攻击的特征字符串以关键字的形式进行匹配,而这种方式就需要针对不同的网络攻击编写不同的匹配策略,而对于网络攻击方式的不断翻新,就需要频繁的修改、增加匹配代码,过多的匹配策略在执行匹配操作时将增加匹配过程的耗时,而过于频繁的更新操作不仅给程序员带来大量的重复性工作(许多特征类似的网络攻击由于关键字不同而需要重新编写匹配代码),更加影响用户的使用体验。
技术实现要素:
有鉴于此,本发明提供一种网络攻击的识别方法及装置,通过加入对网络攻击特征的规则匹配以及匹配流程的改进提高异常检测的匹配效率,提升用户的使用体验。
依据本发明的一个方面,提出了一种网络攻击的识别方法,该方法包括:
设置第一匹配引擎和第二匹配引擎,所述第一匹配引擎和第二匹配引擎都用于检测流量数据是否存在网络攻击的异常特征,所述第一匹配引擎采用字符串多模式匹配算法,所述第二匹配引擎为HyperScan模式匹配引擎,所述流量数据包括请求数据和响应数据;
根据预设条件确定流量数据的匹配流程,所述匹配流程用于确定应用所述第一匹配引擎和所述第二匹配引擎的顺序;
根据所述匹配流程匹配流量数据,以识别所述流量数据是否为网络攻击,并对被识别为网络攻击的流量数据进行拦截。
依据本发明的另一个方面,提出了一种网络攻击的识别装置,该装置包括:
设置单元,用于设置第一匹配引擎和第二匹配引擎,所述第一匹配引擎和第二匹配引擎都用于检测流量数据是否存在网络攻击的异常特征,所述第一匹配引擎采用字符串多模式匹配算法,所述第二匹配引擎为HyperScan模式匹配引擎,所述流量数据包括请求数据和响应数据;
确定单元,用于根据预设条件确定流量数据的匹配流程,所述匹配流程用于确定应用所述第一匹配引擎和所述第二匹配引擎的顺序;
匹配单元,用于根据所述确定单元确定的匹配流程匹配流量数据,以识别所述流量数据是否为网络攻击;
拦截单元,用于对被所述匹配单元识别为网络攻击的流量数据进行拦截。
本发明所采用的一种网络攻击的识别方法及装置,以双引擎的方式对流量数据进行识别判断,而两个匹配引擎所采用的是不同的匹配算法,且所能够识别的网络攻击类型也各不相同,为了能够对存在异常的流量数据进行快速度的判断,本发明通过在不同的条件下使用不同的匹配流程来提高流量数据的检测效率,即根据预设的条件确定优先进行匹配的匹配引擎,以此优先确定数据请求是否为该匹配引擎所能够识别的网络攻击。同时,在本发明的匹配引擎中,对引擎的匹配算法是现有的匹配算法还加入规则匹配,从而提高了各个引擎的匹配精度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种网络攻击的识别方法流程图;
图2示出了本发明实施例提出的另一种网络攻击的识别方法流程图;
图3示出了本发明实施例提出的一种网络攻击的识别装置的组成框图;
图4示出了本发明实施例提出的另一种网络攻击的识别装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种网络攻击的识别方法,该方法用于对网络访问的流量数据进行识别判断并拦截,以防止恶意网络攻击,本方法主要针对Web应用攻击,如SQL注入,跨站点脚本,非法资源访问,远程文件包含等,通过不同预设条件实现网络攻击的快速识别,具体步骤如图1所示,包括:
101、设置第一匹配引擎和第二匹配引擎。
本发明实施例对网络攻击的识别判断是通过两个匹配引擎对网络访问的流量数据进行匹配。其中,该流量数据并不限定是请求数据或者是响应数据。而这两个匹配引擎采用了不同的算法记录网络攻击的异常特征,其中,第一匹配引擎采用字符串多模式匹配算法,常见的如AC算法、AC_BMH算法、Sunday算法等,通过该算法将一些具有字符串特征的网络攻击的流量数据生成对应的匹配规则设置在第一匹配引擎中,使得第一匹配引擎可以有效地对如SQL注入、cookie注入、跨站点脚本等网络攻击的流量数据进行识别。第二匹配引擎为HyperScan模式匹配引擎,该匹配引擎可匹配大量常规的针对数据块或数据流的表示方式,这对于需要高速扫描大量数据的安全应用具有更好的匹配效果,由于该匹配引擎所匹配的数据块或数据流,因此,第二匹配引擎可以针对不方便使用字符串设置特征规则的网络攻击进行快速的设别,如网络爬虫等。此外,在第一匹配引擎和第二匹配引擎都设置有各自的匹配规则,需要说明的是,这些匹配规则的生成方式可以是匹配引擎通过对已知网络攻击的数据进行计算自动生成的规则,也可以是根据特殊的需求由人工录入的规则,对此,本发明实施例不做具体限定。
在本步骤中,设置第一匹配引擎和第二匹配引擎时要判断两个匹配引擎中的匹配规则是否存在更新的需要,如果有更新则将新的匹配规则加载到对应的引擎的中,若没有则可以直接进行后续的判断操作。
102、根据预设条件确定流量数据的匹配流程。
由于存在两个匹配引擎,在进行匹配时就需要确定先使用哪个匹配引擎,而为了快速的对属于网络攻击的流量数据加以识别,最优的方式就是将网络攻击的流量数据在第一个使用的匹配引擎中就被识别出来,以此提高对大量流量数据的匹配效率。
但是,一个流量数据在匹配识别之前,是无法确定其是否为网络攻击的,因此,要确定先使用哪个匹配引擎进行优先匹配,在本发明实施例中式通过预设条件的触发来确定的,该预设条件可以是通过对历史数据的累积分析所设置的,例如,通过对网络攻击的历史数据进行大数据分析,确定一天中的某一个时间段内某种类型的网络攻击为高发时段,那么就可以设置在该时间段内将匹配该类型的网络攻击的匹配引擎设置为优先匹配的引擎。预设条件也可以通过人工设定具体的匹配流程,如当前需要对网络爬虫的请求进行拦截时,就可以将第二匹配引擎设置为优先匹配的引擎。由于预设条件的设置种类与方式众多,本发明实施例不可能逐一列举,因此,对于具体的预设条件的设置需要根据应用的实际场景进行确定,此处不做具体限定。
103、根据匹配流程匹配流量数据。
在确定具体的匹配流程后,根据该匹配流程使用匹配引擎对流量数据进行匹配,例如,匹配流程为先使用第一匹配引擎,后使用第二匹配引擎时,对流量数据的匹配就是将该流量数据输入第一匹配引擎,如果匹配命中,则将该请求进行拦截,而如果没有命中,则将该流量数据再输入第二匹配引擎中进行匹配,如果命中,就拦截该请求,若果没有命中则确认该流量数据为安全数据,输出该流量数据进行后续的处理操作。
上述本发明实施例提供的一种网络攻击的识别方法,是以双引擎的方式对流量数据进行识别判断,而两个匹配引擎所采用的是不同的匹配算法,且所能够识别的网络攻击类型也各不相同,为了能够对存在异常的流量数据进行快速的判断,本发明实施例通过在不同的条件下使用不同的匹配流程来提高流量数据的检测效率,即根据预设的条件确定优先进行匹配的匹配引擎,以此优先确定流量数据是否为该匹配引擎所能够识别的网络攻击。同时,在本发明实施例的匹配引擎中,对于匹配引擎的匹配算法是在现有的匹配算法中加入了新的规则匹配,从而提高了各个引擎的匹配精度。
进一步的,为了更加详细的说明上述提供的网络攻击的识别方法在实际应用中的具体实现,特别是对第一匹配引擎和第二匹配引擎的具体设置以及流量数据在不同匹配引擎中的匹配方式,为此,本发明实施例还提供了一种网络攻击的识别方法,如图2所示,该方法的步骤包括:
201、设置第一匹配引擎。
第一匹配引擎所使用的字符串多模式匹配算法,其中,Aho-Corasick算法是多模式匹配中的经典算法,也是目前在实际应用中较多一种,使用该算法所需的三个步骤为:1、建立模式的tire;2、给tire添加失败路径;3、根据AC自动机,搜索待处理的文本。针对具体的算法本发明实施例不再进行具体说明,而对于第一匹配引擎的具体设置,就是根据已知网络攻击的网络流量数据提取同类流量数据中的特征字符串,并将该字符串作为匹配引擎的匹配依据加载到第一匹配引擎中。这种方式虽然可以准确的判断出流量数据中是否存在对应的字符串,但是当网络攻击的流量数据是由多个特征字符串组合确定的时候,该方式就可能会将一些类似的网络请求判断为网络攻击,从而降低匹配的命中率,对此,本发明实施例还提供了一种匹配设置的实现方式,是在匹配引擎的匹配条件中增加匹配规则,将该匹配规则作为命中字符串后的进一步判断方式,从而增加匹配的准确率,具体的,可以是将所获取的多个字符串通过正则表达式转化为一个或多个的匹配规则,再将所得到的匹配规则与特征字符串利用AC算法加载到第一匹配引擎中,完成对第一匹配引擎的设置。
当存在新的特征字符串或匹配规则需要加载到第一匹配引擎中时,只需要将新的字符串或匹配规则进行加载、编译即可。
202、设置第二匹配引擎。
本发明实施例中的第二匹配引擎采用的是HyperScan模式匹配引擎,由于该匹配引擎是对数据块或数据流的匹配,因此,第二匹配引擎中的匹配规则是基于流量数据的整个消息内容的信息进行设置的,其中,流量数据的消息内容包括有消息头信息、消息体信息。具体的,第二匹配引擎中的匹配规则需要获取已知网络攻击的流量数据的消息内容,且不限定是消息头信息和/或消息体信息,将这些消息内容利用正则表达式生成匹配规则,该匹配规则区别于第一匹配引擎中的匹配规则的特征在于,第二匹配引擎的匹配规则是对流量数据的整个消息头信息和/或消息体信息进行的规则转化,而第一匹配引擎的匹配规则是对流量数据消息头信息和/或消息体信息中的具体特征字符串进行的规则转化,即第一匹配引擎在生成匹配规则时需要对流量数据的消息内容进行解析得到对应的字符串后,才能够转化得到对应的匹配规则,而第二匹配引擎则可根据消息内容直接转化生成对应的匹配规则。
与第一匹配引擎相同的是,当需要更新匹配规则时,只需要将新的匹配规则进行加载、编译即可,无需整体更新。如此,对于第一匹配引擎与第二匹配引擎都可以实现匹配规则的实时更新,从而提高对网络攻击流量数据的检出识别率与匹配准确性。
203、确定流量数据的匹配流程。
本步骤中所要确定的流量数据的匹配流程为两个,一种是将流量数据先输入第一匹配引擎,再将未被确定为网络攻击的数据流量数据第二匹配引擎进行匹配;另一种就是与第一种相反,先数据第二匹配引擎,在输入第一匹配引擎。
由于两个匹配引擎所针对匹配的网络攻击并不完全相同,因此,匹配流程的确定将直接影响到流量数据的检验效率,也就是说,如果流量数据中的符合第二匹配引擎的网络攻击数据较多,那么将第二匹配引擎放在前面进行优先匹配明显将提高整体流量数据的检测效率。因此,本步骤所确定的匹配流程主要是根据待匹配流量数据中可能出现的网络攻击的类型决定的,而对未知流量数据的类型判断则主要是通过预测决定的,具体的预测方式可以是通过对大数据的分析得到,也可以是根据实际使用的情况由人工确定。
204、使用第一匹配引擎匹配流量数据。
根据步骤203所确定的流量数据的匹配流程可知,对于非网络攻击的流量数据或者是第一匹配引擎或第二匹配引擎都无法识别的网络攻击流量数据,无论采用何种匹配流程都会被输入第一匹配引擎和第二匹配引擎中进行匹配,因此,本步骤和步骤205就分别对流量数据在各个匹配引擎中的匹配过程进行详细说明,由于流量数据中的请求数据与响应数据具有相同的消息结构,即都具有消息头信息和消息体信息,因此,以下说明以请求数据为例加以说明。
在本步骤中,将输入第一匹配引擎的请求数据进行解析,提取该请求数据的请求头,以HTTP请求为例,一个HTTP请求信息由3部分组成:请求方法URI协议/版本;请求头(Request Header);请求正文。其中,请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。将所提取的请求头进行解析,得到字符串格式的请求头,利用解析后的字符串数据与第一匹配引擎中的特征字符串进行匹配,具体的匹配算法如AC算法不在此处进行具体说明,当匹配未命中时,说明该请求头中的信息不存在第一匹配引擎所能够识别的网络攻击的特征字符串,此时将该请求数据输出给第二匹配引擎或后续的相应处理步骤,而当匹配命中时,则将该网络请求标记为网络攻击,进行拦截,而为了增加判断的准确性,当第一匹配引擎中存在相应的匹配规则时,还可以将匹配命中的字符串通过设置的结构体处理该字符串生成对应的正则表达式,也就是通过设定的结构体对命中字符串的位置进行确定,并根据该位置获取相关的字符串内容,得到符合该结构体的字符串数据,利用这些数据生成对应的正则表达式。简单的说就是根据命中字符串的位置再获取相应的特征字符串,再利用这些字符串计算得到对应的正则表达式。判断该正则表达式是否与第一匹配引擎中所记载的匹配规则相同,若相同,则将该请求数据确定为网络攻击并进行拦截,而若不同,则放弃拦截,将其输出进行后续的处理。
205、使用第二匹配引擎匹配流量数据。
相对于第一匹配引擎对流量数据的匹配方式,第二匹配引擎在获取到流量数据时,只需要获取流量数据的消息头信息和/或消息体信息,将该消息头信息和/或消息体信息转化为对应的正则表达式与第二匹配引擎中的匹配规则进行匹配,如果命中就确定该流量数据为网络攻击并进行拦截,而对于未命中的流量数据则将其输出,进行后续的处理操作或者输入第一匹配引擎进行继续判断。通过第二匹配引擎的判断方式可以看出,由于其不需要对消息头信息和/或消息体信息进行进一步的解析,因此,第二匹配引擎对流量数据的匹配速度更快,再结合第一匹配引擎匹配时,对网络流量数据的识别类型更广泛,识别效率也更高。
以上详细说明了本发明实施例中采用不同匹配引擎进行流量数据匹配的方式以及选择匹配流程的方式,作为实现上述方法的具体装置,本发明实施例还提供了一种网络攻击的识别装置,如图3所示,该装置包括:
设置单元31,用于设置第一匹配引擎和第二匹配引擎,所述第一匹配引擎和第二匹配引擎都用于检测流量数据是否存在网络攻击的异常特征,所述第一匹配引擎采用字符串多模式匹配算法,所述第二匹配引擎为HyperScan模式匹配引擎,所述流量数据包括请求数据和响应数据;
确定单元32,用于根据预设条件确定流量数据的匹配流程,所述匹配流程用于确定应用所述第一匹配引擎和所述第二匹配引擎的顺序;
匹配单元33,用于根据所述确定单元32确定的匹配流程匹配流量数据,以识别所述流量数据是否为网络攻击;
拦截单元34,用于对被所述匹配单元33识别为网络攻击的流量数据进行拦截。
进一步的,如图4所示,所述设置单元31包括:
第一获取模块311,用于获取具有异常特征的字符串;
第一加载模块312,用于将所述第一获取模块311获取的字符串加载到所述第一匹配引擎中。
进一步的,如图4所示,所述设置单元31还包括:
所述第一获取模块311还用于,获取具有异常特征的多个字符串;
转化模块313,用于利用正则表达式将所述第一获取模块311获取的多个字符串转化为至少一个匹配规则;
所述第一加载模块312还用于,将所述第一获取模块311获取的字符串以及所述转化模块313得到的匹配规则加载到所述第一匹配引擎中。
进一步的,如图4所示,所述设置单元31还包括:
第二获取模块314,用于获取已知网络攻击的流量数据的消息内容,所述消息内容包括消息头信息和/或消息体信息;
生成模块315,用于利用所述第二获取模块314获取的消息内容生成匹配规则;
第二加载模块316,用于将所述生成模块315生成的匹配规则加载到所述第二匹配引擎中。
进一步的,如图4所示,所述匹配单元33包括:
解析模块331,用于在利用所述第一匹配引擎匹配流量数据时,将所述流量数据的消息内容解析为字符串的格式进行匹配,所述消息内容包括消息头信息和/或消息体信息;
第一获取模块332,用于当所述解析模块331解析的字符串匹配成功时,根据所述字符串获取对应的正则表达式;
第一匹配模块333,用于判断所述第一获取模块332获取的正则表达式是否为所述第一匹配引擎中的匹配规则;
第一确定模块334,用于当所述第一匹配模块333匹配命中时,确定所述流量数据为网络攻击。
进一步的,如图4所示,所述匹配单元33包括:
第二获取模块335,用于在利用所述第二匹配引擎匹配流量数据时,获取所述流量数据的消息内容,所述消息内容包括消息头信息和/或消息体信息;
第二匹配模块336,用于判断所述第二获取模块335获取的消息内容是否为所述第二匹配引擎中的匹配规则;
第二确定模块337,用于当所述第二匹配模块336匹配命中时,确定所述流量数据为网络攻击。
进一步的,如图4所示,所述确定单元32包括:
第一确定模块321,用于确定需要识别网络攻击的流量数据的攻击类型;
第二确定模块322,用于根据所述第一确定模块321确定的攻击类型确定所述匹配流程。
综上所述,本发明实施例所提供的一种网络攻击的识别方法及装置,是以双引擎的方式对流量数据进行识别判断,而两个匹配引擎所采用的是不同的匹配算法,并且所能够识别的网络攻击类型也不尽相同,以此能够实现对更多种类的网络攻击进行识别、拦截,而为了能够对存在异常的流量数据进行快速的判断,本发明实施例通过在不同的条件下使用不同的匹配流程来提高流量数据的检测效率,即根据预设的条件确定优先进行匹配的匹配引擎,以此优先确定数据请求是否为该匹配引擎所能够识别的网络攻击。同时,在本发明实施例的匹配引擎中,对引擎的匹配算法是在现有的匹配算法中加入了新的规则匹配,从而提高了各个引擎的匹配精度。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述云端服务器及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述云端服务器实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的云端服务器、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的云端服务器解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何云端服务器或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内连接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的云端服务器的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明实施例还公开了以下技术方案:
A1、一种网络攻击的识别方法,所述方法包括:
设置第一匹配引擎和第二匹配引擎,所述第一匹配引擎和第二匹配引擎都用于检测流量数据是否存在网络攻击的异常特征,所述第一匹配引擎采用字符串多模式匹配算法,所述第二匹配引擎为HyperScan模式匹配引擎,所述流量数据包括请求数据和响应数据;
根据预设条件确定流量数据的匹配流程,所述匹配流程用于确定应用所述第一匹配引擎和所述第二匹配引擎的顺序;
根据所述匹配流程匹配流量数据,以识别所述流量数据是否为网络攻击,并对被识别为网络攻击的流量数据进行拦截。
A2、根据A1所述的方法,所述设置第一匹配引擎包括:
获取具有异常特征的字符串;
将所述字符串加载到所述第一匹配引擎中。
A3、根据A2所述的方法,所述设置第一匹配引擎包括:
获取具有异常特征的多个字符串;
利用正则表达式将所述多个字符串转化为至少一个匹配规则;
将所述字符串以及所述匹配规则加载到所述第一匹配引擎中。
A4、根据A1所述的方法,所述设置第二匹配引擎包括:
获取已知网络攻击的流量数据的消息内容,所述消息内容包括消息头信息和/或消息体信息;
利用所述消息内容生成匹配规则,加载到所述第二匹配引擎中。
A5、根据A1-A4中任一项所述的方法,根据所述匹配流程匹配流量数据包括:
利用所述第一匹配引擎匹配流量数据时,将所述流量数据的消息内容解析为字符串的格式进行匹配,所述消息内容包括消息头信息和/或消息体信息;
当字符串匹配成功时,根据所述字符串获取对应的正则表达式;
判断所述字符串对应的正则表达式是否为所述第一匹配引擎中的匹配规则,若是,则确定所述流量数据为网络攻击。
A6、根据A1-A4中任一项所述的方法,根据所述匹配流程匹配流量数据包括:
利用所述第二匹配引擎匹配流量数据时,获取所述流量数据的消息内容,所述消息内容包括消息头信息和/或消息体信息;
判断所述消息内容是否为所述第二匹配引擎中的匹配规则,若是,则确定所述流量数据为网络攻击。
A7、根据A1所述的方法,所述根据预设条件确定流量数据的匹配流程包括:
确定需要识别网络攻击的流量数据的攻击类型;
根据所述攻击类型确定所述匹配流程。
B8、一种网络攻击的识别装置,所述装置包括:
设置单元,用于设置第一匹配引擎和第二匹配引擎,所述第一匹配引擎和第二匹配引擎都用于检测流量数据是否存在网络攻击的异常特征,所述第一匹配引擎采用字符串多模式匹配算法,所述第二匹配引擎为HyperScan模式匹配引擎,所述流量数据包括请求数据和响应数据;
确定单元,用于根据预设条件确定流量数据的匹配流程,所述匹配流程用于确定应用所述第一匹配引擎和所述第二匹配引擎的顺序;
匹配单元,用于根据所述确定单元确定的匹配流程匹配流量数据,以识别所述流量数据是否为网络攻击;
拦截单元,用于对被所述匹配单元识别为网络攻击的流量数据进行拦截。
B9、根据B8所述的装置,所述设置单元包括:
第一获取模块,用于获取具有异常特征的字符串;
第一加载模块,用于将所述第一获取模块获取的字符串加载到所述第一匹配引擎中。
B10、根据B9所述的装置,所述设置单元还包括:
所述第一获取模块还用于,获取具有异常特征的多个字符串;
转化模块,用于利用正则表达式将所述第一获取模块获取的多个字符串转化为至少一个匹配规则;
所述第一加载模块还用于,将所述第一获取模块获取的字符串以及所述转化模块得到的匹配规则加载到所述第一匹配引擎中。
B11、根据B8所述的装置,所述设置单元还包括:
第二获取模块,用于获取已知网络攻击的流量数据的消息内容,所述消息内容包括消息头信息和/或消息体信息;
生成模块,用于利用所述第二获取模块获取的消息内容生成匹配规则;
第二加载模块,用于将所述生成模块生成的匹配规则加载到所述第二匹配引擎中。
B12、根据B8-B11中任一项所述的装置,所述匹配单元包括:
解析模块,用于在利用所述第一匹配引擎匹配流量数据时,将所述流量数据的消息内容解析为字符串的格式进行匹配,所述消息内容包括消息头信息和/或消息体信息;
第一获取模块,用于当所述解析模块解析的字符串匹配成功时,根据所述字符串获取对应的正则表达式;
第一匹配模块,用于判断所述第一获取模块获取的正则表达式是否为所述第一匹配引擎中的匹配规则;
第一确定模块,用于当所述第一匹配模块匹配命中时,确定所述流量数据为网络攻击。
B13、根据B8-B11中任一项所述的装置,所述匹配单元包括:
第二获取模块,用于在利用所述第二匹配引擎匹配流量数据时,获取所述流量数据的消息内容,所述消息内容包括消息头信息和/或消息体信息;
第二匹配模块,用于判断所述第二获取模块获取的消息内容是否为所述第二匹配引擎中的匹配规则;
第二确定模块,用于当所述第二匹配模块匹配命中时,确定所述流量数据为网络攻击。
B14、根据B8所述的装置,所述确定单元包括:
第一确定模块,用于确定需要识别网络攻击的流量数据的攻击类型;
第二确定模块,用于根据所述第一确定模块确定的攻击类型确定所述匹配流程。