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

上传人:hw****26 文档编号:4133381 上传时间:2019-09-28 格式:DOC 页数:21 大小:110.50KB
下载 相关 举报
一种自动协议识别方法及系统-发明专利说明书.doc_第1页
第1页 / 共21页
一种自动协议识别方法及系统-发明专利说明书.doc_第2页
第2页 / 共21页
一种自动协议识别方法及系统-发明专利说明书.doc_第3页
第3页 / 共21页
一种自动协议识别方法及系统-发明专利说明书.doc_第4页
第4页 / 共21页
一种自动协议识别方法及系统-发明专利说明书.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

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 图从根节点开始执行,直到遇到 TR

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

8、阶段,其中所述协议验证规则执行过程具有如下 步骤: 4 采用虚拟机模型来实现相关协议验证规则的解释执行; 将用 CFG 描述的协议验证规则集翻译成可在虚拟机上直接执行的虚拟机程 序; 由一虚拟机解释程序解释执行由协议验证规则集翻译而来的虚拟机程序, 程序执行结果即是本次协议识别结果。 一种自动协议识别系统,其特征在于: 所述协议识别系统包括协议指纹库、协议验证规则库、协议指纹匹配引擎 和协议验证引擎,其中,协议指纹库和协议验证规则库分别存储了协议样本特 征提取阶段产生的协议指纹和协议验证规则集,协议指纹匹配引擎实现所述的 协议指纹快速匹配算法,协议验证引擎实现了所述的虚拟机模型; 协议样本特征

9、提取阶段提取的协议指纹和相应协议验证规则集用配置文件 描述,系统工作时,将基于该配置文件构建协议指纹哈希表,将相应协议验证 规则集翻译成虚拟机程序供协议验证引擎执行。 本发明的有益效果是,本发明解决了IDS/IPS产品中对于非标准端口网络协 议的自识别问题。本发明能够在网络协议通信初期根据前期报文特征自动识别 所属协议类型,并采用协议验证规则集进一步验证协议识别结果正确性。与已 有方法相比,本发明完全基于网络协议通信初期报文特征智能识别出所属协议 类别,而不单纯依赖于固定端口,可以对所有动态端口协议、隧道协议进行自 动识别,具有协议识别速度快和准确率高等优点,可广泛应用于IDS/IPS等所 有

10、需要智能协议自识别的网络安全产品中。 附图说明 下面结合附图和实施例对本发明进一步说明。 图 1 为本发明涉及的协议识别方法两阶段工作流程图; 图 2 为固定报头格式协议指纹提取举例; 图 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),其中,协议指纹是一个有限长度的连续字节串, 它标识一种特定类型

13、的协议消息;当协议指纹正确建立后,通过 IP 报文携带 的协议指纹特征就可以识别其所属协议类型。举例, ”GET”可以标识 HTTP 协议中 的 HTTP Request 消息类型,可以用它来作为 HTTP 协议指纹;反过来,如果发 现某一 IP 报文携带协议指纹”GET” ,则该 IP 报文所属协议类型为 HTTP 的可能 性很大。但是,单纯基于协议指纹特征得到的协议识别结果可能错误,因此需 要额外措施来进一步验证本次协议识别结果正确性。本协议识别方法在识别出 IP 报文所属可能协议类型之后采用协议验证规则集来验证协议识别结果正确性。 协议验证规则集与具体协议相关,它为一个集合,集合中每一条

14、规则定义了将 一个 IP 报文判别为该类型协议时该 IP 报文必须满足的布尔表达式。因此,可 以将为某一协议类型建立的协议验证规则集看作是该类型协议规范的一个必要 条件集合。为某一类型协议建立的协议验证规则集可用布尔表达式树或者控制 流图(Control Flow Graph, CFG)来描述,本协议识别方法选择控制流图描述 每种类型协议验证规则集,采用虚拟机模型来实现协议验证规则集的解释执行。 HTTP 协议指纹和验证规则建立举例; 首先为 HTTP 协议建立协议指纹集合,并建立相应协议验证规则集: 为 HTTP 协议指纹“GET”建立的验证规则集为: Rule1: 文本中必须含有”HTTP

15、”字串; Rule2: 文本中必须包含“rn” ; Rule3:等等。 为 HTTP 协议指纹”POST ”建立的验证规则集为: Rule1:文本中必须含有”rnrn”字串; Rule2:文本中必须包含 Content-Length 字串; 7 Rule3:等等。 为 HTTP 协议指纹”HEAD ”建立的验证规则集为: Rule1:文本中必须含有”HTTP”字串; Rule2:文本中必须包含”If-Modified-Since” 字串; Rule3: 等等。 然后,在协议识别过程中,如果发现一IP报文包含”GET” 协议指纹,通过协 议指纹匹配算法可以识别其所属协议类别可能为HTTP,这时进

16、一步执行前面定 义的HTTP协议协议指纹”GET” 所对应的验证规则集来验证该 IP报文:如果该IP报 文通过了集合中所有验证规则的验证,则HTTP就为该IP报文所属的正确协议类 型;否则,继续从IP报文中提取其它协议指纹、进行指纹匹配找到可能所属协 议类型、并执行相关协议验证规则进行验证,直到找到正确结果为止。 实施例 2;自动协议识别方法协含有以下步骤; 协议指纹提取; 将所有协议分为三类:1)文本命令格式协议;2)固定报头格式协议;3) 无固定格式协议。下面分别描述这三类协议的指纹提取方法。 文本命令格式协议; 文本命令格式协议中,所有消息都可能用命令参数方式描述,这里的 命令不但包括通

17、常的协议命令,还包括服务端响应的状态码。文本命令格式协 议的例子很多,包括 POP3,SMTP,FTP, HTTP 等。对于这类协议,只需要提取协 议命令和协议响应状态码作为协议指纹即可。比如,对于 HTTP 协议,提取的 HTTP 协议指纹集合为GET, POST, HEAD, HTTP/0.9, HTTP/1.0, HTTP/1.1。 这些协议指纹在 HTTP 协议报文应用载荷中偏移为 0,在这种情况下,可以省略 协议指纹偏移的标示。 固定报头格式协议; 固定报头格式协议一般都为二进制格式协议,在该类协议中,所有协议消 8 息都具有一个固定长度的报头,然后是可变长度数据。固定报头格式协议例

18、子 很多,包括 DB2、TDS、DNS 和 MSRPC 协议等。固定报头中,一般包含 Type、version、Length、Flags 和 ID 等字段。根据在网络协议交互过程中取 值变化情况的不同,可以将这些字段分为两类:a) 静态类型字段,即字段取值 为常数或者只能取少数几个值,比如 Type, Version, Flags 等字段;b) 动态 类型字段,即字段取值情况预先不可预测,比如 Length、ID 等字段。因此, 只能从第一种类型字段中提取协议指纹。如果提取的协议指纹标识某一类型协 议的精确度越高,则协议识别过程中第一次通过协议指纹匹配算法找到正确协 议类型的可能性就越高,因而

19、可能只需少量协议验证规则条目就可识别出 IP 报文所属协议类别,并可明显减少协议识别算法的计算开销。为达到这个目的, 通常将尽可能多的连续静态字段组合起来作为该类协议样本的指纹。 固定报头类型协议指纹提取举例(见图 2): 对于 TDS(Tabular Data System)协议,其固定报头中有两个连续静态字段 (Type 和 Status) ,因此如果将 Type+Status 组合作为 TDS 协议的指纹,可以 提高协议指纹标识该类型协议的准确度; 对于 MSRPC(Microsoft Remote Procedure Call)协议,其固定报头中存 在 5 个连续静态字段(Major_

20、Ver、Minor_Ver、PktType、PktFlags 和 DataRepresentation) ,因此如果将上述 5 字段组合作为 MSRPC 协议指纹,可 以提高协议指纹标识该类型协议准确度。 通过该方法提取的协议指纹一般都有 2-4 个字节长度,并且各协议指纹之 间出现碰撞的可能性很小,因此可明显加快协议识别速度。 无固定格式协议; 对于无固定格式协议,无法采用通用方法提取协议指纹,而只能针对特定 协议特定分析提取协议指纹的可能性。所幸的是,属于该类型的应用层协议很 少,目前只看到 Auth 协议。因此,对于这种情形可以单独对待。 9 协议验证规则集(RuleSet)建立; 协议

21、验证规则集与具体协议类型相关,为各种类型协议建立协议验证规则 集目的主要有以下 3 个: 1) 通过协议验证规则集可以检验本次协议识别结果正确性,即在识别出某 一 IP 报文可能所属协议类型后进一步验证其是否真正符合该类型协议 规范(双重检查) ; 2) 在两个协议之间的协议指纹出现碰撞时,可以通过协议验证规则排除错 误协议类型,找到正确的协议识别结果(识别结果筛选); 3)协议验证规则可以深入检查协议数据载荷,发现那些隧道型协议,比如 MSN-over-HTTP 和 SMB-over-NetBIOS 等。在协议识别过程中,找到一个 IP 报文可能所属协议类型后,必须执行相关协议验证规则集,并

22、只有在该 IP 报文通过相关协议规则集中所有规则验证后才算找到了所属的正确协议类 型。 为某一类型协议建立的协议验证规则集为一个规则集合,采用控制流图 (CFG)模型来描述协议验证规则集。如图 3 所示,在 CFG 模型表示方法中,每 一条协议验证规则用一个椭圆节点表示,这里除 TRUE 和 FALSE 两条用于返回 协议验证结果的特殊规则外,其余验证规则都是一个布尔逻辑,其执行结果只 能为真或假。这个协议验证规则集合从根节点开始执行,如果当前协议验证规 则执行结果为真,则执行其左侧的验证规则树,如果为假,则执行其右侧的验 证规则树,直到执行到 TRUE 或 FALSE 节点为止。图 3 为两

23、个协议验证规则集 例子:左图定义了与 HTTP 协议指纹“GET“相关的协议验证规则集,该协议验 证规则集的执行从根节点开始,某一 IP 报文只有全部通过了条验证规 则的验证,才可能返回 HTTP 协议 ID,否则返回 FALSE。右图定义了与 HTTP 协 议指纹”HTTP/1.1 ”相关的验证规则集,它支持 HTTP 隧道协议深层解析,该规则 集从根节点开始执行:如果某一 IP 报文通过了前两个()协议验证规则的 10 验证,则识别它为 HTTP 协议类型;进一步,如果该 IP 报文还满足第条协议 验证规则,则识别它为 MSN-Over-HTTP 协议;对于其它情况则识别失败。 为某一协议

24、指纹建立的协议验证规则集大小直接影响到本类型协议的识别 结果准确性和算法效率:当为某一类型协议指纹定义的协议验证规则条目越多, 则协议识别结果的准确性就越高,但是协议识别效率会较低;当为某一类型协 议指纹定义的协议验证规则条目越少,则协议识别效率会很高,但可能会降低 协议识别结果准确性,因此,应根据需要合理定义协议验证规则集。建议:如 果协议指纹较长,与其它协议指纹冲突可能性很小,则定义的协议验证规则条 目可以很少甚至没有;如果协议指纹较短,则与其它协议指纹冲突的可能性较 大,因此需要考虑定义多一些的协议验证规则条目来筛选通过协议指纹匹配引 擎得到的协议识别结果集以得到最可能的协议类型。 协议

25、指纹快速匹配; 在前期协议样本提取阶段定义好各种类型协议指纹和相关协议验证规则后, 需要设计一种高效的协议指纹匹配算法,用于在协议识别阶段对 IP 报文应用 数据进行协议指纹发现和快速匹配,从而找到该 IP 报文所属的可能协议类型 集合。可以采用多模式匹配算法来执行这种协议指纹快速匹配过程:将 IP 报 文应用层载荷数据作为多模式匹配算法的 Text,所有定义的协议指纹集合作为 模式集合,使用多模式匹配算法找到所有可能的协议类型集合,然后对该集合 中每一协议类型执行相应协议验证规则,排除错误的协议类型,直到找到合适 的协议类型为止。基于传统多模型匹配算法实现协议指纹快速匹配算法具有算 法实现快

26、、通用性好等优点,但它没有充分利用协议指纹通常位于 IP 报文应 用载荷头部这个特点,因此,本协议识别方法设计了一个高效的协议指纹快速 匹配算法。 观察到:95%协议类型的协议指纹偏移为 0,对于偏移不为 0 的协议指纹 (占 5%),偏移位置都出现在 IP 报文应用层载荷靠前位置并且取值都有规律, 11 比如在偏移 2,4,8,12,16;此外,所有协议指纹长度都较短,一般不超过 8 字 节。因此,本协议识别方法首先按指纹偏移值对协议指纹进行分类,然后对每 一类协议指纹采用快速 Hash 定位算法进行协议指纹匹配。 协议指纹快速 Hash 定位算法描述; 以偏移为 0 的所有协议指纹为例描述

27、该快速 Hash 定位算法,对于其它偏移 不为 0 的协议指纹类别,同样可以采用该快速 Hash 定位算法。 快速 Hash 算法准备阶段; 将偏移为 0 的所有协议指纹按照指定 Hash 算法插入哈希表,将 Hash 值相 同(即协议指纹冲突)的协议指纹串连起来,形成图 4 所示的协议指纹 Hash 表。 快速 Hash 检索阶段; 该协议指纹快速 Hash 定位和协议验证算法工作流程图见图 5。对于捕获的 IP 报文应用层数据 m,从偏移位置 0 开始,依次对 m 前 i(i1,2,3,)个连 续字节进行哈希(Hash)运算(分别用 H(m1-1),H(m 1-2), ,H(m1-maxs

28、ig)表示,这 里 maxsig 为最大协议指纹长度) ,并同时检查 Hash 表中相应 Hash 子链情况: 如果对应 Hash 子链为空,则进行下一个 Hash 运算; 否则,依次执行子链中具体协议验证规则集: 如果协议验证规则验证通过,则识别出了正确的协议类型。 否则,继续执行子链中下一候选协议的协议验证规则集,直到找到合适的 协议类型为止。 该快速 Hash 协议指纹匹配和协议验证算法伪代码描述如下: HTabindex = NULL /偏移为 0 的协议指纹哈希表 /依次扫描 Payload 前 maxsig 字节 For(i=1;irules); /如果协议验证通过,则返回协议 I

29、D if (ret0) return ret; prec = prec-next;/否则继续验证子链下一元素 while(prec != NULL); 协议验证规则执行; 本协议识别方法中,在通过 IP 报文携带的协议指纹检索到所属的可能协议 类型时,需要调用为该类型协议定义的协议验证规则来进一步验证该 IP 报文 是否满足该类型协议规范,即上述伪代码中的 proto_verify 函数的实现问题。 本发明采用 CFG 模型来描述协议验证规则,并采用虚拟机来解释执行由协议验 证规则生成的 CFG 图,因此,在前期协议样本特征提取阶段需要将为各类型协 议定义的协议验证规则集(即 CFG 图)编译

30、成可在虚拟机上直接执行的程序代码; 然后,在协议识别阶段,在协议指纹匹配引擎识别出 IP 报文所属的可能协议 类型后,由协议验证引擎加载该类型协议的虚拟机程序代码进行解释执行,程 序返回结果为识别出的协议类型 ID 或者 0(0 表示未知协议 ID) 。 本协议识别方法中协议验证引擎使用的虚拟机模型类似于 BPF 过滤器中使 用的虚拟机模型,它基于寄存器操作,专为 IP 报文处理设计,是一个非常简 单高效的虚拟机模型。该虚拟机模型由一个存储器,一个索引寄存器。一个可 擦除存储器,一个隐含程序计数器组成。它能执行加载与存储指令,分支与算 13 数指令等。基于虚拟机模型设计的协议验证引擎以 IP

31、报文应用层载荷为虚拟 机程序输入数据,程序执行结果为该 IP 报文所属的协议类型 ID 或者 0(表示 识别失败) 。 通过采用 CFG 图来描述某种类型协议的协议验证规则集,并通过虚拟机引 擎来执行协议验证规则集,使得该发明所述的协议识别方法支持非常复杂的协 议验证规则集定义,协议验证规则表达能力可以达到非常细的粒度,可满足所 有类型协议的协议验证规则表达需求。 在本发明所述之协议识别方法中,前 期协议样本特征提取阶段定义的协议指纹和相关协议验证规则集由配置文件给 出,管理员可通过修改配置文件中协议验证规则集在协议识别结果准确性和协 议识别效率之间作出调整,无需修改协议指纹匹配引擎和协议验证

32、引擎虚拟机 代码,因而本协议识别方法具有非常好的架构灵活性、跨平台移植能力。 1 说 明 书 附 图 图 1 图 2 协议指纹提取 协议指纹库 验证规则建立 验证规则库 协议样本库 指纹匹配引擎 协议验证引擎 特征提取阶段 协议识别阶段 未知协议报文流 协议ID Type Size Channel PktNum window Data Status Major_V Size Flag_Len Data 左图: TDS 固定报头格式 右图: MSRPC 固定报头格式 PKTTypeMinor_V PKTFlags Data Representation Auth_Len 2 第 1 行文本包 含

33、 HTTP 字串 文本以 rn结尾 文本中包含 rn字串 True=HTTP FALSE true true true false false false 第 1 行文本包 含有效状态码 文本中包含 X-MSN-Messenger 文本中包含 rn字串 True=MSN FALSE true true true false false false True=HTTP 左图: HTTP 协议指纹 Get 的验证规则集 右图: HTTP 协议指纹 HTTP/1.1 验证规则集 图 3 8 偏移为0协议指纹哈希表 Sig Sig Sig Sig 1 2 3 4 5 6 7 8 rules 1 2 3

34、 4 5 6 7 H(1)=1 H(2)=6 H(3)=7 IP报文应用数据m Sig rules H(maxsig) 3 图 4 开始 (I=0) I+ 对报文应用载荷前 I 个字节进 行哈希,得到哈希子链位置。 I 值超过协议指纹 最大长度? 对应哈希子链空? 结束 取子链中下一协议项, 执行相应协议验证规则 协议验证规则返回 结果为协议 ID? 子链遍历结束 ? No No Yes Yes No Yes YesNo 4 图 5 1 摘 要 附 图 协议指纹提取 协议指纹库 验证规则建立 验证规则库 协议样本库 指纹匹配引擎 协议验证引擎 特征提取阶段 协议识别阶段 未知协议报文流 协议I

35、D 1 权 利 要 求 书 1一种自动协议识别方法,其特征在于:所述协议识别方法包括协议样本 特征提取和协议识别两个阶段,其中,所述的协议样本特征提取阶段包括协议 类型样本的协议指纹提取和相应协议验证规则建立,协议识别阶段包括协议指 纹快速匹配和协议识别结果快速验证步骤。 2 如权利要求 1 所述的一种自动协议识别方法,其特征在于:协议识别 方法之协议样本特征提取阶段,其中所述的协议指纹提取方法具有如下特征: 对于文本命令类型协议样本,用命令参数或状态码参数格式描述, 直接提取协议样本中命令和状态码作为协议指纹; 对于固定报头类型协议样本,将固定报头中所含字段类型分为静态字段和 动态字段类型,

36、寻找尽可能多的连续静态类型字段,并将其取值组合定义为该 类型协议指纹; 对于其它无固定格式类型协议样本,寻找可以标识该协议样本服务类型的 单词作为协议指纹。 3. 如权利要求 1 所述的一种自动协议识别方法,其特征在于:所述协议 识别方法之协议样本特征提取阶段,其中所述的协议验证规则建立方法具有如 下特征: 提取协议样本中除协议指纹之外其它特征作为该类型协议样本的协议验证 规则,包括可进一步标识协议样本类型的字段、单词或者其它要求协议消息满 足的规范。 4. 如权利要求 3 所述的一种自动协议识别方法,其特征在于:其中所述 的协议验证规则建立方法具有如下特征:采用 CFG 的步骤,CFG 有一

37、个 FALSE 节点,有多个 TRUE 节点;除 TRUE 和 FALSE 节点外,CFG 中每一个节点表示一 条协议验证规则布尔逻辑,其执行结果为真或假;CFG 中每一条有向边表明当 有向边源节点执行结果为 true 或 false 时 CFG 图的实际执行路径;该 CFG 图 从根节点开始执行,直到遇到 TRUE 或 FALSE 节点为止。 2 5. 如权利要求 1 所述的一种自动协议识别方法,其特征在于:所述协议 识别方法之协议识别阶段,其中所述的协议指纹快速匹配方法具有如下特征: 将 IP 报文应用层数据作为文本输入,将所有协议指纹作为模式集合,采用 多模式配算法找到 IP 报文所属的

38、可能协议集合; 在执行多模式匹配算法前,先按协议指纹偏移对所有协议指纹进行分类并 分别建立哈希表; 对每一类协议指纹,从 IP 报文应用载荷相应偏移处开始,依次对前 i=1,2,3个字节进行哈希,同时检查哈希表子链,在子链非空情况下遍历子 链,即调用子链中每一项的相关协议验证规则。 6. 如权利要求 1 所述的一种自动协议识别方法,其特征在于:所述协议 识别方法之协议识别阶段,其中所述协议验证规则执行过程具有如下特征: 采用虚拟机模型来实现相关协议验证规则的解释执行; 将用 CFG 描述的协议验证规则集翻译成可在虚拟机上直接执行的虚拟机程 序; 由一虚拟机解释程序解释执行由协议验证规则集翻译而

39、来的虚拟机程序。 7. 一种自动协议识别系统,其特征在于: 所述协议识别系统包括协议指纹库、协议验证规则库、协议指纹匹配引擎 和协议验证引擎,其中,协议指纹库和协议验证规则库分别存储了协议样本特 征提取阶段产生的协议指纹和协议验证规则集,协议指纹匹配引擎实现了权利 要求 4 中所述的协议指纹快速匹配算法,协议验证引擎实现了权利要求 5 中所 述的虚拟机模型; 协议样本特征提取阶段提取的协议指纹和相应协议验证规则集用配置文件 描述,系统工作时,将基于该配置文件构建协议指纹哈希表,将相应协议验证 规则集翻译成虚拟机程序供协议验证引擎执行。 1 说 明 书 摘 要 本发明涉及可用于入侵检测防御(IDS/IPS)产品中的一种自动协议识别方法 及系统。能够在网络协议通信初期根据前期报文特征自动识别所属协议类型, 并采用协议验证规则进一步验证协议识别结果正确性。本方法包括前期协议样 本特征提取和在线协议识别两个阶段,其中,所述的协议样本特征提取阶段包 括协议类型样本的协议指纹提取和相应协议验证规则建立过程方法,协议识别 阶段包括协议指纹快速匹配和协议识别结果快速验证等过程方法。基于本方法 实现的协议识别系统包括协议样本特征库、协议指纹匹配引擎和协议验证引擎 三部分,其中,协议指纹匹配引擎基于快速哈希表方法实现,协议验证引擎基 于高效率虚拟机模型实现。

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

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。