[发明专利]一种未知协议报文格式推断方法有效
| 申请号: | 201510185514.3 | 申请日: | 2015-04-20 |
| 公开(公告)号: | CN104935567B | 公开(公告)日: | 2017-11-03 |
| 发明(设计)人: | 詹成;石荣;李剑;张伟;李洲 | 申请(专利权)人: | 中国电子科技集团公司第二十九研究所 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 西北工业大学专利中心61204 | 代理人: | 陈星 |
| 地址: | 610036 *** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 未知 协议 报文 格式 推断 方法 | ||
技术领域
本发明属于网络数据流未知协议识别领域,具体为一种未知协议报文格式推断方法,利用网络中截获的数据包,根据数据包序列比对技术实现对未知协议数据报文格式推断。
背景技术
现在的协议识别技术主要包括基于端口映射的协议识别技术、基于静态特征的深度包检测协议识别技术和基于动态行为特征的协议识别技术等。这些方法都是根据从公开的协议规范提取该类协议的协议特征,进而建立该协议的特征库,作为识别的依据。
根据协议格式规范,可以对流量进行应用识别。但是很多网络协议,例如私有协议或者非标准协议,没有公共的协议规范,因此不能建立特征库,传统的协议识别工具无法使用。现目前的挑战在于,现在未知协议分析没有自动的方法,大多采用人工参与的方式。数据包中具有固定长度的域还可以人工反向推断出来,但是当数据包的格式中具有变长域时,试图进行自动格式推断难度更大。
发明内容
要解决的技术问题
针对在侦察截获网络数据包后,如何根据网络数据包进行序列比对实现对未知协议报文格式的推测的问题,本发明提出了一种基于数据包序列比对的自动未知协议报文推断方法,该方法的提出主要有以下目的:1、未知协议报文推断仅根据网络截获的数据流,不依赖于公共的协议格式规范;2、在网络截获数据充足的条件下,可以实现自动协议格式报文数据域的有效推测,降低人工参与量。
技术方案
本发明的技术方案为:
所述一种未知协议报文格式推断方法,其特征在于:包括以下步骤:
步骤1:采集N个数据包序列,按照数据包序列的长度对数据包序列进行排序;建立最底层具有N个叶子节点,高度为的比对完全二叉树;比对完全二叉树初始时,将排序后的N个数据包序列依次对应赋值给最底层N个叶子节点,每个叶子节点内的值为一个数据包序列,其余节点为空值;
步骤2:根据构造的比对完全二叉树,按照下面的规则自下而上进行序列比对,使得比对完全二叉树中的每个节点均有值,且每条边均有对应的空格插入操作方式:若一个节点为空值,并且它的左右子节点均有值,则对其子节点进行序列比对,并将比对结果序列存储到该节点中,同时将序列比对产生的空格插入操作方式记录到对应的边上;
所述序列比对采用以下方法:
步骤2.1:构造一个行数为M+1,列数为K+1的矩阵,其中M为第一数据包序列的长度,K为第二数据包序列的长度;
步骤2.2:将第一数据包序列放置在矩阵左侧,且第一数据包序列中的每个字符对应矩阵的一行,第一数据包序列的所有字符依次对应第2行至第M+1行;将第二数据包序列放置在矩阵上方,且第二数据包序列中的每个字符对应矩阵的一列,第二数据包序列的所有字符依次对应第2列至第K+1列;
步骤2.3:将矩阵的第1行和第1列的元素全部赋0;矩阵中的其余元素值通过以下公式得到:
Qij为矩阵第i行第j列的元素值,i取2~M+1,j取2至K+1,Sij为打分值,若矩阵第i行对应的第一数据包序列中的字符与矩阵第j列对应的第二数据包序列中的字符相同,则Sij=1,否则Sij=0;
步骤2.4:对于步骤2.3得到的赋值完成的矩阵,从矩阵中取值最大的元素开始,反向跟踪到矩阵的第1行第1列元素,得到一条从矩阵中取值最大的元素到矩阵第1行第1列元素的路径;所述反向跟踪的规则为:对于第i行第j列元素:比较第i-1行第j列元素、第i行第j-1列元素、第i-1行第j-1列元素的元素值,第i行第j列元素的反向跟踪方向为第i-1行第j列元素、第i行第j-1列元素、第i-1行第j-1列元素中元素值最大的元素位置,若第i-1行第j列元素、第i行第j-1列元素、第i-1行第j-1列元素的元素值相同,则第i行第j列元素的反向跟踪方向为第i-1行第j-1列元素位置;
步骤2.5:根据步骤2.4得到的路径,得到第一序列和第二序列的空格插入操作方式:对于处于路径中的第i行第j列元素:
若反向跟踪方向为第i-1行第j-1列元素位置,则不进行操作;
若反向跟踪方向为第i行第j-1列元素位置,则在第一数据包序列中插入空格,空格插入位置为矩阵第i行对应的字符与矩阵第i+1行对应的字符之间;
若反向跟踪方向为第i-1行第j列元素位置,则在第二数据包序列中插入空格,空格插入位置为矩阵第j列对应的字符与矩阵第j+1列对应的字符之间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第二十九研究所,未经中国电子科技集团公司第二十九研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510185514.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种登录方法、鉴权方法及设备
- 下一篇:一种更新数值系统的方法及装置





