CN106067876A - 一种基于模式匹配的http请求报文识别方法 - Google Patents

一种基于模式匹配的http请求报文识别方法 Download PDF

Info

Publication number
CN106067876A
CN106067876A CN201610359306.5A CN201610359306A CN106067876A CN 106067876 A CN106067876 A CN 106067876A CN 201610359306 A CN201610359306 A CN 201610359306A CN 106067876 A CN106067876 A CN 106067876A
Authority
CN
China
Prior art keywords
http request
request message
field
expression formula
match
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
Application number
CN201610359306.5A
Other languages
English (en)
Other versions
CN106067876B (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.)
Chengdu Guangda Hengji Communication Technology Co., Ltd
Original Assignee
Chengdu Guangda New Network Technology Co Ltd
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 Chengdu Guangda New Network Technology Co Ltd filed Critical Chengdu Guangda New Network Technology Co Ltd
Priority to CN201610359306.5A priority Critical patent/CN106067876B/zh
Publication of CN106067876A publication Critical patent/CN106067876A/zh
Application granted granted Critical
Publication of CN106067876B publication Critical patent/CN106067876B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于模式匹配的HTTP请求报文识别方法,该方法将HTTP请求报文进行分类,利用表达式组对HTTP请求报文包含的3个重要字段:GET、Host、Referer分别GET、Host、Referer算法匹配,当GET、Host、Referer三个字段都成功匹配后,认为HTTP请求报文匹配成功,并将其识别为一种分类。该方法专用于HTTP请求报文的识别,充分考虑程序处理效率的情况下,满足“HTTP请求报文识别”的灵活性,识别精确,如果需要提高精确性,可将GET匹配算法应用到其它字段。

Description

一种基于模式匹配的HTTP请求报文识别方法
技术领域
本发明属于数据包识别领域,尤其涉及到一种基于模式匹配的HTTP请求报文识别方法。
背景技术
在项目应用环境下,技术人员需要对流经设备的HTTP报文中的请求报文进行快速的识别、查询。同时,必须注意到以下几点:
1.由于请求报文的多样性,识别方法必须具有一定的灵活性。
2.为提高系统处理能力,识别效率必须尽量提升。
3.为提高系统处理能力,查询必须高效。
常规的方法是使用正规表达式来进行匹配,但正规表达式存在过于庞大、效率较低的情况,所以并不适用于要求效率的项目环境。
发明内容
为解决上述问题,本发明提出了一种基于模式匹配的HTTP请求报文识别方法,所述HTTP请求报文包括GET、Host、Referer三个字段,所述方法包括如下步骤:
步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组,每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式。
步骤二:选中一条待识别HTTP请求报文,进行如下操作:
S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组。
S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1。
S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1。
S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1。
S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文。
步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。
2. 如权利要求1所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,GET匹配算法包括的逻辑操作有or、^、and。
3. 如权利要求1或2所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,每个表达式组还包括HASH运算表达式,HASH运算算法具有三种操作符,分别为>、<、FileName,分别用于从左到右边截取GET字段字符串、从右到左边截取GET字段字符串、截取GET字段中的文件名。
4.如权利要求3所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值。
附图说明
图1为实例举例列表。
具体实施方式
本发明的设计构思为:将HTTP请求报文进行分类,利用表达式组对HTTP请求报文包含的3个重要字段:GET、Host、Referer分别GET、Host、Referer算法匹配,当GET、Host、Referer三个字段都成功匹配后,认为HTTP请求报文匹配成功,并将其识别为一种分类。
在对详细步骤进行说明前,对本发明涉及到的算法进行说明。
1. GET匹配算法
GET匹配为多模匹配,其分为操作逻辑、模式串两部份。
操作逻辑有两种:与(and)、或(or),表明了模式串的操作逻辑。
模式串:以空格为分隔的几个字符串,字符串前的非(^)符号,表示不能匹配该串。
下面对不同操作逻辑的情况进行说明。
a.操作逻辑是or(或)时:
没有^(非)逻辑的:字符串A 字符串B 字符串C
GET字段中,包含A或包含B或包含C,匹配成功。
包括^(非)逻辑的:^字符串A 字符串B 字符串C
GET字段中,不包含A,但包含B或包含C,匹配成功。
b.操作逻辑是and(与)的:
没有^(非)逻辑的:字符串A 字符串B 字符串C
GET字段中,包含A且包含B且包含C,匹配成功。
c.包括^(非)逻辑的:^字符串A 字符串B 字符串C
GET字段中,不包含A,但包含B且包含C,匹配成功。
2. Referer匹配算法
Referer匹配算法用于对Referer字段进行单模匹配。
3. Host匹配算法
Host匹配算法用于对Host字段进行单模匹配。
4. HASH算法
用于从GET字段中截取关键字符串,作为进行HASH运算的部分字段,HASH运算具有三种操作符,分别为>、<、FileName,作用分别如下:
>:从左至右运算,截取从左边字符串到右边字符串之间的内容,作为备HASH字符串。
<:从右至左运算,截取从右边字符串到左边字符串之间的内容,作为备HASH字符串。
FileName:截取GET字段中包含的文件名,作为备HASH字符串。HASH算法将取到的“分类名”和“备HASH字符串”进行字符串拼接,之后进行HASH化,计算为HASH值,备后期查询。
下面对本发明的工作步骤进行说明。
本发明包括如下步骤:
步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组(可为多个,因为一种分类下很可能含有若干种同源但不相同的HTTP请求包,需要分别有对应的表达式组进行匹配),每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式。
步骤二:选中一条待识别HTTP请求报文,进行如下操作:
S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组;
S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1;
S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1;
S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1;
S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文;
步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。
在上述方法的基础上,本发明还有进一步的优化方案。即每个表达式组还包括HASH运算表达式,在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值,备后期查询。
下面结合图1的应用实例对本发明进行说明。
步骤一:接收到一个淘宝jpg图片的HTTP请求报文,该报文Host: www.tbcdn.cn。
步骤二:先将请求报文解释为HTTP字段,包括:Host、Referer、GET。
步骤三:用Host匹配算法,对Host字段进行匹配,如匹配失败则继续匹配下一条接收到的请求报文。如匹配成功则执行步骤四。
步骤四:用Referer匹配算法,对Referer字段进行匹配。匹配规则为空,视为匹配成功:进入下一步。
步骤五:用Get匹配算法,匹配GET字段。GET中,包含.jpg或者.png字符串的,视为匹配成功,进入步骤六。
步骤六:将该请求报文识别为分类“taobao”。
步骤七:根据HASH算法,将该请求报文中的请求文件名提取出来。
步骤八:根据六、步骤七的结果生成“taobao>文件名”的字符串,然后将该串进行HASH,得到的HASH值,作为该请求的唯一查询码。
本发明与现有正则表达式方法相比,实现了如下有益效果:
1.有针对性,专用于HTTP请求报文的识别。
2.充分考虑程序处理效率的情况下,满足“HTTP请求报文识别”的灵活性。针对HTTP请求的特点,采用自定义的表达式进行识别,一方面避免了正规表达式过于庞大,程序处理效率低的问题。一方面又可以满足目前HTTP请求报文识别的所有需求。
3.扩展灵活,随时支持除Host、Referer、GET外其它字段。例如:需要匹配HTTP协议的User-Agent字段,可以直接添加一个User-Agent匹配算法。
4.识别精确,如果需要提高精确性,可将GET匹配算法应用到其它字段。例如:需要精确匹配HTTP协议的User-Agent字段,可以直接添加一个User-Agent匹配算法,并完全采用GET匹配算法的“操作逻辑”“模式串”。
5.结构简单,表达方式简单。
6.高执行效率,针对程序算法进行优化,执行效率高。
7.高查询效率,将HTTP请求报文按算法进行HASH化,查询效率高。

Claims (4)

1.一种基于模式匹配的HTTP请求报文识别方法,所述HTTP请求报文包括GET、Host、Referer三个字段,其特征在于,所述方法包括如下步骤:
步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组,每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式;
步骤二:选中一条待识别HTTP请求报文,进行如下操作:
S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组;
S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1;
S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1;
S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1;
S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文;
步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。
2.如权利要求1所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,GET匹配算法包括的逻辑操作有or、^、and。
3.如权利要求1或2所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,每个表达式组还包括HASH运算表达式,HASH运算算法具有三种操作符,分别为>、<、FileName,分别用于从左到右边截取GET字段字符串、从右到左边截取GET字段字符串、截取GET字段中的文件名。
4.如权利要求3所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值。
CN201610359306.5A 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法 Expired - Fee Related CN106067876B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610359306.5A CN106067876B (zh) 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610359306.5A CN106067876B (zh) 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法

Publications (2)

Publication Number Publication Date
CN106067876A true CN106067876A (zh) 2016-11-02
CN106067876B CN106067876B (zh) 2019-08-16

Family

ID=57420936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610359306.5A Expired - Fee Related CN106067876B (zh) 2016-05-27 2016-05-27 一种基于模式匹配的http请求报文识别方法

Country Status (1)

Country Link
CN (1) CN106067876B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650454A (zh) * 2017-01-03 2017-05-10 郑州云海信息技术有限公司 一种sql注入攻击检测方法和装置
CN109857958A (zh) * 2019-02-13 2019-06-07 杭州孝道科技有限公司 一种http输入点查找的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158499A (zh) * 2011-06-02 2011-08-17 国家计算机病毒应急处理中心 基于http流量分析的挂马网站检测方法
CN102870116A (zh) * 2012-06-30 2013-01-09 华为技术有限公司 内容匹配方法和装置
CN103986606A (zh) * 2014-05-27 2014-08-13 重庆邮电大学 一种基于MapReduce算法的并行识别、统计网页URL的方法
CN104135507A (zh) * 2014-06-30 2014-11-05 北京奇艺世纪科技有限公司 一种防盗链的方法和装置
CN104239353A (zh) * 2013-06-20 2014-12-24 上海博达数据通信有限公司 一种web分类控制和日志审计的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158499A (zh) * 2011-06-02 2011-08-17 国家计算机病毒应急处理中心 基于http流量分析的挂马网站检测方法
CN102870116A (zh) * 2012-06-30 2013-01-09 华为技术有限公司 内容匹配方法和装置
CN104239353A (zh) * 2013-06-20 2014-12-24 上海博达数据通信有限公司 一种web分类控制和日志审计的方法
CN103986606A (zh) * 2014-05-27 2014-08-13 重庆邮电大学 一种基于MapReduce算法的并行识别、统计网页URL的方法
CN104135507A (zh) * 2014-06-30 2014-11-05 北京奇艺世纪科技有限公司 一种防盗链的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650454A (zh) * 2017-01-03 2017-05-10 郑州云海信息技术有限公司 一种sql注入攻击检测方法和装置
CN109857958A (zh) * 2019-02-13 2019-06-07 杭州孝道科技有限公司 一种http输入点查找的方法

Also Published As

Publication number Publication date
CN106067876B (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
US11211943B2 (en) Hybrid comparison for unicode text strings consisting primarily of ASCII characters
US9003529B2 (en) Apparatus and method for identifying related code variants in binaries
US9990583B2 (en) Match engine for detection of multi-pattern rules
CN104598815B (zh) 恶意广告程序的识别方法、装置及客户端
CN103733590A (zh) 用于正则表达式的编译器
CN104580027A (zh) 一种OpenFlow报文转发方法及设备
CN101848248B (zh) 一种规则查找方法和装置
Harichandran et al. Bytewise approximate matching: the good, the bad, and the unknown
CN106126383A (zh) 一种日志处理方法和装置
CN106067876A (zh) 一种基于模式匹配的http请求报文识别方法
CN105447342B (zh) 脚本加密方法、解密方法及引擎
CN110069489B (zh) 一种信息处理方法、装置、设备及计算机可读存储介质
CN105930104B (zh) 数据存储方法和装置
JP2018101393A (ja) 問い合わせ内容に基づくデータ生成方法及び装置
Liu et al. Malware detection method based on image analysis and generative adversarial networks
CN107644029A (zh) 信息查询方法及信息查询装置
US8281000B1 (en) Variable-length nonce generation
US20200356343A1 (en) Multipattern regular expression search systems and methods therefor
CN103853796B (zh) 数据插入方法和装置
Zhang et al. D-GSPerturb: A distributed social privacy protection algorithm based on graph structure perturbation
US20240168740A1 (en) Input driven execution randomisation
WO2012094054A1 (en) Translation of universal plug and play search criteria
Zhao et al. Select and sort extensions for the service location protocol (SLP)
CN102387050A (zh) 一种利用自动机实现报文深度检测的系统和方法
Zhao et al. RFC3421: Select and Sort Extensions for the Service Location Protocol (SLP)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200807

Address after: Floor 2, No.16, Gaopeng Avenue, high tech Zone, Chengdu, Sichuan 610000

Patentee after: Chengdu Guangda Hengji Communication Technology Co., Ltd

Address before: 610041 building four, building two, Shiyang Industrial Park, five village, Shiyang village, fifty-five village, Chengdu hi tech Zone, Sichuan, Qingyun

Patentee before: CHENGDU GUANGDA NEW NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190816

Termination date: 20200527

CF01 Termination of patent right due to non-payment of annual fee