CN106850507B - 基于http压缩数据流的有害代码检测方法和装置 - Google Patents

基于http压缩数据流的有害代码检测方法和装置 Download PDF

Info

Publication number
CN106850507B
CN106850507B CN201510885909.4A CN201510885909A CN106850507B CN 106850507 B CN106850507 B CN 106850507B CN 201510885909 A CN201510885909 A CN 201510885909A CN 106850507 B CN106850507 B CN 106850507B
Authority
CN
China
Prior art keywords
matched
pointer
data stream
character
compressed data
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.)
Active
Application number
CN201510885909.4A
Other languages
English (en)
Other versions
CN106850507A (zh
Inventor
李建欣
彭浩
武南南
兰天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Aeronautics and Astronautics
Original Assignee
Beijing University of Aeronautics and Astronautics
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Aeronautics and Astronautics filed Critical Beijing University of Aeronautics and Astronautics
Priority to CN201510885909.4A priority Critical patent/CN106850507B/zh
Publication of CN106850507A publication Critical patent/CN106850507A/zh
Application granted granted Critical
Publication of CN106850507B publication Critical patent/CN106850507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种基于HTTP压缩数据流的有害代码检测方法和装置,方法包括:获取互联网服务器发送客户端待接受的gzip压缩数据流,对其进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流;触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动;其中,针对第一压缩数据流中的长指针,只做边界匹配,并判断临时栈是否存有位于指针所指向的参考字符串中的索引位置,若有,确定指针所在的目标位置中的索引位置并存储至临时栈中,且LZ77解压滑动窗口和多模式匹配窗口之间的距离小于预设距离阈值,从而实现边进行LZ77解压,边进行跳跃性的多模匹配检测,缩短了压缩数据流的入侵或有害代码检测时间,提高了客户端用户上网体验的速度。

Description

基于HTTP压缩数据流的有害代码检测方法和装置
技术领域
本发明涉及通信技术领域,尤其涉及一种基于HTTP压缩数据流的有害代码检测方法和装置。
背景技术
目前,为了提高网络传输的安全性,针对互联网服务器发送的基于超文本传输协议(Hyper Text Transfer Protocol,HTTP)的gzip压缩数据流(由数据流分别经过LZ77压缩和霍夫曼编码得到),位于互联网服务器与客户端之间的防火墙和网关服务器需要对压缩数据流的各个TCP压缩分片进行入侵检测和有害代码的检测,检测通过后才将压缩数据流的各个TCP压缩分片发送至客户端。
现有技术中,防火墙和网关服务器对压缩数据流进行检测时,首先需要对压缩数据流依次进行霍夫曼解码和LZ77解压,然后对解压后的数据流进行入侵或有害代码的检测。然而,对压缩数据流进行的霍夫曼解码和LZ77解压,消耗了大量的时间和存储资源,延长了压缩数据流的传输时间,影响客户端用户上网体验的速度。
发明内容
本发明提供一种基于HTTP压缩数据流的有害代码检测方法和装置,用于解决现有的检测过程中,消耗大量的时间和存储资源的问题。
本发明的第一个方面是提供一种基于HTTP压缩数据流的有害代码检测方法,包括:
获取互联网服务器发送客户端待接受的gzip压缩数据流,所述gzip压缩数据流为所述互联网服务器将原始明文数据经过LZ77压缩和霍夫曼编码后得到的压缩数据流;
对所述gzip压缩数据流进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流,所述第一压缩数据流中包括至少一个TCP压缩分片;
触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在所述第一压缩数据流上的滑动,以实现采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的同时,采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的过程中,根据第一压缩数据流中的指针查询预设的临时栈,判断所述临时栈中是否存有位于所述指针所指向的参考字符串中的第一索引位置,若存有,根据所述指针所指向的参考字符串中的第一索引位置,确定所述指针所在的目标位置上替换得到的参考字符串中的第二索引位置,将所述第二索引位置存储至所述临时栈中;并判断所述指针所指向的参考字符串的长度length是否大于2(Lmin-1),在所述指针所指向的参考字符串的长度length大于2(Lmin-1)时,在所述指针所在的目标位置上的参考字符串中的第Lmin-1个字符处设置跳跃距离参数Length-2(Lmin-1)+1,以便在采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配时,在所述参考字符串中的第Lmin-1个字符处跳跃Length-2(Lmin-1)+1个字符至第Length-(Lmin-1)+1个字符处进行模式串匹配;所述LZ77解压滑动窗口的右边界和多模式匹配窗口的右边界之间的距离小于Lmin-1;Lmin表示所述有害模式串的最小长度,且为正整数;Length为LZ77解压过程中指针所指向的参考字符串的长度;所述指针中包括所述指针所在的目标位置至所述指针指向的参考字符串的位置之间的第一距离,以及所述参考字符串的长度;
若在对所述至少一个TCP压缩分片全部解压后,其所对应的原始明文数据中不含有与有害模式串匹配的字符串,则将所述TCP压缩分片对应的gzip压缩数据流发送至所述客户端。
进一步地,所述采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配,包括:
获取所述原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块;
判断所述第一待匹配的字符块中各字符上是否设置有跳跃距离参数;
若所述第一待匹配的字符块中各字符上均未设置有跳跃距离参数,则判断所述第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,若所述第一待匹配的字符块在所述预设的SHIFT表中不存在对应的步长值,将i加Lmin-1,重复上述步骤,直至判断完成;
其中,i为正整数,且初始时i等于1;N表示所述待匹配的字符块的字节长度,且为正整数。
进一步地,所述的方法还包括:
若所述第一待匹配的字符块在所述预设的SHIFT表中存在对应的步长值,则判断所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是否为预设步长值;
若所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是为所述预设步长值,则获取所述第i字节的前面Lmin-N个字节;
将所述Lmin-N个字节添加至所述第一待匹配的字符块前,以形成第二待匹配的字符块;
根据所述第一待匹配的字符块查询预设的哈希表,获取包括所述第一待匹配的字符块的第一有害模式串;
判断所述第二待匹配的字符块与所述第一有害模式串是否匹配;
将i加1,重复上述步骤,直至判断完成;
其中,N表示所述待匹配的字符块的字节长度,且为正整数;Lmin表示所述有害模式串的最小长度,且为正整数。
进一步地,所述的方法还包括:
若所述第一待匹配的字符块中的字符上设置有跳跃距离参数,则将i加Length-2(Lmin-1)+1;并重新获取第一待匹配的字符块进行匹配。
进一步地,所述的方法还包括:
若所述第二待匹配的字符块与所述第一有害模式串匹配,则将所述第二待匹配的字符块的索引位置存储至所述临时栈中。
进一步地,所述判断所述临时栈中是否存有位于所述指针所指向的参考字符串中的第一索引位置,包括:
获取所述临时栈中存储的与有害模式串匹配的字符串的索引位置,所述索引位置包括:所述字符串的索引地址以及所述字符串的长度;
判断所述字符串的索引位置与所述指针是否满足以下公式:
指针所在的目标位置-所述指针中的第一距离<=字符串的索引位置<=指针所在的目标位置-所述指针中的第一距离+所述指针中的所述参考字符串的长度;
若所述字符串的索引位置与所述指针满足上述公式,则确定所述临时栈中存有位于所述指针所指向的参考字符串中的第一索引位置。
本发明中,通过获取互联网服务器发送客户端待接受的HTTP的gzip压缩数据流,对其进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流;触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动,以实现采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,针对第一压缩数据流中的长指针,只做边界匹配,并判断临时栈是否存有位于指针所指向的参考字符串中的索引位置,若有,确定指针所在的目标位置中的索引位置并存储至临时栈中,且LZ77解压滑动窗口和多模式匹配窗口之间的距离小于预设距离阈值,从而实现边进行LZ77解压,边进行跳跃性的多模匹配检测,缩短了压缩数据流的入侵或有害代码检测时间,提高了客户端用户上网体验的速度。
本发明的另一个方面提供一种基于HTTP压缩数据流的有害代码检测装置,包括:
获取模块,用于获取互联网服务器发送客户端待接受的gzip压缩数据流,所述gzip压缩数据流为所述互联网服务器将原始明文数据经过LZ77压缩和霍夫曼编码后得到的压缩数据流;
解压模块,用于对所述gzip压缩数据流进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流,所述第一压缩数据流中包括至少一个TCP压缩分片;
触发模块,用于触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在所述第一压缩数据流上的滑动;
匹配模块,用于在采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的同时,采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的过程中,根据第一压缩数据流中的指针查询预设的临时栈,判断所述临时栈中是否存有位于所述指针所指向的参考字符串中的第一索引位置,若存有,根据所述指针所指向的参考字符串中的第一索引位置,确定所述指针所在的目标位置上替换得到的参考字符串中的第二索引位置,将所述第二索引位置存储至所述临时栈中;并判断所述指针所指向的参考字符串的长度length是否大于2(Lmin-1),在所述指针所指向的参考字符串的长度length大于2(Lmin-1)时,在所述指针所在的目标位置上的参考字符串中的第Lmin-1个字符处设置跳跃距离参数Length-2(Lmin-1)+1,以便在采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配时,在所述参考字符串中的第Lmin-1个字符处跳跃Length-2(Lmin-1)+1个字符至第Length-(Lmin-1)+1个字符处进行模式串匹配;所述LZ77解压滑动窗口的右边界和多模式匹配窗口的右边界之间的距离小于Lmin-1;Lmin表示所述有害模式串的最小长度,且为正整数;Length为LZ77解压过程中指针所指向的参考字符串的长度;所述临时栈中保存有所述至少一个TCP压缩分片中与有害模式串匹配的模式串的索引位置;所述指针中包括所述指针所在的目标位置至所述指针指向的参考字符串的位置之间的第一距离,以及所述参考字符串的长度;
发送模块,用于在对所述至少一个TCP压缩分片全部解压后,其所对应的原始明文数据中不含有与有害模式串匹配的字符串时,将所述TCP压缩分片对应的gzip压缩数据流发送至所述客户端。
进一步地,所述匹配模块包括:获取子模块和判断子模块;
所述匹配模块采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配中,所述获取子模块,用于获取所述原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块;
所述判断子模块,用于判断所述第一待匹配的字符块中各字符上是否设置有跳跃距离参数;
所述判断子模块,还用于在所述第一待匹配的字符块中各字符上均未设置有跳跃距离参数时,判断所述第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,若所述第一待匹配的字符块在所述预设的SHIFT表中不存在对应的步长值,将i加Lmin-1,重复上述步骤,直至判断完成;
其中,i为正整数,且初始时i等于1;N表示所述待匹配的字符块的字节长度,且为正整数。
进一步地,所述匹配模块还包括:添加子模块;
所述判断子模块,还用于在所述第一待匹配的字符块在所述预设的SHIFT表中存在对应的步长值时,判断所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是否为预设步长值;
所述获取子模块,还用于所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是为所述预设步长值时,获取所述第i字节的前面Lmin-N个字节;
所述添加子模块,用于将所述Lmin-N个字节添加至所述第一待匹配的字符块前,以形成第二待匹配的字符块;
所述获取子模块,还用于根据所述第一待匹配的字符块查询预设的哈希表,获取包括所述第一待匹配的字符块的第一有害模式串;
所述判断子模块,还用于判断所述第二待匹配的字符块与所述第一有害模式串是否匹配;
将i加1,重复上述步骤,直至判断完成;
其中,N表示所述待匹配的字符块的字节长度,且为正整数;Lmin表示所述有害模式串的最小长度,且为正整数。
进一步地,所述获取子模块,还用于在所述第一待匹配的字符块中的字符上设置有跳跃距离参数时,将i加Length-2(Lmin-1)+1;并重新获取第一待匹配的字符块进行匹配。
本发明中,通过获取互联网服务器发送客户端待接受的HTTP的gzip压缩数据流,对其进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流;触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动,以实现采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,针对第一压缩数据流中的长指针,只做边界匹配,并判断临时栈是否存有位于指针所指向的参考字符串中的索引位置,若有,确定指针所在的目标位置中的索引位置并存储至临时栈中,且LZ77解压滑动窗口和多模式匹配窗口之间的距离小于预设距离阈值,从而实现边进行LZ77解压,边进行跳跃性的多模匹配检测,缩短了压缩数据流的入侵或有害代码检测时间,提高了客户端用户上网体验的速度。
附图说明
图1为本发明提供的基于HTTP压缩数据流的有害代码检测方法一个实施例的流程图;
图2为根据第一压缩数据流中的指针查询预设的临时栈获取第一索引位置以及存储第二索引位置的示意图;
图3为本发明提供的基于HTTP压缩数据流的有害代码检测方法又一个实施例的流程图;
图4为本发明提供的基于HTTP压缩数据流的有害代码检测装置一个实施例的结构示意图;
图5为本发明提供的基于HTTP压缩数据流的有害代码检测装置又一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的基于HTTP压缩数据流的有害代码检测方法一个实施例的流程图,如图1所示,具体包括以下步骤:
101、获取互联网服务器发送客户端待接受的gzip压缩数据流,gzip压缩数据流为互联网服务器将原始明文数据经过LZ77压缩和霍夫曼编码后得到的压缩数据流。
本发明提供的基于HTTP压缩数据流的有害代码检测方法的执行主体为基于HTTP压缩数据流的有害代码检测装置,基于HTTP压缩数据流的有害代码检测装置具体可以为位于互联网服务器与客户端之间的防火墙或者网关服务器。
其中,LZ77是一种自适应的指针回溯压缩算法,核心是在LZ77压缩滑动窗口中的历史字符中搜索重复的字节,当有重复的字节时,重复的字节将被一组短小的指针(distance,length)替换,指针里面distance是指与重复字节之间的距离,从1到32KB之间。length是3到258之间的一个数,代表重复字节的长度。例如,字符“applefapplt”,可以被压缩为“applef(6,4)t”。LZ77压缩处理的对象具体可以为原始明文数据中的HTML语言、Javascript语言和CSS文件等。
互联网服务器对原始明文数据进行LZ77压缩后,采用霍夫曼编码对LZ77压缩后的数据流的压缩过程包括:采用霍夫曼编码对LZ77压缩过程中生成的指针以及字符进行再次压缩,得到两棵霍夫曼树信息和两类霍夫曼编码的bit流;最后采用游程编码和霍夫曼编码压缩技术压缩两棵霍夫曼树的数据序列信息。
互联网服务器对原始明文数据压缩完成得到gzip压缩数据流后,可以将gzip压缩数据流拆分成多个连续的gzip压缩数据包,为每个gzip压缩数据包分配HTTP文件头,并进行发送。
102、对gzip压缩数据流进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流,第一压缩数据流中包括至少一个TCP压缩分片。
防火墙或网关服务器获取到的gzip压缩数据流具体可以为多个连续的携带有HTTP文件头的gzip压缩数据包,每个gzip压缩数据包中包括一个TCP压缩分片。防火墙或网关服务器获取到gzip压缩数据流之后,可以移出每个压缩数据包的HTTP文件头,将压缩数据包按照序号组成压缩数据流。压缩数据包的大小一般从64字节到1518字节。其中,霍夫曼树信息被存储在第一个gzip压缩数据包中。一般而言,不同的gzip压缩数据流有不同的霍夫曼树信息。
103、触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动,以实现采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的过程中,根据第一压缩数据流中的指针查询预设的临时栈,判断临时栈中是否存有位于指针所指向的参考字符串中的第一索引位置,若存有,根据指针所指向的参考字符串中的第一索引位置,确定指针所在的目标位置上替换得到的参考字符串中的第二索引位置,将第二索引位置存储至临时栈中;并判断指针所指向的参考字符串的长度length是否大于2(Lmin-1),在指针所指向的参考字符串的长度length大于2(Lmin-1)时,在指针所在的目标位置上的参考字符串中的第Lmin-1个字符处设置跳跃距离参数Length-2(Lmin-1)+1,以便在采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配时,在参考字符串中的第Lmin-1个字符处跳跃Length-2(Lmin-1)+1个字符至第Length-(Lmin-1)+1个字符处进行模式串匹配;LZ77解压滑动窗口的右边界和多模式匹配窗口的右边界之间的距离小于Lmin-1;Lmin表示有害模式串的最小长度,且为正整数;Length为LZ77解压过程中指针所指向的参考字符串的长度;临时栈中保存有至少一个TCP压缩分片中与有害模式串匹配的模式串的索引位置;指针中包括指针所在的目标位置至指针指向的参考字符串的位置之间的第一距离,以及参考字符串的长度。
其中,防火墙或者网关服务器上预先保存有多个有害模式串。其中,LZ77解压滑动窗口的长度具体可以为32KB。多模式匹配窗口的长度具体也可以为32KB。采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的过程中,根据第一压缩数据流中的指针查询预设的临时栈获取第一索引位置以及存储第二索引位置的示意图可以如图2所示,在图2中,指针所指向的参考字符串中的第一索引位置如参考字符串中的黑色竖线所在位置;指针所在的目标位置上替换得到的参考字符串中的第二索引位置如第一重复字符串中的黑色竖线所在位置,即临时栈的虚线箭头所指向的位置;第一重复字符串中的中间区域为要跳跃的区域;第一重复字符串的两边的区域为需要进行匹配的区域。
其中,解压前,临时栈中可以不包括索引位置信息。具体地,步骤103中判断临时栈中是否存有位于指针所指向的参考字符串中的第一索引位置的过程具体可以包括:获取临时栈中存储的与有害模式串匹配的字符串的索引位置,索引位置包括:字符串的索引地址以及字符串的长度;判断字符串的索引位置与指针是否满足以下公式:
指针所在的目标位置-指针中的第一距离<=字符串的索引位置<=指针所在的目标位置-指针中的第一距离+指针中的参考字符串的长度;
若字符串的索引位置与指针满足上述公式,则确定临时栈中存有位于指针所指向的参考字符串中的第一索引位置。
例如,在临时栈里面存储有(10,3)、(20,4)、(25,1)、(40,2)索引位置,现在分别有当前位置是70和100的指针(40,20)和(50,10)。在临时栈中,索引位置(40,2)在指针(40,20)所指向的参考字符串的位置区间(30,50)内部,即(70-40<=40<=70-40+20),则在指针位置70处的指针(40,20)内部存在有害模式串的索引位置(80,2),因此在临时栈中插入索引位置(80,2);同理在位置100处的指针(50,10)所指向的参考字符串的位置区间内部不存在有害模式串的索引位置。
104、若在对至少一个TCP压缩分片全部解压后,其所对应的原始明文数据中不含有与有害模式串匹配的字符串,则将TCP压缩分片对应的gzip压缩数据流发送至客户端。
其中,若其所对应的原始明文数据中含有与有害模式串匹配的字符串,则防火墙或者网关服务器丢弃TCP压缩分片对应的gzip压缩数据流。
其中,步骤104中,至少一个TCP压缩分片对应的原始明文数据为包括至少一个TCP压缩分片的第一压缩数据流对应的原始明文数据。
本实施例中,通过获取互联网服务器发送客户端待接受的gzip压缩数据流,对其进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流;触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动,以实现采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,针对第一压缩数据流中的长指针,只做边界匹配,并判断临时栈是否存有位于指针所指向的参考字符串中的索引位置,若有,确定指针所在的目标位置中的索引位置并存储至临时栈中,且LZ77解压滑动窗口和多模式匹配窗口之间的距离小于预设距离阈值,从而实现边进行LZ77解压,边进行跳跃性的多模匹配检测,缩短了压缩数据流的入侵或有害代码检测时间,提高了客户端用户上网体验的速度。
图3为本发明提供的基于HTTP压缩数据流的有害代码检测方法又一个实施例的流程图,在图1所示实施例的基础上,步骤103中采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配的过程具体可以包括以下步骤:
1031、获取原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块。
其中,i为正整数,且初始时i等于1;N表示待匹配的字符块的字节长度,且为正整数。
1032、判断第一待匹配的字符块中各字符上是否设置有跳跃距离参数,若第一待匹配的字符块中各字符上均未设置有跳跃距离参数,则执行步骤1033;若第一待匹配的字符块中的字符上设置有跳跃距离参数,则执行步骤1035。
1033、判断第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,若第一待匹配的字符块在预设的SHIFT表中不存在对应的步长值,则执行步骤1034;若第一待匹配的字符块在预设的SHIFT表中存在对应的步长值,则执行步骤1036。
其中,在判断第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值之前,防火墙或者网关服务器可以根据有害模式串创建SHIFT表和哈希表。
创建SHIFT表的过程为,获取有害模式串的最小长度Lmin,采用最小长度从各个有害模式串的前缀开始截取有害模式串的前Lmin个字符,根据有害模式串的前Lmin个字符中的各个字符块,根据各个字符块在前Lmin个字符的步长生成SHIFT表。然后根据包括字符块的有害模式串的情况生成哈希表,哈希表中保存有字符块以及对应的包括有字符块的有害模式串。
例如,假设有害模式串包括:rainbow,shine,river,version,brush。截取前缀后的字符串,字符块以及生成的SHIFT表见表1所示。
表1
其中,步长为0表示存在截取后的有害字符串的结尾字符与当前字符块是一致的。
1034、将i加Lmin-1,重复执行步骤1031,直至判断完成。
1035、将i加Length-2(Lmin-1)+1,重复执行步骤1031,直至判断完成。
1036、判断待匹配的字符块在预设的SHIFT表中存在对应的步长值是否为预设步长值;若待匹配的字符块在预设的SHIFT表中存在对应的步长值是为预设步长值,则执行步骤1037;若待匹配的字符块在预设的SHIFT表中存在对应的步长值,但对应的步长值不是预设步长值,则执行步骤1041。
其中,此处的预设步长值可以为0。
1037、获取第i字节的前面Lmin-N个字节。
1038、将Lmin-N个字节添加至第一待匹配的字符块前,以形成第二待匹配的字符块。
1039、根据第一待匹配的字符块查询预设的哈希表,获取包括第一待匹配的字符块的第一有害模式串。
1040、判断第二待匹配的字符块与第一有害模式串是否匹配;然后执行步骤1041;若第二待匹配的字符块与第一有害模式串匹配,还执行步骤1042。
其中,N表示待匹配的字符块的字节长度,且为正整数;Lmin表示有害字符串的最小长度,且为正整数。
1041、将i加1,重复执行步骤1031,直至判断完成。
1042、将第二待匹配的字符块的索引位置存储至临时栈中。
本实施例中,通过获取互联网服务器发送客户端待接受的gzip压缩数据流,对其进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流;触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动,以实现采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,针对第一压缩数据流中的长指针,只做边界匹配,并判断临时栈是否存有位于指针所指向的参考字符串中的索引位置,若有,确定指针所在的目标位置中的索引位置并存储至临时栈中;在用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配的过程中,获取原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块,先判断第一待匹配的字符块中各字符上是否设置有跳跃距离参数,根据判断结果确定是否跳跃,然后判断第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,根据判断结果确定是否存在与第一待匹配的字符块对应的第二字符块匹配的有害模式串,且LZ77解压滑动窗口和多模式匹配窗口之间的距离小于预设距离阈值,从而实现边进行LZ77解压,边进行跳跃性的多模匹配检测,缩短了压缩数据流的入侵或有害代码检测时间,提高了客户端用户上网体验的速度。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明提供的基于HTTP压缩数据流的有害代码检测装置一个实施例的结构示意图,如图4所示,包括:
获取模块41,用于获取互联网服务器发送客户端待接受的gzip压缩数据流,gzip压缩数据流为互联网服务器将原始明文数据经过LZ77压缩和霍夫曼编码后得到的压缩数据流;
解压模块42,用于对gzip压缩数据流进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流,第一压缩数据流中包括至少一个TCP压缩分片;
触发模块43,用于触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动;
匹配模块44,用于在采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的过程中,根据第一压缩数据流中的指针查询预设的临时栈,判断临时栈中是否存有位于指针所指向的参考字符串中的第一索引位置,若存有,根据指针所指向的参考字符串中的第一索引位置,确定指针所在的目标位置上替换得到的参考字符串中的第二索引位置,将第二索引位置存储至临时栈中;并判断指针所指向的参考字符串的长度length是否大于2(Lmin-1),在指针所指向的参考字符串的长度length大于2(Lmin-1)时,在指针所在的目标位置上的参考字符串中的第Lmin-1个字符处设置跳跃距离参数Length-2(Lmin-1)+1,以便在采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配时,在参考字符串中的第Lmin-1个字符处跳跃Length-2(Lmin-1)+1个字符至第Length-(Lmin-1)+1个字符处进行模式串匹配;LZ77解压滑动窗口的右边界和多模式匹配窗口的右边界之间的距离小于Lmin-1;Lmin表示有害模式串的最小长度,且为正整数;Length为LZ77解压过程中指针所指向的参考字符串的长度;临时栈中保存有至少一个TCP压缩分片中与有害模式串匹配的模式串的索引位置;指针中包括指针所在的目标位置至指针指向的参考字符串的位置之间的第一距离,以及参考字符串的长度;
发送模块45,用于在对至少一个TCP压缩分片全部解压后,其所对应的原始明文数据中不包含与有害模式串匹配的字符串时,将TCP压缩分片对应的gzip压缩数据流发送至客户端。
本发明提供的基于HTTP压缩数据流的有害代码检测装置具体可以为位于互联网服务器与客户端之间的防火墙或者网关服务器。
具体地,匹配模块44判断临时栈中是否存有位于指针所指向的参考字符串中的第一索引位置的过程具体可以包括:获取临时栈中存储的与有害模式串匹配的字符串的索引位置,索引位置包括:字符串的索引地址以及字符串的长度;判断字符串的索引位置与指针是否满足以下公式:
指针所在的目标位置-指针中的第一距离<=字符串的索引位置<=指针所在的目标位置-指针中的第一距离+指针中的参考字符串的长度;
若字符串的索引位置与指针满足上述公式,则确定临时栈中存有位于指针所指向的参考字符串中的第一索引位置。
本实施例中,通过获取互联网服务器发送客户端待接受的gzip压缩数据流,对其进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流;触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动,以实现采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,针对第一压缩数据流中的长指针,只做边界匹配,并判断临时栈是否存有位于指针所指向的参考字符串中的索引位置,若有,确定指针所在的目标位置中的索引位置并存储至临时栈中,且LZ77解压滑动窗口和多模式匹配窗口之间的距离小于预设距离阈值,从而实现边进行LZ77解压,边进行跳跃性的多模匹配检测,缩短了压缩数据流的入侵或有害代码检测时间,提高了客户端用户上网体验的速度。
进一步地,结合参考图5,在图4所示实施例的基础上,匹配模块44包括:获取子模块441、判断子模块442和添加子模块443;
匹配模块44采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配中,获取子模块441,用于获取原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块;
判断子模块442,用于判断第一待匹配的字符块中各字符上是否设置有跳跃距离参数;
判断子模块442,还用于在第一待匹配的字符块中各字符上均未设置有跳跃距离参数时,判断第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,若第一待匹配的字符块在预设的SHIFT表中不存在对应的步长值,将i加Lmin-1,重复上述步骤,直至判断完成;
其中,i为正整数,且初始时i等于1;N表示待匹配的字符块的字节长度,且为正整数;
判断子模块442,还用于在第一待匹配的字符块在预设的SHIFT表中存在对应的步长值时,判断待匹配的字符块在预设的SHIFT表中存在对应的步长值是否为预设步长值;
获取子模块441,还用于待匹配的字符块在预设的SHIFT表中存在对应的步长值是为预设步长值时,获取第i字节的前面Lmin-N个字节;
添加子模块443,用于将Lmin-N个字节添加至第一待匹配的字符块前,以形成第二待匹配的字符块;
获取子模块441,还用于根据第一待匹配的字符块查询预设的哈希表,获取包括第一待匹配的字符块的第一有害模式串;
判断子模块442,还用于判断第二待匹配的字符块与第一有害模式串是否匹配;
将i加1,重复上述步骤,直至判断完成;
其中,N表示待匹配的字符块的字节长度,且为正整数;Lmin表示有害模式串的最小长度,且为正整数;
其中,判断子模块442在判断第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值之前,防火墙或者网关服务器可以根据有害字符串创建SHIFT表和哈希表。
创建SHIFT表的过程为,获取有害模式串的最小长度Lmin,采用最小长度从各个有害模式串的前缀开始截取有害模式串的前Lmin个字符,根据有害模式串的前Lmin个字符中的各个字符块,根据各个字符块在前Lmin个字符的步长生成SHIFT表。然后根据包括字符块的有害模式串的情况生成哈希表,哈希表中保存有字符块以及对应的包括有字符块的有害字符串。
进一步地,获取子模块441,还用于在第一待匹配的字符块中的字符上设置有跳跃距离参数时,将i加Length-2(Lmin-1)+1;并重新获取第一待匹配的字符块进行匹配。
进一步地,所述的装置还可以包括:存储模块,存储模块用于,在第二待匹配的字符块与第一有害模式串匹配时,将第二待匹配的字符块的索引位置存储至临时栈中。
进一步地,判断子模块442判断临时栈中是否存有位于指针所指向的参考字符串中的第一索引位置中,判断子模块442具体用于,获取临时栈中存储的与有害模式串匹配的字符串的索引位置,索引位置包括:字符串的索引地址以及字符串的长度;
判断字符串的索引位置与指针是否满足以下公式:
指针所在的目标位置-指针中的第一距离<=字符串的索引位置<=指针所在的目标位置-指针中的第一距离+指针中的参考字符串的长度;
若字符串的索引位置与指针满足上述公式,则确定临时栈中存有位于指针所指向的参考字符串中的第一索引位置。
本实施例中,通过获取互联网服务器发送客户端待接受的gzip压缩数据流,对其进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流;触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在第一压缩数据流上的滑动,以实现采用LZ77解压滑动窗口对第一压缩数据流进行LZ77解压的同时,采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,针对第一压缩数据流中的长指针,只做边界匹配,并判断临时栈是否存有位于指针所指向的参考字符串中的索引位置,若有,确定指针所在的目标位置中的索引位置并存储至临时栈中;在用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配的过程中,获取原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块,先判断第一待匹配的字符块中各字符上是否设置有跳跃距离参数,根据判断结果确定是否跳跃,然后判断第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,根据判断结果确定是否存在与第一待匹配的字符块对应的第二字符块匹配的有害模式串,且LZ77解压滑动窗口和多模式匹配窗口之间的距离小于预设距离阈值,从而实现边进行LZ77解压,边进行跳跃性的多模匹配检测,缩短了压缩数据流的入侵或有害代码检测时间,提高了客户端用户上网体验的速度。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于HTTP压缩数据流的有害代码检测方法,其特征在于,包括:
获取互联网服务器发送客户端待接受的gzip压缩数据流,所述gzip压缩数据流为所述互联网服务器将原始明文数据经过LZ77压缩和霍夫曼编码后得到的压缩数据流;
对所述gzip压缩数据流进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流,所述第一压缩数据流中包括至少一个TCP压缩分片;
触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在所述第一压缩数据流上的滑动,以实现采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的同时,采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的过程中,根据第一压缩数据流中的指针查询预设的临时栈,判断所述临时栈中是否存有位于所述指针所指向的参考字符串中的第一索引位置,若存有,根据所述指针所指向的参考字符串中的第一索引位置,确定所述指针所在的目标位置上替换得到的参考字符串中的第二索引位置,将所述第二索引位置存储至所述临时栈中;并判断所述指针所指向的参考字符串的长度length是否大于2(Lmin-1),在所述指针所指向的参考字符串的长度length大于2(Lmin-1)时,在所述指针所在的目标位置上的参考字符串中的第Lmin-1个字符处设置跳跃距离参数Length-2(Lmin-1)+1,以便在采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配时,在所述参考字符串中的第Lmin-1个字符处跳跃Length-2(Lmin-1)+1个字符至第Length-(Lmin-1)+1个字符处进行模式串匹配;所述LZ77解压滑动窗口的右边界和多模式匹配窗口的右边界之间的距离小于Lmin-1;Lmin表示所述有害模式串的最小长度,且为正整数;Length为LZ77解压过程中指针所指向的参考字符串的长度;所述指针中包括所述指针所在的目标位置至所述指针指向的参考字符串的位置之间的第一距离,以及所述参考字符串的长度;
若在对所述至少一个TCP压缩分片全部解压后,其所对应的原始明文数据中不含有与有害模式串匹配的字符串,则将所述TCP压缩分片对应的gzip压缩数据流发送至所述客户端;
其中,所述指针在LZ77压缩算法中用于替换重复字节。
2.根据权利要求1所述的方法,其特征在于,所述采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配,包括:
获取所述原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块;
判断所述第一待匹配的字符块中各字符上是否设置有跳跃距离参数;
若所述第一待匹配的字符块中各字符上均未设置有跳跃距离参数,则判断所述第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,若所述第一待匹配的字符块在所述预设的SHIFT表中不存在对应的步长值,将i加Lmin-1,重复上述步骤,直至判断完成;
其中,i为正整数,且初始时i等于1;N表示所述待匹配的字符块的字节长度,且为正整数。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述第一待匹配的字符块在所述预设的SHIFT表中存在对应的步长值,则判断所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是否为预设步长值;
若所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是为所述预设步长值,则获取所述第i字节的前面Lmin-N个字节;
将所述Lmin-N个字节添加至所述第一待匹配的字符块前,以形成第二待匹配的字符块;
根据所述第一待匹配的字符块查询预设的哈希表,获取包括所述第一待匹配的字符块的第一有害模式串;
判断所述第二待匹配的字符块与所述第一有害模式串是否匹配;
将i加1,重复上述步骤,直至判断完成;
其中,N表示所述待匹配的字符块的字节长度,且为正整数;Lmin表示所述有害模式串的最小长度,且为正整数。
4.根据权利要求2所述的方法,其特征在于,还包括:
若所述第一待匹配的字符块中的字符上设置有跳跃距离参数,则将i加Length-2(Lmin-1)+1;并重新获取第一待匹配的字符块进行匹配。
5.根据权利要求3所述的方法,其特征在于,还包括:
若所述第二待匹配的字符块与所述第一有害模式串匹配,则将所述第二待匹配的字符块的索引位置存储至所述临时栈中。
6.根据权利要求1所述的方法,其特征在于,所述判断所述临时栈中是否存有位于所述指针所指向的参考字符串中的第一索引位置,包括:
获取所述临时栈中存储的与有害模式串匹配的字符串的索引位置,所述索引位置包括:所述字符串的索引地址以及所述字符串的长度;
判断所述字符串的索引位置与所述指针是否满足以下公式:
指针所在的目标位置-所述指针中的第一距离<=字符串的索引位置<=指针所在的目标位置-所述指针中的第一距离+所述指针中的所述参考字符串的长度;
若所述字符串的索引位置与所述指针满足上述公式,则确定所述临时栈中存有位于所述指针所指向的参考字符串中的第一索引位置。
7.一种基于HTTP压缩数据流的有害代码检测装置,其特征在于,包括:
获取模块,用于获取互联网服务器发送客户端待接受的gzip压缩数据流,所述gzip压缩数据流为所述互联网服务器将原始明文数据经过LZ77压缩和霍夫曼编码后得到的压缩数据流;
解压模块,用于对所述gzip压缩数据流进行霍夫曼解码,得到经过LZ77压缩的第一压缩数据流,所述第一压缩数据流中包括至少一个TCP压缩分片;
触发模块,用于触发多模式匹配窗口滑动,以推动LZ77解压滑动窗口在所述第一压缩数据流上的滑动;
匹配模块,用于在采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的同时,采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配;其中,采用所述LZ77解压滑动窗口对所述第一压缩数据流进行LZ77解压的过程中,根据第一压缩数据流中的指针查询预设的临时栈,判断所述临时栈中是否存有位于所述指针所指向的参考字符串中的第一索引位置,若存有,根据所述指针所指向的参考字符串中的第一索引位置,确定所述指针所在的目标位置上替换得到的参考字符串中的第二索引位置,将所述第二索引位置存储至所述临时栈中;并判断所述指针所指向的参考字符串的长度length是否大于2(Lmin-1),在所述指针所指向的参考字符串的长度length大于2(Lmin-1)时,在所述指针所在的目标位置上的参考字符串中的第Lmin-1个字符处设置跳跃距离参数Length-2(Lmin-1)+1,以便在采用多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配时,在所述参考字符串中的第Lmin-1个字符处跳跃Length-2(Lmin-1)+1个字符至第Length-(Lmin-1)+1个字符处进行模式串匹配;所述LZ77解压滑动窗口的右边界和多模式匹配窗口的右边界之间的距离小于Lmin-1;Lmin表示所述有害模式串的最小长度,且为正整数;Length为LZ77解压过程中指针所指向的参考字符串的长度;所述临时栈中保存有所述至少一个TCP压缩分片中与有害模式串匹配的模式串的索引位置;所述指针中包括所述指针所在的目标位置至所述指针指向的参考字符串的位置之间的第一距离,以及所述参考字符串的长度;
发送模块,用于在对所述至少一个TCP压缩分片全部解压后,其所对应的原始明文数据中不含有与有害模式串匹配的字符串时,将所述TCP压缩分片对应的gzip压缩数据流发送至所述客户端;
其中,所述指针在LZ77压缩算法中用于替换重复字节。
8.根据权利要求7所述的装置,其特征在于,所述匹配模块包括:获取子模块和判断子模块;
所述匹配模块采用所述多模式匹配窗口对解压后得到的原始明文数据进行有害模式串的匹配中,所述获取子模块,用于获取所述原始明文数据中第i字节至第i+N-1字节组成的第一待匹配的字符块;
所述判断子模块,用于判断所述第一待匹配的字符块中各字符上是否设置有跳跃距离参数;
所述判断子模块,还用于在所述第一待匹配的字符块中各字符上均未设置有跳跃距离参数时,判断所述第一待匹配的字符块在预设的SHIFT表中是否存在对应的步长值,若所述第一待匹配的字符块在所述预设的SHIFT表中不存在对应的步长值,将i加Lmin-1,重复上述步骤,直至判断完成;
其中,i为正整数,且初始时i等于1;N表示所述待匹配的字符块的字节长度,且为正整数。
9.根据权利要求8所述的装置,其特征在于,所述匹配模块还包括:添加子模块;
所述判断子模块,还用于在所述第一待匹配的字符块在所述预设的SHIFT表中存在对应的步长值时,判断所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是否为预设步长值;
所述获取子模块,还用于所述待匹配的字符块在所述预设的SHIFT表中存在对应的步长值是为所述预设步长值时,获取所述第i字节的前面Lmin-N个字节;
所述添加子模块,用于将所述Lmin-N个字节添加至所述第一待匹配的字符块前,以形成第二待匹配的字符块;
所述获取子模块,还用于根据所述第一待匹配的字符块查询预设的哈希表,获取包括所述第一待匹配的字符块的第一有害模式串;
所述判断子模块,还用于判断所述第二待匹配的字符块与所述第一有害模式串是否匹配;
将i加1,重复上述步骤,直至判断完成;
其中,N表示所述待匹配的字符块的字节长度,且为正整数;Lmin表示所述有害模式串的最小长度,且为正整数。
10.根据权利要求8所述的装置,其特征在于,所述获取子模块,还用于在所述第一待匹配的字符块中的字符上设置有跳跃距离参数时,将i加Length-2(Lmin-1)+1;并重新获取第一待匹配的字符块进行匹配。
CN201510885909.4A 2015-12-04 2015-12-04 基于http压缩数据流的有害代码检测方法和装置 Active CN106850507B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510885909.4A CN106850507B (zh) 2015-12-04 2015-12-04 基于http压缩数据流的有害代码检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510885909.4A CN106850507B (zh) 2015-12-04 2015-12-04 基于http压缩数据流的有害代码检测方法和装置

Publications (2)

Publication Number Publication Date
CN106850507A CN106850507A (zh) 2017-06-13
CN106850507B true CN106850507B (zh) 2020-01-14

Family

ID=59150599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510885909.4A Active CN106850507B (zh) 2015-12-04 2015-12-04 基于http压缩数据流的有害代码检测方法和装置

Country Status (1)

Country Link
CN (1) CN106850507B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995753A (zh) * 2019-12-19 2020-04-10 中国电力科学研究院有限公司 用电信息采集系统中远程通信报文的组合压缩方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667843A (zh) * 2009-09-22 2010-03-10 中兴通讯股份有限公司 嵌入式系统的数据压缩、及解压缩方法与装置
CN102609450A (zh) * 2012-01-10 2012-07-25 顾乃杰 一种按字长匹配的多模式串匹配方法
CN103580948A (zh) * 2012-12-27 2014-02-12 哈尔滨安天科技股份有限公司 一种基于结构性文件索引信息的网络检测方法及装置
CN104318160A (zh) * 2014-10-29 2015-01-28 北京奇虎科技有限公司 查杀恶意程序的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667843A (zh) * 2009-09-22 2010-03-10 中兴通讯股份有限公司 嵌入式系统的数据压缩、及解压缩方法与装置
CN102609450A (zh) * 2012-01-10 2012-07-25 顾乃杰 一种按字长匹配的多模式串匹配方法
CN103580948A (zh) * 2012-12-27 2014-02-12 哈尔滨安天科技股份有限公司 一种基于结构性文件索引信息的网络检测方法及装置
CN104318160A (zh) * 2014-10-29 2015-01-28 北京奇虎科技有限公司 查杀恶意程序的方法和装置

Also Published As

Publication number Publication date
CN106850507A (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
US8458354B2 (en) Multi-pattern matching in compressed communication traffic
US10812524B2 (en) Method, and devices for defending distributed denial of service attack
CN110324115B (zh) 一种数据传输方法、装置、存储介质及终端设备
US20110219357A1 (en) Compressing source code written in a scripting language
US8872677B2 (en) Method and apparatus for compressing data-carrying signals
TW201501556A (zh) 用於唯一枚舉解析樹中的路徑的裝置和方法
MXPA05001846A (es) Compresion de datos.
CN102594809B (zh) 一种文件快速扫描方法和系统
US8909813B2 (en) Efficient processing of compressed communication traffic
JP2015534770A5 (zh)
CN107277109B (zh) 针对压缩流量的多字符串匹配方法
CN106850507B (zh) 基于http压缩数据流的有害代码检测方法和装置
CN104065460B (zh) 基于二叉树的编码方法和编码装置
CN106850504B (zh) 基于http静态压缩数据流的有害代码检测方法和装置
CN108563795B (zh) 一种加速压缩流量正则表达式匹配的Pairs方法
Bremler-Barr et al. Decompression-free inspection: Dpi for shared dictionary compression over http
CN112887054B (zh) 一种基于长度转义的数据流封包方法、解包方法及系统
CN113630125A (zh) 数据压缩、编码解压缩方法、装置、电子设备及存储介质
CN110545489A (zh) 自适应流媒体的播放方法、系统及客户端
CN108573069B (zh) 一种加速压缩流量正则表达式匹配的Twins方法
US10404288B2 (en) Packet decoding device, packet decoding method, and storage medium in which program is stored
CN112910797B (zh) 基于特征匹配的i2p流量识别方法及系统
US9923576B2 (en) Decoding techniques using a programmable priority encoder
US10742783B2 (en) Data transmitting apparatus, data receiving apparatus and method thereof having encoding or decoding functionalities
CN106912066B (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
GR01 Patent grant
GR01 Patent grant