CN107026821A - 报文的处理方法及装置 - Google Patents
报文的处理方法及装置 Download PDFInfo
- Publication number
- CN107026821A CN107026821A CN201610070437.1A CN201610070437A CN107026821A CN 107026821 A CN107026821 A CN 107026821A CN 201610070437 A CN201610070437 A CN 201610070437A CN 107026821 A CN107026821 A CN 107026821A
- Authority
- CN
- China
- Prior art keywords
- http message
- message
- http
- matching
- field
- 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.)
- Granted
Links
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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种报文的处理方法及装置。其中,该方法包括:对获取到的HTTP报文进行解析,获取解析后的HTTP报文;采用经由预定义编程接口接收到的与解析后的HTTP报文相适配的配置规则生成配置文件;根据配置文件对解析后的HTTP报文进行多模正则匹配;按照匹配结果对HTTP报文执行过滤操作。本发明解决了相关技术中所提供的基于WAF对HTTP报文进行特征检测的方式缺乏灵活性,易造成对攻击性的HTTP报文的漏报或误报的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种报文的处理方法及装置。
背景技术
万维网应用防火墙(Web Application Firewall,简称为WAF)是设置在网站WEB业务系统前端的一种包特征检测与阻断系统,用于保护后端的WEB业务系统不受非法攻击者的恶意扫描和漏洞攻击。
WEB容器是一种读取并执行各种类型脚本语言文件的软件,其可以解释包含PHP、ASP以及JAVA在内的脚本语言。相关技术中所提供的网站的重要组成部分即为WEB容器。
超文本传输协议(HTTP)请求报文是一种松散格式的应用层协议,其虽然在大体上遵循征求修正意见书(RFC)2616的规范,但是各个WEB容器在具体实现HTTP请求报文解析的过程中,都会添加一些特有的解析特性,从而实现对HTTP RFC协议的扩展。
另外,HTTP协议还是一个历史较为悠久的协议,从国际互联网工程任务组(IETF)创建第一版到现在,已经经历了HTTP 0.9→HTTP 1.0→HTTP 1.1总共三个版本的演变。最新版本的HTTP 1.1协议在原有协议的基础上实现了富文本(RTF)传输的协议规定,以此来支持用户通过浏览器向服务器上传富文本文件的功能实现。然而,该项演变在为WEB开发者提供便利的同时,也为黑客攻击带来了新鲜的渠道。
目前,相关技术中所提供的主机WAF方案大多基于网关协议以及流量牵引的基础架构,其通过在流量中心的节点部署硬件设备进行恶意流量特征检测。然而,此种方案的缺陷在于:容易受到网络流量抖动、骨干光纤故障等物理因素影响,进而导致WAF的拦截效果下降。
此外,相关技术中提出的WAF解决方案只允许规则运营人员实现针对GET、POST包的正则规则检测,即针对HTTP请求的GET/POST参数进行单条正则规则匹配。然而,由于HTTP请求报文中携带的参数通常处于无序状态,因此,规则运营人员针对同一个漏洞可能需要编写多条规则,即浪费了时间,又影响WAF的检测效率。而如果规则运营人员为了提升检测效果,自行提高正则规则匹配的检测强度,又很可能导致检测结果出现误报,故而很难在检测结果出现漏报与检测结果出现误报之间取得平衡。
进一步地,当前互联网中主流的WEB漏洞中,与FILES、COOKIES参数相关联的漏洞占据了相当大的比例,而当前大部分主机WAF产品对于这些参数是不需要进行检测的。攻击者为了能够躲避WAF的检测,可以直接将攻击载荷添加至这些传输富文本的HTTP FILES请求报文中,从而躲避主机WAF的检测。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种报文的处理方法及装置,以至少解决相关技术中所提供的基于WAF对HTTP报文进行特征检测的方式缺乏灵活性,易造成对攻击性的HTTP报文的漏报或误报的技术问题。
根据本发明实施例的一个方面,提供了一种报文的处理方法,包括:对获取到的HTTP报文进行解析,获取解析后的HTTP报文;采用经由预定义编程接口接收到的与解析后的HTTP报文相适配的配置规则生成配置文件;根据配置文件对解析后的HTTP报文进行多模正则匹配;按照匹配结果对HTTP报文执行过滤操作。
可选地,采用经由预定义编程接口接收到的配置规则生成配置文件包括:经由预定义编程接口接收根据解析后的HTTP报文确定的配置规则;对配置规则进行二进制转化的编译处理,生成配置文件,并将配置文件加载至内存。
可选地,配置规则包括:多条匹配规则,每条匹配规则至少包括以下字段:第一字段,用于确定HTTP报文的传输方向;第二字段,用于通过预先配置的预处理指令对HTTP报文进行多模正则匹配预处理;第三字段,用于从经过预处理后的HTTP报文中选取待匹配的参数集合;第四字段,用于按照预设匹配方式参数集合进行匹配操作,其中,预设匹配方式包括以下至少之一:参数集合中是否存在与预设字符串一致的字符串,参数集合中是否存在与预设数字一致的数字,参数集合中是否存在与预设正则表达式一致的正则表达式;第五字段,用于按照匹配操作的结果确定对应的处理动作。
可选地,每条匹配规则还包括如下字段:第六字段,用于在根据从第五字段得到的处理动作确定拒绝或丢弃HTTP报文时,记录在第四字段中得到的匹配结果一致的命中次数,并且如果在预设时间窗口内的命中次数达到预设阈值,则对HTTP报文的发送端进行锁定。
可选地,按照匹配结果对HTTP报文执行过滤操作包括以下之一:在按照预设匹配方式未对参数集合匹配成功的情况下,允许HTTP报文正常通过;在按照预设匹配方式对参数集合匹配成功且处理动作为忽略HTTP报文的情况下,则对忽略HTTP报文的操作记录日志;在按照预设匹配方式对参数集合匹配成功且处理动作为丢弃HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
根据本发明实施例的另一方面,提供了一种报文的处理方法,包括:获取HTTP报文;采用经由可扩展的功能接口接收到的嵌入式脚本生成与HTTP报文的解析方式和配置文件;按照解析方式对HTTP报文进行解析,并根据配置文件对解析后的HTTP报文进行多模正则匹配;按照匹配结果对HTTP报文执行过滤操作。
根据本发明实施例的又一方面,还提供了一种报文的处理装置,包括:解析模块,用于对获取到的HTTP报文进行解析,获取解析后的HTTP报文;生成模块,用于采用经由预定义编程接口接收到的配置规则生成配置文件;匹配模块,用于根据配置文件对解析后的HTTP报文进行多模正则匹配;处理模块,用于按照匹配结果对HTTP报文执行过滤操作。
可选地,生成模块包括:接收单元,用于经由预定义编程接口接收根据解析后的HTTP报文确定的配置规则;生成单元,用于对配置规则进行二进制转化的编译处理,生成配置文件,并将配置文件加载至内存。
可选地,配置规则包括:多条匹配规则,每条匹配规则至少包括以下字段:第一字段,用于确定HTTP报文的传输方向;第二字段,用于通过预先配置的预处理指令对HTTP报文进行多模正则匹配预处理;第三字段,用于从经过预处理后的HTTP报文中选取待匹配的参数集合;第四字段,用于按照预设匹配方式参数集合进行匹配操作,其中,预设匹配方式包括以下至少之一:参数集合中是否存在与预设字符串一致的字符串,参数集合中是否存在与预设数字一致的数字,参数集合中是否存在与预设正则表达式一致的正则表达式;第五字段,用于按照匹配操作的结果确定对应的处理动作。
可选地,每条匹配规则还包括如下字段:第六字段,用于在根据从第五字段得到的处理动作确定拒绝或丢弃HTTP报文时,记录在第四字段中得到的匹配结果一致的命中次数,并且如果在预设时间窗口内的命中次数达到预设阈值,则对HTTP报文的发送端进行锁定。
可选地,处理模块,用于在按照预设匹配方式未对参数集合匹配成功的情况下,允许HTTP报文正常通过;或者,在按照预设匹配方式对参数集合匹配成功且处理动作为忽略HTTP报文的情况下,则对忽略HTTP报文的操作记录日志;或者,在按照预设匹配方式对参数集合匹配成功且处理动作为丢弃HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
根据本发明实施例的再一方面,还提供了一种报文的处理装置,包括:获取模块,用于获取HTTP报文;生成模块,用于采用经由可扩展的功能接口接收到的嵌入式脚本生成与HTTP报文的解析方式和配置文件;匹配模块,用于按照解析方式对HTTP报文进行解析,并根据配置文件对解析后的HTTP报文进行多模正则匹配;处理模块,用于按照匹配结果对HTTP报文执行过滤操作。
在本发明实施例中,对获取到的HTTP报文采用更加细致的解析方式,通过经由预定义编程接口接收到的配置规则所生成的配置文件对解析后的HTTP报文进行多模正则匹配,或者,直接向用户开放可扩展的功能接口,完全通过用户自定义的嵌入式脚本来确定HTTP报文的解析方式和多模正则匹配方式,达到了对HTTP报文进行特性检测的目的,从而实现了提高HTTP报文的攻击特性检测的成功率与准确率的技术效果,进而解决了相关技术中所提供的基于WAF对HTTP报文进行特征检测的方式缺乏灵活性,易造成对攻击性的HTTP报文的漏报或误报的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种报文的处理方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种报文的处理方法的流程图;
图3是根据本发明实施例的另一种报文的处理方法的流程图;
图4是根据本发明实施例的一种报文的处理装置的结构框图;
图5是根据本发明优选实施例的一种报文的处理装置的结构框图;
图6是根据本发明实施例的另一种报文的处理装置的结构框图;
图7是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,还提供了一种报文的处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种报文的处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的报文的处理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的报文的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的报文的处理方法。图2是根据本发明实施例的一种报文的处理方法的流程图。如图2所示,该方法可以包括以下处理步骤:
步骤S202:对获取到的HTTP报文进行解析,获取解析后的HTTP报文,其中,该解析过程即指用户可以在现有的基于RFC 2616规范对HTTP报文进行解析的基础上,执行更加细致的解析,依据更多的解析条件得到更多维的数组,即数组的维度大于预设阈值;
在优选实施过程中,可以通过Netfilter Hook来获取本地接收到的HTTP报文,其中,HTTP报文既包括从外部发送至本地的HTTP请求/响应报文,也包括本地发往外部的HTTP请求/响应报文。
步骤S204:采用经由预定义编程接口接收到的与解析后的HTTP报文相适配的配置规则生成配置文件,即用户可以依据对HTTP报文进行解析得到的多维数组的维度来确定配置规则所需要包含的匹配规则继而生成配置文件;
步骤S206:根据配置文件对解析后的HTTP报文进行多模正则匹配;
多模正则匹配是指在“一个字符串”中寻找“多个模式字符子串”,由于采取了“以空间换时间”的理念,多模正则匹配能够实现仅消耗一次正则匹配的时间,便可实现N条正则规则匹配的最终效果。
步骤S208:按照匹配结果对HTTP报文执行过滤操作,由此判断出哪些HTTP报文为网络外部终端或服务器发送的不具备攻击特性而可以正常通过的HTTP报文,又有哪些HTTP报文为网络外部终端或服务器发送的具备攻击特性而需要阻断的HTTP报文。
进一步地,在步骤S204中,采用经由预定义编程接口接收到的配置规则生成配置文件可以包括以下操作:
步骤S1:经由预定义编程接口接收根据解析后的HTTP报文确定的配置规则;
步骤S2:对配置规则进行二进制转化的编译处理,生成配置文件,并将配置文件加载至内存。
在优选实施例中,上述配置规则的编写可以采取脚本化、编程化的方式进行,实现一种面向规则运营人员的WAF规则编程语言。规则运营人员可以根据WEB攻防经验进行规则编程,WAF规则解释器对规则代码进行编译后生成WAF主程序可以理解的二进制规则判断逻辑,从而使运营人员无需关心底层的实现细节而专心关注规则的攻防逻辑。
在优选实施过程中,上述配置规则可以包括:多条匹配规则,每条匹配规则至少包括以下字段,其中,每个字段都可以看作是上述通过解析得到的多维数组中的一个维度:
(1)第一字段,用于确定HTTP报文的传输方向;
(2)第二字段,用于通过预先配置的预处理指令对HTTP报文进行多模正则匹配预处理;
(3)第三字段,用于从经过预处理后的HTTP报文中选取待匹配的参数集合;
(4)第四字段,用于按照预设匹配方式参数集合进行匹配操作,其中,预设匹配方式包括以下至少之一:参数集合中是否存在与预设字符串一致的字符串,参数集合中是否存在与预设数字一致的数字,参数集合中是否存在与预设正则表达式一致的正则表达式;
(5)第五字段,用于按照匹配操作的结果确定对应的处理动作。
进一步地,除了上述字段(1)-(5)之外,每条匹配规则还包括如下字段:第六字段,用于在根据从第五字段得到的处理动作确定拒绝或丢弃HTTP报文时,记录在第四字段中得到的匹配结果一致的命中次数,并且如果在预设时间窗口内的命中次数达到预设阈值,则对HTTP报文的发送端进行锁定。
作为本发明的一个优选实施例,以下为一个配置文件的具体示例:
SecRule PHASE PREACTION VARIABLES OPERATOR ACTIONS[LOCK]
&& SecRule PHASE PREACTION VARIABLES OPERATOR ACTIONS[LOCK]
|| SecRule PHASE PREACTION VARIABLES OPERATOR ACTIONS[LOCK]
&& ! SecRule PHASE PREACTION VARIABLES OPERATOR ACTIONS[LOCK]
需要说明的是,多个规则(RULE)之间所存在的关系可以包括但不限于:
(1)逻辑与的关系,例如:匹配规则A&&匹配规则B;
(2)逻辑或的关系,例如:匹配规则A||匹配规则B;
(3)逻辑非的关系,例如:!匹配规则A,表示该条规则不能匹配上,取非逻辑。
下面将对每条匹配规则中的各个字段做进一步地详细描述。
PHASE(相当于上述第一字段),即为在网络流程中预先设置的监测点(Hook),其中,PHASE的取值可以为In或者Out,
1.In:远程客户端的HTTP请求;
2. Out:WEB容器处理结束后。准备外发的HTTP响应。
PREACTION(相当于上述第二字段),用于表示规范化预处理,通过配置预处理指令,WAF需要对目标流量数据进行相应地预处理后,再进行规则模式匹配,其中,PREACTION的取值可以包括以下至少之一:
1.base64Decode:2,用来表示对采用base64进行编码的数据进行两次解码;
2.sqlHexDecode:0x414243->ABC,用来表示对采用SQL HEX(十六进制)进行编码的数据进行解码;
3.compressWhitespace,用来表示通过移除空行来实现压缩;
1)0x20、\f、\t、\n、\r、\v、0xa0、%09、%0a、%0b、%0d->spaces:ASCII0x20;
2)multiple consecutive space characters into one;
4.htmlEntityDecode,用来表示将HTML实体化后的字符转换成字符;
5.lowercase,用于表示小写字体;
6.normalisePath,用于表示输出规范格式的路径字符串,其可以包括但不限于以下至少之一:
1)路径分隔符统一化;
2)相对路径绝对化;
3)windows、linux分隔符统一化;
7.removeNulls,用来表示移除所有Null对象;
8.removeCommentsChar,用来表示移除所有表示注释的字符;
1)/*
2)*/
3)--
4)#
9.removeComments,用来表示移除所有的注释;
1)/*...*/
2)--
3)#
10.trim,用来表示移除字符串两端的空白字符或其他预定义字符;
11.urldecode,用来表示对目标对象进行URL解码;
12.unserialize,用来表示从已经存储的表示中创建PHP值;
13.binarydecode,用来表示对二进制流进行解码;
14.UnicodeDecode,用来表示Unicode解码,其可以先将Unicode转化为str,然后再执行解码操作;
VARIABLES(相当于上述第三字段),可以将VARIABLES理解为一个参数集合,例如:ARGS_GET是一个由GETS参数组成的集合,而HOST则是由HOST一个字段组合的单元素集合,而冒号“:”则相当于取集合元素运算符;在VARIABLES这个参数集合中:
1.ARGS可以包括GET、POST、COOKIES、FILES的参数值集合;
1)ARGS,用来表示全部参数值集合;
2)ARGS:p,用来表示参数p值;
3)ARGS|!ARGS:z,用来表示除去参数z的全部参数值集合;
4)ARGS:/^id_/,用来表示所有id_开头的参数值集合;
5)&ARGS,用来表示参数个数;
6)&ARGS:p,用来表示参数p的个数;
2.ARGS_SIZE可以包括GET、POST、COOKIES、FILES的参数值的SIZEs,除去上传文件原始数据的大小;
1)ARGS_SIZE:boundary,用来表示通过multipart/form-data方式上传的POST中的boundary参数值的大小;
2)ARGS_SIZE:filename,用来表示通过multipart/form-data方式上传的POST中的filename参数值的大小;
3.HTTP_LINES,用来表示HTTP请求数据包的行数;
4.ARGS_GET,用来表示GET参数值集合;
5.ARGS_POST,用来表示POST参数值集合;
6.ARGS_COOKIES,用来表示COOKIES参数值集合;
7.ARGS_FILES,用来表示通过multipart/form-data方式传入的FILES参数值集合,其可以包括:name参数和filename参数;
8.ARGS_GET_NAMES,用来表示GET参数名集合;
9.ARGS_POST_NAMES,用来表示POST参数名集合;
10.ARGS_COOKIES_NAMES,用来表示COOKIES参数名集合;
11.ARGS_FILES_NAMES,用来表示FILES参数名集合;
12.ARGS_NAMES可以包括GET、POST、COOKIES、FILES的参数名集合;
13.RAW_GET,用来表示URL GETS字符串;
14.RAW_POST,用来表示POST Body字符串;
15.RAW_COOKIES,用来表示COOKIES字符串;
16.AUTH_TYPE,用来表示HTTP验证方式,例如:Basic;
17.REQUEST_LINE,用来表示HTTP请求的第一行;
18.REQUEST_METHOD,用来表示HTTP的请求方式;
1)GET,用来表示向特定资源发出请求;
2)POST,用来表示向指定资源提交数据进行处理请求;
3)Options,用来表示返回服务器针对特定资源所支持的HTTP请求方法;
4)Head,用来表示向服务器获取与GET请求相一致的响应(获取包含在响应消息头中的元信息);
5)Trace,用来表示回显服务器接收到的请求;
6)Put,用来表示向指定资源位置上传其最新内容;
7)Delete,用来表示删除指定资源;
8)Copy,用来表示基于Web服务器的access log进行流量的实时复制;
9)Move,用来表示对目标资源进行重命名;
10)Lock,用来表示锁定目标资源,禁止其被访问;
11)Unlock,用来表示解锁目标资源,恢复其访问能力;
19.REQUEST_PROTOCOL,用来表示请求的协议版本,其可以包括以下之一:
1)HTTP 0.9;
2)HTTP 1.0;
3)HTTP 1.1;
20.Accept-Charset,可设置或返回一个逗号分隔的列表,其内容是服务器可以接受的字符集;
21.Accept-Language,用来将当前浏览器所支持的语言类型通知给服务器;
22.Expect,用来表示客户端请求服务器端执行的特殊行为;
23.Host,指定请求资源的服务器的域名和端口号,必须表示请求URL的原始服务器或网关的设置;
24.If-Modified-Since,用来记录网页的最后修改时间;
25.If-Range,用来表示如果实体没有发生变化,则将请求端缺失的部分发送至请求端;如果实体已经发生变化,则将整个实体发送至请求端;
26.Max-Forwards,用来限制中间转发到下一个节点的代理或网关的数量;
27.Range,可以请求实体的一个或多个子范围;
28.TE,用来表示客户端愿意接受的传输编码;
29.Accept,用来指定客户端能够接受的内容类型;
30.Accept-Encoding,用来限定接收的应答内容的编码;
31.From,用来表示请求的来源地;
32.If-Match,用来表示请求内容与实体相匹配才有效;
33.If-None-Match,用来触发服务器判断资源是否发生改变;
34.If-Unmodified-Since,用来表示实体在指定时间之后未被修改才请求成功;
35.Proxy-Authorization,用来表示连接到代理的授权证书;
36.Referer,允许客户端指定请求URL的源资源地址;
37.User-Agent,包含发出请求的用户信息;
38.X-Forwarded-For,用来识别通过HTTP代理或者负载均衡连接方式连接到Web服务器的客户端的初始IP地址;
39.X-remote-IP,客户端与服务器进行“握手”时的IP;
40.STREAM_INPUT_BODY:200bytes,用于表示HTTP请求体的字节数,即HTTP的实际数据载荷为200字节;
41.RESPONSE_BODY:200bytes,用于表示HTTP返回资源内容的字节数,即服务器端向客户端返回的实际请求资源内容为200字节。
OPERATOR(相当于上述第四字段),匹配规则中的运算符这一项有两种模式,其分别为数字型运算与字符串型运算,OPERATOR代表该条匹配规则的匹配动作,其可以包括:字符串匹配、数字匹配以及正则匹配。如果能够从外部终端发送至本地的HTTP请求报文中发现携带的内容与本地编写的匹配规则的内容相一致,则可以确定该HTTP请求报文具备攻击特性,故而,应当将该HTTP请求报文阻断。OPERATOR的取值可以包括以下之一:
1.strcontains,用来表示“普通字符串”;
2.regcontains,用来表示“正则表达式”;
3.pmcontains“正则表达式1”“正则表达式2”…“正则表达式n”,用来表示PM多模正则匹配;
4.eq number,用来表示等于number;
5.ge number,用来表示大于或等于number;
6.le number,用来表示小于或等于number;
ACTIONS(相当于上述第五字段),用于按照匹配操作的结果确定对应的处理动作,其中,所执行的动作可以包括以下之一:
1.log,用来表示忽略该请求,但是记录日志;
2.drop,用来表示丢弃该请求,但不返回丢弃该请求的提示信息;
3.denymsg“msg”,用来表示丢弃该请求,返回指定字符串“msg”;
LOCK(相当于上述第六字段),LOCK规则只有在ACTIONS为drop或denymsg时才生效,其具体表示形式如下:
[detect_window,hint_count,lock_window]
其中,detect_window,用来表示在这个时间窗口内,统计该条规则的命中次数;hint_count,用来表示该条规则的命中次数阈值;lock_window,用来表示锁定窗口时间。
如果在detect_window时间窗口中,如果该条规则的命中次数达到了hint_count,则该攻击源IP进入锁定期,且锁定时间为lock_window;如果在锁定期间任意时刻再次命中到该条规则,则锁定时间计数器清零,并且从当前时刻开始,继续锁定lock_window时间。
在一个优选实施例中,假设一条被编写的匹配规则如下:
SecRule In urldecode arg_post strcontains"group+by"deny LOCK:[60,10,3600]
那么,本地终端会检测HTTP请求报文的post body中是否包含(operator动作)“group+by”这个字符串,如果在60秒内累积命中10次,则需要对发送该HTTP请求报文的客户端锁定3600秒,并继续监测该HTTP请求报文的发送端是否会继续发动恶意攻击。
优选地,在步骤S208中,按照匹配结果对HTTP报文执行过滤操作可以包括但不限于以下之一:
处理方式一、在按照预设匹配方式未对参数集合匹配成功的情况下,允许HTTP报文正常通过;
处理方式二、在按照预设匹配方式对参数集合匹配成功且处理动作为忽略HTTP报文的情况下,则对忽略HTTP报文的操作记录日志;
处理方式三、在按照预设匹配方式对参数集合匹配成功且处理动作为丢弃HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
针对相关技术中所采用的主机WAF对HTTP RFC完整协议以及后端WEB容器对HTTP请求报文的特性理解和解析程序不够完整。通过本发明提供的上述优选实施例,提出的解析完整实现了HTTP RFC规范的所有协议字段规定,并且通过综合业内主流的WEB容器(nginx、apache、lighttpd)的HTTP请求报文处理方式,实现了一套完整的参数解析引擎,将接收到的HTTP请求报文进行原子参数粒度的解析,并以此作为下一步规则引擎匹配的数据源。
进一步地,本发明所提供的技术方案在对HTTP报文进行参数解析的基础上,实现了一套面向编程的规则引擎,规则运营人员可以使用编程的思维编写规则,同时本方案实现的多模正则匹配可以有效降低误报的发生概率。而且,本发明所提供的技术方案对入口(In)、出口(Out)流量的全链路过滤检测,进而能够有效地针对WEBSHELL连接、SQL注入、SVN代码泄漏、敏感信息外泄、WEB漏洞进行全方位地防御。
下面以一个实例对本发明上面提到的优选实施方式中从HTTP报文解析至多模正则匹配的实现过程做进一步说明,其具体实现过程如下:
第一步.客户端向服务端发送HTTP请求,具体为:
POST/flow.php?step=update_cart&payload=login HTTP/1.1
Host:${HOST}
Content-Type:application/x-www-form-urlencoded
Content-Length:${AUTO}
goods_number%5B1%27+and+%28select+1+from%28select+count%28*%29%2Cconca
t%28%28select+%28select+%28SELECT+concat%28user_name%2C0x7c%2Cmd5(233333)%
29+FROM+ecs_admin_user+limit+0%2C1%29%29+from+information_schema.tables+li
mit+0%2C1%29%2Cfloor%28rand%280%29*2%29%29x+from+information_schema.tables
+group+by+x%29a%29+and+1%3D1+%23%5D=1&submit=exp
第二步.WAF在网络层netfilter hook监测点截获上述HTTP请求数据包,并旁路镜像出一份HTTP请求数据包;
第三步.WAF根据HTTP RFC规范对镜像出的HTTP请求数据包进行多个维度的解析,并将其解析为如下形式:
METHOD=POST
REQUEST_FILE=/flow.php
ARG_GETS={step=update_cart,payload=login}
Host=${HOST}
Content-Type=application/x-www-form-urlencoded
Content-Length=${AUTO}
ARG_POST={
goods_number={%5B1%27+and+%28select+1+from%28select+
count%28*%29%2Cconcat%28%28select+%28select+%28SELECT+concat%28user_name%2
C0x7c%2Cmd5(233333)%29+FROM+ecs_admin_user+limit+0%2C1%29%29+from+informat
ion_schema.tables+limit+0%2C1%29%2Cfloor%28rand%280%29*2%29%29x+from+infor
mation_schema.tables+group+by+x%29a%29+and+1%3D1+%23%5D=1},submit=exp
}
上述切分结果为一个多维数组。
第四步.根据由配置规则转化的配置文件对解析后得到的结果进行模式匹配,其匹配过程如下:
SecRule In METHOD:POST PREACTION:urldecode ARGS_POST regstr:"((substr|substring)\((concat|concat_ws|group_concat|lower|upper|left|right)\()|((ascii|hex|ord)\(substr)|(length\((trim|replace)\()|((cast|substr|substring|length)\((user|version|database)\()|((asc|locate)\((mid|substr))||COOKIE^^[r]((substr|substring)\((concat|concat_ws|group_concat|lower|upper|left|right)\()|((ascii|hex|ord)\(substr)|(length\((trim|replace)\()|((cast|substr|substring|length)\((user|version|database)\()|((asc|locate)\((mid|substr))"
通过上述匹配过程会发现,如果该HTTP请求的ARG_POST中包含了预先设定的攻击内容,那么便可将当前HTTP请求标记为恶意请求。
第五步.根据由配置规则转化的配置文件中的ACTION动作指令,例如:deny,直接从网络层drop当前TCP数据包,从攻击者的角度而言,其接收到的仅为一个网页请求超时,浏览器返回错误,就此意味着该攻击者所发起的本次攻击失败。
另外,在上述实施例1的运行环境下,本申请还提供了如图3所示的另一种报文的处理方法。图3是根据本发明实施例的另一种报文的处理方法的流程图。如图3所示,该方法可以包括以下处理步骤:
步骤S302:获取HTTP报文;
步骤S304:采用经由可扩展的功能接口接收到的嵌入式脚本生成与HTTP报文的解析方式和配置文件;
步骤S306:按照解析方式对HTTP报文进行解析,并根据配置文件对解析后的HTTP报文进行多模正则匹配;
步骤S308:按照匹配结果对HTTP报文执行过滤操作。
在优选实施过程中,用户可以无需基于RFC 2616规范对HTTP报文进行解析,并依据对HTTP报文进行解析得到的多维数组的维度来确定配置规则所需要包含的匹配规则继而生成配置文件。作为一种可替代的并行处理方式,本地终端或服务器可以向用户开放一个可扩展的功能接口,即,外置Lua脚本规则引擎,向Lua公开HTTP数据包处理接口,由运营人员编写Lua脚本,采用灵活的编程逻辑对HTTP请求进行灵活地扩展和定制处理。通过将Lua作为嵌入式脚本语言,从而可以实现对接收/发送的HTTP数据报文自定义地执行报文解析以及多模正则匹配这些可配置、可扩展的处理操作。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的报文的处理方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述报文的处理方法的一种报文的处理装置,如图4所示,该装置包括:解析模块10,用于对获取到的HTTP报文进行解析,获取解析后的HTTP报文;生成模块20,用于采用经由预定义编程接口接收到的配置规则生成配置文件;匹配模块30,用于根据配置文件对解析后的HTTP报文进行多模正则匹配;处理模块40,用于按照匹配结果对HTTP报文执行过滤操作。
可选地,图5是根据本发明优选实施例的一种报文的处理装置的结构框图。如图5所示,生成模块20包括:接收单元200,用于经由预定义编程接口接收根据解析后的HTTP报文确定的配置规则;生成单元202,用于对配置规则进行二进制转化的编译处理,生成配置文件,并将配置文件加载至内存。
在优选实施过程中,上述配置规则可以包括:多条匹配规则,每条匹配规则至少包括以下字段:
(1)第一字段,用于确定HTTP报文的传输方向;
(2)第二字段,用于通过预先配置的预处理指令对HTTP报文进行多模正则匹配预处理;
(3)第三字段,用于从经过预处理后的HTTP报文中选取待匹配的参数集合;
(4)第四字段,用于按照预设匹配方式参数集合进行匹配操作,其中,预设匹配方式包括以下至少之一:参数集合中是否存在与预设字符串一致的字符串,参数集合中是否存在与预设数字一致的数字,参数集合中是否存在与预设正则表达式一致的正则表达式;
(5)第五字段,用于按照匹配操作的结果确定对应的处理动作。
进一步地,除了上述字段(1)-(5)之外,每条匹配规则还包括如下字段:第六字段,用于在根据从第五字段得到的处理动作确定拒绝或丢弃HTTP报文时,记录在第四字段中得到的匹配结果一致的命中次数,并且如果在预设时间窗口内的命中次数达到预设阈值,则对HTTP报文的发送端进行锁定。
可选地,处理模块40,用于在按照预设匹配方式未对参数集合匹配成功的情况下,允许HTTP报文正常通过;或者,在按照预设匹配方式对参数集合匹配成功且处理动作为忽略HTTP报文的情况下,则对忽略HTTP报文的操作记录日志;或者,在按照预设匹配方式对参数集合匹配成功且处理动作为丢弃HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
根据本发明实施例,还提供了一种用于实施上述另一种报文的处理方法的报文的处理装置,如图6所示,该装置包括:获取模块50,用于获取HTTP报文;生成模块60,用于采用经由可扩展的功能接口接收到的嵌入式脚本生成与HTTP报文的解析方式和配置文件;匹配模块70,用于按照解析方式对HTTP报文进行解析,并根据配置文件对解析后的HTTP报文进行多模正则匹配;处理模块80,用于按照匹配结果对HTTP报文执行过滤操作。
实施例3
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,图7是根据本发明实施例的一种计算机终端的结构框图。如图7所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器以及存储器。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的报文的处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的报文的处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:
S1,对获取到的HTTP报文进行解析,获取解析后的HTTP报文;
S2,采用经由预定义编程接口接收到的与解析后的HTTP报文相适配的配置规则生成配置文件;
S3,根据配置文件对解析后的HTTP报文进行多模正则匹配;
S4,按照匹配结果对HTTP报文执行过滤操作。
可选的,上述处理器还可以执行如下步骤的程序代码:经由预定义编程接口接收根据解析后的HTTP报文确定的配置规则;对配置规则进行二进制转化的编译处理,生成配置文件,并将配置文件加载至内存。
可选的,上述处理器还可以执行如下步骤的程序代码:在按照预设匹配方式未对参数集合匹配成功的情况下,允许HTTP报文正常通过;在按照预设匹配方式对参数集合匹配成功且处理动作为忽略HTTP报文的情况下,则对忽略HTTP报文的操作记录日志;在按照预设匹配方式对参数集合匹配成功且处理动作为丢弃HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
此外,作为一种可替代的方案,处理器也可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:
S1,获取HTTP报文;
S2,采用经由可扩展的功能接口接收到的嵌入式脚本生成与HTTP报文的解析方式和配置文件;
S3,按照解析方式对HTTP报文进行解析,并根据配置文件对解析后的HTTP报文进行多模正则匹配;
S4,按照匹配结果对HTTP报文执行过滤操作。
采用本发明实施例,提供了一种报文的处理方法及装置的方案。对获取到的HTTP报文采用更加细致的解析方式,通过经由预定义编程接口接收到的配置规则所生成的配置文件对解析后的HTTP报文进行多模正则匹配,或者,直接向用户开放可扩展的功能接口,完全通过用户自定义的嵌入式脚本来确定HTTP报文的解析方式和多模正则匹配方式,达到了对HTTP报文进行特性检测的目的,进而解决了相关技术中所提供的基于WAF对HTTP报文进行特征检测的方式缺乏灵活性,易造成对攻击性的HTTP报文的漏报或误报的技术问题。
本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备,当然还可以是一台服务器。图7并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的一种报文的处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,对获取到的HTTP报文进行解析,获取解析后的HTTP报文;
S2,采用经由预定义编程接口接收到的与解析后的HTTP报文相适配的配置规则生成配置文件;
S3,根据配置文件对解析后的HTTP报文进行多模正则匹配;
S4,按照匹配结果对HTTP报文执行过滤操作。
可选地,上述存储介质还可以被设置为存储用于执行以下步骤的程序代码:经由预定义编程接口接收根据解析后的HTTP报文确定的配置规则;对配置规则进行二进制转化的编译处理,生成配置文件,并将配置文件加载至内存。
可选地,上述存储介质还可以被设置为存储用于执行以下步骤的程序代码:在按照预设匹配方式未对参数集合匹配成功的情况下,允许HTTP报文正常通过;在按照预设匹配方式对参数集合匹配成功且处理动作为忽略HTTP报文的情况下,则对忽略HTTP报文的操作记录日志;在按照预设匹配方式对参数集合匹配成功且处理动作为丢弃HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
此外,作为一种可替代的方案,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取HTTP报文;
S2,采用经由可扩展的功能接口接收到的嵌入式脚本生成与HTTP报文的解析方式和配置文件;
S3,按照解析方式对HTTP报文进行解析,并根据配置文件对解析后的HTTP报文进行多模正则匹配;
S4,按照匹配结果对HTTP报文执行过滤操作。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种报文的处理方法,其特征在于,包括:
对获取到的超文本传输协议HTTP报文进行解析,获取解析后的HTTP报文;
采用经由预定义编程接口接收到的与所述解析后的HTTP报文相适配的配置规则生成配置文件;
根据所述配置文件对所述解析后的HTTP报文进行多模正则匹配;
按照匹配结果对所述HTTP报文执行过滤操作。
2.根据权利要求1所述的方法,其特征在于,采用经由所述预定义编程接口接收到的所述配置规则生成所述配置文件包括:
经由预定义编程接口接收根据所述解析后的HTTP报文确定的配置规则;
对所述配置规则进行二进制转化的编译处理,生成所述配置文件,并将所述配置文件加载至内存。
3.根据权利要求1所述的方法,其特征在于,所述配置规则包括:多条匹配规则,每条匹配规则至少包括以下字段:
第一字段,用于确定所述HTTP报文的传输方向;
第二字段,用于通过预先配置的预处理指令对所述HTTP报文进行多模正则匹配预处理;
第三字段,用于从经过预处理后的HTTP报文中选取待匹配的参数集合;
第四字段,用于按照预设匹配方式所述参数集合进行匹配操作,其中,所述预设匹配方式包括以下至少之一:所述参数集合中是否存在与预设字符串一致的字符串,所述参数集合中是否存在与预设数字一致的数字,所述参数集合中是否存在与预设正则表达式一致的正则表达式;
第五字段,用于按照匹配操作的结果确定对应的处理动作。
4.根据权利要求3所述的方法,其特征在于,每条匹配规则还包括如下字段:
第六字段,用于在根据从所述第五字段得到的处理动作确定拒绝或丢弃所述HTTP报文时,记录在所述第四字段中得到的匹配结果一致的命中次数,并且如果在预设时间窗口内的命中次数达到预设阈值,则对所述HTTP报文的发送端进行锁定。
5.根据权利要求4所述的方法,其特征在于,按照匹配结果对所述HTTP报文执行过滤操作包括以下之一:
在按照所述预设匹配方式未对所述参数集合匹配成功的情况下,允许所述HTTP报文正常通过;
在按照所述预设匹配方式对所述参数集合匹配成功且所述处理动作为忽略所述HTTP报文的情况下,则对忽略所述HTTP报文的操作记录日志;
在按照所述预设匹配方式对所述参数集合匹配成功且所述处理动作为丢弃所述HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
6.一种报文的处理方法,其特征在于,包括:
获取超文本传输协议HTTP报文;
采用经由可扩展的功能接口接收到的嵌入式脚本生成与所述HTTP报文的解析方式和配置文件;
按照所述解析方式对所述HTTP报文进行解析,并根据所述配置文件对解析后的HTTP报文进行多模正则匹配;
按照匹配结果对所述HTTP报文执行过滤操作。
7.一种报文的处理装置,其特征在于,包括:
解析模块,用于对获取到的超文本传输协议HTTP报文进行解析,获取解析后的HTTP报文;
生成模块,用于采用经由预定义编程接口接收到的与所述解析后的HTTP报文相适配的配置规则生成配置文件;
匹配模块,用于根据所述配置文件对所述解析后的HTTP报文进行多模正则匹配;
处理模块,用于按照匹配结果对所述HTTP报文执行过滤操作。
8.根据权利要求7所述的装置,其特征在于,所述生成模块包括:
接收单元,用于经由预定义编程接口接收根据所述解析后的HTTP报文确定的配置规则;
生成单元,用于对所述配置规则进行二进制转化的编译处理,生成所述配置文件,并将所述配置文件加载至内存。
9.根据权利要求8所述的装置,其特征在于,所述配置规则包括:多条匹配规则,每条匹配规则至少包括以下字段:
第一字段,用于确定所述HTTP报文的传输方向;
第二字段,用于通过预先配置的预处理指令对所述HTTP报文进行多模正则匹配预处理;
第三字段,用于从经过预处理后的HTTP报文中选取待匹配的参数集合;
第四字段,用于按照预设匹配方式所述参数集合进行匹配操作,其中,所述预设匹配方式包括以下至少之一:所述参数集合中是否存在与预设字符串一致的字符串,所述参数集合中是否存在与预设数字一致的数字,所述参数集合中是否存在与预设正则表达式一致的正则表达式;
第五字段,用于按照匹配操作的结果确定对应的处理动作。
10.根据权利要求9所述的装置,其特征在于,每条匹配规则还包括如下字段:
第六字段,用于在根据从所述第五字段得到的处理动作确定拒绝或丢弃所述HTTP报文时,记录在所述第四字段中得到的匹配结果一致的命中次数,并且如果在预设时间窗口内的命中次数达到预设阈值,则对所述HTTP报文的发送端进行锁定。
11.根据权利要求10所述的装置,其特征在于,所述处理模块,用于在按照所述预设匹配方式未对所述参数集合匹配成功的情况下,允许所述HTTP报文正常通过;或者,在按照所述预设匹配方式对所述参数集合匹配成功且所述处理动作为忽略所述HTTP报文的情况下,则对忽略所述HTTP报文的操作记录日志;或者,在按照所述预设匹配方式对所述参数集合匹配成功且所述处理动作为丢弃所述HTTP报文的情况下,则返回指定内容的信息或不返回任何提示信息。
12.一种报文的处理装置,其特征在于,包括:
获取模块,用于获取超文本传输协议HTTP报文;
生成模块,用于采用经由可扩展的功能接口接收到的嵌入式脚本生成与所述HTTP报文的解析方式和配置文件;
匹配模块,用于按照所述解析方式对所述HTTP报文进行解析,并根据所述配置文件对解析后的HTTP报文进行多模正则匹配;
处理模块,用于按照匹配结果对所述HTTP报文执行过滤操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610070437.1A CN107026821B (zh) | 2016-02-01 | 2016-02-01 | 报文的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610070437.1A CN107026821B (zh) | 2016-02-01 | 2016-02-01 | 报文的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107026821A true CN107026821A (zh) | 2017-08-08 |
CN107026821B CN107026821B (zh) | 2021-06-01 |
Family
ID=59524946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610070437.1A Active CN107026821B (zh) | 2016-02-01 | 2016-02-01 | 报文的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107026821B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835179A (zh) * | 2017-11-14 | 2018-03-23 | 山东超越数控电子股份有限公司 | 一种基于虚拟化容器的应用程序防护方法与装置 |
CN108540453A (zh) * | 2018-03-15 | 2018-09-14 | 新智数字科技有限公司 | 一种应用于PaaS的网络隔离方法、装置以及设备 |
CN109885739A (zh) * | 2019-03-12 | 2019-06-14 | 北京奇虎科技有限公司 | 一种数据处理方法、系统及存储介质 |
WO2019134277A1 (zh) * | 2018-01-02 | 2019-07-11 | 武汉斗鱼网络科技有限公司 | 数据过滤方法、装置、服务器及可读存储介质 |
CN110489391A (zh) * | 2019-07-25 | 2019-11-22 | 深圳壹账通智能科技有限公司 | 一种数据处理方法及相关设备 |
CN110619083A (zh) * | 2019-08-19 | 2019-12-27 | 深圳市鹏海运电子数据交换有限公司 | 数据过滤方法及装置 |
CN110719313A (zh) * | 2019-04-09 | 2020-01-21 | 四川大学 | 一种基于日志会话的Webshell检测方法 |
CN110795084A (zh) * | 2019-11-01 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 生成接口描述文件的方法、装置、设备及可读存储介质 |
WO2020037607A1 (zh) * | 2018-08-23 | 2020-02-27 | 华为技术有限公司 | 一种传输数据的方法和装置 |
CN111917730A (zh) * | 2020-07-10 | 2020-11-10 | 浙江邦盛科技有限公司 | 一种基于http旁路流量的机器行为分析方法 |
CN112187700A (zh) * | 2019-07-02 | 2021-01-05 | 网宿科技股份有限公司 | 一种waf安全规则匹配方法、设备及存储介质 |
CN112187829A (zh) * | 2020-10-21 | 2021-01-05 | 中国工商银行股份有限公司 | 联机交易报文处理方法、装置及系统 |
CN112287201A (zh) * | 2020-12-31 | 2021-01-29 | 北京精准沟通传媒科技股份有限公司 | 对爬虫的请求去重的方法、装置、介质以及电子设备 |
CN113271305A (zh) * | 2021-05-17 | 2021-08-17 | 新华三信息安全技术有限公司 | 一种攻击检测方法、装置及网站应用级入侵防护系统waf |
CN114070761A (zh) * | 2021-11-11 | 2022-02-18 | 北京轨道交通路网管理有限公司 | 协议报文检测方法、其装置及电子设备 |
CN114760374A (zh) * | 2022-03-22 | 2022-07-15 | 中国工商银行股份有限公司 | 报文解析方法、装置、电子设备及介质 |
WO2023082605A1 (zh) * | 2021-11-09 | 2023-05-19 | 北京锐安科技有限公司 | Http报文的提取方法、装置、介质及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100132009A1 (en) * | 2008-11-25 | 2010-05-27 | Prakash Khemani | Systems and Methods for HTTP Callouts for Policies |
CN102141907A (zh) * | 2010-01-28 | 2011-08-03 | 国际商业机器公司 | 向应用的数据库注入数据的方法和设备 |
US20110307490A1 (en) * | 2010-06-15 | 2011-12-15 | Usm China/Hong Kong Limited | Context Level Protocols And Interfaces |
CN102932370A (zh) * | 2012-11-20 | 2013-02-13 | 华为技术有限公司 | 一种安全扫描方法、设备及系统 |
US20140196141A1 (en) * | 2011-05-24 | 2014-07-10 | International Business Machines Corporation | Hierarchical rule development and binding for web application server firewall |
CN104200166A (zh) * | 2014-08-05 | 2014-12-10 | 杭州安恒信息技术有限公司 | 基于脚本的网站漏洞扫描方法和系统 |
CN104348677A (zh) * | 2013-08-05 | 2015-02-11 | 华为技术有限公司 | 一种深度报文检测方法、设备及协处理器 |
CN104954346A (zh) * | 2014-03-31 | 2015-09-30 | 北京奇虎科技有限公司 | 基于对象分析的攻击识别方法及装置 |
-
2016
- 2016-02-01 CN CN201610070437.1A patent/CN107026821B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100132009A1 (en) * | 2008-11-25 | 2010-05-27 | Prakash Khemani | Systems and Methods for HTTP Callouts for Policies |
CN102141907A (zh) * | 2010-01-28 | 2011-08-03 | 国际商业机器公司 | 向应用的数据库注入数据的方法和设备 |
US20110307490A1 (en) * | 2010-06-15 | 2011-12-15 | Usm China/Hong Kong Limited | Context Level Protocols And Interfaces |
US20140196141A1 (en) * | 2011-05-24 | 2014-07-10 | International Business Machines Corporation | Hierarchical rule development and binding for web application server firewall |
CN102932370A (zh) * | 2012-11-20 | 2013-02-13 | 华为技术有限公司 | 一种安全扫描方法、设备及系统 |
CN104348677A (zh) * | 2013-08-05 | 2015-02-11 | 华为技术有限公司 | 一种深度报文检测方法、设备及协处理器 |
CN104954346A (zh) * | 2014-03-31 | 2015-09-30 | 北京奇虎科技有限公司 | 基于对象分析的攻击识别方法及装置 |
CN104200166A (zh) * | 2014-08-05 | 2014-12-10 | 杭州安恒信息技术有限公司 | 基于脚本的网站漏洞扫描方法和系统 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107835179A (zh) * | 2017-11-14 | 2018-03-23 | 山东超越数控电子股份有限公司 | 一种基于虚拟化容器的应用程序防护方法与装置 |
WO2019134277A1 (zh) * | 2018-01-02 | 2019-07-11 | 武汉斗鱼网络科技有限公司 | 数据过滤方法、装置、服务器及可读存储介质 |
CN108540453A (zh) * | 2018-03-15 | 2018-09-14 | 新智数字科技有限公司 | 一种应用于PaaS的网络隔离方法、装置以及设备 |
CN111615819B (zh) * | 2018-08-23 | 2021-06-08 | 华为技术有限公司 | 一种传输数据的方法和装置 |
WO2020037607A1 (zh) * | 2018-08-23 | 2020-02-27 | 华为技术有限公司 | 一种传输数据的方法和装置 |
CN111615819A (zh) * | 2018-08-23 | 2020-09-01 | 华为技术有限公司 | 一种传输数据的方法和装置 |
CN109885739A (zh) * | 2019-03-12 | 2019-06-14 | 北京奇虎科技有限公司 | 一种数据处理方法、系统及存储介质 |
CN109885739B (zh) * | 2019-03-12 | 2021-11-19 | 成都全景智能科技有限公司 | 一种数据处理方法、系统及存储介质 |
CN110719313A (zh) * | 2019-04-09 | 2020-01-21 | 四川大学 | 一种基于日志会话的Webshell检测方法 |
CN112187700A (zh) * | 2019-07-02 | 2021-01-05 | 网宿科技股份有限公司 | 一种waf安全规则匹配方法、设备及存储介质 |
CN110489391A (zh) * | 2019-07-25 | 2019-11-22 | 深圳壹账通智能科技有限公司 | 一种数据处理方法及相关设备 |
CN110489391B (zh) * | 2019-07-25 | 2022-06-28 | 深圳壹账通智能科技有限公司 | 一种数据处理方法及相关设备 |
CN110619083B (zh) * | 2019-08-19 | 2022-04-19 | 深圳市鹏海运电子数据交换有限公司 | 数据过滤方法及装置 |
CN110619083A (zh) * | 2019-08-19 | 2019-12-27 | 深圳市鹏海运电子数据交换有限公司 | 数据过滤方法及装置 |
CN110795084A (zh) * | 2019-11-01 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 生成接口描述文件的方法、装置、设备及可读存储介质 |
CN111917730A (zh) * | 2020-07-10 | 2020-11-10 | 浙江邦盛科技有限公司 | 一种基于http旁路流量的机器行为分析方法 |
CN112187829B (zh) * | 2020-10-21 | 2022-10-11 | 中国工商银行股份有限公司 | 联机交易报文处理方法、装置及系统 |
CN112187829A (zh) * | 2020-10-21 | 2021-01-05 | 中国工商银行股份有限公司 | 联机交易报文处理方法、装置及系统 |
CN112287201A (zh) * | 2020-12-31 | 2021-01-29 | 北京精准沟通传媒科技股份有限公司 | 对爬虫的请求去重的方法、装置、介质以及电子设备 |
CN113271305A (zh) * | 2021-05-17 | 2021-08-17 | 新华三信息安全技术有限公司 | 一种攻击检测方法、装置及网站应用级入侵防护系统waf |
CN113271305B (zh) * | 2021-05-17 | 2022-04-22 | 新华三信息安全技术有限公司 | 一种攻击检测方法、装置及网站应用级入侵防护系统waf |
WO2023082605A1 (zh) * | 2021-11-09 | 2023-05-19 | 北京锐安科技有限公司 | Http报文的提取方法、装置、介质及设备 |
CN114070761A (zh) * | 2021-11-11 | 2022-02-18 | 北京轨道交通路网管理有限公司 | 协议报文检测方法、其装置及电子设备 |
CN114070761B (zh) * | 2021-11-11 | 2023-09-26 | 北京轨道交通路网管理有限公司 | 协议报文检测方法、其装置及电子设备 |
CN114760374A (zh) * | 2022-03-22 | 2022-07-15 | 中国工商银行股份有限公司 | 报文解析方法、装置、电子设备及介质 |
CN114760374B (zh) * | 2022-03-22 | 2023-12-05 | 中国工商银行股份有限公司 | 报文解析方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107026821B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107026821A (zh) | 报文的处理方法及装置 | |
Lima Filho et al. | Smart detection: an online approach for DoS/DDoS attack detection using machine learning | |
US11399288B2 (en) | Method for HTTP-based access point fingerprint and classification using machine learning | |
Eckmann et al. | STATL: An attack language for state-based intrusion detection | |
Faymonville et al. | A stream-based specification language for network monitoring | |
Nykvist et al. | A lightweight portable intrusion detection communication system for auditing applications | |
Sija et al. | A survey of automatic protocol reverse engineering approaches, methods, and tools on the inputs and outputs view | |
CN111488577B (zh) | 一种基于人工智能的模型建立方法和风险评估方法及装置 | |
CN112468520B (zh) | 一种数据检测方法、装置、设备及可读存储介质 | |
Subbarayalu et al. | Hybrid network intrusion detection system for smart environments based on internet of things | |
CN103607385A (zh) | 基于浏览器进行安全检测的方法和装置 | |
US11546295B2 (en) | Industrial control system firewall module | |
CA3159619C (en) | Packet processing method and apparatus, device, and computer-readable storage medium | |
CN110879891B (zh) | 基于web指纹信息的漏洞探测方法及装置 | |
Davis et al. | Automated feature engineering for HTTP tunnel detection | |
CN111222547B (zh) | 一种面向移动应用的流量特征提取方法及系统 | |
CN102123058A (zh) | 一种对网络协议解码器进行测试的测试设备和方法 | |
CN104573520A (zh) | 检测常驻式跨站脚本漏洞的方法和装置 | |
US20190260631A1 (en) | Deployable linear bitwise protocol transfromation | |
Faisal et al. | Modeling Modbus TCP for intrusion detection | |
CN111770097B (zh) | 一种基于白名单的内容锁防火墙方法及系统 | |
Bossert | Exploiting Semantic for the Automatic Reverse Engineering of Communication Protocols. | |
Kebande et al. | Functional requirements for adding digital forensic readiness as a security component in IoT environments | |
CN108199906B (zh) | 一种sdn构架中异常流量处理方法、装置和用户终端 | |
Wang et al. | Smart devices information extraction in home wi‐fi networks |
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 |