CN105635170A - 基于规则对网络数据包进行识别的方法和装置 - Google Patents

基于规则对网络数据包进行识别的方法和装置 Download PDF

Info

Publication number
CN105635170A
CN105635170A CN201610052331.9A CN201610052331A CN105635170A CN 105635170 A CN105635170 A CN 105635170A CN 201610052331 A CN201610052331 A CN 201610052331A CN 105635170 A CN105635170 A CN 105635170A
Authority
CN
China
Prior art keywords
rule
packet
rule set
network packet
network
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
CN201610052331.9A
Other languages
English (en)
Other versions
CN105635170B (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.)
Baolixintong Science And Technology Co ltd Beijing
Original Assignee
Baoli Nine Chapter (beijing) Data 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 Baoli Nine Chapter (beijing) Data Technology Co Ltd filed Critical Baoli Nine Chapter (beijing) Data Technology Co Ltd
Priority to CN201610052331.9A priority Critical patent/CN105635170B/zh
Publication of CN105635170A publication Critical patent/CN105635170A/zh
Application granted granted Critical
Publication of CN105635170B publication Critical patent/CN105635170B/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
    • 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
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了基于规则对网络数据包进行识别的方法,包括步骤:根据第一规则集合构造第二规则集合,其中第一规则集合包括一条或者多条规则,每条规则定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型,第二规则集合包含一条或者多条在第一规则集合中的规则,并且根据网络数据包的预定属性进行分类;对接收的网络数据包进行内容分析,以获取该网络数据包的属性值;在第二规则集合中搜索与该网络数据包的属性值匹配的规则;以及在查找到与该网络数据包的属性值相匹配的规则时,将该网络数据包识别为与该规则相对应的数据包类型。本发明还提供了相应的基于规则对网络数据包进行识别的装置。

Description

基于规则对网络数据包进行识别的方法和装置
技术领域
本发明涉及深度包识别技术领域,尤其是一种基于规则对网络数据包进行识别的方法和装置。
背景技术
传统的网络安全检测是对数据包的结构化头部进行分析。然而随着网络的不断发展,许多病毒、恶意代码、入侵指令、垃圾邮件等信息都隐藏在数据包的内容之中。因此,当前在进行安全检测时,除了要对数据包头部进行检查之外,也要对数据包的内容进行检测,比如基于应用层流量检测的深度包识别技术。
深度包识别技术在网络层、传输层报文分析的基础上,增加了对应用层的分析,即需要识别其他会话层、应用层、表示层报文特征,其特点是识别准确性高。这样比如在应用层面协议识别的基础上,可以对特殊的应用进行流量控制,如针对某些P2P应用进行限流;再如,对网络流量提供更深层次的审计和监控,或者对下一代防火墙的策略制定、过滤等提供支持。
传统的包深度识别(DPI,DeepPacketInspect)一般通过对网络数据包进行解析,提取应用层数据包,并与特征库中的规则进行匹配以实现对应用层协议的识别。基于规则的报文识别有利于协议的扩展,但是随着特征库的规则逐渐增多,将数据包与特征库中毫无规律的规则(特别是一些基于正则的规则)逐个匹配会非常耗时,尤其在高速的网络环境中,包识别的性能会变的很差。又或者在某些特定的企业网络环境中特征库中的协议报文出现的概率极低甚至不会出现,这样就导致了很多无用的规则匹配,浪费了系统资源。因此,需要一种更为有效的基于规则的对网络数据包进行识别的方法,使包深度识别更加高效。
发明内容
为此,本发明提供基于规则对网络数据包进行识别的方法和装置,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了基于规则对网络数据包进行识别的方法,包括步骤:根据第一规则集合构造第二规则集合,其中第一规则集合包括一条或者多条规则,每条规则定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型,并且当网络数据包的属性值和一条规则完全匹配时,则该网络数据包被识别为与该规则相对应的数据包类型,第二规则集合包含一条或者多条在第一规则集合中的规则,并且根据网络数据包的预定属性进行分类;对接收的网络数据包进行内容分析,以获取该网络数据包的属性值;在第二规则集合中搜索与该网络数据包的属性值匹配的规则;以及在查找到与该网络数据包的属性值相匹配的规则时,将该网络数据包识别为与该规则相对应的数据包类型。
可选地,在根据本发明的识别方法中,第二规则集合中的规则根据预定属性而划分为多个子集,并且在第二规则集合中搜索与该网络数据包的属性值匹配的规则的步骤包括:根据预定属性和网络数据包的属性值确定要进行搜索的第二规则集合的子集;以及在子集中搜索与该网络数据包的属性值匹配的规则。
可选地,在根据本发明的识别方法中,根据第一规则集合构造第二规则集合的步骤包括:步骤1:根据预定属性,从第一规则集合中随机选择第一预定个规则进行分类并构造第二规则集合;步骤2:针对所接收的数据包进行内容分析、规则搜索和数据包识别的处理步骤,并统计处理的数据包总数、第二规则集合中每条规则的匹配次数、数据包的识别率;步骤3:每当所处理的数据包总数达到第一预定数量的整数倍时,如果数据包的识别率不高于第一阈值,则从第一规则集合中另外随机选择第二预定个规则、并根据预定属性而分类到第二规则集合中;如果数据包的识别率高于第一阈值,则从第二规则集合中依序删除不超过第二阈值个匹配次数少的规则;利用新构造的第二规则集合,重复上述步骤2和步骤3的处理,直到所处理的数据包达到第二预定数量为止。
可选地,在根据本发明的识别方法中,网络数据包的属性包括:数据链路层类型、数据链路层包头长度、网络层协议类型、网络层包头长度、源IP地址、目的IP地址、传输层协议、传输层包头长度、源端口、目的端口、会话协议、会话中的包序列、应用层数据报文长度、应用层协议数据特征;以及预定属性包括:网络层协议类型、传输层协议、传输层端口。
可选地,在根据本发明的识别方法中,第一预定数量是50000,第二预定数量为5000000。
可选地,在根据本发明的识别方法中,第一阈值是0.15。
可选地,在根据本发明的识别方法中,该识别方法在应用于网络中时,先从网络中选取第二预定数量个网络数据包用于所述根据第一规则集合构造第二规则集合的处理,并随后在同一网络中利用所构造的第二规则集合对后续接收的网络数据包进行所述内容分析、规则搜索和数据包识别的处理步骤。
根据本发明的另一方面,提供了基于规则对网络数据包进行识别的装置,装置包括:存储单元,适于分别存储第一规则集合和第二规则集合,其中第一规则集合包括一条或者多条规则,每条规则定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型,并且当网络数据包的属性值和一条规则完全匹配时,该网络数据包就被识别为与该规则相对应的数据包类型,第二规则集合包含一条或者多条在第一规则集合中的规则,并且根据网络数据包的预定属性进行分类;训练单元,适于根据第一规则集合构造第二规则集合;分析单元,适于对接收的网络数据包进行内容分析,以获取该网络数据包的属性值;识别单元,适于在第二规则集合中搜索与该网络数据包的属性值匹配的规则、还适于在查找到与该网络数据包的属性值相匹配的规则时,将该网络数据包识别为与该规则相对应的数据包类型。
可选地,在根据本发明的识别装置中,存储单元还适于根据预定属性将第二规则集合划分为多个子集;以及识别单元还适于根据预定属性和网络数据包的属性值确定要进行搜索的第二规则集合的子集,并且在子集中搜索与该网络数据包的属性值匹配的规则。
可选地,在根据本发明的识别装置中,训练单元包括:初步构造子单元,适于根据预定属性,从第一规则集合中随机选择第一预定个规则进行分类构造第二规则集合;统计子单元,适于统计处理的数据包总数、第二规则集合中每条规则的匹配次数、和数据包的识别率,还适于当统计到所处理的数据包达到第二预定数量时通知训练子单元停止训练;以及训练子单元,适于当所处理的数据包总数达到第一预定数量的整数倍时,如果数据包的识别率不高于第一阈值,则从第一规则集合中另外随机选择第二预定个规则、并根据预定属性而分类到第二规则集合中;如果数据包的识别率高于第一阈值,则从第二规则集合中依序删除不超过第二阈值个匹配次数少的规则。
可选地,在根据本发明的识别装置中,网络数据包的属性包括:数据链路层类型、数据链路层包头长度、网络层协议类型、网络层包头长度、源IP地址、目的IP地址、传输层协议、传输层包头长度、源端口、目的端口、会话协议、会话中的包序列、应用层数据报文长度、应用层协议数据特征;以及预定属性包括:网络层协议类型、传输层协议、传输层端口。
可选地,在根据本发明的识别装置中,第一预定数量是50000,第二预定数量为5000000。
可选地,在根据本发明的识别装置中,第一阈值是0.15。
可选地,在根据本发明的识别装置中,该识别装置在应用于网络中时,训练单元适于从网络中选取第二预定数量个网络数据包用于根据第一规则集合构造第二规则集合的处理;分析单元和识别单元适于在同一网络中利用所构造的第二规则集合对后续接收的网络数据包分别进行内容分析、规则搜索和数据包识别的处理。
基于上文描述,本方案中设计了2个规则集合,规则集合中的每条规则都定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型。其中,第一规则集合可以包含所有的规则,通过从第一规则集合中选取第一预定个规则构建第二规则集合,并根据网络数据包的预定属性对第二规则集合分类。在正常的网络数据包识别过程中,统计计算处理过的数据包总数、第二规则集合中每条规则的匹配率、数据包的识别率等数据,并基于一定的增减规律将匹配概率低的规则剔除,经过反复的训练提取出最优的匹配规则集合,也就是通过不断的训练将第二规则集合优化。这样,就能显著提高数据包识别的效率。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的基于规则对网络数据包进行识别的方法100的流程图;
图2示出了根据本发明一个实施例的训练过程中的状态机转移图;
图3示出了根据本发明一个实施例的在规则集合中搜索目标节点的对比示意图;以及
图4示出了根据本发明一个实施例的基于规则对网络数据包进行识别的装置400的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于规则对网络数据包进行识别的方法100的流程图。如图1所示,该方法100始于步骤S110,根据第一规则集合构造第二规则集合。
在本实施例中,可以将每一条规则都理解成一个状态空间,每条规则定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型。根据本发明的一种实现方式,网络数据包的属性至少包括以下属性中的一种或多种:
在本方法中,由于需要对特征规则集合进行增减操作,故而设计了两个规则集合。其中,第一规则集合包括一条或者多条上述规则,或者说,第一规则集合中包含了几乎所有的规则,可以理解为传统算法中无序无规则的状态空间。而第二规则集合是由第一规则集合经过训练得到,第二规则集合中包含独立的子集,这些子集是根据网络数据包的预定属性分类得到的。网络数据包的预定属性包括:网络层协议类型layer3.protocol、传输层协议layer4.protocol、传输层端口layer4.port。例如,DHCP和SNMP协议中layer4.protocol都为UDP,那么,根据本方法,就可以把DHCP和SNMP合并到第二规则集合中的一个子集中。
在构造出第二规则集合后,就可以进行后续接收数据包、搜索、匹配的处理过程,以识别数据包类型。
在步骤S120中,对接收的网络数据包进行内容分析,以获取该网络数据包的属性值。
具体地,当数据流量经过主机时,利用开源工具libpcap捕捉数据报文,依次去掉数据包的数据链路层包头、网络层包头、传输层包头并且记录各层匹配时需要的属性数据,最后得到应用层报文layer7.payload。
随后在步骤S130中,在第二规则集合中搜索与该网络数据包的上述属性值匹配的规则。
例如,从步骤S120中获取网络层协议类型layer3.protocol、传输层协议类型layer4.protocol、传输层端口layer4.port(也就是layer4.sp/layer4.dp),先根据layer3.protocol、layer4.protocol、layer4.sp/layer4.dp这些预定属性值确定要进行搜索的第二规则集合的子集;然后在所确定的子集中搜索与该网络数据包的属性值匹配的规则。
例如,可以利用应用层报文layer7.payload与子集中的每一条规则匹配layer7.signature。
又例如,DHCP报文的第236至241字段的值分别为638253633501,那么在DHCP协议的搜索匹配时的伪代码示例如下,其中,y代表子集,Y代表第二规则集合,p代表第二规则集合中的每一条规则:
随后在步骤S140中,在查找到与该网络数据包的属性值相匹配的规则时,将该网络数据包识别为与该规则相对应的数据包类型。
但是,如果只是以经过分类构造出的固定的第二规则集合进行数据包识别的话,实际上只是一种穷举算法,匹配过程还是过于机械,并且在规则集合很大、且不可预测的情况下,识别效率会非常低。故而在本方法100中,在构造第二规则集合时,会利用经验选择最优的匹配规则集合,通过反复训练提取出最优的第二规则集合,以达到提高网络数据包识别性能的目的。
通过第一规则集合构造训练第二规则集合的过程具体阐述如下,如图2,示例性地示出了训练过程的状态机转移图。
首先,步骤1中,根据上述预定属性,从第一规则集合中随机选择第一预定个规则进行分类并构造第二规则集合。这里对第一预定的数目不做限定,可以根据情况随机选择,例如可以选取第一规则集合中的所有规则构建第二规则集合。
然后,当接收到数据包时,在步骤2中,如图2所示,第一次匹配的时候训练模式打开:停止→开始,统计每一次匹配的结果,记录处理的数据包总数total_count、第二规则集合中每条规则的匹配次数match_count。
接着在步骤3中,当所处理的数据包总数total_count达到第一预定数量(例如,设置第一预定数量为N=50000)的整数倍时,训练模式由开始→暂停,计算数据包的识别率:hit_rate=match_count/total_count,将识别率与基准匹配率,也就是第一阈值进行比较,在本实施例中,第一阈值选取0.15。
如果比较结果是数据包的识别率不高于第一阈值,则从第一规则集合中另外随机选择第二预定个规则加入到第二规则集合中,并根据它们的预定属性将其分类到对应的规则子集中;
如果比较结果是数据包的识别率高于第一阈值,则从第二规则集合中删除一部分匹配次数较少的规则,在本实施例中,可以设置第二阈值作为删除数目阈值,按照匹配次数依次删除匹配次数最少的规则,直到达到第二阈值为止。例如在一次匹配中,设置第二阈值为10,即使有很多未匹配的规则,也只删除未匹配的10条规则。
当完成一次对第二规则集合的增减操作后,训练模式由暂停→开始,然后重复步骤2和步骤3的操作处理,直到所处理的数据包达到第二预定数量(例如,选取第二预定数量为M=5000000)时,训练模式进入结束状态,停止训练进入到正常的识别数据包的模式。
应当注意的是,该识别方法100在应用于网络中时,训练第二规则集合的过程(即,步骤1、步骤2、步骤3)和数据包识别的过程(即,步骤S120、S130、S140)是相对独立的。先从网络中选取第二预定数量个网络数据包用于步骤S110中根据第一规则集合构造第二规则集合的处理,随后在同一网络中利用所构造的第二规则集合对后续接收的网络数据包进行步骤S120、S130、S140中内容分析、规则搜索和数据包识别的处理步骤。这样,一方面训练过程和数据包识别过程是相对独立进行的,另一方面,又可以确保训练过程是在和数据包识别过程同样的网络环境中进行的,这样训练出的第二规则集合在包识别过程中会有更好的效果和说服力。
为了进一步说明本方案提高了包识别效率,图3示出了根据本发明一个实施例的在规则集合中搜索目标节点与传统算法中搜索目标节点的对比示意图。假设在第一规则集合和第二规则集合中,都采用红黑树结构存储规则。如图3,第一规则集合为:
{A:guilwars,B:QQ,C:DHCP,D:MapleStory,D:MapleStory,E:TFTP,F:Battlefield,G:SNMP,H:LDAP,I:Whois-DAS}
利用传统的搜索算法,在第一规则集合中搜索到目标节点G的过程如图3(a)和图3(b)所示:图3(a)中采用深度优先算法(DFS),搜索过程是:A→B→F→H→C→D→G;图3(b)中采用广度优先算法(BFS),搜索过程是:A→B→C→D→E→F→G。
而利用本方法,对该第一规则集合经过训练得到第二规则集合,如图3(c)所示:
{UDP:{C:DHCP,E:TFTP,G:SNMP},TCP:{B:QQ,H:LDAP,I:Whois-DAS}}
那么,删除的规则集合为:
{A:guilwars,D:MapleStory,F:Battlefield}
这样,在采用本方法搜索目标节点G的过程就是:C→G,搜索路径明显小于DFS和BFS,尤其当状态空间,即规则集合非常大的情况下,这种差距会更加明显。由此可见,利用本方法,能明显地提升数据包识别的效率。
图4示出了根据本发明一个实施例的基于规则对网络数据包进行识别的装置400的示意图。
如图4所示,装置400包括:存储单元410、训练单元420、分析单元430、以及识别单元440。其中,训练单元420分别与存储单元410、分析单元430、识别单元440相耦接,分析单元430和识别单元440相耦接。
存储单元410适于分别存储第一规则集合和第二规则集合。例如,存储单元410可以包括适于存储第一规则集合的第一存储单元和适于存储第二规则集合的第二存储单元。其中第一规则集合包括一条或者多条规则,每条规则定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型,并且当网络数据包的属性值和一条规则完全匹配时,该网络数据包就被识别为与该规则相对应的数据包类型。
网络数据包的属性包括:数据链路层类型、数据链路层包头长度、网络层协议类型、网络层包头长度、源IP地址、目的IP地址、传输层协议、传输层包头长度、源端口、目的端口、会话协议、会话中的包序列、应用层数据报文长度、应用层协议数据特征。关于上述属性的描述参见基于图1的描述中所提供的表格。
第二规则集合包含一条或者多条在第一规则集合中的规则,并且根据网络数据包的预定属性将第二规则集合分成若干个独立的子集。
可选地,预定属性包括:网络层协议类型、传输层协议、传输层端口。
训练单元420适于根据第一规则集合构造第二规则集合,上文提到在存储单元410中,第二规则集合包含一条或者多条在第一规则集合中的规则,因为第二规则集合是由第一规则集合经过训练得到的。
分析单元430适于对接收的网络数据包进行内容分析,以获取该网络数据包的属性值。可选地,当数据流量经过主机时,利用开源工具libpcap捕捉数据报文,依次去掉数据包的数据链路层包头、网络层包头、传输层包头并且记录各层匹配时需要的属性数据,最后得到应用层报文layer7.payload。
识别单元440适于在经训练单元420训练得到的第二规则集合中搜索与该网络数据包的属性值匹配的规则,还适于在查找到与该网络数据包的属性值相匹配的规则时,将该网络数据包识别为与该规则相对应的数据包类型。具体地,识别单元440适于根据预定属性和网络数据包的属性值确定要进行搜索的第二规则集合的子集,并且在子集中搜索与该网络数据包的属性值匹配的规则。
例如,从分析单元430中获取网络层协议类型layer3.protocol、传输层协议类型layer4.protocol、传输层端口layer4.port(也就是layer4.sp/layer4.dp),先根据layer3.protocol、layer4.protocol、layer4.sp/layer4.dp这些预定属性值确定要进行搜索的第二规则集合的子集;然后在所确定的子集中搜索与该网络数据包的属性值匹配的规则,也就是,利用应用层报文layer7.payload与子集中的每一条规则匹配layer7.signature。
下面将具体介绍训练单元420如何训练第二规则集合。
根据一种实现方式,训练单元420可以包括:初步构造子单元、统计子单元、和训练子单元。
初步构造子单元适于根据预定属性从第一规则集合中随机选择第一预定个规则进行分类构造第二规则集合。
统计子单元适于统计每一次匹配的结果,记录下处理的数据包总数total_count、第二规则集合中每条规则的匹配次数match_count、和数据包的识别率hit_rate,定义数据包的识别率:hit_rate=match_count/total_count。
训练子单元适于当所处理的数据包总数达到第一预定数量的整数倍时,例如,设置第一预定数量为N=50000,那么,当数据包总数达到100000时,比较数据包的识别率与基准匹配率,也就是第一阈值的大小,可选地,根据经验设置第一阈值为0.15。
如果比较结果是:数据包的识别率不高于第一阈值,则从第一规则集合中另外随机选择第二预定个规则加入到第二规则集合中,并根据其预定属性将其对应分类到子集中;
如果比较结果是:数据包的识别率高于第一阈值,则从第二规则集合中依序删除不超过第二阈值个匹配次数少的规则。
训练子单元适于一直重复上述处理过程,直到统计子单元统计到所处理的数据包达到第二预定数量时(例如,达到M=5000000),通知训练子单元,停止训练。
关于训练单元420训练第二规则集合的过程,可以参考如图2所示的状态机作进一步了解。
需要注意的是,该识别装置400在应用于网络中时,训练单元420与分析单元430和识别单元440进行的操作过程相互独立,训练单元420适于从网络中选取第二预定数量个网络数据包用于根据第一规则集合构造第二规则集合的处理;分析单元430和识别单元440适于在同一网络中利用所构造的第二规则集合对后续接收的网络数据包分别进行内容分析、规则搜索和数据包识别的处理。这样做是为了保证在训练过程和数据包识别过程相对独立的情况下,训练过程还是在和数据包识别过程一样的网络环境中进行的,这样训练出的第二规则集合在包识别过程中会有更好的效果和说服力。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
A6、如A1-5中任一项所述的识别方法,其中,第一阈值是0.15。A7、如A1-6中任一个所述的识别方法,其中该识别方法在应用于网络中时,先从网络中选取第二预定数量个网络数据包用于根据第一规则集合构造第二规则集合的处理,并随后在同一网络中利用所构造的第二规则集合对后续接收的网络数据包进行内容分析、规则搜索和数据包识别的处理步骤。
B13、如B8-12中任一项所述的识别装置,其中,第一阈值是0.15。B14、如B8-13中任一项所述的识别装置,其中该识别装置在应用于网络中时,训练单元适于从网络中选取第二预定数量个网络数据包用于所述根据第一规则集合构造第二规则集合的处理;分析单元和识别单元适于在同一网络中利用所构造的第二规则集合对后续接收的网络数据包分别进行内容分析、规则搜索和数据包识别的处理。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.基于规则对网络数据包进行识别的方法,所述方法包括:
根据第一规则集合构造第二规则集合,其中第一规则集合包括一条或者多条规则,每条规则定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型,并且当网络数据包的属性值和一条规则完全匹配时,则该网络数据包被识别为与该规则相对应的数据包类型,第二规则集合包含一条或者多条在第一规则集合中的规则,并且根据网络数据包的预定属性进行分类;
对接收的网络数据包进行内容分析,以获取该网络数据包的属性值;
在所述第二规则集合中搜索与该网络数据包的属性值匹配的规则;以及
在查找到与该网络数据包的属性值相匹配的规则时,将该网络数据包识别为与该规则相对应的数据包类型。
2.如权利要求1所述的识别方法,其中所述第二规则集合中的规则根据所述预定属性而划分为多个子集,并且所述在第二规则集合中搜索与该网络数据包的属性值匹配的规则的步骤包括:
根据所述预定属性和网络数据包的属性值确定要进行搜索的第二规则集合的子集;以及
在所述子集中搜索与该网络数据包的属性值匹配的规则。
3.如权利要求1或者2所述的识别方法,其中所述根据第一规则集合构造第二规则集合的步骤包括:
步骤1:根据所述预定属性,从所述第一规则集合中随机选择第一预定个规则进行分类并构造第二规则集合;
步骤2:针对所接收的数据包进行所述内容分析、规则搜索和数据包识别的处理步骤,并统计处理的数据包总数、第二规则集合中每条规则的匹配次数、数据包的识别率;
步骤3:每当所处理的数据包总数达到第一预定数量的整数倍时,
如果所述数据包的识别率不高于第一阈值,则从所述第一规则集合中另外随机选择第二预定个规则、并根据所述预定属性而分类到所述第二规则集合中;
如果所述数据包的识别率高于第一阈值,则从所述第二规则集合中依序删除不超过第二阈值个匹配次数少的规则;
利用新构造的第二规则集合,重复上述步骤2和步骤3的处理,直到所处理的数据包达到第二预定数量为止。
4.如权利要求1-3中任一项所述的识别方法,其中,
所述网络数据包的属性包括:数据链路层类型、数据链路层包头长度、网络层协议类型、网络层包头长度、源IP地址、目的IP地址、传输层协议、传输层包头长度、源端口、目的端口、会话协议、会话中的包序列、应用层数据报文长度、应用层协议数据特征;以及
所述预定属性包括:网络层协议类型、传输层协议、传输层端口。
5.如权利要求1-4中任一项所述的识别方法,其中,
所述第一预定数量是50000,第二预定数量为5000000。
6.基于规则对网络数据包进行识别的装置,所述装置包括:
存储单元,适于分别存储第一规则集合和第二规则集合,其中第一规则集合包括一条或者多条规则,每条规则定义了网络数据包的多个属性中的一个或者多个属性的取值以及相对应的数据包类型,并且当网络数据包的属性值和一条规则完全匹配时,该网络数据包就被识别为与该规则相对应的数据包类型,第二规则集合包含一条或者多条在第一规则集合中的规则,并且根据网络数据包的预定属性进行分类;
训练单元,适于根据第一规则集合构造第二规则集合;
分析单元,适于对接收的网络数据包进行内容分析,以获取该网络数据包的属性值;
识别单元,适于在所述第二规则集合中搜索与该网络数据包的属性值匹配的规则、还适于在查找到与该网络数据包的属性值相匹配的规则时,将该网络数据包识别为与该规则相对应的数据包类型。
7.如权利要求6所述的识别装置,其中,
所述存储单元还适于根据所述预定属性将第二规则集合划分为多个子集;以及
所述识别单元还适于根据所述预定属性和网络数据包的属性值确定要进行搜索的第二规则集合的子集,并且在所述子集中搜索与该网络数据包的属性值匹配的规则。
8.如权利要求6或7所述的识别装置,其中所述训练单元包括:
初步构造子单元,适于根据所述预定属性,从所述第一规则集合中随机选择第一预定个规则进行分类构造第二规则集合;
统计子单元,适于统计处理的数据包总数、第二规则集合中每条规则的匹配次数、和数据包的识别率,还适于当统计到所处理的数据包达到第二预定数量时通知训练子单元停止训练;以及
训练子单元,适于当所处理的数据包总数达到第一预定数量的整数倍时,
如果所述数据包的识别率不高于第一阈值,则从所述第一规则集合中另外随机选择第二预定个规则、并根据所述预定属性而分类到所述第二规则集合中;
如果所述数据包的识别率高于第一阈值,则从所述第二规则集合中依序删除不超过第二阈值个匹配次数少的规则。
9.如权利要求6-8中任一项所述的识别装置,其中,
所述网络数据包的属性包括:数据链路层类型、数据链路层包头长度、网络层协议类型、网络层包头长度、源IP地址、目的IP地址、传输层协议、传输层包头长度、源端口、目的端口、会话协议、会话中的包序列、应用层数据报文长度、应用层协议数据特征;以及
所述预定属性包括:网络层协议类型、传输层协议、传输层端口。
10.如权利要求6-9中任一项所述的识别装置,其中,
所述第一预定数量是50000,第二预定数量为5000000。
CN201610052331.9A 2016-01-26 2016-01-26 基于规则对网络数据包进行识别的方法和装置 Expired - Fee Related CN105635170B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610052331.9A CN105635170B (zh) 2016-01-26 2016-01-26 基于规则对网络数据包进行识别的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610052331.9A CN105635170B (zh) 2016-01-26 2016-01-26 基于规则对网络数据包进行识别的方法和装置

Publications (2)

Publication Number Publication Date
CN105635170A true CN105635170A (zh) 2016-06-01
CN105635170B CN105635170B (zh) 2018-12-18

Family

ID=56049659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610052331.9A Expired - Fee Related CN105635170B (zh) 2016-01-26 2016-01-26 基于规则对网络数据包进行识别的方法和装置

Country Status (1)

Country Link
CN (1) CN105635170B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107645502A (zh) * 2017-09-20 2018-01-30 新华三信息安全技术有限公司 一种报文检测方法及装置
CN108696369A (zh) * 2017-04-06 2018-10-23 华为技术有限公司 一种告警信息处理设备及方法
CN110224995A (zh) * 2019-05-17 2019-09-10 南京聚铭网络科技有限公司 一种高效多功能包深度识别方法
CN112769713A (zh) * 2020-12-31 2021-05-07 北京赛思信安技术股份有限公司 一种基于多个匹配引擎的结果加权的https流量应用分类方法
CN112994931A (zh) * 2021-02-05 2021-06-18 绿盟科技集团股份有限公司 一种规则匹配的方法及其设备
CN112995362A (zh) * 2021-05-11 2021-06-18 长扬科技(北京)有限公司 一种数据包和协议规则的匹配方法和装置
CN113992364A (zh) * 2021-10-15 2022-01-28 湖南恒茂高科股份有限公司 一种网络数据包阻断优化方法以及系统
CN113992364B (zh) * 2021-10-15 2024-06-07 湖南恒茂高科股份有限公司 一种网络数据包阻断优化方法以及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148803A (zh) * 2010-02-04 2011-08-10 华为技术有限公司 一种报文匹配方法和设备
CN102394827A (zh) * 2011-11-09 2012-03-28 浙江万里学院 互联网流量分级分类方法
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN102868571A (zh) * 2012-08-07 2013-01-09 华为技术有限公司 一种规则匹配方法和装置
EP2800306A1 (en) * 2013-02-27 2014-11-05 Huawei Technologies Co., Ltd. Rule set arrangement processing method and apparatus, and trunking data system
CN105162626A (zh) * 2015-08-20 2015-12-16 西安工程大学 基于众核处理器的网络流量深度识别系统及识别方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148803A (zh) * 2010-02-04 2011-08-10 华为技术有限公司 一种报文匹配方法和设备
CN102394827A (zh) * 2011-11-09 2012-03-28 浙江万里学院 互联网流量分级分类方法
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN102868571A (zh) * 2012-08-07 2013-01-09 华为技术有限公司 一种规则匹配方法和装置
EP2800306A1 (en) * 2013-02-27 2014-11-05 Huawei Technologies Co., Ltd. Rule set arrangement processing method and apparatus, and trunking data system
CN105162626A (zh) * 2015-08-20 2015-12-16 西安工程大学 基于众核处理器的网络流量深度识别系统及识别方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108696369A (zh) * 2017-04-06 2018-10-23 华为技术有限公司 一种告警信息处理设备及方法
CN107645502A (zh) * 2017-09-20 2018-01-30 新华三信息安全技术有限公司 一种报文检测方法及装置
CN110224995A (zh) * 2019-05-17 2019-09-10 南京聚铭网络科技有限公司 一种高效多功能包深度识别方法
CN112769713A (zh) * 2020-12-31 2021-05-07 北京赛思信安技术股份有限公司 一种基于多个匹配引擎的结果加权的https流量应用分类方法
CN112769713B (zh) * 2020-12-31 2021-11-09 北京赛思信安技术股份有限公司 一种基于多个匹配引擎的结果加权的https流量应用分类方法
CN112994931A (zh) * 2021-02-05 2021-06-18 绿盟科技集团股份有限公司 一种规则匹配的方法及其设备
CN112994931B (zh) * 2021-02-05 2023-01-17 绿盟科技集团股份有限公司 一种规则匹配的方法及其设备
CN112995362A (zh) * 2021-05-11 2021-06-18 长扬科技(北京)有限公司 一种数据包和协议规则的匹配方法和装置
CN112995362B (zh) * 2021-05-11 2021-08-10 长扬科技(北京)有限公司 一种数据包和协议规则的匹配方法和装置
CN113992364A (zh) * 2021-10-15 2022-01-28 湖南恒茂高科股份有限公司 一种网络数据包阻断优化方法以及系统
CN113992364B (zh) * 2021-10-15 2024-06-07 湖南恒茂高科股份有限公司 一种网络数据包阻断优化方法以及系统

Also Published As

Publication number Publication date
CN105635170B (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
CN105635170A (zh) 基于规则对网络数据包进行识别的方法和装置
US9275224B2 (en) Apparatus and method for improving detection performance of intrusion detection system
Tongaonkar et al. Towards self adaptive network traffic classification
EP2434689B1 (en) Method and apparatus for detecting message
CN109117634B (zh) 基于网络流量多视图融合的恶意软件检测方法及系统
US8065722B2 (en) Semantically-aware network intrusion signature generator
US7802009B2 (en) Automatic reverse engineering of message formats from network traces
Sija et al. A survey of automatic protocol reverse engineering approaches, methods, and tools on the inputs and outputs view
CN109450721B (zh) 一种基于深度神经网络的网络异常行为识别方法
CN108965248B (zh) 一种基于流量分析的p2p僵尸网络检测系统及方法
EP3948604B1 (en) Computer security
CN107370752B (zh) 一种高效的远控木马检测方法
CN112702235B (zh) 一种对未知协议自动化逆向分析的方法
CN112800424A (zh) 一种基于随机森林的僵尸网络恶意流量监测方法
CN113821793A (zh) 一种基于图卷积神经网络的多阶段攻击场景构建方法及系统
US11477225B2 (en) Pre-emptive computer security
CN112054992B (zh) 恶意流量识别方法、装置、电子设备及存储介质
Weng et al. Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system
Shim et al. SigBox: Automatic Signature Generation Method for Fine-Grained Traffic Identification.
KR101648033B1 (ko) 공격 패턴이 존재하지 않는 공격 시그니처 기반의 침입 탐지 방법 및 그를 위한 장치
Wang et al. Efficient mining of the multidimensional traffic cluster hierarchy for digesting, visualization, and anomaly identification
CN104468601A (zh) 一种p2p蠕虫检测系统及方法
Rana et al. Automated fast-flux detection using machine learning and genetic algorithms
Mahajan et al. Performance evaluation of different pattern matching algorithms of snort
Singh Use of machine learning for securing IoT

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
PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20190724

Granted publication date: 20181218

PD01 Discharge of preservation of patent

Date of cancellation: 20200416

Granted publication date: 20181218

PD01 Discharge of preservation of patent
TR01 Transfer of patent right

Effective date of registration: 20200527

Address after: Room 101 and 102, floor 1, building 103, No. 3, minzhuang Road, Haidian District, Beijing 100195

Patentee after: Baolixintong Science and Technology Co.,Ltd. Beijing

Address before: 100086, A, building 1, building 48, No. 3 West Third Ring Road, Haidian District, Beijing, 23E

Patentee before: POLY DATA (BEIJING) DATA TECHNOLOGY Co.,Ltd.

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

Granted publication date: 20181218

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