发明内容
本发明实施方式提供了网络攻击的检测方法及装置、终端设备和计算机存储介质,用以解决现有技术中所存在的上述技术问题。
第一方面,本发明实施方式提供了一种网络攻击的检测方法。
具体地,所述方法包括:
从请求数据中解析出目标字段;
对所述目标字段的字段值进行深度解码,以得到所述目标字段的结果解码值;
根据所述结果解码值对所述请求数据进行攻击检测。
由于在本发明中,对请求数据中目标字段的字段值进行深度解码,因此,能够有效应对多层编码的情形,提高解码能力,进而提升了网络攻击检测的准确性。
结合第一方面,在本发明的一些实现方式中,对所述目标字段的字段值进行深度解码包括:
对所述目标字段的字段值进行解码操作,以得到所述目标字段的中间解码值;
判断所述中间解码值是否需要进行进一步解码操作;
若需要进行进一步解码操作,则对所述中间解码值进行解码操作,以得到所述目标字段的另一中间解码值,并返回执行下述处理:判断所述中间解码值是否需要进行进一步解码操作。
结合第一方面,在本发明的一些实现方式中,对所述目标字段的字段值进行深度解码还包括:
若不需要进行进一步解码操作,则确定所述中间解码值为所述结果解码值。
结合第一方面,在本发明的一些实现方式中,判断所述中间解码值是否需要进行进一步解码操作包括:
根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数;
根据更新后的多层编码可能性参数和设定阈值之间的比较结果,判断所述中间解码值是否需要进行进一步解码操作。
由于在本发明中,在对中间解码值进行解码操作前,先对当前多层编码的可能性进行评估,因此能够及时终止可能性较低的深度解码,从而提高解码效率。
结合第一方面,在本发明的一些实现方式中,根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数包括:
根据编码树确定所述编码方式的权重值;
根据所述权重值更新所述多层编码可能性参数。
结合第一方面,在本发明的一些实现方式中,所述方法还包括:
基于网络流量数据和web(网络)应用的处理机制构建所述编码树。
结合第一方面,在本发明的一些实现方式中,对所述目标字段的字段值进行解码操作包括:
将所述字段值与设定的编码特征进行匹配;
对所述字段值执行与匹配成功的编码特征对应的解码操作。
由于在本发明中,将字段值与设定的编码特征进行匹配,因此能够实现对编码方式进行智能化分析,从而保证良好的解码效果。
结合第一方面,在本发明的一些实现方式中,从请求数据中解析出目标字段包括:
通过自动机从请求数据中解析出目标字段。
由于在本发明中,通过自动机对请求数据进行解析,因此,本发明能够高效率地执行请求数据的解析过程。
结合第一方面,在本发明的一些实现方式中,通过自动机从请求数据中解析出目标字段包括:
通过第一自动机直接从所述请求数据中解析出所述目标字段。
结合第一方面,在本发明的一些实现方式中,通过自动机从请求数据中解析出目标字段包括:
通过第一自动机从请求数据中解析出载体字段;
通过第二自动机从所述载体字段的字段值中解析出所述目标字段。
结合第一方面,在本发明的一些实现方式中,所述方法还包括:
基于与所述请求数据对应的通信标准构建所述第一自动机。
结合第一方面,在本发明的一些实现方式中,所述方法还包括:
基于与所述载体字段对应的通信标准构建所述第二自动机。
结合第一方面,在本发明的一些实现方式中,基于与所述载体字段对应的通信标准构建所述第二自动机包括:
从内容类型(content-type)的维度,确定一个或多个请求体通信标准;
对应于所述一个或多个请求体通信标准,构建一个或多个所述第二自动机。
结合第一方面,在本发明的一些实现方式中,通过第二自动机从所述载体字段的字段值中解析出目标字段包括:
确定所述请求体字段的疑似内容类型;
根据所述疑似内容类型选取第二自动机;
通过选取出的第二自动机从所述请求体字段的字段值中解析出目标字段。
由于本发明对请求体可能的内容类型进行分析,并执行与分析出的内容类型对应的解析处理,因此能够有效防止攻击者利用协议绕过攻击检测。
结合第一方面,在本发明的一些实现方式中,确定所述请求体字段的疑似内容类型包括:
将所述请求体字段的字段值与设定的媒体格式特征进行匹配;
根据匹配成功的媒体格式特征,确定所述请求体字段的疑似内容类型。
第二方面,本发明实施方式提供了一种网络攻击的检测装置。
具体地,所述装置包括:
解析模块,用于从请求数据中解析出目标字段;
深度解码模块,用于对所述目标字段的字段值进行深度解码,以得到所述目标字段的结果解码值;
检测模块,用于根据所述结果解码值对所述请求数据进行攻击检测。
由于在本发明中,对请求数据中目标字段的字段值进行深度解码,因此,能够有效应对多层编码的情形,提高解码能力,进而提升了网络攻击检测的准确性。
结合第二方面,在本发明的一些实现方式中,所述深度解码模块包括:
第一解码单元,用于对所述目标字段的字段值进行解码操作,以得到所述目标字段的中间解码值;
判断单元,用于判断所述中间解码值是否需要进行进一步解码操作;
第二解码单元,用于在需要进行进一步解码操作的情形下,对所述中间解码值进行解码操作,以得到所述目标字段的另一中间解码值。
结合第二方面,在本发明的一些实现方式中,所述深度解码模块还包括:
结果解码值确定单元,用于在不需要进行进一步解码操作的情形下,确定所述中间解码值为所述结果解码值。
结合第二方面,在本发明的一些实现方式中,所述判断单元包括:
更新组件,用于根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数;
判断组件,用于根据更新后的多层编码可能性参数和设定阈值之间的比较结果,判断所述中间解码值是否需要进行进一步解码操作。
由于在本发明中,在对中间解码值进行解码操作前,先对当前多层编码的可能性进行评估,因此能够及时终止可能性较低的深度解码,从而提高解码效率。
结合第二方面,在本发明的一些实现方式中,所述更新组件包括:
权重确定子组件,用于根据编码树确定所述编码方式的权重值;
更新子组件,用于根据所述权重值更新所述多层编码可能性参数。
结合第二方面,在本发明的一些实现方式中,所述装置还包括:
构建模块,用于基于网络流量数据和web应用的处理机制构建所述编码树。
结合第二方面,在本发明的一些实现方式中,所述第一解码单元包括:
匹配组件,用于将所述字段值与设定的编码特征进行匹配;
解码组件,用于对所述字段值执行与匹配成功的编码特征对应的解码操作。
由于在本发明中,将字段值与设定的编码特征进行匹配,因此能够实现对编码方式进行智能化分析,从而保证良好的解码效果。
结合第二方面,在本发明的一些实现方式中,所述解析模块用于通过以下方式实现从请求数据中解析出目标字段:通过自动机从请求数据中解析出目标字段。
由于在本发明中,通过自动机对请求数据进行解析,因此,本发明能够高效率地执行请求数据的解析过程。
结合第二方面,在本发明的一些实现方式中,所述解析模块用于通过以下方式实现通过自动机从请求数据中解析出目标字段:通过第一自动机直接从所述请求数据中解析出所述目标字段。
结合第二方面,在本发明的一些实现方式中,所述解析模块包括:
载体字段解析单元,用于通过第一自动机从请求数据中解析出载体字段;
目标字段解析单元,用于通过第二自动机从所述载体字段的字段值中解析出所述目标字段。
结合第二方面,在本发明的一些实现方式中,所述装置还包括:
第一自动机构建模块,用于基于与所述请求数据对应的通信标准构建所述第一自动机。
结合第二方面,在本发明的一些实现方式中,所述装置还包括:
第二自动机构建模块,用于基于与所述载体字段对应的通信标准构建所述第二自动机。
结合第二方面,在本发明的一些实现方式中,所述第二自动机构建模块包括:
通信标准确定单元,用于从内容类型的维度,确定一个或多个请求体通信标准;
构建单元,用于对应于所述一个或多个请求体通信标准,构建一个或多个所述第二自动机。
结合第二方面,在本发明的一些实现方式中,所述目标字段解析单元包括:
内容类型确定组件,用于确定所述请求体字段的疑似内容类型;
选取组件,用于根据所述疑似内容类型选取第二自动机;
解析组件,用于通过选取出的第二自动机从所述请求体字段的字段值中解析出目标字段。
由于本发明对请求体可能的内容类型进行分析,并执行与分析出的内容类型对应的解析处理,因此能够有效防止攻击者利用协议绕过攻击检测。
结合第二方面,在本发明的一些实现方式中,所述内容类型确定组件包括:
匹配子组件,用于将所述请求体字段的字段值与设定的媒体格式特征进行匹配;
确定子组件,用于根据匹配成功的媒体格式特征,确定所述请求体字段的疑似内容类型。
第三方面,本发明实施方式提供了一种终端设备。
所述终端设备包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现上述任一项网络攻击的检测方法。
由于在本发明中,对请求数据中目标字段的字段值进行深度解码,因此,能够有效应对多层编码的情形,提高解码能力,进而提升了网络攻击检测的准确性。
第四方面,本发明实施方式提供了一种计算机存储介质。
所述计算机存储介质用于存储一条或多条计算机指令,其中,当所述一条或多条计算机指令被执行时能够实现上述任一项网络攻击的检测方法。
由于在本发明中,对请求数据中目标字段的字段值进行深度解码,因此,能够有效应对多层编码的情形,提高解码能力,进而提升了网络攻击检测的准确性。
本发明的这些方面或其他方面在以下具体实施方式的描述中会更加简明易懂。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,在本发明的各个具体实施方式中,众所周知的操作过程、程序模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。
并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。
此外,本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。本领域的技术人员还可以容易理解,本文所述和附图所示的各实施方式中的程序模块、单元或步骤可以按多种不同配置进行组合和设计。
对于未在本说明书中进行具体说明的技术术语,除非另有特定说明,都应以本领域最宽泛的意思进行解释。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的标号如101、102等,仅仅是用于区分开各个不同的操作,标号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明的一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施方式,都属于本发明保护的范围。
【方法实施方式1】
图1是根据本发明方法实施方式1的网络攻击的检测方法的流程图。参见图1,在本实施方式中,所述方法包括:
S1:从请求数据中解析出目标字段。
S2:对所述目标字段的字段值进行深度解码,以得到所述目标字段的结果解码值。
S3:根据所述结果解码值对所述请求数据进行攻击检测。
字段值是指请求数据中某一字段的取值。例如,“GET”为请求数据中方法字段的字段值。
结果解码值是指对请求数据中某一字段值进行深度解码后最终得到的解码结果。
由于在本发明中,对请求数据中目标字段的字段值进行深度解码,因此,能够有效应对多层编码的情形,提高解码能力,进而提升了网络攻击检测的准确性。
【方法实施方式2】
本实施方式所提供的方法包括方法实施方式1中的全部内容,在此不再赘述。如图2所示,在本实施方式中,通过以下方式实现处理S2:
S21:对所述目标字段的字段值进行解码操作,以得到所述目标字段的中间解码值。
S22:判断所述中间解码值是否需要进行进一步解码操作。若是,则执行S23,若否,则执行S24。
S23:对所述中间解码值进行解码操作,以得到所述目标字段的另一中间解码值,并返回执行S22。
S24:确定所述中间解码值为所述结果解码值。
所述中间解码值是指在深度解码的过程中得到的解码结果。
【方法实施方式3】
本实施方式所提供的方法包括方法实施方式2中的全部内容,在此不再赘述。如图3所示,在本实施方式中,通过以下方式实现处理S22:
S221:根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数。
S222:根据更新后的多层编码可能性参数和设定阈值之间的比较结果,判断所述中间解码值是否需要进行进一步解码操作。
由于在本发明中,在对中间解码值进行解码操作前,先对当前多层编码的可能性进行评估,因此能够及时终止可能性较低的深度解码,从而提高解码效率。
【方法实施方式4】
本实施方式所提供的方法包括了方法实施方式3中的全部内容,在此不再赘述。如图4所示,在本实施方式中,通过以下方式实现处理S221:
S2211:根据编码树确定所述编码方式的权重值。
S2212:根据所述权重值更新所述多层编码可能性参数。
其中,所述编码树中各结点为相应父结点下可能的编码方式,结点记载了相应编码方式的权重值。所述编码树可以基于网络流量数据和web应用的处理机制构建而成。利用编码树可以得到各种多层编码的组合方式的可能性评估值,通过将该评估值与设定的阈值进行比较,可以判断出是否还需要进一步进行解码操作。
【方法实施方式5】
本实施方式所提供的方法包括了方法实施方式2至方法实施方式4中任一项的全部内容,在此不再赘述。如图5所示,在本实施方式中,通过以下方式实现处理S21:
S211:将所述字段值与设定的编码特征进行匹配。
S212:对所述字段值执行与匹配成功的编码特征对应的解码操作。
所述编码特征例如为某一编码方式中特有的编码符号,例如“%”。
若某一解码操作失败,则结束相应的解码路径,但仍继续尝试其他可能的解码方式。
由于在本发明中,将字段值与设定的编码特征进行匹配,因此能够实现对编码方式进行智能化分析,从而保证良好的解码效果。
当然,本领域的技术人员也可以基于类似的方式对中间解码值进行解码操作,具体而言,将中间解码值与设定的编码特征进行匹配;对中间解码值执行与匹配成功的编码特征对应的解码操作。
【方法实施方式6】
本实施方式所提供的方法包括了方法实施方式1至方法实施方式5中任一项的全部内容,在此不再赘述。在本实施方式中,通过下述方式实现处理S1:
通过自动机从请求数据中解析出目标字段。
该自动机在线性的时间内对整个请求数据完成扫描,并分析出请求数据的各组成部分以用于后续的检测过程。
下面以有限状态自动机为例,对本实施方式中自动机的运行过程进行具体说明。
有限状态自动机由状态结点和转移弧构成,每条转移弧都是从一个状态结点指向另一个状态结点的有向边,转移弧上的标记表示自动机在前一个状态如果接收到该标记作为输入则会转移到后一个状态。如图6所示,自动机开始处于初态,即状态1,当接收到输入“G”时,便会转移到状态2,当从初态开始接收到输入串“GET”时,便会到达状态4,并在从状态3转移到状态4的过程中完成请求方法的记录,即“GET”。
由于在本发明中,通过自动机对请求数据进行解析,因此,本发明能够高效率地执行请求数据的解析过程。
【方法实施方式7】
本实施方式所提供的方法包括了方法实施方式6中的全部内容,在此不再赘述。其中,所述目标字段的直接载体可以是请求数据也可以是请求数据中的字段值。
若目标字段的直接载体是请求数据,则通过以下方式实现处理S1:
通过第一自动机直接从所述请求数据中解析出所述目标字段。
相应地,在本实施方式所提供的方法中,基于与请求数据对应的通信标准构建所述第一自动机。
如图7所示,若目标字段的直接载体是请求数据中的字段值,则通过以下方式实现处理S1:
S11:通过所述第一自动机从请求数据中解析出载体字段(含有目标字段的请求数据字段)。
S12:通过第二自动机从所述载体字段的字段值中解析出所述目标字段。
相应地,在本实施方式所提供的方法中,基于与所述载体字段对应的通信标准构建所述第二自动机。
所述载体字段例如可以包括请求体字段,相应地,基于与所述载体字段对应的通信标准构建所述第二自动机包括:
(1)从内容类型的维度,确定一个或多个请求体通信标准;
(2)对应于所述一个或多个请求体通信标准,构建一个或多个所述第二自动机。
【方法实施方式8】
本实施方式所提供的方法包括方法实施方式7中的全部内容,在此不再赘述。如图8所示,在本实施方式中,S12包括以下处理:
S121:确定请求体字段的疑似内容类型(请求体字段可能的内容类型)。
S122:根据所述疑似内容类型选取第二自动机。
S123:通过选取出的第二自动机从所述请求体字段的字段值中解析出目标字段。
由于本发明对请求体可能的内容类型进行分析,并执行与分析出的内容类型对应的解析处理,因此能够有效防止攻击者利用协议绕过攻击检测。
【方法实施方式9】
本实施方式所提供的方法包括了方法实施方式8中的全部内容,在此不再赘述。其中,如图9所示,在本实施方式中,通过以下方式实现处理S121:
S1211:将所述请求体字段的字段值与设定的媒体格式特征进行匹配。
S1212:根据匹配成功的媒体格式特征,确定所述请求体字段的疑似内容类型。
媒体格式特征是指互联网媒体格式(例如,JSON(JavaScript Object Notation,一种轻量级的数据交换格式)格式、XML(Extensible Markup Language,可扩展标记语言)格式、表单格式等)的结构特征。
【方法实施方式10】
下面以对HTTP(HyperText Transfer Protocol,超文本传输协议)请求进行检测为例,对本实施方式提供的网络攻击的检测方法进行具体描述。在本实施方式中,所述方法包括:
步骤1:从HTTP请求中解析出目标字段。
具体地,可以采用方法实施方式6至方法实施方式9中任一项所记载的方式实现步骤1,在此不再赘述。
步骤2:对所述目标字段的字段值进行深度解码,以得到所述目标字段的结果解码值。
具体地,可以采用方法实施方式2至方法实施方式5中任一项所记载的方式实现步骤2,在此不再赘述。
步骤3:根据所述结果解码值对该HTTP请求进行风险预估。若经所述风险预估确定该HTTP请求存在网络攻击的风险,则执行步骤4,若经所述风险预估确定该HTTP请求不存在网络攻击的风险,则结束当前流程。
由于在本发明中,在进行攻击检测前先对请求数据进行风险预估,因此能够及时终止对正常的请求数据进行网络攻击检测,从而提高了网络攻击的检测效率。
步骤4:对该HTTP请求进行攻击检测。
针对步骤3而言,具体可以通过以下方式实现:利用自动机识别所述结果解码值是否存在网络攻击特征,若是,则确定该HTTP请求存在网络攻击的风险,若否,则确定该HTTP请求不存在网络攻击的风险。若该自动机识别出结果解码值存在网络攻击特征,则记录下与存在的网络攻击特征对应的网络攻击类型,以便于在步骤4中,针对自动机记录下的网络攻击类型有针对性的执行攻击检测。
此外,该自动机例如为基于各种网络攻击特征而构造的确定性的有限状态自动机,由此可以实现仅需一次扫描即可分析出所有可能存在的网络攻击类型。
并且,在本实施方式中,还可以根据自定义的流量限制规则执行流量整形处理。其中,该流量限制规则例如记载有:不允许出现的请求头、对请求头个数的限制规则、或者对请求头长度的限制规则。产品的用户可以根据自身web应用的需求,设置定制化的流量限制规则。
【产品实施方式1】
图10是根据本发明产品实施方式1的网络攻击的检测装置的结构示意图。参见图10,在本实施方式中,网络攻击的检测装置10包括:解析模块11、深度解码模块12和检测模块13,具体地:
解析模块11用于从请求数据中解析出目标字段。
深度解码模块12用于对解析模块11解析出的目标字段的字段值进行深度解码,以得到所述目标字段的结果解码值。
检测模块13用于根据深度解码模块12得到的结果解码值对所述请求数据进行攻击检测。
由于在本发明中,对请求数据中目标字段的字段值进行深度解码,因此,能够有效应对多层编码的情形,提高解码能力,进而提升了网络攻击检测的准确性。
【产品实施方式2】
本实施方式所提供的网络攻击的检测装置包括产品实施方式1中的全部内容,在此不再赘述。如图11所示,在本实施方式中,深度解码模块12包括:第一解码单元121、判断单元122和第二解码单元123,具体地:
第一解码单元121用于对所述目标字段的字段值进行解码操作,以得到所述目标字段的中间解码值。
判断单元122用于判断第一解码单元121或第二解码单元123得到的中间解码值是否需要进行进一步解码操作。
第二解码单元123用于在判断单元122判定需要进行进一步解码操作的情形下,对所述中间解码值进行解码操作,以得到所述目标字段的另一中间解码值。
【产品实施方式3】
本实施方式所提供的网络攻击的检测装置包括产品实施方式2中的全部内容,在此不再赘述。在本实施方式中,深度解码模块12还包括:结果解码值确定单元,具体地:
该结果解码值确定单元用于在判断单元122判定不需要进行进一步解码操作的情形下,确定所述中间解码值为所述结果解码值。
【产品实施方式4】
本实施方式所提供的网络攻击的检测装置包括产品实施方式2或产品实施方式3中的全部内容,在此不再赘述。如图12所示,在本实施方式中,判断单元122包括:更新组件1221和判断组件1222,具体地:
更新组件1221用于根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数。
判断组件1222用于根据经更新组件1221更新后的多层编码可能性参数和设定阈值之间的比较结果,判断所述中间解码值是否需要进行进一步解码操作。
由于在本发明中,在对中间解码值进行解码操作前,先对当前多层编码的可能性进行评估,因此能够及时终止可能性较低的深度解码,从而提高解码效率。
【产品实施方式5】
本实施方式所提供的网络攻击的检测装置包括产品实施方式4中的全部内容,在此不再赘述。如图13所示,在本实施方式中,更新组件1221包括:权重确定子组件12211和更新子组件12212,具体地:
权重确定子组件12211用于根据编码树确定所述编码方式的权重值。
更新子组件12212用于根据权重确定子组件12211确定出的权重值更新所述多层编码可能性参数。
【产品实施方式6】
本实施方式所提供的网络攻击的检测装置包括产品实施方式5中的全部内容,在此不再赘述。在本实施方式中,网络攻击的检测装置10还包括:构建模块,具体地:
该构建模块用于基于网络流量数据和web应用的处理机制构建所述编码树。
【产品实施方式7】
本实施方式所提供的网络攻击的检测装置包括产品实施方式2至产品实施方式6中任一项的全部内容,在此不再赘述。如图14所示,在本实施方式中,第一解码单元121包括:匹配组件1211和解码组件1212,具体地:
匹配组件1211用于将所述字段值与设定的编码特征进行匹配。
解码组件1212用于对所述字段值执行与匹配组件1211匹配成功的编码特征对应的解码操作。
由于在本发明中,将字段值与设定的编码特征进行匹配,因此能够实现对编码方式进行智能化分析,从而保证良好的解码效果。
【产品实施方式8】
本实施方式所提供的网络攻击的检测装置包括产品实施方式1至产品实施方式7中任一项的全部内容,在此不再赘述。在本实施方式中,解析模块11具体通过以下方式实现从请求数据中解析出目标字段:通过自动机从请求数据中解析出目标字段。
由于在本发明中,通过自动机对请求数据进行解析,因此,本发明能够高效率地执行请求数据的解析过程。
【产品实施方式9】
图15是根据本发明产品实施方式9的网络攻击的检测装置的结构示意图。在本实施方式中,所述目标字段的直接载体可以是请求数据也可以是请求数据中的字段值。相应地,如图15所示,网络攻击的检测装置10’包括:解析模块11’、解析模块12’、深度解码模块13’和检测模块14’,具体地:
解析模块11’用于在目标字段的直接载体为请求数据的情形下,通过第一自动机直接从所述请求数据中解析出所述目标字段。
解析模块12’用于在目标字段的直接载体为请求数据中的字段值的情形下,通过第一自动机和第二自动机从请求数据中解析出所述目标字段。具体而言,如图16所示,解析模块12’包括:载体字段解析单元121’和目标字段解析单元122’,具体地:
载体字段解析单元121’用于通过所述第一自动机从请求数据中解析出载体字段。
目标字段解析单元122’用于通过第二自动机从载体字段解析单元121’解析出的载体字段的字段值中解析出所述目标字段。
深度解码模块13’和检测模块14’分别同上述深度解码模块12和检测模块13,在此不再赘述。
【产品实施方式10】
本实施方式所提供的网络攻击的检测装置包括产品实施方式9中的全部内容,在此不再赘述。如图17所示,在本实施方式中,网络攻击的检测装置10’还包括:第一自动机构建模块15’和第二自动机构建模块16’,具体地:
第一自动机构建模块15’用于基于与所述请求数据对应的通信标准构建所述第一自动机。
第二自动机构建模块16’用于基于与所述载体字段对应的通信标准构建所述第二自动机。
【产品实施方式11】
本实施方式所提供的网络攻击的检测装置包括产品实施方式10中的全部内容,在此不再赘述。所述载体字段例如可以包括请求体字段,相应地,如图18所示,第二自动机构建模块16’包括:通信标准确定单元161’和构建单元162’,具体地:
通信标准确定单元161’用于从内容类型的维度,确定一个或多个请求体通信标准。
构建单元162’用于对应于确定单元161’确定出的一个或多个请求体通信标准,构建一个或多个所述第二自动机。
【产品实施方式12】
本实施方式所提供的网络攻击的检测装置包括产品实施方式11中的全部内容,在此不再赘述。如图19所示,目标字段解析单元122’包括:内容类型确定组件1221’、选取组件1222’和解析组件1223’,具体地:
内容类型确定组件1221’用于确定所述请求体字段的疑似内容类型。
选取组件1222’用于根据内容类型确定组件1221’确定出的疑似内容类型选取第二自动机。
解析组件1223’用于通过选取组件1222’选取出的第二自动机从所述请求体字段的字段值中解析出目标字段。
由于本发明对请求体可能的内容类型进行分析,并执行与分析出的内容类型对应的解析处理,因此能够有效防止攻击者利用协议绕过攻击检测。
【产品实施方式13】
本实施方式所提供的网络攻击的检测装置包括产品实施方式12中的全部内容,在此不再赘述。如图20所示,在本实施方式中,内容类型确定组件1221’包括:匹配子组件12211’和确定子组件12212’,具体地:
匹配子组件12211’用于将所述请求体字段的字段值与设定的媒体格式特征进行匹配。
确定子组件12212’用于根据匹配子组件12211’匹配成功的媒体格式特征,确定所述请求体字段的疑似内容类型。
本发明的实施方式还提供了一种终端设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现如方法实施方式1至方法实施方式10中任意一项所述的方法。
此外,本发明的实施方式还提供一种计算机存储介质,所述计算机存储介质用于存储一条或多条计算机指令,其中,当所述一条或多条计算机指令被执行时能够实现如方法实施方式1至方法实施方式10中任意一项所述的方法。
本领域的技术人员可以清楚地了解到本发明可全部通过软件实现,也可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,所述计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。
本文中所使用的“软件”等词均指一般意义上的任意类型的计算机编码或者计算机可执行指令集,可以运行所述编码或者指令集来使计算机或其他处理器程序化以执行如上所述的本发明的技术方案的各个方面。此外,需要说明的是,根据实施方式的一个方面,在执行时实施本发明的技术方案的方法的一个或多个计算机程序不必须要在一台计算机或处理器上,而是可以分布于多个计算机或者处理器中的模块中,以执行本发明的技术方案的各个方面。
计算机可执行指令可以有许多形式,如程序模块,可以由一台或多台计算机或是其他设备执行。一般地,程序模块包括例程、程序、对象、组件以及数据结构等等,执行特定的任务或是实施特定的抽象数据类型。特别地,在各种实施方式中,程序模块进行的操作可以根据各个不同实施方式的需要进行结合或者拆分。
并且,本发明的技术方案可以体现为一种方法,并且已经提供了所述方法的至少一个示例。可以通过任何一种合适的顺序执行动作,所述动作表现为所述方法中的一部分。因此,实施方式可以构造成可以按照与所示出的执行顺序不同的顺序执行动作,其中,可以包括同时地执行一些动作(尽管在示出的实施方式中,这些动作是连续的)。
本文所给出的和使用的定义,应当对照字典、通过引用而并入的文档中的定义、和/或其通常意思进行理解。
在权利要求书中以及上述的说明书中,所有的过度短语,例如“包括”、“具有”、“包含”、“承载”、“具有”、“涉及”、“主要由…组成”以及类似词语是应理解为是开放式的,即,包含但不限于。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
以上具体描述了本发明的各种不同的实施方式,下面以另一种形式描述本发明各实施方式的技术方案的各个方面或特征,并且其不限于下述一系列段落,为了清楚起见,可给这些段落中的一些或所有段落指定字母数字。这些段落中的每一段可以以任何合适的方式与一个或多个其他段落的内容组合。在不限定合适的组合中的一些的实例的条件下,下文中的一些段落特别引用其他段落并且进一步限定其他段落。
A1、一种网络攻击的检测方法,所述方法包括:
从请求数据中解析出目标字段;
对所述目标字段的字段值进行深度解码,以得到所述目标字段的结果解码值;
根据所述结果解码值对所述请求数据进行攻击检测。
A2、如A1所述的方法中,对所述目标字段的字段值进行深度解码包括:
对所述目标字段的字段值进行解码操作,以得到所述目标字段的中间解码值;
判断所述中间解码值是否需要进行进一步解码操作;
若需要进行进一步解码操作,则对所述中间解码值进行解码操作,以得到所述目标字段的另一中间解码值,并返回执行下述处理:判断所述中间解码值是否需要进行进一步解码操作。
A3、如A2所述的方法中,对所述目标字段的字段值进行深度解码还包括:
若不需要进行进一步解码操作,则确定所述中间解码值为所述结果解码值。
A4、如A2所述的方法中,判断所述中间解码值是否需要进行进一步解码操作包括:
根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数;
根据更新后的多层编码可能性参数和设定阈值之间的比较结果,判断所述中间解码值是否需要进行进一步解码操作。
A5、如A4所述的方法中,根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数包括:
根据编码树确定所述编码方式的权重值;
根据所述权重值更新所述多层编码可能性参数。
A6、如A5所述的方法中,所述方法还包括:
基于网络流量数据和网络web应用的处理机制构建所述编码树。
A7、如A2所述的方法中,对所述目标字段的字段值进行解码操作包括:
将所述字段值与设定的编码特征进行匹配;
对所述字段值执行与匹配成功的编码特征对应的解码操作。
A8、如A1至A7中任一项所述的方法中,从请求数据中解析出目标字段包括:
通过自动机从请求数据中解析出目标字段。
A9、如A8所述的方法中,通过自动机从请求数据中解析出目标字段包括:
通过第一自动机直接从所述请求数据中解析出所述目标字段。
A10、如A8所述的方法中,通过自动机从请求数据中解析出目标字段包括:
通过第一自动机从请求数据中解析出载体字段;
通过第二自动机从所述载体字段的字段值中解析出所述目标字段。
A11、如A9或A10所述的方法中,所述方法还包括:
基于与所述请求数据对应的通信标准构建所述第一自动机。
A12、如A10所述的方法中,所述方法还包括:
基于与所述载体字段对应的通信标准构建所述第二自动机。
A13、如A12所述的方法中,基于与所述载体字段对应的通信标准构建所述第二自动机包括:
从内容类型的维度,确定一个或多个请求体通信标准;
对应于所述一个或多个请求体通信标准,构建一个或多个所述第二自动机。
A14、如A13所述的方法中,通过第二自动机从所述载体字段的字段值中解析出目标字段包括:
确定所述请求体字段的疑似内容类型;
根据所述疑似内容类型选取第二自动机;
通过选取出的第二自动机从所述请求体字段的字段值中解析出目标字段。
A15、如A14所述的方法中,确定所述请求体字段的疑似内容类型包括:
将所述请求体字段的字段值与设定的媒体格式特征进行匹配;
根据匹配成功的媒体格式特征,确定所述请求体字段的疑似内容类型。
B16、一种网络攻击的检测装置,所述装置包括:
解析模块,用于从请求数据中解析出目标字段;
深度解码模块,用于对所述目标字段的字段值进行深度解码,以得到所述目标字段的结果解码值;
检测模块,用于根据所述结果解码值对所述请求数据进行攻击检测。
B17、如B16所述的装置中,所述深度解码模块包括:
第一解码单元,用于对所述目标字段的字段值进行解码操作,以得到所述目标字段的中间解码值;
判断单元,用于判断所述中间解码值是否需要进行进一步解码操作;
第二解码单元,用于在需要进行进一步解码操作的情形下,对所述中间解码值进行解码操作,以得到所述目标字段的另一中间解码值。
B18、如B17所述的装置中,所述深度解码模块还包括:
结果解码值确定单元,用于在不需要进行进一步解码操作的情形下,确定所述中间解码值为所述结果解码值。
B19、如B17所述的装置中,所述判断单元包括:
更新组件,用于根据与所述中间解码值对应的编码方式,更新所述目标字段的多层编码可能性参数;
判断组件,用于根据更新后的多层编码可能性参数和设定阈值之间的比较结果,判断所述中间解码值是否需要进行进一步解码操作。
B20、如B19所述的装置中,所述更新组件包括:
权重确定子组件,用于根据编码树确定所述编码方式的权重值;
更新子组件,用于根据所述权重值更新所述多层编码可能性参数。
B21、如B20所述的装置中,所述装置还包括:
构建模块,用于基于网络流量数据和web应用的处理机制构建所述编码树。
B22、如B17所述的装置中,所述第一解码单元包括:
匹配组件,用于将所述字段值与设定的编码特征进行匹配;
解码组件,用于对所述字段值执行与匹配成功的编码特征对应的解码操作。
B23、如B16至B22中任一项所述的装置中,所述解析模块用于通过以下方式实现从请求数据中解析出目标字段:通过自动机从请求数据中解析出目标字段。
B24、如B23所述的装置中,所述解析模块用于通过以下方式实现通过自动机从请求数据中解析出目标字段:通过第一自动机直接从所述请求数据中解析出所述目标字段。
B25、如B23所述的装置中,所述解析模块包括:
载体字段解析单元,用于通过第一自动机从请求数据中解析出载体字段;
目标字段解析单元,用于通过第二自动机从所述载体字段的字段值中解析出所述目标字段。
B26、如B24或B25所述的装置中,所述装置还包括:
第一自动机构建模块,用于基于与所述请求数据对应的通信标准构建所述第一自动机。
B27、如B25所述的装置中,所述装置还包括:
第二自动机构建模块,用于基于与所述载体字段对应的通信标准构建所述第二自动机。
B28、如B27所述的装置中,所述第二自动机构建模块包括:
通信标准确定单元,用于从内容类型的维度,确定一个或多个请求体通信标准;
构建单元,用于对应于所述一个或多个请求体通信标准,构建一个或多个所述第二自动机。
B29、如B28所述的装置中,所述目标字段解析单元包括:
内容类型确定组件,用于确定所述请求体字段的疑似内容类型;
选取组件,用于根据所述疑似内容类型选取第二自动机;
解析组件,用于通过选取出的第二自动机从所述请求体字段的字段值中解析出目标字段。
B30、如B29所述的装置中,所述内容类型确定组件包括:
匹配子组件,用于将所述请求体字段的字段值与设定的媒体格式特征进行匹配;
确定子组件,用于根据匹配成功的媒体格式特征,确定所述请求体字段的疑似内容类型。
C31、一种终端设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现如A1至A15中任一项所述的方法。
D32、一种计算机存储介质,用于存储一条或多条计算机指令,其中,当所述一条或多条计算机指令被执行时能够实现如A1至A15中任一项所述的方法。