CN100429617C - 一种自动协议识别方法及系统 - Google Patents

一种自动协议识别方法及系统 Download PDF

Info

Publication number
CN100429617C
CN100429617C CNB2006100804535A CN200610080453A CN100429617C CN 100429617 C CN100429617 C CN 100429617C CN B2006100804535 A CNB2006100804535 A CN B2006100804535A CN 200610080453 A CN200610080453 A CN 200610080453A CN 100429617 C CN100429617 C CN 100429617C
Authority
CN
China
Prior art keywords
protocol
agreement
fingerprint
type
sample
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.)
Expired - Fee Related
Application number
CNB2006100804535A
Other languages
English (en)
Other versions
CN1845066A (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 Venus Information Security Technology Co Ltd
Beijing Venus Information Technology Co Ltd
Original Assignee
BEIJING QIMING XINGCHEN INFORMATION 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 BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY Co Ltd
Priority to CNB2006100804535A priority Critical patent/CN100429617C/zh
Publication of CN1845066A publication Critical patent/CN1845066A/zh
Application granted granted Critical
Publication of CN100429617C publication Critical patent/CN100429617C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及可用于入侵检测防御(IDS/IPS)产品中的一种自动协议识别方法及系统。能够在网络协议通信初期根据前期报文特征自动识别所属协议类型,并采用协议验证规则进一步验证协议识别结果正确性。本方法包括前期协议样本特征提取和在线协议识别两个阶段,其中,所述的协议样本特征提取阶段包括协议类型样本的协议指纹提取和相应协议验证规则建立过程方法,协议识别阶段包括协议指纹快速匹配和协议识别结果快速验证等过程方法。基于本方法实现的协议识别系统包括协议样本特征库、协议指纹匹配引擎和协议验证引擎三部分,其中,协议指纹匹配引擎基于快速哈希表方法实现,协议验证引擎基于高效率虚拟机模型实现。

Description

一种自动协议识别方法及系统
技术领域
本发明涉及一种可用于入侵检测防御(IDS/IPS)产品中的自动协议识别方法及系统,它依据网络数据流中报文特征智能地识别出其所属协议类别,属于网络技术领域。
背景技术
入侵检测/防御系统(Intrusion Detection/Protection System,IDS/IPS)作为网络安全防护的重要手段,通常部署在关键网络内部/网络边界入口处,实时捕获网络内或进出网络的报文数据流并进行智能综合分析,发现可能的入侵行为并进行实时阻断。应用层协议深层解析技术在当前主流IDS/IPS产品中被广泛采用,可用来实现基于协议攻击特征和协议异常的入侵检测。目前多数IDS/IPS产品都基于端口映射表来判别网络报文所属协议类型,比如,如发现捕获的网络报文中源/目端口为80,则认为它为HTTP(Hypertext TransferProtocol)协议报文,则将该报文交给HTTP协议分析引擎进行协议解码和入侵检测。通常这种端口映射表在IDS/IPS产品出厂时已确定,但允许管理员修改以适应实际环境的需要。近年来,出现了一批新型的网络协议,包括SIP(SessionInitiation Protocol)和P2P(Peer to peer protocol)协议等,它们并不采用固定协议端口,而是在协议运行过程中动态协商端口;此外,目前各种木马、间谍软件为躲避IDS/IPS产品的入侵检测都采用了一些特殊的处理方式,主要表现为:1)并不使用固定通信端口进行通信;2)采用公知端口进行私有协议通信(比如80端口);3)采用隧道技术进行私有协议通信(比如HTTP隧道技术)。在这种情况下,IDS/IPS产品无法根据端口映射表来正确识别报文所属协议类型,而需要根据网络报文特征智能识别报文所属协议类别,否则,IDS/IPS产品将产生大量的误报或漏报。因此,有必须发展不单纯依赖于协议端口的智能协议识别技术,以减少IDS/IPS产品的误报或漏报。并且,该智能协议识别技术必须满足以下要求:
智能地根据报文特征自动识别报文所属协议类型,而不单纯依赖于端口映射表;
尽可能依据协议数据流早期报文特征快速识别出所属协议类型,以尽早进行协议解码分析和入侵检测目的;
具有非常高的协议识别效率,算法实现尽可能简单;
方法通用性强,支持几乎所有协议,并要求协议识别结果准确率高。
发明内容
为了克服现有技术的不足,本发明提供一种自动协议识别方法及系统。
本发明解决其技术问题所采用的技术方案是:
一种自动协议识别方法,包括协议样本特征提取和协议识别两个阶段步骤,其中,所述的协议样本特征提取阶段步骤包括协议类型样本的协议指纹提取和相应协议验证规则建立,协议识别阶段步骤包括协议指纹快速匹配和协议识别结果快速验证。
协议识别方法之协议样本特征提取阶段,其中所述的协议指纹提取方法有如下步骤:
对于文本命令类型协议样本,用{命令+参数}或{状态码+参数}格式描述,直接提取协议样本中命令和状态码作为协议指纹;
对于固定报头类型协议样本,将固定报头中所含字段类型分为静态字段和动态字段类型,寻找尽可能多的连续静态类型字段,并将其取值组合定义为该类型协议指纹。
对于其它无固定格式类型协议样本,寻找可以标识该协议样本服务类型的单词作为协议指纹。
协议样本特征提取阶段,其中所述的协议验证规则建立方法具有如下步骤:
提取协议样本中除协议指纹之外其它特征作为该类型协议样本的协议验证规则,包括可进一步标识协议样本类型的字段、单词或者其它要求协议消息满足的规范等。
采用控制流图(CFG)的步骤,描述为某类型协议样本建立的协议验证规则集,在CFG图中:存在TRUE和FALSE两个特殊节点,其中FALSE节点只有一个,而TRUE节点可以有多个;除TRUE和FALSE节点外,CFG中每一个节点表示一条协议验证规则(布尔逻辑),其执行结果为真或假;CFG中每一条有向边表明当有向边源节点执行结果为true或false时CFG图的实际执行路径;该CFG图从根节点开始执行,直到遇到TRUE或FALSE节点为止。
协议识别方法之协议识别阶段,其中所述的协议指纹快速匹配方法具有如下步骤:
将IP报文应用层数据作为文本输入,将所有协议指纹作为模式集合,采用多模式配算法找到IP报文所属的可能协议集合;
在执行多模式匹配算法前,先按协议指纹偏移对所有协议指纹进行分类并分别建立哈希表;
对每一类协议指纹,从IP报文应用载荷相应偏移处开始,依次对前i=1,2,3..个字节进行哈希,同时检查哈希表子链,在子链非空情况下遍历子链,即调用子链中每一项的相关协议验证规则:如果IP报文通过了协议验证规则验证,则识别出了IP报文所属协议类型。
协议识别方法之协议识别阶段,其中所述协议验证规则执行过程具有如下步骤:
采用虚拟机模型来实现相关协议验证规则的解释执行;
将用CFG描述的协议验证规则集翻译成可在虚拟机上直接执行的虚拟机程序:
由一虚拟机解释程序解释执行由协议验证规则集翻译而来的虚拟机程序,程序执行结果即是本次协议识别结果。
一种自动协议识别系统,其特征在于:
所述协议识别系统包括协议指纹库、协议验证规则库、协议指纹匹配引擎和协议验证引擎,其中,协议指纹库和协议验证规则库分别存储了协议样本特征提取阶段产生的协议指纹和协议验证规则集,协议指纹匹配引擎实现所述的协议指纹快速匹配算法,协议验证引擎实现了所述的虚拟机模型;
协议样本特征提取阶段提取的协议指纹和相应协议验证规则集用配置文件描述,系统工作时,将基于该配置文件构建协议指纹哈希表,将相应协议验证规则集翻译成虚拟机程序供协议验证引擎执行。
本发明的有益效果是,本发明解决了IDS/IPS产品中对于非标准端口网络协议的自识别问题。本发明能够在网络协议通信初期根据前期报文特征自动识别所属协议类型,并采用协议验证规则集进一步验证协议识别结果正确性。与已有方法相比,本发明完全基于网络协议通信初期报文特征智能识别出所属协议类别,而不单纯依赖于固定端口,可以对所有动态端口协议、隧道协议进行自动识别,具有协议识别速度快和准确率高等优点,可广泛应用于IDS/IPS等所有需要智能协议自识别的网络安全产品中。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1为本发明涉及的协议识别方法两阶段工作流程图;
图2为固定报头格式协议指纹提取举例;
左图:TDS固定报头格式;
右图:MSRPC固定报头格式;
图3为采用CFG描述相关协议验证规则集举例;
右图:HTTP协议指纹HTTP/1.1验证规则集;
左图:HTTP协议指纹Get的验证规则集;
图4为基于快速Hash协议指纹匹配图例;
图5为基于快速Hash协议指纹匹配和协议验证流程图。
具体实施方式
实施例1;本发明所述协议识别过程方法包括两个工作阶段:前期协议样本特征提取阶段和在线协议识别阶段,各阶段步骤如下(见图1):
A.协议样本特征提取阶段;
依据协议指纹提取方法从协议类型样本中提取该类协议的协议指纹(每一类协议一般有多个协议指纹),并建立该类协议相应的验证规则集。
将提取的协议指纹和相应协议验证规则集分别存储到协议指纹库和协议验证规则库中,供协议识别阶段指纹匹配引擎和协议验证引擎使用。
B.在线协议识别阶段;
捕获未知协议类型数据流前期IP报文,从应用层载荷中提取所有可能协议指纹,采用多模式匹配算法与协议指纹库中各指纹进行匹配,识别出可能的协议集合;
对于上述可能协议集合中每一协议,调用相应协议验证规则进行验证,如果协议验证规则验证通过,则识别出该IP报文所属正确协议类型,否则继续执行下一个候选协议相关验证规则,直到识别出正确协议为止。
一旦识别出IP报文所属协议类型,将创建一个<源IP,目IP,源端口,目端口,协议ID>五元组,从而使得属于该协议数据流的后续报文无需执行本协议识别方法,以减轻系统计算开销。
本协议识别方法一般只需要捕获到应用协议初期交互过程中第1-2回合中带应用数据载荷的报文。因此,对于基于TCP协议的应用层协议,需要捕获TCP三次握手结束后第1-2个带应用层数据的报文。本协议识别方法可以在网络通信协议初期交互的第1-2个协议消息数据中识别出所属协议类别,因此具有很好的协议识别速度。
本协议识别方法为每一类型协议样本建立一个协议指纹集合(SigSet)和相应协议验证规则集(RuleSet),其中,协议指纹是一个有限长度的连续字节串,它标识一种特定类型的协议消息;当协议指纹正确建立后,通过IP报文携带的协议指纹特征就可以识别其所属协议类型。举例,“GET”可以标识HTTP协议中的HTTP Request消息类型,可以用它来作为HTTP协议指纹;反过来,如果发现某一IP报文携带协议指纹“GET”,则该IP报文所属协议类型为HTTP的可能性很大。但是,单纯基于协议指纹特征得到的协议识别结果可能错误,因此需要额外措施来进一步验证本次协议识别结果正确性。本协议识别方法在识别出IP报文所属可能协议类型之后采用协议验证规则集来验证协议识别结果正确性。协议验证规则集与具体协议相关,它为一个集合,集合中每一条规则定义了将一个IP报文判别为该类型协议时该IP报文必须满足的布尔表达式。因此,可以将为某一协议类型建立的协议验证规则集看作是该类型协议规范的一个必要条件集合。为某一类型协议建立的协议验证规则集可用布尔表达式树或者控制流图(Control Flow Graph,CFG)来描述,本协议识别方法选择控制流图描述每种类型协议验证规则集,采用虚拟机模型来实现协议验证规则集的解释执行。
HTTP协议指纹和验证规则建立举例;
首先为HTTP协议建立协议指纹集合,并建立相应协议验证规则集:
为HTTP协议指纹“GET”建立的验证规则集为:
Rule1:文本中必须含有“TTP”字串;
Rule2:文本中必须包含“\r\n”;
Rule3:等等。
为HTTP协议指纹”POST”建立的验证规则集为:
Rule1:文本中必须含有“r\n\r\n”字串;
Rule2:文本中必须包含Content-Length字串;
Rule3:等等。
为HTTP协议指纹“EAD”建立的验证规则集为:
Rule1:文本中必须含有“TTP”字串;
Rule2:文本中必须包含“f-Modified-Since”字串;
Rule3:等等。
然后,在协议识别过程中,如果发现一IP报文包含“GET”指纹,通过协议指纹匹配算法可以识别其所属协议类别可能为HTTP,这时进一步执行前面定义的HTTP协议协议指纹“GET”所对应的验证规则集来验证该IP报文:如果该IP报文通过了集合中所有验证规则的验证,则HTTP就为该IP报文所属的正确协议类型;否则,继续从IP报文中提取其它协议指纹、进行指纹匹配找到可能所属协议类型、并执行相关协议验证规则进行验证,直到找到正确结果为止。
实施例2;自动协议识别方法协含有以下步骤;
协议指纹提取;
将所有协议分为三类:1)文本命令格式协议;2)固定报头格式协议;3)无固定格式协议。下面分别描述这三类协议的指纹提取方法。
文本命令格式协议;
文本命令格式协议中,所有消息都可能用{命令+参数}方式描述,这里的命令不但包括通常的协议命令,还包括服务端响应的状态码。文本命令格式协议的例子很多,包括POP3,SMTP,FTP,HTTP等。对于这类协议,只需要提取协议命令和协议响应状态码作为协议指纹即可。比如,对于HTTP协议,提取的HTTP协议指纹集合为{GET,POST,HEAD,HTTP/0.9,HTTP/1.0,HTTP/1.1}。这些协议指纹在HTTP协议报文应用载荷中偏移为0,在这种情况下,可以省略协议指纹偏移的标示。
固定报头格式协议;
固定报头格式协议一般都为二进制格式协议,在该类协议中,所有协议消息都具有一个固定长度的报头,然后是可变长度数据。固定报头格式协议例子很多,包括DB2、TDS、DNS和MSRPC协议等。固定报头中,一般包含Type、version、Length、Flags和ID等字段。根据在网络协议交互过程中取值变化情况的不同,可以将这些字段分为两类:a)静态类型字段,即字段取值为常数或者只能取少数几个值,比如Type,Version,Flags等字段;b)动态类型字段,即字段取值情况预先不可预测,比如Length、ID等字段。因此,只能从第一种类型字段中提取协议指纹。如果提取的协议指纹标识某一类型协议的精确度越高,则协议识别过程中第一次通过协议指纹匹配算法找到正确协议类型的可能性就越高,因而可能只需少量协议验证规则条目就可识别出IP报文所属协议类别,并可明显减少协议识别算法的计算开销。为达到这个目的,通常将尽可能多的连续静态字段组合起来作为该类协议样本的指纹。
固定报头类型协议指纹提取举例(见图2):
对于TDS(Tabular Data System)协议,其固定报头中有两个连续静态字段(Type和Status),因此如果将Type+Status组合作为TDS协议的指纹,可以提高协议指纹标识该类型协议的准确度;
对于MSRPC(Microsoft Remote Procedure Call)协议,其固定报头中存在5个连续静态字段(Major_Ver、Minor_Ver、PktType、PktFlags和DataRepresentation),因此如果将上述5字段组合作为MSRPC协议指纹,可以提高协议指纹标识该类型协议准确度。
通过该方法提取的协议指纹一般都有2-4个字节长度,并且各协议指纹之间出现碰撞的可能性很小,因此可明显加快协议识别速度。
无固定格式协议;
对于无固定格式协议,无法采用通用方法提取协议指纹,而只能针对特定协议特定分析提取协议指纹的可能性。所幸的是,属于该类型的应用层协议很少,目前只看到Auth协议。因此,对于这种情形可以单独对待。
协议验证规则集(RuleSet)建立;
协议验证规则集与具体协议类型相关,为各种类型协议建立协议验证规则集目的主要有以下3个:
1)通过协议验证规则集可以检验本次协议识别结果正确性,即在识别出某一IP报文可能所属协议类型后进一步验证其是否真正符合该类型协议规范(双重检查);
2)在两个协议之间的协议指纹出现碰撞时,可以通过协议验证规则排除错误协议类型,找到正确的协议识别结果(识别结果筛选);
3)协议验证规则可以深入检查协议数据载荷,发现那些隧道型协议,比如MSN-over-HTTP和SMB-over-NetBIOS等。在协议识别过程中,找到一个IP报文可能所属协议类型后,必须执行相关协议验证规则集,并只有在该IP报文通过相关协议规则集中所有规则验证后才算找到了所属的正确协议类型。
为某一类型协议建立的协议验证规则集为一个规则集合,采用控制流图(CFG)模型来描述协议验证规则集。如图3所示,在CFG模型表示方法中,每一条协议验证规则用一个椭圆节点表示,这里除TRUE和FALSE两条用于返回协议验证结果的特殊规则外,其余验证规则都是一个布尔逻辑,其执行结果只能为真或假。这个协议验证规则集合从根节点开始执行,如果当前协议验证规则执行结果为真,则执行其左侧的验证规则树,如果为假,则执行其右侧的验证规则树,直到执行到TRUE或FALSE节点为止。图3为两个协议验证规则集例子:左图定义了与HTTP协议指纹“GET“相关的协议验证规则集,该协议验证规则集的执行从根节点开始,某一IP报文只有全部通过了①②③条验证规则的验证,才可能返回HTTP协议ID,否则返回FALSE。右图定义了与HTTP协议指纹”HTTP/1.1”相关的验证规则集,它支持HTTP隧道协议深层解析,该规则集从根节点开始执行:如果某一IP报文通过了前两个(①②)协议验证规则的验证,则识别它为HTTP协议类型;进一步,如果该IP报文还满足第③条协议验证规则,则识别它为MSN-Over-HTTP协议;对于其它情况则识别失败。
为某一协议指纹建立的协议验证规则集大小直接影响到本类型协议的识别结果准确性和算法效率:当为某一类型协议指纹定义的协议验证规则条目越多,则协议识别结果的准确性就越高,但是协议识别效率会较低;当为某一类型协议指纹定义的协议验证规则条目越少,则协议识别效率会很高,但可能会降低协议识别结果准确性,因此,应根据需要合理定义协议验证规则集。建议:如果协议指纹较长,与其它协议指纹冲突可能性很小,则定义的协议验证规则条目可以很少甚至没有;如果协议指纹较短,则与其它协议指纹冲突的可能性较大,因此需要考虑定义多一些的协议验证规则条目来筛选通过协议指纹匹配引擎得到的协议识别结果集以得到最可能的协议类型。
协议指纹快速匹配;
在前期协议样本提取阶段定义好各种类型协议指纹和相关协议验证规则后,需要设计一种高效的协议指纹匹配算法,用于在协议识别阶段对IP报文应用数据进行协议指纹发现和快速匹配,从而找到该IP报文所属的可能协议类型集合。可以采用多模式匹配算法来执行这种协议指纹快速匹配过程:将IP报文应用层载荷数据作为多模式匹配算法的Text,所有定义的协议指纹集合作为模式集合,使用多模式匹配算法找到所有可能的协议类型集合,然后对该集合中每一协议类型执行相应协议验证规则,排除错误的协议类型,直到找到合适的协议类型为止。基于传统多模型匹配算法实现协议指纹快速匹配算法具有算法实现快、通用性好等优点,但它没有充分利用协议指纹通常位于IP报文应用载荷头部这个特点,因此,本协议识别方法设计了一个高效的协议指纹快速匹配算法。
观察到:95%协议类型的协议指纹偏移为0,对于偏移不为0的协议指纹(占5%),偏移位置都出现在IP报文应用层载荷靠前位置并且取值都有规律,比如在偏移2,4,8,12,16;此外,所有协议指纹长度都较短,一般不超过8字节。因此,本协议识别方法首先按指纹偏移值对协议指纹进行分类,然后对每一类协议指纹采用快速Hash定位算法进行协议指纹匹配。
协议指纹快速Hash定位算法描述;
以偏移为0的所有协议指纹为例描述该快速Hash定位算法,对于其它偏移不为0的协议指纹类别,同样可以采用该快速Hash定位算法。
快速Hash算法准备阶段;
将偏移为0的所有协议指纹按照指定Hash算法插入哈希表,将Hash值相同(即协议指纹冲突)的协议指纹串连起来,形成图4所示的协议指纹Hash表。
快速Hash检索阶段;
该协议指纹快速Hash定位和协议验证算法工作流程图见图5。对于捕获的IP报文应用层数据m,从偏移位置0开始,依次对m前i(i=1,2,3,…)个连续字节进行哈希(Hash)运算(分别用H(m1-1),H(m1-2),…,H(m1-maxsig)表示,这里maxsig为最大协议指纹长度),并同时检查Hash表中相应Hash子链情况:
如果对应Hash子链为空,则进行下一个Hash运算;
否则,依次执行子链中具体协议验证规则集:
如果协议验证规则验证通过,则识别出了正确的协议类型。
否则,继续执行子链中下一候选协议的协议验证规则集,直到找到合适的协议类型为止。
该快速Hash协议指纹匹配和协议验证算法伪代码描述如下:
HTab[index]={NULL}//偏移为0的协议指纹哈希表
//依次扫描Payload前maxsig字节
For(i=1;i<=maxsig;i++){
   index=Hash(payload,i);//对前i个字节进行Hash
   if(HTab[index]!=NULL){//如果Hash子链不为空
//遍历子链,并调用相应的协议验证规则
  prec=HTab[index];
  do{//call protocol verify function pointer.
     ret=proto_verify(payload,len,prec->rules);
     //如果协议验证通过,则返回协议ID
     if(ret>0)return ret;
     prec=prec->next;//否则继续验证子链下一元素
}while(prec!=NULL);}}
协议验证规则执行;
本协议识别方法中,在通过IP报文携带的协议指纹检索到所属的可能协议类型时,需要调用为该类型协议定义的协议验证规则来进一步验证该IP报文是否满足该类型协议规范,即上述伪代码中的proto_verify函数的实现问题。本发明采用CFG模型来描述协议验证规则,并采用虚拟机来解释执行由协议验证规则生成的CFG图,因此,在前期协议样本特征提取阶段需要将为各类型协议定义的协议验证规则集(即CFG图)编译成可在虚拟机上直接执行的程序代码;然后,在协议识别阶段,在协议指纹匹配引擎识别出IP报文所属的可能协议类型后,由协议验证引擎加载该类型协议的虚拟机程序代码进行解释执行,程序返回结果为识别出的协议类型ID或者0(0表示未知协议ID)。
本协议识别方法中协议验证引擎使用的虚拟机模型类似于BPF过滤器中使用的虚拟机模型,它基于寄存器操作,专为IP报文处理设计,是一个非常简单高效的虚拟机模型。该虚拟机模型由一个存储器,一个索引寄存器。一个可擦除存储器,一个隐含程序计数器组成。它能执行加载与存储指令,分支与算数指令等。基于虚拟机模型设计的协议验证引擎以IP报文应用层载荷为虚拟机程序输入数据,程序执行结果为该IP报文所属的协议类型ID或者0(表示识别失败)。
通过采用CFG图来描述某种类型协议的协议验证规则集,并通过虚拟机引擎来执行协议验证规则集,使得该发明所述的协议识别方法支持非常复杂的协议验证规则集定义,协议验证规则表达能力可以达到非常细的粒度,可满足所有类型协议的协议验证规则表达需求。在本发明所述之协议识别方法中,前期协议样本特征提取阶段定义的协议指纹和相关协议验证规则集由配置文件给出,管理员可通过修改配置文件中协议验证规则集在协议识别结果准确性和协议识别效率之间作出调整,无需修改协议指纹匹配引擎和协议验证引擎虚拟机代码,因而本协议识别方法具有非常好的架构灵活性、跨平台移植能力。

Claims (6)

1.一种自动协议识别方法,其特征在于:包括协议样本特征提取和协议识别两个步骤,其中,
所述的协议样本特征提取步骤包括协议类型样本的协议指纹提取和协议验证规则建立;
协议识别步骤包括协议指纹快速匹配和协议识别结果快速验证步骤;
协议指纹提取具有如下特征:
对于文本命令类型协议样本,用{命令+参数}或{状态码+参数}格式描述,直接提取协议样本中命令和状态码作为协议指纹;
对于固定报头类型协议样本,将固定报头中所含字段类型分为静态字段和动态字段类型,寻找尽可能多的连续静态类型字段,并将其取值组合定义为该类型协议指纹;
对于其它无固定格式类型协议样本,寻找标识该协议样本服务类型的单词作为协议指纹。
2.如权利要求1所述的一种自动协议识别方法,其特征在于:所述协议验证规则建立步骤具有如下特征:
提取协议样本中除协议指纹之外其它特征作为该类型协议样本的协议验证规则,所述的其它特征包括进一步标识协议样本类型的字段、单词。
3.如权利要求2所述的一种自动协议识别方法,其特征在于:所述的协议验证规则建立步骤具有如下特征:
采用控制流图方法描述为某类型协议样本建立的协议验证规则;该控制流图有一个FALSE节点,有多个TRUE节点;除TRUE节点和FALSE节点外,控制流图中每一个节点表示一条协议验证规则布尔逻辑,其执行结果为真或假;控制流图中每一条有向边表明当有向边源节点执行结果为true或false时控制流图的实际执行路径;该控制流图从根节点开始执行,直到遇到TRUE或FALSE节点为止。
4.如权利要求1所述的一种自动协议识别方法,其特征在于:所述的协议指纹快速匹配步骤具有如下特征:
将IP报文应用层数据作为文本输入,将所有协议指纹作为模式集合,采用多模式配算法找到IP报文所属的可能协议集合;
在执行多模式匹配算法前,先按协议指纹偏移对所有协议指纹进行分类并分别建立哈希表;
对每一类协议指纹,从IP报文应用载荷相应偏移处开始,依次对前1个字节、2个字节、3个字节直到协议指纹最大长度个字节串进行哈希运算,同时检查哈希表子链,在子链非空情况下遍历子链,即调用子链中每一项的相关协议验证规则。
5.如权利要求1所述的一种自动协议识别方法,其特征在于:所述协议识别步骤,具有如下特征:
采用虚拟机模型来实现相关协议验证规则的解释执行;
将用控制流图描述的协议验证规则集翻译成在虚拟机上直接执行的虚拟机程序;
由一虚拟机解释程序解释执行由协议验证规则集翻译而来的虚拟机程序。
6.一种自动协议识别系统,其特征在于:
所述的协议识别系统包括协议指纹库、协议验证规则库、协议指纹匹配引擎和协议验证引擎,其中,协议指纹库和协议验证规则库分别存储了协议样本特征提取阶段产生的协议指纹和协议验证规则集,协议指纹匹配引擎实现了协议指纹快速匹配算法,协议验证引擎实现了一个虚拟机模型;
所述的协议样本特征提取阶段提取的协议指纹和相应协议验证规则集用配置文件描述,系统工作时,将基于该配置文件构建协议指纹哈希表,将相应协议验证规则集翻译成虚拟机程序供协议验证引擎执行;
所述的虚拟机模型为一个专为IP报文处理设计的基于寄存器操作的虚拟机模型,它由一个存储器,一个索引寄存器,一个可擦除存储器和一个隐含程序计数器组成,它能执行加载与存储指令,分支与算数指令;
基于虚拟机模型设计的所述协议验证引擎以IP报文应用层载荷为虚拟机程序输入数据,程序执行结果为该IP报文所属的协议类型ID或者0。
CNB2006100804535A 2006-05-16 2006-05-16 一种自动协议识别方法及系统 Expired - Fee Related CN100429617C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100804535A CN100429617C (zh) 2006-05-16 2006-05-16 一种自动协议识别方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100804535A CN100429617C (zh) 2006-05-16 2006-05-16 一种自动协议识别方法及系统

Publications (2)

Publication Number Publication Date
CN1845066A CN1845066A (zh) 2006-10-11
CN100429617C true CN100429617C (zh) 2008-10-29

Family

ID=37063994

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100804535A Expired - Fee Related CN100429617C (zh) 2006-05-16 2006-05-16 一种自动协议识别方法及系统

Country Status (1)

Country Link
CN (1) CN100429617C (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335654B (zh) * 2007-06-28 2012-04-04 中兴通讯股份有限公司 端口定位测试方法和系统
DE202008018638U1 (de) * 2007-12-13 2017-01-31 Google Inc. Generisches Format für die effiziente Übertragung von Daten
CN101577704A (zh) * 2008-05-08 2009-11-11 北京东华合创数码科技股份有限公司 一种网络应用层协议识别方法和系统
CN101282251B (zh) * 2008-05-08 2011-04-13 中国科学院计算技术研究所 一种应用层协议识别特征挖掘方法
CN101425876B (zh) * 2008-12-16 2015-04-22 北京中创信测科技股份有限公司 通信协议破译方法和装置
CN102035698B (zh) * 2011-01-06 2012-07-25 西北工业大学 基于决策树分类算法的http隧道检测方法
CN102413007B (zh) * 2011-10-12 2014-03-26 上海奇微通讯技术有限公司 一种深度报文检测方法及设备
CN103945287B (zh) * 2013-01-21 2019-05-10 中兴通讯股份有限公司 一种接口机处理消息的方法和接口机
CN103164698B (zh) * 2013-03-29 2016-01-27 华为技术有限公司 文本指纹库生成方法及装置、文本指纹匹配方法及装置
CN103914031B (zh) * 2013-12-04 2016-08-17 哈尔滨安天科技股份有限公司 一种自适应多种协议的rs-485总线监测探头电路
US9438703B2 (en) * 2014-06-19 2016-09-06 Cavium, Inc. Method of forming a hash input from packet contents and an apparatus thereof
CN104184726A (zh) * 2014-07-25 2014-12-03 汉柏科技有限公司 一种基于协议识别防止ips漏报的方法与装置
CN105939304B (zh) * 2015-06-11 2020-03-06 杭州迪普科技股份有限公司 一种隧道报文解析方法及装置
CN105530098B (zh) * 2015-12-04 2018-10-09 北京浩瀚深度信息技术股份有限公司 一种协议指纹自动提取方法及系统
CN110855576B (zh) * 2015-12-31 2023-07-21 杭州数梦工场科技有限公司 应用识别方法及装置
CN105678188B (zh) * 2016-01-07 2019-01-29 杨龙频 数据库防泄露协议识别方法及装置
CN108255675A (zh) * 2018-01-10 2018-07-06 北京知道创宇信息技术有限公司 一种端口特征提取方法、装置及计算设备
CN112787875B (zh) * 2019-11-06 2022-03-01 杭州海康威视数字技术股份有限公司 设备识别方法、装置及设备、存储介质
CN111865724B (zh) * 2020-07-28 2022-02-08 公安部第三研究所 视频监控设备信息采集控制实现方法
CN112272121B (zh) * 2020-09-21 2022-01-18 中国科学院信息工程研究所 一种用于流量监测的效果验证方法及系统
CN112367317B (zh) * 2020-11-09 2021-09-03 浙江大学 一种内生安全waf指纹变换方法
CN112637223B (zh) * 2020-12-26 2023-03-24 曙光网络科技有限公司 应用协议识别方法、装置、计算机设备和存储介质
CN112714045B (zh) * 2020-12-31 2023-05-19 浙江远望信息股份有限公司 一种基于设备指纹和端口的快速协议识别方法
CN112995172B (zh) * 2021-02-24 2022-09-09 合肥优尔电子科技有限公司 物联网设备和物联网平台之间对接的通信方法及通信系统
CN113705161B (zh) * 2021-08-10 2024-03-22 博流智能科技(南京)有限公司 Uvm寄存器模型快速生成方法及系统、芯片验证方法及系统
CN114124562B (zh) * 2021-12-02 2024-05-28 湖北天融信网络安全技术有限公司 一种防御方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08214041A (ja) * 1995-02-03 1996-08-20 Max Co Ltd 自動プロトコル認識装置
CN1400546A (zh) * 2001-07-31 2003-03-05 安捷伦科技有限公司 用于协议数据单元中协议模式识别的方法和设备
CN1612135A (zh) * 2003-10-30 2005-05-04 中联绿盟信息技术(北京)有限公司 入侵检测(保护)产品与防火墙产品中的协议识别技术
CN1203641C (zh) * 2002-10-11 2005-05-25 北京启明星辰信息技术有限公司 网络入侵监测的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08214041A (ja) * 1995-02-03 1996-08-20 Max Co Ltd 自動プロトコル認識装置
CN1400546A (zh) * 2001-07-31 2003-03-05 安捷伦科技有限公司 用于协议数据单元中协议模式识别的方法和设备
CN1203641C (zh) * 2002-10-11 2005-05-25 北京启明星辰信息技术有限公司 网络入侵监测的方法和系统
CN1612135A (zh) * 2003-10-30 2005-05-04 中联绿盟信息技术(北京)有限公司 入侵检测(保护)产品与防火墙产品中的协议识别技术

Also Published As

Publication number Publication date
CN1845066A (zh) 2006-10-11

Similar Documents

Publication Publication Date Title
CN100429617C (zh) 一种自动协议识别方法及系统
CN101035111B (zh) 一种智能协议解析方法及装置
CN112738126B (zh) 基于威胁情报和att&amp;ck的攻击溯源方法
Gascon et al. Pulsar: Stateful black-box fuzzing of proprietary network protocols
Duchêne et al. State of the art of network protocol reverse engineering tools
US9781139B2 (en) Identifying malware communications with DGA generated domains by discriminative learning
CN107135093B (zh) 一种基于有限自动机的物联网入侵检测方法及检测系统
US9256831B2 (en) Match engine for detection of multi-pattern rules
Ye et al. NetPlier: Probabilistic Network Protocol Reverse Engineering from Message Traces.
US7802009B2 (en) Automatic reverse engineering of message formats from network traces
Namjoshi et al. Robust and fast pattern matching for intrusion detection
CN104506484A (zh) 一种私有协议分析与识别方法
CN104168288A (zh) 一种基于协议逆向解析的自动化漏洞挖掘系统及方法
CN109450721A (zh) 一种基于深度神经网络的网络异常行为识别方法
CN115270131A (zh) 一种Java反序列化漏洞检测方法及系统
CN110020161B (zh) 数据处理方法、日志处理方法和终端
CN107707549B (zh) 一种自动提取应用特征的装置及方法
CN108055166A (zh) 一种嵌套的应用层协议的状态机提取系统及其提取方法
Song et al. Rule-based verification of network protocol implementations using symbolic execution
de Sa Silva et al. A neural network application for attack detection in computer networks
Antunes et al. ReverX: Reverse engineering of protocols
CN105530098B (zh) 一种协议指纹自动提取方法及系统
Fiterau-Brostean Active model learning for the analysis of network protocols
Antunes et al. Automatically complementing protocol specifications from network traces
Dik et al. Web attacks detection based on patterns of sessions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: No. 12 South Main Street, Beijing, Haidian District, Zhongguancun

Patentee after: Beijing Venus Information Technology Co., Ltd.

Address before: No. 12 South Main Street, Beijing, Haidian District, Zhongguancun

Patentee before: Beijing Qiming Xingchen Information Technology Co., Ltd.

C56 Change in the name or address of the patentee

Owner name: BEIJING QIMINGXINGCHEN INFORMATION TECHNOLOGY CO.,

Free format text: FORMER NAME: BEIJING QIMING XINGCHEN INFORMATION TECHNOLOGY CO. LTD.

ASS Succession or assignment of patent right

Owner name: BEIJING QIMINGXINCHEN INFORMATION SECURITY TECHNOL

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100081 NO.12 ZHONGGUANCUN SOUTH AVENUE, HAIDIAN DISTRICT, BEIJING TO: 100193 QIMINGXINGCHEN BUILDING, BUILDING 21, ZHONGGUANCUN SOFTWARE PARK, NO.8, DONGBEIWANG WEST ROAD, HAIDIAN DISTRICT, BEIJING CITY

TR01 Transfer of patent right

Effective date of registration: 20100507

Address after: 100193 Beijing city Haidian District Dongbeiwang qimingxingchenmansionproject Building No. 21 West Road No. 8 Zhongguancun Software Park

Co-patentee after: Beijing Venusense Information Security Technology Co., Ltd.

Patentee after: Beijing Venus Information Technology Co., Ltd.

Address before: 100081 Beijing, Zhongguancun, South Street, No. 12, No.

Patentee before: Beijing Venus Information Technology Co., Ltd.

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

Granted publication date: 20081029

Termination date: 20150516

EXPY Termination of patent right or utility model