CN110336817B - 一种基于TextRank的未知协议帧定位方法 - Google Patents
一种基于TextRank的未知协议帧定位方法 Download PDFInfo
- Publication number
- CN110336817B CN110336817B CN201910609097.9A CN201910609097A CN110336817B CN 110336817 B CN110336817 B CN 110336817B CN 201910609097 A CN201910609097 A CN 201910609097A CN 110336817 B CN110336817 B CN 110336817B
- Authority
- CN
- China
- Prior art keywords
- node
- sequence
- state
- weight
- station
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种基于TextRank的未知协议帧定位方法,该方法将TextRank的思想引入到传统未知协议帧定位过程中,通过统计数据中的各序列出现频率,从而确定比特流中各节点的投票权重,并通过TextRank算法思想进行投票确定协议数据中的关键序列,最后根据关键序列对比特流进行切分,计算得到的各段比特流间的序列相似度,由此判断未知协议数据的帧头位置。通过此方法能够快速有效地对未知协议数据进行分析,准确的定位比特流数据中各帧的位置。
Description
技术领域
本发明属于通信领域,具体说是一种基于TextRank的未知协议帧定位方法。
背景技术
随着计算机网络技术的不断发展,越来越多的私有协议被应用在数据传输过程中,此类私有协议通常具有固定格式但未公开。因此,对私有协议进行研究以分析其格式,对构建安全的网络环境具有重要意义。在协议已知的情况下,通信中的接收方可以通过帧同步码确定帧头位置,并依据协议格式对比特流数据进行解析。但是对于未知协议,监听者无法在获取对方的通信数据后进行有效解析。当前,如何从截获的通信数据中识别出私有协议是一个重要的研究课题,而在比特流数据中确定帧头帧尾以获得完整的帧是该研究中的首要问题。
发明内容
为了解决现有技术中难以对帧进行定界的问题,本发明提出一种基于TextRank的未知协议帧定位方法(Unknown Protocol Frame Locate Method,UPFLM),针对比特流形式的未知协议数据,能够准确的挖掘出其中的关键序列,并从中辨别出帧头序列及其位置,以此为依据完成帧的定位及切分。
为实现上述目的,本申请的技术方案为:一种基于TextRank的未知协议帧定位方法,包括如下步骤:
步骤一:根据给定的目标序列长度n,枚举出所有目标序列,构造“字典”数组;
步骤二:识别比特流B初始长度为n的序列,更新其对应的当前状态station和重要度值value;
步骤三:读入下一比特位的值new_bit,根据状态跳转函数跳转到下一状态new_station,并更新其重要度值value;
步骤四:若比特流B读取完毕,跳转到步骤五;否则重复步骤三直至比特流B被全部读取;
步骤五:按照二元组中的重要度值value将各状态排序,并输出其状态信息。
进一步的,所述状态跳转函数为:
new_station=(station%2n-1)*2+new_bit
式中:n表示目标序列长度,new_bit表示下一比特位的值,station表示当前状态,new_station表示将要跳转的下一状态。
进一步的,对输出的状态信息做如下处理:计算状态初始权重、计算节点权重和提取关键序列。
进一步的,计算状态初始权重的目的是设置状态的投票权重,计算过程如下式所示:
其中,stationi表示比特流B中以第i位为起始长度为n的序列对应的状态,VW(stationi)表示stationi的投票权重,P(stationi)表示状态i在比特流B中的实际出现频率,Paverage为长度为n的序列出现频率的期望值。
进一步的,状态权重计算的过程即利用某一节点的邻居节点进行投票,从而获得该节点在比特流B中的权重WS,WS用下式表示:
式中:nodei表示比特流中起始为第i位、长度为n的节点;WS为节点的权重;stationt表示节点nodei对应的状态;VM为状态的初始权重;d表示阻尼系数,其意义为某一节点指向其他任意节点的概率,通常取经验值0.85。
进一步的,经过计算比特流中状态的权重,如果某一序列为比特流中的关键序列,则其必定表现为连续的权重较高的状态,从而可以通过如下步骤对长关键序列进行提取:
步骤1:查找各节点权重WS中最大值max_WS;
步骤2:按顺序遍历比特流B中各节点;
步骤3:如果节点权重大于0.75*max_WS,判定此节点对应的序列为关键序列,执行步骤4;否则跳转到步骤2;
步骤4:如果下一节点的权重也大于0.75*max_WS,将两序列按照位置关系合并为一个序列,并重复步骤4;否则,跳转到步骤5;
步骤5:将得到的关键序列进行存储,并记录其起始位置,若遍历结束,跳转到步骤6;否则执行步骤2;
步骤6:输出得到的长关键序列信息。
进一步的,对得到的长关键序列信息进行切分,切分后会得到多个序列,因此在两序列相似度的基础上,以多序列间平均相似度为依据,按照平均相似度由高到低的顺序对关键序列进行排序;多序列间平均相似度如下式:
式中,distaverage为关键序列切分后所得到的多个序列之间的平均相似度,k为切分后所得到的序列的个数,ComTime表示需要比较的次数;排序后,平均相似度最高的关键序列即位于帧头,此时根据此序列即可完成帧定位与切分。
本发明由于采用以上技术方案,能够取得如下的技术效果:通过此方法能够快速有效地对未知协议数据进行分析,准确的定位比特流数据中各帧的位置。解决了大量比特流数据汇集时序列统计的速度问题和面向未知协议数据时帧起始位置难以确定的问题。
附图说明
图1为UPFLM方法针对不同长度的目标序列统计时间对比图;
图2为不同数据集下不同长度的目标序列统计时间对比图;
图3为UPFLM方法得到的部分节点权重图;
图4为UPFLM方法帧定位准确率对比图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施中的技术方案进行清楚、完整的描述,可以理解的是,所描述的实例仅仅是本发明的一部分实例,而不是全部的实施例。基于本发明的实施例,本领域的技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
在本方法中,序列统计过程充分考虑比特流形式协议数据的特点,为统计出比特流中出现的所有指定长度的目标序列,对传统AC算法进行改进。为包含目标序列的所有可能情况,目标序列通过枚举所有长度为n的序列产生,并将目标序列通过数组的形式存储构成“字典”从而取代Trie树以减少空间占用,每个目标序列可以定义为一个状态。同时,统计过程中不存在匹配失败的情况,失败指针在这一过程中不起作用。为实现不同状态之间的跳转,综合考虑状态信息与读入数据之间的关系提出状态跳转函数:
new_station=(station%2n-1)*2+new_bit
式中:n表示目标序列长度,new_bit表示下一比特位的值,station表示当前状态,new_station表示将要跳转的下一状态。
具体流程如下:
步骤一:根据给定的目标序列长度n,枚举出所有目标序列,构造“字典”数组;
步骤二:识别比特流B初始长度为n的序列,更新其对应的当前状态station和重要度值value;
步骤三:读入下一比特位的值new_bit,根据状态跳转函数跳转到下一状态new_station,并更新其重要度值value;
步骤四:若比特流B读取完毕,跳转到步骤五;否则重复步骤三直至比特流B被全部读取;
步骤五:按照二元组中的重要度值value将各状态排序,并输出其状态信息。
为能够通过序列统计的结果得到比特流中的关键序列,本文引入自然语言处理中关键词抽取方法TextRank的思想,利用投票的原理,得到每个节点的权重以实现关键词抽取。由于数据为比特流形式,其主要包括状态初始权重计算、节点权重计算和关键序列提取三部分。
状态初始权重计算的目的是设置状态的投票权重,计算过程如下式所示:
其中,stationi表示比特流B中以第i位为起始长度为n的序列对应的状态,VW(stationi)表示stationi的投票权重,P(stationi)表示状态i在比特流B中的实际出现频率,Paverage为长度为n的序列出现频率的期望值。
状态权重计算的过程即利用某一节点的邻居节点进行投票,从而获得该节点在比特流B中的权重WS,WS可用下式表示:
式中:nodei表示比特流中起始为第i位、长度为n的节点;WS为节点的权重;stationt表示节点nodei对应的状态;VM为状态的初始权重;d表示阻尼系数,其意义为某一节点指向其他任意节点的概率,通常取经验值0.85。
经过计算比特流中状态的权重,如果某一序列为比特流中的关键序列,则其必定表现为连续的权重较高的状态,从而可以通过如下过程对长关键序列进行提取:
步骤1:查找各节点权重WS中最大值max_WS;
步骤2:按顺序遍历比特流B中各节点;
步骤3:如果节点权重大于0.75*max_WS,判定此节点对应的序列为关键序列,执行步骤4;否则跳转到步骤2;
步骤4:如果下一节点的权重也大于0.75*max_WS,将两序列按照位置关系合并为一个序列,并重复步骤4;否则,跳转到步骤5;
步骤5:将得到的关键序列进行存储,并记录其起始位置,若遍历结束,跳转到步骤6;否则执行步骤2;
步骤6:输出得到的长关键序列信息。
对得到的长关键序列信息进行切分,切分后会得到多个序列,因此在两序列相似度的基础上,以多序列间平均相似度为依据,按照平均相似度由高到低的顺序对关键序列进行排序;多序列间平均相似度如下式:
式中,distaverage为关键序列切分后所得到的多个序列之间的平均相似度,k为切分后所得到的序列的个数,ComTime表示需要比较的次数;排序后,平均相似度最高的关键序列即位于帧头,此时根据此序列即可完成帧定位与切分。
下面再以一个实例验证本发明的效果。
UPFLM方法通过Visual Studio 2015平台实现,针对同一主机不同时间的通信数据通过Wireshark软件进行采集,并将采集到的数据包转换为连续的比特流形式,从而生成实验所用数据集。数据集J1与J3为TCP协议数据,J2为UDP协议数据,J4为TCP/UDP混合协议数据。J1、J2、J3、J4所包含的数据包数分别为500、1000、1000、1500个。
首先在数据集J1中对不同长度的序列进行统计,并与改进AC算法和传统AC算法进行对比实验,统计时间如图1。为观察数据集大小对序列统计过程的影响,分别利用不同数据集在不同目标序列长度下进行实验,实验结果如图2。
为进一步验证UPFLM方法的有效性,通过对数据集J1进行序列统计后得到的数据进行处理,得到各数据集的部分节点权重情况如图3。
实验中采用准确率作为帧定位方法的衡量标准,帧定位准确率R可由下式表示:
式中:Frecog表示准确定位的帧的数量,Ftotal表示数据集中包含的帧的数量。
仿真后可得UPFLM方法帧定位准确率对比图如图4所示。
综上可得:
1.本发明通过对传统AC算法进行改进,从而使其更适用于比特流数据中指定长度的目标序列的统计。
2.本发明解决了面向未知协议数据时帧起始位置难以确定的问题。
3.本发明能有效缩短序列统计时间从而加快帧定位的速度,并且能够有效提高帧定位的准确率。
以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (2)
1.一种基于TextRank的未知协议帧定位方法,其特征在于,包括如下步骤:
步骤一:根据给定的目标序列长度n,枚举出所有目标序列,构造字典数组;
步骤二:识别比特流B初始长度为n的序列,更新其对应的当前状态station和重要度值value;
步骤三:读入下一比特位的值new_bit,根据状态跳转函数跳转到下一状态new_station,并更新其重要度值value;
步骤四:若比特流B读取完毕,跳转到步骤五;否则重复步骤三直至比特流B被全部读取;
步骤五:按照二元组中的重要度值value将各状态排序,并输出其状态信息;
所述状态跳转函数为:
new_station=(station%2n-1)*2+new_bit
式中:n表示目标序列长度,new_bit表示下一比特位的值,station表示当前状态,new_station表示将要跳转的下一状态;
对输出的状态信息做如下处理:计算状态初始权重、计算节点权重和提取关键序列;
计算状态初始权重的目的是设置状态的投票权重,计算过程如下式所示:
其中,stationi表示比特流B中以第i位为起始长度为n的序列对应的状态,VW(stationi)表示stationi的投票权重,P(stationi)表示状态i在比特流B中的实际出现频率,Paverage为长度为n的序列出现频率的期望值;
状态权重计算的过程即利用某一节点的邻居节点进行投票,从而获得该节点在比特流B中的权重WS,WS用下式表示:
式中:nodei表示比特流中起始为第i位、长度为n的节点;WS为节点的权重;stationt表示节点nodei对应的状态;VM为状态的初始权重;d表示阻尼系数,其意义为某一节点指向其他任意节点的概率;
通过如下步骤对长关键序列进行提取:
步骤1:查找各节点权重WS中最大值max_WS;
步骤2:按顺序遍历比特流B中各节点;
步骤3:如果节点权重大于0.75*max_WS,判定此节点对应的序列为关键序列,执行步骤4;否则跳转到步骤2;
步骤4:如果下一节点的权重也大于0.75*max_WS,将两序列按照位置关系合并为一个序列,并重复步骤4;否则,跳转到步骤5;
步骤5:将得到的关键序列进行存储,并记录其起始位置,若遍历结束,跳转到步骤6;否则执行步骤2;
步骤6:输出得到的长关键序列信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910609097.9A CN110336817B (zh) | 2019-07-08 | 2019-07-08 | 一种基于TextRank的未知协议帧定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910609097.9A CN110336817B (zh) | 2019-07-08 | 2019-07-08 | 一种基于TextRank的未知协议帧定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110336817A CN110336817A (zh) | 2019-10-15 |
CN110336817B true CN110336817B (zh) | 2021-08-10 |
Family
ID=68143276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910609097.9A Active CN110336817B (zh) | 2019-07-08 | 2019-07-08 | 一种基于TextRank的未知协议帧定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110336817B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348084B (zh) * | 2020-11-08 | 2024-07-09 | 大连大学 | 改进k-means的未知协议数据帧分类方法 |
CN113139593B (zh) * | 2021-04-19 | 2022-06-21 | 湖南大学 | 一种基于对话分析的工控协议报文分类方法和*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707532A (zh) * | 2009-10-30 | 2010-05-12 | 中山大学 | 一种未知应用层协议自动分析方法 |
CN102523167A (zh) * | 2011-12-23 | 2012-06-27 | 中山大学 | 一种未知应用层协议报文格式的最佳分段方法 |
CN104767736A (zh) * | 2015-03-23 | 2015-07-08 | 电子科技大学 | 将未知单协议数据流分离为不同类型的数据帧的方法 |
CN104935567A (zh) * | 2015-04-20 | 2015-09-23 | 中国电子科技集团公司第二十九研究所 | 一种未知协议报文格式推断方法 |
CN105791278A (zh) * | 2016-02-29 | 2016-07-20 | 中国工程物理研究院计算机应用研究所 | 一种未知二进制协议帧切分与层次划分方法 |
CN107689899A (zh) * | 2017-09-01 | 2018-02-13 | 南京南瑞集团公司 | 一种基于比特流的未知协议识别方法及*** |
CN108712414A (zh) * | 2018-05-16 | 2018-10-26 | 东南大学 | 一种基于序列比对的二进制未知协议报文格式划分方法 |
CN108924010A (zh) * | 2018-07-25 | 2018-11-30 | 北京科东电力控制***有限责任公司 | 一种通信协议识别方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650317B2 (en) * | 2006-12-06 | 2010-01-19 | Microsoft Corporation | Active learning framework for automatic field extraction from network traffic |
IL206240A0 (en) * | 2010-06-08 | 2011-02-28 | Verint Systems Ltd | Systems and methods for extracting media from network traffic having unknown protocols |
-
2019
- 2019-07-08 CN CN201910609097.9A patent/CN110336817B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707532A (zh) * | 2009-10-30 | 2010-05-12 | 中山大学 | 一种未知应用层协议自动分析方法 |
CN102523167A (zh) * | 2011-12-23 | 2012-06-27 | 中山大学 | 一种未知应用层协议报文格式的最佳分段方法 |
CN104767736A (zh) * | 2015-03-23 | 2015-07-08 | 电子科技大学 | 将未知单协议数据流分离为不同类型的数据帧的方法 |
CN104935567A (zh) * | 2015-04-20 | 2015-09-23 | 中国电子科技集团公司第二十九研究所 | 一种未知协议报文格式推断方法 |
CN105791278A (zh) * | 2016-02-29 | 2016-07-20 | 中国工程物理研究院计算机应用研究所 | 一种未知二进制协议帧切分与层次划分方法 |
CN107689899A (zh) * | 2017-09-01 | 2018-02-13 | 南京南瑞集团公司 | 一种基于比特流的未知协议识别方法及*** |
CN108712414A (zh) * | 2018-05-16 | 2018-10-26 | 东南大学 | 一种基于序列比对的二进制未知协议报文格式划分方法 |
CN108924010A (zh) * | 2018-07-25 | 2018-11-30 | 北京科东电力控制***有限责任公司 | 一种通信协议识别方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于前导码挖掘的未知协议帧切分算法;雷东;《计算机应用》;20170210;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110336817A (zh) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506599B (zh) | 基于规则匹配和深度学习的工控设备识别方法及*** | |
CN112468370A (zh) | 一种支持自定义规则的高速网络报文监测分析方法及*** | |
CN109753987B (zh) | 文件识别方法和特征提取方法 | |
WO2023185494A1 (zh) | 一种点云数据识别方法、装置、电子设备及存储介质 | |
CN109033833B (zh) | 一种基于多特征与特征选择的恶意代码分类方法 | |
CN110336817B (zh) | 一种基于TextRank的未知协议帧定位方法 | |
CN111431819A (zh) | 一种基于序列化的协议流特征的网络流量分类方法和装置 | |
EP4390725A1 (en) | Video retrieval method and apparatus, device, and storage medium | |
CN106650446A (zh) | 基于***调用的恶意程序行为识别方法和*** | |
CN111488813B (zh) | 视频的情感标注方法、装置、电子设备及存储介质 | |
CN113539304A (zh) | 视频拆条方法和装置 | |
CN110798463A (zh) | 基于信息熵的网络隐蔽信道的检测方法及装置 | |
CN114301719B (zh) | 一种基于变分自编码器的恶意更新检测方法及*** | |
CN114239083B (zh) | 一种基于图神经网络的高效状态寄存器识别方法 | |
CN111354354B (zh) | 一种基于语义识别的训练方法、训练装置及终端设备 | |
CN112235254B (zh) | 一种高速主干网中Tor网桥的快速识别方法 | |
CN109558735A (zh) | 一种基于机器学习的恶意程序样本聚类方法及相关装置 | |
CN117235137A (zh) | 一种基于向量数据库的职业信息查询方法及装置 | |
CN116578700A (zh) | 日志分类方法、日志分类装置、设备及介质 | |
CN108830302B (zh) | 一种图像分类方法、训练方法、分类预测方法及相关装置 | |
CN116821087A (zh) | 输电线路故障数据库构建方法、装置、终端及存储介质 | |
CN115630304A (zh) | 一种文本抽取任务中的事件分割抽取方法及*** | |
CN112989040B (zh) | 一种对话文本标注方法、装置、电子设备及存储介质 | |
CN110442714B (zh) | Poi名称规范性评估方法、装置、设备和存储介质 | |
CN113468866A (zh) | 非标准json串的解析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |