CN114615074A - 网络报文解码方法及网络攻击检测方法、装置和存储介质 - Google Patents
网络报文解码方法及网络攻击检测方法、装置和存储介质 Download PDFInfo
- Publication number
- CN114615074A CN114615074A CN202210306040.3A CN202210306040A CN114615074A CN 114615074 A CN114615074 A CN 114615074A CN 202210306040 A CN202210306040 A CN 202210306040A CN 114615074 A CN114615074 A CN 114615074A
- Authority
- CN
- China
- Prior art keywords
- decoded
- character stream
- coding
- decoding
- decoding method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本申请提供一种网络报文解码方法及网络攻击检测方法、装置和存储介质,所述方法包括:对待解码网络报文进行协议解析,确定待解码字符流;对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征;基于所述编码特征确定目标解码方法;根据所述目标解码方法对所述待解码字符流进行解码。通过上述方式,本申请实施例通过编码特征检测可以准确确定出待解码网络报文的解码方法,无需进行多次解码尝试,降低进行报文解码时的性能消耗,提高解码效率。
Description
技术领域
本申请涉及网络通信领域,具体而言,涉及一种网络报文解码方法及网络攻击检测方法、装置和存储介质。
背景技术
在WEB应用的通信过程中,为了避免网络报文的传输内容和传输协议的保留字符冲突,保证传输正常进行,通常会对网络报文的传输内容进行编码或转义(下面统称为编码)。
接收侧接收到编码后的网络报文后,需要对网络报文的传输内容按照编码时采用的编码方法对应的解码方法进行解码,还原网络报文的传输内容,进而进行攻击检测等相关后续操作。
然而,由于不同类型的web应用、不同的站点实现、以及同一站点的不同业务,所采取的编码方式、编码的顺序存在差异,现有的网络报文解码方法通常会预设多种不同解码方法组合,通过不断尝试各种解码方法组合的方式确定出正确的解码方法组合。然而,在多种解码方法组合的场景中,在采用一种解码方法组合进行解码时,发现此种解码方法组合无法对网络报文进行正确解码,则需要重新采用另一种解码方法组合进行解码,从而导致解码时需要消耗较多的处理资源,解码效率低下。
发明内容
本申请实施例的目的在于提供一种网络报文解码方法及网络攻击检测方法、装置和存储介质,用以降低进行报文解码时的性能消耗,提高解码效率。
第一方面,本发明提供一种网络报文解码方法,所述方法包括:对待解码网络报文进行协议解析,确定待解码字符流;对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征;基于所述编码特征确定目标解码方法;根据所述目标解码方法对所述待解码字符流进行解码。
在本申请实施例中,通过对待解码字符流进行编码特征检测,确定待解码字符流对应的编码特征,基于编码特征确定目标解码方法,进而根据目标解码方法对待解码字符流进行解码。相较于现有的采用预设的多种解码组合进行不断尝试的网络报文解码方法,本申请实施例通过编码特征检测可以准确确定出待解码网络报文的解码方法,无需进行多次解码尝试,降低进行报文解码时的性能消耗,提高解码效率。
在可选的实施方式中,所述对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征,包括:将所述待解码字符流与预设的多种编码方式的特征字符进行匹配;其中,一种特征字符对应一种编码方式;根据匹配结果确定所述待解码字符流的编码特征。
在本申请实施例中,通过确定预设的多种编码方式的特征字符,将待解码字符流与预设的多种编码方式的特征字符进行匹配,根据匹配结果确定待解码字符流的编码特征,实现了对待解码字符流的编码特征分析,从而确定出待解码字符流采用的编码方式,后续可以根据该编码方式确定解码方法。使得本申请实施例提供的网络报文解码方法可以适用于多种不同的编码方式,提高本申请实施例提供的网络报文解码方法的适用性。
在可选的实施方式中,所述对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征,包括:将所述待解码字符流与预设的多种编码方式的字符集进行匹配;其中,一种字符集对应一种编码方式;根据匹配结果确定所述待解码字符流的编码特征。
在本申请实施例中,通过确定预设的多种编码方式的字符集,将待解码字符流与预设的多种编码方式的字符集进行匹配,根据匹配结果确定待解码字符流的编码特征,实现了对待解码字符流的编码特征分析,从而确定出待解码字符流采用的编码方式,后续可以根据该编码方式确定解码方法。使得本申请实施例提供的网络报文解码方法可以适用于多种不同的编码方式,提高本申请实施例提供的网络报文解码方法的适用性。
在可选的实施方式中,所述基于所述编码特征确定目标解码方法,包括:若所述待解码字符流对应一个编码特征,将该编码特征对应的解码方法作为所述目标解码方法;若所述待解码字符流对应多个编码特征,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
在本申请实施例中,当待解码字符流对应多个编码特征时,通过根据预设的先验解码顺序确定目标解码方法,考虑了多种编码方式的编码特性之间的相互影响关系,从而确定出合适的目标解码方法,提高网络报文解码的准确性。
在可选的实施方式中,所述待解码网络报文为HTTP请求报文,所述基于所述编码特征确定目标解码方法,包括:判断所述待解码字符流对应的编码特征的数量;若所述待解码字符流对应一个编码特征,则将该编码特征对应的解码方法作为所述目标解码方法;若所述待解码字符流对应多个编码特征,判断是否对所述待解码字符流进行过解码;若未对所述待解码字符流进行过解码,根据所述待解码字符流对应的HTTP上下文确定所述目标解码方法;若已对所述待解码字符流进行过解码,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
在本申请实施例中,由于根据HTTP上下文中的信息确定目标解码方法相比于根据预设的先验解码顺序确定目标解码方法更便捷,因此,在待解码字符流为首次进行解码时,通过根据HTTP上下文确定HTTP请求报文最后一次进行编码的编码方式,进而根据HTTP请求报文最后一次进行编码的编码方式确定目标解码方法,可以提高确定目标解码方法的效率。
在可选的实施方式中,在所述根据所述目标解码方法对所述待解码字符流进行解码之后,所述方法还包括:S1:对解码后的待解码字符流进行编码特征检测;S2:若所述解码后的待解码字符流对应至少一种编码特征,基于所述解码后的待解码字符流对应的编码特征确定新的目标解码方法;S3:根据所述新的目标解码方法对所述解码后的待解码字符流进行解码;S4:重复S1-S3,直至解码后的待解码字符流不对应任何一种编码特征。
在本申请实施例中,通过上述方式,对解码后的待解码字符流再次进行编码特征检测,确定出新的目标解码方法,并根据新的目标解码方法再次进行解码,如此循环,直至解码后的待解码字符流不再存在编码特征,从而使得网络报文能完全解码,提高解码的准确性。
第二方面,本发明提供一种网络攻击检测方法,所述方法包括:获取解码后的网络报文,其中,所述解码后的网络报文根据前述实施方式任一项所述的方法确定;对所述解码后的网络报文进行网络攻击检测。
在本申请实施例中,通过采用前述网络报文解码方法,提高网络报文解码的速度,降低对攻击检测设备的性能消耗,使得设备可以同时处理更多的网络报文,从而提高检测网络攻击的速度。
第三方面,本发明提供一种网络报文解码装置,所述方法包括:协议解析模块,用于对待解码网络报文进行协议解析,确定待解码字符流;特征检测模块,用于对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征;确定模块,用于基于所述编码特征确定目标解码方法;解码模块,用于根据所述目标解码方法对所述待解码字符流进行解码。
在可选的实施方式中,所述特征检测模块具体用于将所述待解码字符流与预设的多种编码方式的特征字符进行匹配;其中,一种特征字符对应一种编码方式;根据匹配结果确定所述待解码字符流的编码特征。
在可选的实施方式中,所述特征检测模块具体用于将所述待解码字符流与预设的多种编码方式的字符集进行匹配;其中,一种字符集对应一种编码方式;根据匹配结果确定所述待解码字符流的编码特征。
在可选的实施方式中,所述确定模块具体用于若所述待解码字符流对应一个编码特征,将该编码特征对应的解码方法作为所述目标解码方法;若所述待解码字符流对应多个编码特征,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
在可选的实施方式中,所述待解码网络报文为HTTP请求报文,所述确定模块具体用于判断所述待解码字符流对应的编码特征的数量;若所述待解码字符流对应一个编码特征,则将该编码特征对应的解码方法作为所述目标解码方法;若所述待解码字符流对应多个编码特征,判断是否对所述待解码字符流进行过解码;若未对所述待解码字符流进行过解码,根据所述待解码字符流对应的HTTP上下文确定所述目标解码方法;若已对所述待解码字符流进行过解码,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
在可选的实施方式中,所述特征检测模块还用于S1:对解码后的待解码字符流进行编码特征检测;所述确定模块还用于S2:若所述解码后的待解码字符流对应至少一种编码特征,基于所述解码后的待解码字符流对应的编码特征确定新的目标解码方法;所述解码模块还用于S3:根据所述新的目标解码方法对所述解码后的待解码字符流进行解码;S4:重复S1-S3,直至解码后的待解码字符流不对应任何一种编码特征。
第四方面,本发明提供一种网络攻击检测装置,所述装置包括:获取模块,用于获取解码后的网络报文,其中,所述解码后的网络报文根据前述实施方式所述的网络报文解码装置确定;网络攻击检测模块,用于对所述解码后的网络报文进行网络攻击检测。
第五方面,本发明提供一种存储介质,所述存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如前述实施方式中任一项所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的网络报文解码方法的流程图;
图2为本申请实施例提供的网络攻击检测方法的流程图;
图3为本申请实施例提供的一种网络报文解码装置的结构框图;
图4为本申请实施例提供的一种网络攻击检测装置的结构框图;
图5为本申请实施例的电子设备500的结构示意图。
图标:300-网络报文解码装置;301-协议解析模块;302-特征检测模块;303-确定模块;304-解码模块;400-网络攻击检测装置;401-获取模块;402-网络攻击检测模块;500-电子设备;501-处理器;502-通信接口;503-存储器;504-总线。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了缩短对网络报文进行解码的时间,提高解码效率,本申请实施例中提供了一种网络报文解码方法。可以参见图1所示,图1为本申请实施例提供的网络报文解码方法的流程图,该网络报文解码方法包括:
S101:对待解码网络报文进行协议解析,确定待解码字符流。
S102:对待解码字符流进行编码特征检测,确定待解码字符流对应的编码特征。
S103:基于编码特征确定目标解码方法。
S104:根据目标解码方法对待解码字符流进行解码。
需要说明的是,本申请实施例提供的网络报文解码方法可以应用于WEB应用防火墙、或其他网络攻击检测设备中,用于缩短对网络报文进行解码的时间,提高解码效率。本申请对此不做具体限定,本申请实施例提供的网络报文解码方法也可以应用于任何需要对网络报文进行解码的设备。
下面对上述方法进行详细介绍。
S101:对待解码网络报文进行协议解析,确定待解码字符流。
本申请实施例中,由于网络报文在传输过程采用对应的传输协议进行传输,需要对网络报文进行协议解析,将网络报文中的各个部分提取出来,从而确定出网络报文中待解码的字符流。
对于采用不同的传输协议传输的网络报文,需要采用对应的解析方法进行解析。例如,若采用HTTP协议进行传输,则采用HTTP解析方法对网络报文进行解析;若采用WebSocket协议进行传输,则采用WebSocket解析方法对网络报文进行解析。
需要说明的是,待解析网络报文的类型可以为HTTP请求报文、XML报文等,本申请对此不作具体限定。相应的,对待解码网络报文采用何种协议进行协议解析可以根据待解码网络报文在传输时采用的传输协议进行确定,本申请对协议解析的类型不做具体限定。
可以理解,具体的协议解析过程请参考现有技术,在此不过多赘述。
为方便理解本方案,以下以待解析网络报文为HTTP请求报文为例,对上述内容进行介绍。
当待解析网络报文为HTTP请求报文时,对该待解析网络报文采用HTTP解析方法进行协议解析,从HTTP请求报文中提取出URL参数、HOST头、UA头等。其中,URL参数即为待解码字符流,将该URL参数作为待解码字符流。
S102:对待解码字符流进行编码特征检测,确定待解码字符流对应的编码特征。
本申请实施例中,对待解码网络报文进行协议解析,确定待解码字符流后,为了确定该待解码字符流采用的是何种编码方式进行编码,可对待解码字符流进行编码特征检测,确定出该待解码字符流对应的编码特征。
作为一种可选的实施方式,上述S102可以包括如下内容:
将待解码字符流与预设的多种编码方式的特征字符进行匹配;其中,一种特征字符对应一种编码方式;
根据匹配结果确定待解码字符流的编码特征。
本申请实施例中,应理解,在实际应用过程中,每种编码方式对传输内容进行编码后,编码后的传输内容通常具有特定的编码特征。例如,在对传输内容进行URL编码后,会生成“%[HEX]{4}”形式的编码特征;在对传输内容进行Unicode编码后,会生成“\u[HEX]{4,8}”形式的编码特征;在对传输内容进行HTML实体编码后,会生成“&#x[HEX]{4};”形式的编码特征。其中,[HEX]表示十六进制数字,“{}”内的内容表示十六进制出现的次数;{2}表示出现两次,{4,8}表示出现4到8次。
因此,可以将“%”作为URL编码的特征字符,将“\”作为Unicode编码的特征字符,将“&”作为HTML实体编码的特征字符。对待解码字符流进行特征字符探测,将待解码字符流与预设的多种编码方式的特征字符进行匹配,若待解码字符流中出现了“%”,则说明待解码字符流采用了URL编码,该待解码字符流包括URL编码的编码特征。同理,若待解码字符流中出现了“\”,则说明待解码字符流采用了Unicode编码,该待解码字符流包括Unicode编码的编码特征。若待解码字符流中出现了“&”,则说明待解码字符流采用了HTML实体编码,该待解码字符流包括HTML实体编码的编码特征。
本申请实施例逐个检查待解码字符流中是否包含预设的多种编码方式的特征字符,每有一个预设的编码方式的特征字符,则设置一个标记,该标记表征待解码字符流对应该特征字符的编码特征。对待解码字符流的所有字符进行检查后,根据标记即可确定出该待解码字符流的编码特征。
此外,还可以采用确定状态机的方式,对待解码字符流中是否包含预设的多种编码方式的特征字符进行检测。可以理解,确定状态机进行检测可以参考现有技术,在此不过多赘述。
可以理解,上述申请实施例中的编码方式仅为本申请实施例中的具体示例,在实际应用过程中,可以包括更多其他编码方式,本申请对此不作具体限定。
通过确定预设的多种编码方式的特征字符,将待解码字符流与预设的多种编码方式的特征字符进行匹配,根据匹配结果确定待解码字符流的编码特征,实现了对待解码字符流的编码特征分析,从而确定出待解码字符流采用的编码方式,后续可以根据该编码方式确定解码方法。使得本申请实施例提供的网络报文解码方法分析出多种不同的编码方式,提高本申请实施例提供的网络报文解码方法的适用性。
此外,由于并不是所有的编码方式都可以确定出特定的特征字符,有些编码方式没有明显的特征字符,对于此类编码方式,上述S102还可以包括以下内容:
将待解码字符流与预设的多种编码方式的字符集进行匹配;其中,一种字符集对应一种编码方式;
根据匹配结果确定待解码字符流的编码特征。
本申请实施例中,对于没有明显特征字符的编码方式,对该类型编码方式进行分析,确定出该类型编码方式对应的字符集,该字符集为编码方式对数据进行编码时采取的集合,若待解码字符流中某一段字符均在该字符集中,则认为待解码字符流采用了该种编码方式(即该待解码字符流包括该种编码方式的编码特征)。
举例来说,对于BASE64这种编码方式来说,其并不具有明显的特征字符。根据对BASE64编码方式的原理进行分析可知,该编码方式由大写字符A-Z,小写字符a-z,数字0-9以及“+”和“/”这64个可打印ASCII字符将任意字节序列数据编码成ASCII字符串。将大写字符A-Z,小写字符a-z,数字0-9以及“+”和“/”这64个字符作为BASE64这种编码方式的字符集。
确定BASE64对应的字符集后,将待解码字符流与该字符集进行匹配,若待解码字符流中某一段字符均在该字符集中,则认为待解码字符流采用了BASE64(即该待解码字符流包括BASE64的编码特征)。
此外,在将待解码字符流与该字符集进行匹配之后,还可以判断待解码字符流中某一段字符中是否存在不属于该字符集的字符。若存在不属于该字符集的字符,则认为该待解码字符流没有采用了BASE64(即该待解码字符流不包括BASE64的编码特征);若不存在属于该字符集的字符,则认为该待解码字符流采用了BASE64(即该待解码字符流包括BASE64的编码特征)。
需要说明的是,在一些具体场景中,可以根据预设的多种编码方式的特征字符确定待解码字符流的编码特征;在另一些具体场景中,可以根据预设的多种编码方式的字符集确定待解码字符流的编码特征;在另一些具体场景中,还可以同时根据预设的多种编码方式的特征字符和预设的多种编码方式的字符集确定待解码字符流的编码特征。本申请对此不做具体限定。
通过确定预设的多种编码方式的字符集,将待解码字符流与预设的多种编码方式的字符集进行匹配,根据匹配结果确定待解码字符流的编码特征,实现了对待解码字符流的编码特征分析,从而确定出待解码字符流采用的编码方式,后续可以根据该编码方式确定解码方法。使得本申请实施例提供的网络报文解码方法可以适用于多种不同的编码方式,提高本申请实施例提供的网络报文解码方法的适用性。
S103:基于编码特征确定目标解码方法。
本申请实施例中,在确定待解码字符流的编码特征后,根据编码特征确定目标解码方法。编码特征表示该待解码字符流采用的是该种编码特征对应的编码方式进行编码,因此,在解码时,需要采用该种编码方式对应的解码方法对待解码字符流进行解码。
作为一种可选的实施方式,上述S103可以包括如下内容:
若待解码字符流对应一个编码特征,将该编码特征对应的解码方法作为目标解码方法;
若待解码字符流对应多个编码特征,根据预设的先验解码顺序从多个编码特征对应的多个解码方法中确定目标解码方法。
本申请实施方式中,由于待解码字符流可能会对应一种或多种编码特征,当待解码字符流仅对应一个编码特征时,则直接将该编码特征对应的解码方法作为目标解码方法。当待解码字符流仅对应多个编码特征时,需要根据预设的先验解码顺序从多个编码特征对应的多个解码方法中确定目标解码方法。
对网络报文进行多种编码方式进行编码时,由于编码特性之间存在相互影响的关系,为了保证编码后的网络报文能正常解码,采用多种编码方式进行编码时,需要遵循先后顺序。相应的,在进行解码时,也需要对应编码时的先后顺序进行解码,才能还原出编码前的内容。
以下以2个例子介绍预设的先验解码顺序。
例子1:
“+”这一字符即可以作为BASE64编码的一部分进行解码,也可以URL编码的字符进行解码,但在URL解码后“+”被解码为空格,后续就会导致BASE64解码异常。当待解码字符流中同时存在URL编码方式对应的编码特征和BASE64编码方式对应的编码特征时,需要优先采用BASE64编码特征对应的解码方法进行解码再采用URL编码特征对应的解码方法。因此,在上述情况中,将BASE64编码特征对应的解码方法作为目标解码方法。
例子2:
HTML编码方式中包含“&”符号,而“&”是URL的保留字符(即在采用URL编码方式进行编码时必须对该保留字符进行编码),所以,URL编码后不应该存在“&”。因此,当待解码字符流中同时存在HTML实体编码方式对应的编码特征和URL编码方式对应的编码特征时,需要优先采用HTML实体编码特征对应的解码方法进行解码再采用URL编码特征对应的解码方法。因此,在上述情况中,将HTML实体编码特征对应的解码方法作为目标解码方法。
可以理解,除了上述两个例子之外,其他编码方式之间也会存在相应的先后顺序,本申请实施例中将各种编码方式之间的先后关系作为预设的先验解码顺序,当待解码字符流对应多个编码特征,根据预设的先验解码顺序确定目标解码方法。
通过上述方式,当待解码字符流对应多个编码特征时,通过根据预设的先验解码顺序确定目标解码方法,考虑了多种编码方式的编码特性之间的相互影响关系,从而确定出合适的目标解码方法,提高网络报文解码的准确性。
作为另一种可选的实施方式,上述S103可以包括如下内容:
当待解码网络报文为HTTP请求报文时,判断待解码字符流对应的编码特征的数量;
若待解码字符流对应一个编码特征,则将该编码特征对应的解码方法作为目标解码方法;
若待解码字符流对应多个编码特征,判断是否对待解码字符流进行过解码;
若未对待解码字符流进行过解码,根据待解码字符流对应的HTTP上下文确定目标解码方法;
若已对待解码字符流进行过解码,根据预设的先验解码顺序从多个编码特征对应的多个解码方法中确定目标解码方法。
本申请实施方式中,若待解码字符流对应一个编码特征,确定目标解码方法的方式与前述实施方式中的确定目标解码方法的方式一致,在此不做赘述。
若待解码字符流对应多个编码特征,在HTTP请求报文中,可以根据HTTP上下文分析出该HTTP请求报文最后一次进行编码的编码方式。因此,若待解码字符流为首次进行解码,则可以根据HTTP请求报文分析出该HTTP请求报文最后一次进行编码的编码方式,进而将该编码方式对应的解码方法确定为目标解码方法。
若已对所述待解码字符流进行过解码,则确定目标解码方法的方式与前述实施方式中的确定目标解码方法的方式一致,在此不做赘述。
以下结合对根据HTTP上下文确定HTTP请求报文最后一次进行编码的编码方式进行介绍。
若HTTP上下文中的content-type:为“application/x-www-form-urlencoded”时,则表示该HTTP请求报文中最后进行的编码方式为URL编码方式。
由于Refer头中存放的信息为链接,在传输时需要对链接信息进行URL编码。因此,若HTTP上下文包括Refer头,则表示该HTTP请求报文中最后进行的编码方式为URL编码方式。
由于根据HTTP上下文中的信息确定目标解码方法相比于根据预设的先验解码顺序确定目标解码方法更便捷,因此,在待解码字符流为首次进行解码时,通过根据HTTP上下文确定HTTP请求报文最后一次进行编码的编码方式,进而根据HTTP请求报文最后一次进行编码的编码方式确定目标解码方法,从而提高确定目标解码方法的效率。
S104:根据目标解码方法对待解码字符流进行解码。
本申请实施例中,在确定目标解码方法后,根据该目标解码方法对待解码字符流进行解码,具体的解码过程请参考现有技术,在此不过多赘述。
在上述S104之后,本申请实施例提供的网络报文解码方法还包括:
S1:对解码后的待解码字符流进行编码特征检测;
S2:若所述解码后的待解码字符流对应至少一种编码特征,基于所述解码后的待解码字符流对应的编码特征确定新的目标解码方法;
S3:根据所述新的目标解码方法对所述解码后的待解码字符流进行解码;
S4:重复S1-S3,直至解码后的待解码字符流不对应任何一种编码特征。
在实际应用中,在对待解码字符流进行一次解码后,可能存在以下两种情况。第一种,若S102中包括多种编码特征,则需要进行多次解码,才能得到原始内容。第二种,在首次对待解码字符流进行编码特征检测时,只检测出一种编码特征,但是解码后的待解码字符流可能又存在新的编码特征。因此,在对待解码字符流进行一次解码后,需要对解码后的解码字符流进行编码特征检测,若解码后的待解码字符流对应至少一种编码特征,对解码后的待解码字符流进行编码特征检测,确定解码后的待解码字符流对应的编码特征。基于解码后的待解码字符流对应的编码特征确定新的目标解码方法,进而根据新的目标解码方法对解码后的待解码字符流进行解码。为了保证解码完全,可以重复上述步骤,直至解码后的待解码字符流不对应任何一种编码特征,则认为解码完全,完成对网络报文的解码。
需要说明的是,上述S1-S3与前述S102-S104的实施方式类似,为使说明书简洁,在此不做赘述。
通过上述方式,对解码后的待解码字符流再次进行编码特征检测,确定出新的目标解码方法,并根据新的目标解码方法再次进行解码,如此循环,直至解码后的待解码字符流不再存在编码特征,从而使得网络报文能完全解码,提高解码的准确性。
需要说明的是,为了进一步提高解码效率,在进行编码特征检测时,可以在进行协议解析或是解码过程时,实时进行编码特征检测。也就是说,在对待解码网络报文进行协议解析时,解析出一段字符流,则实时对该段字符流进行编码特征检测。在利用目标解码方法对待解码字符流进行解码时,解码出一段字符流,则实时对该段字符流再次进行编码特征检测。
综上所述,本申请实施例提供一种网络报文解码方法,通过对待解码字符流进行编码特征检测,确定待解码字符流对应的编码特征;基于编码特征确定目标解码方法;根据目标解码方法对待解码字符流进行解码。相较于现有的采用预设的多种解码组合进行不断尝试的网络报文解码方法,本申请实施例通过编码特征检测可以准确确定出待解码网络报文的解码方法,无需进行多次解码尝试,降低进行报文解码时的性能消耗,提高解码效率。
此外,本申请还提出一种网络攻击检测方法。请参阅图2,图2为本申请实施例提供的一种网络攻击检测方法的流程图,具体地,该网络攻击检测方法可以包括如下步骤:
S201:获取解码后的网络报文;
S202:对解码后的网络报文进行网络攻击检测。
本申请实施例中,根据前述网络报文解码方法对网络报文进行解码,在解码后,对解码后的网络报文进行网路攻击检测。由于大多数网络攻击检测需要对网络报文的原始内容(即编码前的内容)进行检测的准确性较高。因此,采用前述网络报文解码方法对网络报文进行解码,可以提高解码速度,进而提高检测网络攻击的速度。具体的网络攻击检测过程请参考现有技术,在此不过多赘述。
进一步地,在S202之前,本申请实施例提供的网络攻击检测方法还可以包括:
对解码后的网络报文进行内容合法性检查;
若解码后的网络报文满足内容合法性,则执行S202;
若解码后的网络报文不满足内容合法性,则回退解码过程,得到解码前的网络报文,以使后续根据解码前的网络报文进行网路攻击检测。
本申请实施例中,在某些网络攻击检测场景中,解码后的内容可能不满足网络攻击检测的需求,因此,需要对解码后的网络报文进行内容合法性检查,若解码后的网络报文满足内容合法性,则执行S202。若解码后的网络报文内容不满足内容合法性,则将解码后的网络报文回退为解码前的网络报文。
具体地,内容合法性可以根据实际情况进行设计。在一些实施方式中,内容合法性可以为解码后的网络报文中ASCII字符占比高于预设阈值。在另一些实施方式中,内容合法性可以为解码后的网络报文中UTF-8字符占比高于预设阈值。可以理解,本申请对内容合法性的具体形式不做限定,本领域技术人员可以网络报文的实际情况灵活设置。
通过设置内容合法性检查,满足不同网络攻击检测场景的需求,提高网络攻击检测方法的适用性。
综上所述,本申请实施例提供一种网络攻击检测方法,通过采用前述网络报文解码方法,提高网络报文解码的速度,进而提高检测网络攻击的速度。
基于同一发明构思,本申请实施例中还提供一种网络报文解码装置。请参阅图3,图3为本申请实施例提供的一种网络报文解码装置的结构框图,该网络报文解码装置300可以包括:
协议解析模块301,用于对待解码网络报文进行协议解析,确定待解码字符流;
特征检测模块302,用于对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征;
确定模块303,用于基于所述编码特征确定目标解码方法;
解码模块304,用于根据所述目标解码方法对所述待解码字符流进行解码。
在可选的实施方式中,所述特征检测模块302具体用于将所述待解码字符流与预设的多种编码方式的特征字符进行匹配;其中,一种特征字符对应一种编码方式;根据匹配结果确定所述待解码字符流的编码特征。
在可选的实施方式中,所述特征检测模块302具体用于将所述待解码字符流与预设的多种编码方式的字符集进行匹配;其中,一种字符集对应一种编码方式;根据匹配结果确定所述待解码字符流的编码特征。
在可选的实施方式中,所述确定模块303具体用于若所述待解码字符流对应一个编码特征,将该编码特征对应的解码方法作为所述目标解码方法;若所述待解码字符流对应多个编码特征,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
在可选的实施方式中,所述待解码网络报文为HTTP请求报文,所述确定模块303具体用于判断所述待解码字符流对应的编码特征的数量;若所述待解码字符流对应一个编码特征,则将该编码特征对应的解码方法作为所述目标解码方法;若所述待解码字符流对应多个编码特征,判断是否对所述待解码字符流进行过解码;若未对所述待解码字符流进行过解码,根据所述待解码字符流对应的HTTP上下文确定所述目标解码方法;若已对所述待解码字符流进行过解码,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
在可选的实施方式中,所述特征检测模块302还用于S1:对解码后的待解码字符流进行编码特征检测;所述确定模块303还用于S2:若所述解码后的待解码字符流对应至少一种编码特征,基于所述解码后的待解码字符流对应的编码特征确定新的目标解码方法;所述解码模块304还用于S3:根据所述新的目标解码方法对所述解码后的待解码字符流进行解码;S4:重复S1-S3,直至解码后的待解码字符流不对应任何一种编码特征。
此外,本申请实施例还提供一种网络攻击检测装置。请参阅图4,图4为本申请实施例提供的一种网络攻击检测装置的结构框图,该网络攻击检测装置400可以包括:
获取模块401,用于获取解码后的网络报文,其中,所述解码后的网络报文根据前述实施方式所述的网络报文解码装置确定;
网络攻击检测模块402,用于对所述解码后的网络报文进行网络攻击检测。
请参阅图5,图5为本申请实施例的电子设备500的结构示意图,该电子设备500包括:至少一个处理器501,至少一个通信接口502,至少一个存储器503和至少一个总线504。其中,总线504用于实现这些组件直接的连接通信,通信接口502用于与其他节点设备进行信令或数据的通信,存储器503存储有处理器501可执行的程序指令。当电子设备500运行时,处理器501与存储器503之间通过总线504通信,程序指令被电子设备500执行时,实现上述网络报文解码方法或网络攻击检测方法。
该电子设备500还可以包括显示器,显示器用于显示加载后的编程界面。
处理器501可以是一种集成电路芯片,具有信号处理能力。上述处理器501可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器503可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
可以理解,图5所示的结构仅为示意,电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备500可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备500也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
此外,本实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如上述实施例中的网络报文解码方法或网络攻击检测方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种网络报文解码方法,其特征在于,所述方法包括:
对待解码网络报文进行协议解析,确定待解码字符流;
对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征;
基于所述编码特征确定目标解码方法;
根据所述目标解码方法对所述待解码字符流进行解码。
2.根据权利要求1所述的方法,其特征在于,所述对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征,包括:
将所述待解码字符流与预设的多种编码方式的特征字符进行匹配;其中,一种特征字符对应一种编码方式;
根据匹配结果确定所述待解码字符流的编码特征。
3.根据权利要求1所述的方法,其特征在于,所述对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征,包括:
将所述待解码字符流与预设的多种编码方式的字符集进行匹配;其中,一种字符集对应一种编码方式;
根据匹配结果确定所述待解码字符流的编码特征。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述编码特征确定目标解码方法,包括:
若所述待解码字符流对应一个编码特征,将该编码特征对应的解码方法作为所述目标解码方法;
若所述待解码字符流对应多个编码特征,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述待解码网络报文为HTTP请求报文,所述基于所述编码特征确定目标解码方法,包括:
判断所述待解码字符流对应的编码特征的数量;
若所述待解码字符流对应一个编码特征,则将该编码特征对应的解码方法作为所述目标解码方法;
若所述待解码字符流对应多个编码特征,判断是否对所述待解码字符流进行过解码;
若未对所述待解码字符流进行过解码,根据所述待解码字符流对应的HTTP上下文确定所述目标解码方法;
若已对所述待解码字符流进行过解码,根据预设的先验解码顺序从所述多个编码特征对应的多个解码方法中确定所述目标解码方法。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述目标解码方法对所述待解码字符流进行解码之后,所述方法还包括:
S1:对解码后的待解码字符流进行编码特征检测;
S2:若所述解码后的待解码字符流对应至少一种编码特征,基于所述解码后的待解码字符流对应的编码特征确定新的目标解码方法;
S3:根据所述新的目标解码方法对所述解码后的待解码字符流进行解码;
S4:重复S1-S3,直至解码后的待解码字符流不对应任何一种编码特征。
7.一种网络攻击检测方法,其特征在于,所述方法包括:
获取解码后的网络报文,其中,所述解码后的网络报文根据权利要求1-6任一项所述的方法确定;
对所述解码后的网络报文进行网络攻击检测。
8.一种网络报文解码装置,其特征在于,所述装置包括:
协议解析模块,用于对待解码网络报文进行协议解析,确定待解码字符流;
特征检测模块,用于对所述待解码字符流进行编码特征检测,确定所述待解码字符流对应的编码特征;
确定模块,用于基于所述编码特征确定目标解码方法;
解码模块,用于根据所述目标解码方法对所述待解码字符流进行解码。
9.一种网络攻击检测装置,其特征在于,所述装置包括:
获取模块,用于获取解码后的网络报文,其中,所述解码后的网络报文根据权利要求8所述的网络报文解码装置确定;
网络攻击检测模块,用于对所述解码后的网络报文进行网络攻击检测。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306040.3A CN114615074A (zh) | 2022-03-25 | 2022-03-25 | 网络报文解码方法及网络攻击检测方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306040.3A CN114615074A (zh) | 2022-03-25 | 2022-03-25 | 网络报文解码方法及网络攻击检测方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114615074A true CN114615074A (zh) | 2022-06-10 |
Family
ID=81867301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210306040.3A Pending CN114615074A (zh) | 2022-03-25 | 2022-03-25 | 网络报文解码方法及网络攻击检测方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114615074A (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276316A1 (en) * | 2004-07-29 | 2008-11-06 | Roelker Daniel J | Intrusion detection strategies for hypertext transport protocol |
CN105450232A (zh) * | 2014-08-28 | 2016-03-30 | 华为技术有限公司 | 编码、解码方法以及编码装置和解码装置 |
CN107395599A (zh) * | 2017-07-25 | 2017-11-24 | 北京长亭科技有限公司 | 网络攻击的检测方法及装置、终端设备和计算机存储介质 |
CN108897721A (zh) * | 2018-05-28 | 2018-11-27 | 华为技术有限公司 | 一种对多种编码的数据进行解码的方法和装置 |
CN110020343A (zh) * | 2017-09-01 | 2019-07-16 | 北京国双科技有限公司 | 网页编码格式的确定方法和装置 |
CN110602030A (zh) * | 2019-05-16 | 2019-12-20 | 上海云盾信息技术有限公司 | 网络入侵阻断方法、服务器及计算机可读介质 |
CN110958252A (zh) * | 2019-12-05 | 2020-04-03 | 深信服科技股份有限公司 | 一种网络安全设备及其网络攻击检测方法、装置和介质 |
CN111049819A (zh) * | 2019-12-07 | 2020-04-21 | 上海镕天信息科技有限公司 | 一种基于威胁建模的威胁情报发现方法及计算机设备 |
CN111309987A (zh) * | 2019-10-31 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种实际攻击场景下加密算法识别方法及装置 |
CN112671703A (zh) * | 2020-11-18 | 2021-04-16 | 中国电子科技网络信息安全有限公司 | 基于改进fastText的跨站脚本攻击检测方法 |
CN113132416A (zh) * | 2021-06-03 | 2021-07-16 | 新华三信息安全技术有限公司 | 一种数据包检测方法及装置 |
CN113660250A (zh) * | 2021-08-12 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 基于web应用防火墙的防御方法、装置、系统和电子装置 |
CN113965333A (zh) * | 2020-07-01 | 2022-01-21 | 深信服科技股份有限公司 | 一种目标流量检测方法、装置、设备及可读存储介质 |
-
2022
- 2022-03-25 CN CN202210306040.3A patent/CN114615074A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276316A1 (en) * | 2004-07-29 | 2008-11-06 | Roelker Daniel J | Intrusion detection strategies for hypertext transport protocol |
CN105450232A (zh) * | 2014-08-28 | 2016-03-30 | 华为技术有限公司 | 编码、解码方法以及编码装置和解码装置 |
CN107395599A (zh) * | 2017-07-25 | 2017-11-24 | 北京长亭科技有限公司 | 网络攻击的检测方法及装置、终端设备和计算机存储介质 |
CN110020343A (zh) * | 2017-09-01 | 2019-07-16 | 北京国双科技有限公司 | 网页编码格式的确定方法和装置 |
CN108897721A (zh) * | 2018-05-28 | 2018-11-27 | 华为技术有限公司 | 一种对多种编码的数据进行解码的方法和装置 |
CN110602030A (zh) * | 2019-05-16 | 2019-12-20 | 上海云盾信息技术有限公司 | 网络入侵阻断方法、服务器及计算机可读介质 |
CN111309987A (zh) * | 2019-10-31 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种实际攻击场景下加密算法识别方法及装置 |
CN110958252A (zh) * | 2019-12-05 | 2020-04-03 | 深信服科技股份有限公司 | 一种网络安全设备及其网络攻击检测方法、装置和介质 |
CN111049819A (zh) * | 2019-12-07 | 2020-04-21 | 上海镕天信息科技有限公司 | 一种基于威胁建模的威胁情报发现方法及计算机设备 |
CN113965333A (zh) * | 2020-07-01 | 2022-01-21 | 深信服科技股份有限公司 | 一种目标流量检测方法、装置、设备及可读存储介质 |
CN112671703A (zh) * | 2020-11-18 | 2021-04-16 | 中国电子科技网络信息安全有限公司 | 基于改进fastText的跨站脚本攻击检测方法 |
CN113132416A (zh) * | 2021-06-03 | 2021-07-16 | 新华三信息安全技术有限公司 | 一种数据包检测方法及装置 |
CN113660250A (zh) * | 2021-08-12 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 基于web应用防火墙的防御方法、装置、系统和电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150271202A1 (en) | Method, device, and system for detecting link layer hijacking, user equipment, and analyzing server | |
CN112839083B (zh) | 一种数据传输方法及装置、可读存储介质 | |
CN114268957B (zh) | 异常业务数据处理方法、装置、服务器及存储介质 | |
CN107888446B (zh) | 一种协议健壮性测试方法及装置 | |
CN112817602A (zh) | 一种json格式数据发送、接收方法、设备及介质 | |
CN113867732A (zh) | 一种报文信息处理方法、系统以及存储介质 | |
CN113360301A (zh) | 一种消息传输系统及方法 | |
CN113660250A (zh) | 基于web应用防火墙的防御方法、装置、系统和电子装置 | |
CN111556080A (zh) | 网络节点监控方法、装置、介质及电子设备 | |
CN111756716A (zh) | 流量检测方法、装置及计算机可读存储介质 | |
CN112653699B (zh) | 一种bfd认证方法、装置及电子设备 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN114553730B (zh) | 一种应用识别方法、装置、电子设备及存储介质 | |
CN114615074A (zh) | 网络报文解码方法及网络攻击检测方法、装置和存储介质 | |
CN116032546A (zh) | 一种资源访问方法、装置及电子设备 | |
CN113162628B (zh) | 一种数据编码方法、数据解码方法、终端和存储介质 | |
CN112910902B (zh) | 数据解析方法、装置、电子设备、计算机可读存储介质 | |
CN112788078B (zh) | 数据传输方法、接收装置、发送装置和计算机设备 | |
CN112787978B (zh) | 数据采集方法、装置、计算机设备和计算机可读存储介质 | |
CN113986315A (zh) | 软件升级方法、装置、电子设备及计算机可读存储介质 | |
CN114726480A (zh) | 数据编码方法及相关装置、电子设备和存储介质 | |
CN109309670B (zh) | 数据流解码方法和系统、电子装置及计算机可读存储介质 | |
CN113438225A (zh) | 一种车载终端漏洞检测方法、系统、设备及存储介质 | |
CN108243034B (zh) | 一种故障确定方法、接收机及发射机 | |
CN114169917B (zh) | 信息发送方法、平台、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |