一种自动协议识别方法及系统-发明专利说明书

上传人:小** 文档编号:56565568 上传时间:2018-10-13 格式:DOC 页数:20 大小:110.50KB
返回 下载 相关 举报
一种自动协议识别方法及系统-发明专利说明书_第1页
第1页 / 共20页
一种自动协议识别方法及系统-发明专利说明书_第2页
第2页 / 共20页
一种自动协议识别方法及系统-发明专利说明书_第3页
第3页 / 共20页
一种自动协议识别方法及系统-发明专利说明书_第4页
第4页 / 共20页
一种自动协议识别方法及系统-发明专利说明书_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《一种自动协议识别方法及系统-发明专利说明书》由会员分享,可在线阅读,更多相关《一种自动协议识别方法及系统-发明专利说明书(20页珍藏版)》请在金锄头文库上搜索。

1、1说说 明明 书书一种自动协议识别方法及系统启明星辰 叶润国(发明专利已授权)技术领域技术领域本发明涉及一种可用于入侵检测防御(IDS/IPS)产品中的自动协议识别方法及系统,它依据网络数据流中报文特征智能地识别出其所属协议类别,属于网络技术领域。背景技术背景技术入侵检测/防御系统(Intrusion Detection/Protection System, IDS/IPS)作为网络安全防护的重要手段,通常部署在关键网络内部/网络边界入口处,实时捕获网络内或进出网络的报文数据流并进行智能综合分析,发现可能的入侵行为并进行实时阻断。应用层协议深层解析技术在当前主流IDS/IPS 产品中被广泛采用

2、,可用来实现基于协议攻击特征和协议异常的入侵检测。目前多数 IDS/IPS 产品都基于端口映射表来判别网络报文所属协议类型,比如,如发现捕获的网络报文中源/目端口为 80 ,则认为它为HTTP(Hypertext Transfer Protocol)协议报文,则将该报文交给 HTTP 协议分析引擎进行协议解码和入侵检测。通常这种端口映射表在 IDS/IPS 产品出厂时已确定,但允许管理员修改以适应实际环境的需要。近年来,出现了一批新型的网络协议,包括 SIP(Session Initiation Protocol)和 P2P (Peer to peer protocol)协议等,它们并不采用固

3、定协议端口,而是在协议运行过程中动态协商端口;此外,目前各种木马、间谍软件为躲避 IDS/IPS 产品的入侵检测都采用了一些特殊的处理方式,主要表现为:1)并不使用固定通信端口进行通信;2)采用公知端口进行私有协议通信(比如 80 端口);3)采用隧道技术进2行私有协议通信(比如 HTTP 隧道技术) 。在这种情况下,IDS/IPS 产品无法根据端口映射表来正确识别报文所属协议类型,而需要根据网络报文特征智能识别报文所属协议类别,否则,IDS/IPS 产品将产生大量的误报或漏报。因此,有必须发展不单纯依赖于协议端口的智能协议识别技术,以减少 IDS/IPS 产品的误报或漏报。并且,该智能协议识

4、别技术必须满足以下要求:智能地根据报文特征自动识别报文所属协议类型,而不单纯依赖于端口映射表;尽可能依据协议数据流早期报文特征快速识别出所属协议类型,以尽早进行协议解码分析和入侵检测目的;具有非常高的协议识别效率,算法实现尽可能简单;方法通用性强,支持几乎所有协议,并要求协议识别结果准确率高。发明内容发明内容为了克服现有技术的不足, 本发明提供一种自动协议识别方法及系统。本发明解决其技术问题所采用的技术方案是:一种自动协议识别方法,包括协议样本特征提取和协议识别两个阶段步骤,其中,所述的协议样本特征提取阶段步骤包括协议类型样本的协议指纹提取和相应协议验证规则建立,协议识别阶段步骤包括协议指纹快

5、速匹配和协议识别结果快速验证。协议识别方法之协议样本特征提取阶段,其中所述的协议指纹提取方法有如下步骤:对于文本命令类型协议样本,用命令参数或状态码参数格式描述,直接提取协议样本中命令和状态码作为协议指纹;对于固定报头类型协议样本,将固定报头中所含字段类型分为静态字段和动态字段类型,寻找尽可能多的连续静态类型字段,并将其取值组合定义为该类型协议指纹。3对于其它无固定格式类型协议样本,寻找可以标识该协议样本服务类型的单词作为协议指纹。协议样本特征提取阶段,其中所述的协议验证规则建立方法具有如下步骤:提取协议样本中除协议指纹之外其它特征作为该类型协议样本的协议验证规则,包括可进一步标识协议样本类型

6、的字段、单词或者其它要求协议消息满足的规范等。采用控制流图(CFG)的步骤,描述为某类型协议样本建立的协议验证规则集,在 CFG 图中:存在 TRUE 和 FALSE 两个特殊节点,其中 FALSE 节点只有一个,而 TRUE 节点可以有多个;除 TRUE 和 FALSE 节点外,CFG 中每一个节点表示一条协议验证规则(布尔逻辑) ,其执行结果为真或假;CFG 中每一条有向边表明当有向边源节点执行结果为 true 或 false 时 CFG 图的实际执行路径;该 CFG图从根节点开始执行,直到遇到 TRUE 或 FALSE 节点为止。协议识别方法之协议识别阶段,其中所述的协议指纹快速匹配方法

7、具有如下步骤:将 IP 报文应用层数据作为文本输入,将所有协议指纹作为模式集合,采用多模式配算法找到 IP 报文所属的可能协议集合;在执行多模式匹配算法前,先按协议指纹偏移对所有协议指纹进行分类并分别建立哈希表;对每一类协议指纹,从 IP 报文应用载荷相应偏移处开始,依次对前i=1,2,3个字节进行哈希,同时检查哈希表子链,在子链非空情况下遍历子链,即调用子链中每一项的相关协议验证规则:如果 IP 报文通过了协议验证规则验证,则识别出了 IP 报文所属协议类型。协议识别方法之协议识别阶段,其中所述协议验证规则执行过程具有如下步骤:4采用虚拟机模型来实现相关协议验证规则的解释执行;将用 CFG

8、描述的协议验证规则集翻译成可在虚拟机上直接执行的虚拟机程序;由一虚拟机解释程序解释执行由协议验证规则集翻译而来的虚拟机程序,程序执行结果即是本次协议识别结果。一种自动协议识别系统,其特征在于:所述协议识别系统包括协议指纹库、协议验证规则库、协议指纹匹配引擎和协议验证引擎,其中,协议指纹库和协议验证规则库分别存储了协议样本特征提取阶段产生的协议指纹和协议验证规则集,协议指纹匹配引擎实现所述的协议指纹快速匹配算法,协议验证引擎实现了所述的虚拟机模型;协议样本特征提取阶段提取的协议指纹和相应协议验证规则集用配置文件描述,系统工作时,将基于该配置文件构建协议指纹哈希表,将相应协议验证规则集翻译成虚拟机

9、程序供协议验证引擎执行。本发明的有益效果是,本发明解决了IDS/IPS产品中对于非标准端口网络协议的自识别问题。本发明能够在网络协议通信初期根据前期报文特征自动识别所属协议类型,并采用协议验证规则集进一步验证协议识别结果正确性。与已有方法相比,本发明完全基于网络协议通信初期报文特征智能识别出所属协议类别,而不单纯依赖于固定端口,可以对所有动态端口协议、隧道协议进行自动识别,具有协议识别速度快和准确率高等优点,可广泛应用于IDS/IPS等所有需要智能协议自识别的网络安全产品中。附图说明附图说明下面结合附图和实施例对本发明进一步说明。图 1 为本发明涉及的协议识别方法两阶段工作流程图;图 2 为固

10、定报头格式协议指纹提取举例;图 3 为采用 CFG 描述相关协议验证规则集举例;5图 4 为基于快速 Hash 协议指纹匹配图例;图 5 为基于快速 Hash 协议指纹匹配和协议验证流程图。具体实施方式具体实施方式实施例 1;本发明所述协议识别过程方法包括两个工作阶段:前期协议样本特征提取阶段和在线协议识别阶段,各阶段步骤如下(见图 1):A. 协议样本特征提取阶段;依据协议指纹提取方法从协议类型样本中提取该类协议的协议指纹(每一类协议一般有多个协议指纹) ,并建立该类协议相应的验证规则集。将提取的协议指纹和相应协议验证规则集分别存储到协议指纹库和协议验证规则库中,供协议识别阶段指纹匹配引擎和

11、协议验证引擎使用。B. 在线协议识别阶段;捕获未知协议类型数据流前期 IP 报文,从应用层载荷中提取所有可能协议指纹,采用多模式匹配算法与协议指纹库中各指纹进行匹配,识别出可能的协议集合;对于上述可能协议集合中每一协议,调用相应协议验证规则进行验证,如果协议验证规则验证通过,则识别出该 IP 报文所属正确协议类型,否则继续执行下一个候选协议相关验证规则,直到识别出正确协议为止。一旦识别出 IP 报文所属协议类型,将创建一个五元组,从而使得属于该协议数据流的后续报文无需执行本协议识别方法,以减轻系统计算开销。本协议识别方法一般只需要捕获到应用协议初期交互过程中第 12 回合中带应用数据载荷的报文

12、。因此,对于基于 TCP 协议的应用层协议,需要捕获TCP 三次握手结束后第 1-2 个带应用层数据的报文。本协议识别方法可以在网络通信协议初期交互的第 1-2 个协议消息数据中识别出所属协议类别,因此具有很好的协议识别速度。6本协议识别方法为每一类型协议样本建立一个协议指纹集合(SigSet)和相应协议验证规则集(RuleSet),其中,协议指纹是一个有限长度的连续字节串,它标识一种特定类型的协议消息;当协议指纹正确建立后,通过 IP 报文携带的协议指纹特征就可以识别其所属协议类型。举例, ”GET”可以标识 HTTP 协议中的 HTTP Request 消息类型,可以用它来作为 HTTP

13、协议指纹;反过来,如果发现某一 IP 报文携带协议指纹”GET”,则该 IP 报文所属协议类型为 HTTP 的可能性很大。但是,单纯基于协议指纹特征得到的协议识别结果可能错误,因此需要额外措施来进一步验证本次协议识别结果正确性。本协议识别方法在识别出IP 报文所属可能协议类型之后采用协议验证规则集来验证协议识别结果正确性。协议验证规则集与具体协议相关,它为一个集合,集合中每一条规则定义了将一个 IP 报文判别为该类型协议时该 IP 报文必须满足的布尔表达式。因此,可以将为某一协议类型建立的协议验证规则集看作是该类型协议规范的一个必要条件集合。为某一类型协议建立的协议验证规则集可用布尔表达式树或

14、者控制流图(Control Flow Graph, CFG)来描述,本协议识别方法选择控制流图描述每种类型协议验证规则集,采用虚拟机模型来实现协议验证规则集的解释执行。HTTP 协议指纹和验证规则建立举例;首先为 HTTP 协议建立协议指纹集合,并建立相应协议验证规则集:为 HTTP 协议指纹“GET”建立的验证规则集为:Rule1: 文本中必须含有”HTTP”字串;Rule2: 文本中必须包含“rn” ;Rule3:等等。为 HTTP 协议指纹”POST”建立的验证规则集为:Rule1:文本中必须含有”rnrn”字串;Rule2:文本中必须包含 Content-Length 字串;7Rule

15、3:等等。为 HTTP 协议指纹”HEAD”建立的验证规则集为:Rule1:文本中必须含有”HTTP”字串;Rule2:文本中必须包含”If-Modified-Since”字串;Rule3: 等等。然后,在协议识别过程中,如果发现一IP报文包含”GET”协议指纹,通过协议指纹匹配算法可以识别其所属协议类别可能为HTTP,这时进一步执行前面定义的HTTP协议协议指纹”GET”所对应的验证规则集来验证该IP报文:如果该IP报文通过了集合中所有验证规则的验证,则HTTP就为该IP报文所属的正确协议类型;否则,继续从IP报文中提取其它协议指纹、进行指纹匹配找到可能所属协议类型、并执行相关协议验证规则进

16、行验证,直到找到正确结果为止。实施例 2;自动协议识别方法协含有以下步骤;协议指纹提取;将所有协议分为三类:1)文本命令格式协议;2)固定报头格式协议;3)无固定格式协议。下面分别描述这三类协议的指纹提取方法。文本命令格式协议;文本命令格式协议中,所有消息都可能用命令参数方式描述,这里的命令不但包括通常的协议命令,还包括服务端响应的状态码。文本命令格式协议的例子很多,包括 POP3,SMTP,FTP, HTTP 等。对于这类协议,只需要提取协议命令和协议响应状态码作为协议指纹即可。比如,对于 HTTP 协议,提取的HTTP 协议指纹集合为GET, POST, HEAD, HTTP/0.9, HTTP/1.0, HTTP/1.1。这些协议指纹在 HTTP 协议报文应用载荷中偏移为 0,在这种情况下,可以省略协议指纹偏移的标示。固定报头格式协议;固定报头格式协议一般都为二进制格式协议,在该类协议中,所有协议消8息都具有一个固定长度的报头,然后是可变长度数据。固定报头格式协议例子很多,包括 DB2、TDS、DNS 和 MSRPC 协议等

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号