一种基于RFC关联分析的网络协议报文结构推导方法技术

技术编号:37782799 阅读:13 留言:0更新日期:2023-06-09 09:13
本发明专利技术公开了一种基于RFC关联分析的网络协议报文结构推导方法,其步骤包括:1)从网络上爬取待分析的RFC以及IANA注册信息;获取每一RFC编号对应的RFC,检查每一参数属性信息中是否包含指定关键字,若不包含,则将对应的参数属性信息以及RFC加入到待分析列表中;2)基于所获取的数据提取RFC之间的关联关系;3)根据关联关系进行RFC关联推导,确定每一参数属性所在RFC中的章节;4)从待分析列表的每一RFC中提取协议参数的结构化描述;5)进行协议参数间的关联分析,得到每一对协议参数间的组合关系及位置;6)根据协议参数间的组合关系及位置对协议参数进行组合,生成该待分析的网络协议的报文结构。的报文结构。的报文结构。

【技术实现步骤摘要】
一种基于RFC关联分析的网络协议报文结构推导方法


[0001]本专利技术涉及程序分析领域,尤其涉及一种面向网络协议报文结构的推导方法,具体为一种基于RFC关联分析的网络协议报文结构推导方法。该方法可以辅助编程人员、测试人员、安全分析人员理解网络协议的设计、构造测试用例并发现设计与代码实现间不一致导致的安全问题。

技术介绍

[0002]网络协议是为了在计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议的制定者、维护者会提供用自然语言描述的协议规范(Request for Comments,简称RFC)来指导协议软件的开发。RFC规定了协议可接受的报文结构(包括报文中参数的构成以及各参数的长度、类型、取值范围、参数间的关系等)、接收报文后应当采取的响应等。RFC中描述的网络协议报文结构是编程人员、测试人员设计关键数据结构、构造测试用例的主要依据。然而,对一款网络协议报文结构的描述,通常是以不同的形式分散在不同的RFC当中。随着网络协议功能的持续更新和完善,还会不断发布新的RFC。新RFC可以在旧RFC基础上的扩展,也可以替代旧RFC。因此,对网络协议报文结构的分析和推导除了考虑单个RFC内部描述的不同报文、参数结构以及它们之间的关联外,还必须需要考虑RFC之间的更新、替代和扩展关系,以及由此带来的对报文结构的影响。
[0003]由于RFC数量众多,人工理解RFC并提取报文结构不可避免的存在疏漏,而已有的自动化推导网络协议报文结构的技术则面临通用性、准确性等方面的挑战。代表性的技术有:(1)基于逆向工程和动态测试的方法:通过逆向工程分析正常工作中采集的报文,分析其属性并生成待验证结构,再以动态测试的方法,将待验证结构发送给通信设备,通过与之交互来检验结构的正确性。这种方法主要面临通用性不足的问题,当需要分析另一种协议的报文结构时需要重新进行逆向工程分析并搭建通信环境。(2)基于小样本学习的网络协议实体抽取方法:从网络协议的RFC文档中提取参数和描述信息处理成文本集,利用文本集训练潜在网络协议实体分类器和网络协议实体精准识别模型,然后将这两个部分融合成协议实体抽取模型,来提取网络协议中的网络协议实体(实体指的是报文结构中的字段和描述信息)。但这种方法并没有考虑所提取的实体之间的关联关系,因此无法获得完整的协议报文结构。

技术实现思路

[0004]针对现有技术中存在的问题,本专利技术的目的在于提供一种基于RFC关联分析的网络协议报文结构推导方法,通过对指定网络协议在某个时间段内所有有效的RFC或者用户指定的RFC的分析和关联,自动化推导该协议可接收的有效网络报文结构。
[0005]本方法的基本流程如下:
[0006]1)预处理阶段:从网络上爬取待分析的RFC以及IANA(Internet Assigned Numbers Authority,互联网号码分配机构)注册信息,为后续的关联分析和结构推导做准
备。其中,IANA注册信息描述了协议参数(参数的名字、所属的RFC、描述等)、参数的属性(取值范围、取值的描述以及各个取值对应的RFC等),但是上述信息由人工维护,可能存在错误或不一致(比如IANA和RFC对同一个协议参数的命名不同、IANA信息注册不及时等);
[0007]2)RFC关联提取:从预处理数据中提取RFC之间的更新、替代和扩展关系;
[0008]3)RFC关联推导:通过启发式推导,对上一步提取出的关联关系(尤其是扩展关系)进行精化,修正IANA信息维护上可能存在的错误,并获得更细粒度的关联关系;
[0009]4)单个RFC中的参数结构提取:从单个RFC中提取对参数的结构化的描述,以及参数的结构化描述中各个结构的信息(名称、长度、取值范围等);
[0010]5)参数间的关联分析:分析同一个RFC内部的不同参数,以及多个RFC之间的参数关联,目的是确定它们之间的组合关系(并列、包含、实例化等),并确定组合的位置;
[0011]6)报文结构组合:根据分析、推导结果,完成报文结构组合。
[0012]本专利技术的技术方案为:
[0013]一种基于RFC关联分析的网络协议报文结构推导方法,其步骤包括:
[0014]1)对于待分析的网络协议,在IANA数据库中查询该网络协议涉及的协议参数,然后根据每一协议参数的名称在IANA数据库中查询该协议参数的RFC编号、参数属性信息;获取每一所述RFC编号对应的RFC,检查每一所述参数属性信息中是否包含指定的关键字,若包含则直接进行步骤6);若不包含,则将对应的参数属性信息以及RFC加入到待分析列表TODO中,然后进行步骤2~6);
[0015]2)基于步骤1)所获取的数据提取RFC之间的关联关系;所述关联关系包括更新关系、替代关系和扩展关系;
[0016]3)根据所提取的关联关系进行RFC关联推导,确定每一参数属性所在RFC中的章节;
[0017]4)从待分析列表TODO内的每一RFC中提取协议参数的结构化描述;
[0018]5)根据步骤4)所提取的协议参数的结构化描述及步骤3)所确定每一参数属性所在RFC中的章节,进行协议参数间的关联分析,得到每一对协议参数间的组合关系及位置;
[0019]6)根据协议参数间的组合关系及位置对协议参数进行组合,生成该待分析的网络协议的报文结构。
[0020]进一步的,所述组合关系包括并列关系、包含关系、实例化关系。
[0021]进一步的,所述并列关系的识别条件为:当一个表中同时列出了参数A和参数B,且参数A和参数B对应的章节的层次相同,则参数A、B称为并列参数,且将该表所对应的参数作为参数A、B的上级参数;所述包含关系的识别条件为:若参数B的名称出现在参数A的结构中,且参数B对应的章节在参数A对应的章节中,则参数A包含参数B,参数A为包含参数,参数B为被包含参数;所述实例化关系的识别条件为:若参数A的结构中的一个参数m有多个取值及每一取值对应的描述,参数B的取值描述与该参数m的一取值描述相同,则参数B是对参数A的一个实例化,参数A称为抽象参数,参数B称为实例参数。
[0022]进一步的,步骤6)中,生成该待分析的网络协议的报文结构的方法为:首先根据所述更新关系获得待分析的网络协议的根文档,然后从所述根文档中获得第一个没有处在所述组合关系中的参数以及对应结构,将对应结构所在的章节作为起始章节;然后从所述起始章节中获取数据包的根结构;然后迭代步骤a~b:
[0023]a.遍历根结构、参数结构中的每一个参数i,在所述组合关系中寻找与该参数i有关联的参数,并根据关联关系对关联的参数进行存储;
[0024]b.遍历根结构、参数结构中的每一个参数j,如果该参数j是IANA中注册的参数,则为该参数j添加一个扩展属性,用于保存IANA为该参数j注册的参数属性以及具体属性信息;然后对于该参数j的每一个参数属性,从该参数属性对应的章节中获取该参数属性对应的描述;如果所述描述中有参数结构,则将其存入该参数j的结构属本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于RFC关联分析的网络协议报文结构推导方法,其步骤包括:1)对于待分析的网络协议,在IANA数据库中查询该网络协议涉及的协议参数,然后根据每一协议参数的名称在IANA数据库中查询该协议参数的RFC编号、参数属性信息;获取每一所述RFC编号对应的RFC,检查每一所述参数属性信息中是否包含指定的关键字,若包含则直接进行步骤6);若不包含,则将对应的参数属性信息以及RFC加入到待分析列表TODO中,然后进行步骤2~6);2)基于步骤1)所获取的数据提取RFC之间的关联关系;所述关联关系包括更新关系、替代关系和扩展关系;3)根据所提取的关联关系进行RFC关联推导,确定每一参数属性所在RFC中的章节;4)从待分析列表TODO内的每一RFC中提取协议参数的结构化描述;5)根据步骤4)所提取的协议参数的结构化描述及步骤3)所确定每一参数属性所在RFC中的章节,进行协议参数间的关联分析,得到每一对协议参数间的组合关系及位置;6)根据协议参数间的组合关系及位置对协议参数进行组合,生成该待分析的网络协议的报文结构。2.根据权利要求1所述的方法,其特征在于,所述组合关系包括并列关系、包含关系、实例化关系。3.根据权利要求2所述的方法,其特征在于,所述并列关系的识别条件为:当一个表中同时列出了参数A和参数B,且参数A和参数B对应的章节的层次相同,则参数A、B称为并列参数,且将该表所对应的参数作为参数A、B的上级参数;所述包含关系的识别条件为:若参数B的名称出现在参数A的结构中,且参数B对应的章节在参数A对应的章节中,则参数A包含参数B,参数A为包含参数,参数B为被包含参数;所述实例化关系的识别条件为:若参数A的结构中的一个参数m有多个取值及每一取值对应的描述,参数B的取值描述与该参数m的一取值描述相同,则参数B是对参数A的一个实例化,参数A称为抽象参数,参数B称为实例参数。4.根据权利要求1或2或3所述的方法,其特征在于,步骤6)中,生成该待分析的网络协议的报文结构的方法为:首先根据所述更新关系获得待分析的网络协议的根文档,然后从所述根文档中获得第一个没有处在所述组合关系中的参数、包含参数或者抽象参数以及对应结构,将对应结构所在的章节作为起始章节;然后从所述起始章节中获取数据包的根结构;然后迭代步骤a~b:a.遍历根结构、参数结构中的每一个参数i,在所述组合关系中寻找与该参数i有关联的参数,并根据关联关系对关联的参数进行存储;b.遍历根结构、参数结构...

【专利技术属性】
技术研发人员:陈晴方李丰陈婧婷李平霍玮杜跃进
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1