[发明专利]一种针对结构化协议的解码设备和方法有效
申请号: | 201010549845.8 | 申请日: | 2010-11-18 |
公开(公告)号: | CN102111236A | 公开(公告)日: | 2011-06-29 |
发明(设计)人: | 郑崴中;张涛 | 申请(专利权)人: | 北京神州绿盟信息安全科技股份有限公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 谢建云;刘鹏 |
地址: | 100089 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 结构 协议 解码 设备 方法 | ||
技术领域
本发明涉及计算机网络数据通信领域,尤其涉及对以结构化协议编码的网络数据进行解码的针对结构化协议的解码设备和方法。
背景技术
随着网络的发展,基于网络的应用也不断丰富,因此也出现了各种基于应用层协议构造和传输的数据。在各种应用层协议中,存在有一类称为结构化协议的应用层协议。SMB协议和RPC协议是结构化协议的示例。结构化协议的特点在于,以结构化协议编码的数据包中的数据以结构化的方式存放而构成一个或者多个结构体,其中结构体中嵌套结构体或者结构体与结构体相连,另外,结构体之间还有较强的相关性。因此,结构化协议是应用层协议中进行解码比较复杂的协议。
经常地,在根据应用层协议编码的数据传输过程中,需要对这些数据进行解码以检测其中的数据,例如为了提高对网络入侵行为进行检查的精确度,网络入侵防护系统(NIPS)需要对大量的应用层协议进行深入的应用层解码,以检测接收的应用层数据是否包含恶意数据。
基于开放源代码的网络入侵防护系统(NIPS)引擎snort(www.snort.org)中对结构化协议进行了解码。snort如下所述来针对结构化协议进行解码。如图1所示,假设一种基于结构化协议的数据包由固定的五个结构体:Struct A,Struct B,Struct C,Struct D和Struct E组成。snort中的应用层协议解码器首先解码结构体StructA,解码完之后,增加解码的偏移量,随后解析下一个结构体Struct B,如此重复,直到完成对结构体Struct E的解码。snort的应用层协议解码器中几乎都采用了这种通过偏移量来对数据包进行从头到尾的解码方式。
snort对于结构化协议的解码方式存在有至少两个缺陷:
首先,由于解码器一般只对协议数据包中感兴趣的结构体进行解码,所以会经常根据需要增加或者减少对协议中某些结构体的解码,而由于snort应用层协议解码器中各结构体的解码联系紧密,相互依赖性比较强,如果需要增加或者忽略某个结构体的解码,则需要修改的代码比较多,增加了维护的成本和开发的风险。
其次,由于snort的解码方式为对数据包从头到尾依靠偏移的递增来进行解码,所以后面的解码在一定程度上依赖于前面的具体实现,这缺乏模块化的设计,不利于针对同一个解码器进行并行开发。
因此,需要一种新的针对结构化协议的解码设备和方法,可以减少在对以结构化协议编码的数据进行解码时、对各个结构体进行解码的关联性,从而可以灵活地根据需要来对其中的某些结构体进行解码。此外,该新的针对结构化协议的解码设备和方法还可以针对每个结构体分别进行解码器开发,以提高解码器开发的效率。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决或者减缓上述问题的针对结构化协议的解码设备和方法。
根据本发明的一个方面,提供了一种针对结构化协议的解码设备以用于对根据结构化协议编码的数据包进行解码。该解码设备包括状态设置器,根据预定规则为以结构化协议编码的数据包设置解码状态;以及基于状态的解码器,接收设置了解码状态的数据包,并选择与数据包的解码状态相对应的子解码器来对所述数据包中的相应结构体进行解码。
可选地,基于状态的解码器在对数据包中的相应结构体进行解码之后,将所述数据包发送到所述状态设置器来设置新的解码状态,状态设置器根据预定规则、基于所述数据包的当前解码状态设置所述数据包的新解码状态,并将所述设置了新解码状态的数据包发送到基于状态的解码器再次进行解码。
可选地,状态设置器根据预定规则、基于所述数据包的当前解码状态确定是否继续对数据包进行解码。
根据本发明的另一个方面,提供了一种针对结构化协议的解码方法,包括步骤:接收以结构化协议编码的数据包,该数据包包括一个或者多个结构体;根据预定规则对以结构化协议编码的数据包设置解码状态;以及根据数据包的解码状态,对数据包中与数据包的解码状态相对应的结构体进行解码。
可选地,该解码方法还包括步骤,在对相应结构体进行解码之后,根据预定规则来基于数据包的当前解码状态设置该数据包的新解码状态;并且根据数据包的新解码状态,来对数据包与数据包的新解码状态相对应的结构体进行解码。
此外,在该解码方法中,还可以在对数据包进行解码之后,根据所述预定规则来基于所述数据包的当前解码状态来判断是否继续对所述数据包进行解码。
可选择,预定规则基于XML格式编写。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州绿盟信息安全科技股份有限公司,未经北京神州绿盟信息安全科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010549845.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种闹钟提醒方法、装置及移动终端
- 下一篇:一种手机查号的方法及装置