[发明专利]一种基于比特流的未知协议识别方法及系统在审
申请号: | 201710779657.6 | 申请日: | 2017-09-01 |
公开(公告)号: | CN107689899A | 公开(公告)日: | 2018-02-13 |
发明(设计)人: | 廖鹏;方泉;杨维永;王继业;韩勇;郭靓;夏元轶;于晓文;蒋甜;张路煜;张鹏;刘寅;李萌;张利 | 申请(专利权)人: | 南京南瑞集团公司;南京南瑞信息通信科技有限公司;国网江苏省电力公司信息通信分公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L29/06 |
代理公司: | 南京纵横知识产权代理有限公司32224 | 代理人: | 董建林 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 比特流 未知 协议 识别 方法 系统 | ||
技术领域
本发明涉及一种基于比特流的未知协议识别方法及系统,属于网络安全领域。
背景技术
网络协议是计算机网络进行数据交换而建立的规则、标准或约定的集合,是当今信息网络的骨架和神经,是维系网络正常通信的纽带。网络协议的识别和分析对网络监管、维护网络安全具有重要意义。传统的网络协议识别对象主要是已知的应用层协议,相关技术已经相当成熟,并由一系列可快速准确识别已知协议的协议解析工具产生,如NetScout Sniffer GlobalAnalyzer、Capsa Enterprise和Wireshark等。随着安全需求的提升,未知协议逐渐被采用,导致传统的协议识别技术面对纯比特流的未知协议时失效,给现有的网络安全监管带来很大挑战。当截获到的比特流链路层协议未知时,便无法对其进行帧切分,更无法对上层协议内容进行提取分析。
目前,对未知协议的分析主要分为两类:
1、基于数据帧和字节对未知协议特提取的分析方法,现有专利有:一种未知协议特征的提取方法(申请号:201510127979.3)将每一种协议的数据帧按字节切分,统计出频繁字节并筛选,得到每一种协议对应的频繁字节,并对连续出现的频繁字节进行拼接,得到特征长串即频繁串,筛选得到每一种协议的特征候选集,根据特征候选集将该协议的数据帧表征为向量,对特征候选集使用相关性特征选择CFS算法进行特征选择,将所选出的特征进行记录;利用KNN算法进行分类,并统计分类的准确率和识别率。
2、基于数据包的对未知网络协议的识别方法,现有专利有:一种未知网络协议识别方法及系统(申请号:201310189079.2)通过提取数据包的特征,利用面向支持向量机的主动学习方法对该特征向量数据集进行学习,获得针对待测网络协议的分类器;一种未知协议报文格式推断方法(申请号:201510185514.3)基于数据包使用动态规划的序列比对算法,实现自动对未知协议报文格式推断并输出。
上述方法存在着一定的局限性,在遇到以比特为单位、协议格式未知甚至已加密的数据时,传统的协议工具显得无能为力,比特流是完全未经加工的原始数据,无法进行包或帧划分。基于端口号,协议已知固定特征等对网络协议的分析,已经不能满足现阶段对网络协议的分析,凸显出传统分析技术的局限性。
发明内容
为了解决上述技术问题,本发明提供了一种基于比特流的未知协议识别方法及系统。
为了达到上述目的,本发明所采用的技术方案是:
一种基于比特流的未知协议识别方法,包括以下步骤,
接收未知协议的比特流,构造FST树,FST树中的节点即为子序列,即为接收的比特流;
统计FST树中每个子序列出现的次数、长度相同的不同子序列个数以及长度相同的所有子序列个数;
计算每个子序列平均出现的次数;
针对每个子序列,判断其出现的次数与平均出现的次数之间的关系,找出频繁子序列;
当FST树中包含的子序列大于阈值M时,输出此时的所有的频繁子序列,这些频繁子序列即为帧头数据。
构造FST树的过程为,从树根节点开始,每输入一个比特流,按照“左0右1的”原则向树中插入新节点;即若比特流为0,则插入原有节点的左边,为左儿子;否则插入原有节点的右边,为右儿子。
每个子序列平均出现次数的计算公式为,
lenavr[i]=lensum[i]/lennum[i]
其中,lenavr[i]为长度为i的子序列平均出现次数,lensum[i]为长度为i的所有子序列个数,lennum[i]为长度为i的不同子序列个数。
当子序列出现的次数大于其平均出现的次数,则该子序列为频繁子序。
当FST树中叶节点大于阈值N时,进行剪枝操作,即删除出现次数小于本身平均出现次数的叶节点。
一种基于比特流的未知协议识别系统,包括FST树构造模块、子序列信息统计模块、频繁子序列计算模块和频繁子序列输出模块;
FST树构造模块,接收未知协议的比特流,构造FST树,每接收一个比特流更新一次FST树节点;
子序列信息统计模块,统计FST树中每个子序列出现的次数、长度相同的不同子序列个数以及长度相同的所有子序列个数;计算每个子序列平均出现的次数;
频繁子序列计算模块,针对每个子序列,判断其出现的次数与平均出现的次数之间的关系,找出频繁子序列;
频繁子序列输出模块,当FST树中包含的子序列大于阈值M时,输出此时的所有的频繁子序列,这些频繁子序列即为帧头数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京南瑞集团公司;南京南瑞信息通信科技有限公司;国网江苏省电力公司信息通信分公司,未经南京南瑞集团公司;南京南瑞信息通信科技有限公司;国网江苏省电力公司信息通信分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710779657.6/2.html,转载请声明来源钻瓜专利网。