CN111767695A - 一种协议反向工程中字段边界推理优化方法 - Google Patents
一种协议反向工程中字段边界推理优化方法 Download PDFInfo
- Publication number
- CN111767695A CN111767695A CN202010599763.8A CN202010599763A CN111767695A CN 111767695 A CN111767695 A CN 111767695A CN 202010599763 A CN202010599763 A CN 202010599763A CN 111767695 A CN111767695 A CN 111767695A
- Authority
- CN
- China
- Prior art keywords
- field
- protocol
- boundary
- fields
- algorithm
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种协议反向工程中字段边界推理优化方法,属于计算机领域。本发明在进行字段合并时,首先计算每一个字段的输入位置,对每一个字段包括的所有字符串信息进行了综合考虑,从而克服了传统的VE算法不能利用全局信息,对短字段识别能力差的缺点,提高了对工业协议字段逆向的准确性。在合并字段时通过计算各个字段边界熵,并不通过序列比对,可以对文本协议的边界和二进制协议的边界都有较好的效果,泛化能力强,克服了传统的算法只对单一类型的协议边界识别度高,但通用性不强的缺陷。
Description
技术领域
本发明涉及计算机领域,具体涉及一种协议反向工程中字段边界推理优化方法。
背景技术
协议是计算机网络与分布式系统中各种通信实体之间相互交互信息时必须遵守的一组规则、标准和约定,是计算机网络及数据通信的核心,也是网络安全领域的重点研究对象,保证了双方通信有条不紊、可靠地交换信息。比较著名的网络协议有TCP/IP协议栈中的一些协议,比如IP、TCP、UDP、POP3、SMTP、HTTP等。除了大量标准化的通信协议外,网络中还存在大量私有协议,并没有公开协议细节,缺乏正式的描述文档,带来解读难和不可控的信息传递,私有协议的发展也会伴随着网络恶意活动的增长,可能引发通信漏洞,产生信息窃密、网络恶意行为等不法活动。因此针对私有协议的网络管理和安全问题,研究人员越来越多地采用协议逆向的手段实现协议信息的获取。随着网络规模的扩大和应用种类的增多,对协议逆向的准时性和泛化能力要求越来越高。
协议反向工程是一个从协议执行代码的痕迹中反向转换协议句法和语法的过程。它主要考虑三种协议特性:字段边界、协议语法和状态机。通过字段边界推理可以发现协议二进制数据的边界并将它分割成基本字段,字段边界推理是协议逆向工程的基础,只有推理出精确的字段边界,才能在接下来的协议分析中得到更加准确的结果,该过程的精度对语法和状态机的逆向精确度有很大的影响。根据数据源的不同,协议逆向工程可以分为两类。一类从协议对应软件的执行序列中逆向协议,另外一类从网络流量中逆向协议。由于基于网络流量的协议逆向具有比较好的通用性,因此成为了研究热点。现有技术中已报道多种方法用于字段边界推理,如Neederman Wunsch算法、VE算法,其中,Neederman Wunsch算法是一种双序列比对算法,原理就是运用最长公共子序列算法,算法完成后通过最优回溯来找到相似度最高的一条路径,这条路径往往就能代表着不同报文最高相似度的地方在哪里。Neederman Wunsch算法更适用于文本协议,因为文本协议由一串ACSII字符组成的数据,并以特殊字符分割,易于比对,但对由纯字节流组成的二进制协议比对效率低下,算法性能较差;VE算法是一种局部贪心算法,它以字符串作为输入,通过一个滑动窗口在字符串在进行滑动,在每一个窗口内选择最有可能的位置作为字段初始边界,然后在决策阶段决定字段最终的边界。由于不是通过序列比对来进行字段边界推理,VE算法对文本协议和二进制协议具有很好的泛化能力,但VE算法不能利用全局信息,对短字段识别能力差的缺点,从而导致其精度较低。
发明内容
为了解决现有的字段边界推理方法不能兼具良好的泛化能力和处理精度的问题,本发明提出了一种协议反向工程中字段边界推理优化方法。本发明基于输入距离聚类(ABinfer)算法,通过重复合并相邻字段来推断字段边界。
输入距离聚类(ABinfer)算法是一种递归归并相邻字段并推断字段边界的算法。该算法利用字段输入信息递归地将小的相邻字段合并到一个新字段中。该算法背后的主要思想是,如果两个相邻字段的项是相近的,那么这两个字段更有可能是一个完整的字段。
为了实现上述目的,本发明采用如下技术方案:
步骤1:将报文转化为字符串,将得到的字符串定义为协议痕迹M;
步骤2:将协议痕迹M中的字符串进行初始分割,每一个字节作为一个字段w,得到初始字段集合F={w1,w2,...,wm},其中wi={si1,si2,...,sin},wi表示字段集合F中的第i个字段,m表示初始字段的数量,sij表示第i个字段中的第j个字符串,n表示当前字段中的字符串数量;
步骤4:计算相邻两个字段之间的距离D(wi,wi+1),得到相邻字段之间的最小距离tmin=min{D(w1,w2),D(w2,w3),......,D(wn-1,wn)};若tmin=D(wj,wj+1)<Tm,则将wj与wj+1合并后作为新的字段wj,更新后的字段集合F中的字段重新排序;其中Tm为边界滤波阈值;
步骤5:重复步骤3-4,直至相邻字段之间的距离均大于Tm或者字段集合F中只剩下一个字段,将最终的字段集合F作为最终结果输出。
本发明具备的有益效果是:
(1)本发明在进行字段合并时,首先计算每一个字段的输入位置,从计算公式中可以看出,本发明对每一个字段包括的所有字符串信息进行了综合考虑,从而克服了传统的VE算法不能利用全局信息,对短字段识别能力差的缺点,提高了对工业协议字段逆向的准确性。
(2)本发明在合并字段时通过计算各个字段边界熵,并不通过序列比对,可以对文本协议的边界和二进制协议的边界都有较好的效果,泛化能力强,克服了传统的算法只对单一类型的协议边界识别度高,但通用性不强的缺陷。
附图说明
图1是本发明的主要步骤示意图。
具体实施方式
以下结合附图,以工业协议为例,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
一种协议反向工程中字段边界推理优化方法,步骤如下:
步骤1:将报文转化为字符串,得到协议痕迹M,即由报文转换而来的一条条字符串;报文是网络中交换与传输的数据单元,即站点一次性要发送的数据块,报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。当一个站点要发送报文时,它将一个目的地址附加到报文上,网络节点根据报文上的目的地址信息,把报文发送到下一个节点,一直逐个节点地转送到目的节点。每个节点在收到整个报文并检查无误后,就暂存这个报文,然后利用路由信息找出下一个节点的地址,再把整个报文传送给下一个节点。可以通过抓包工具获取报文并转换为字符串,如Wireshark软件。
步骤2:将协议痕迹M中的字符串进行初始分割,每一个字节作为一个字段w,得到初始字段集合F={w1,w2,...,wm},该集合中的所有字段按升序排列;其中wi={si1,si2,...,sin},wi表示字段集合F中的第i个字段,m表示初始字段的数量,sij表示第i个字段中的第i个字符串,n表示当前字段中的字符串数量;
步骤4:计算相邻两个字段之间的距离D(wi,wi+1),得到相邻字段之间的最小距离tmin=min{D(w1,w2),D(w2,w3),......,D(wn-1,wn)};若tmin=D(wj,wj+1)<Tm,则将wj与wj+1合并后作为新的字段wj,更新后的字段集合F中的字段重新排序;其中Tm为边界滤波阈值;
步骤5:重复步骤3-4,直至相邻字段之间的距离均大于Tm或者字段集合F中只剩下一个字段,将最终的字段集合F作为最终结果输出。
在本发明的一个具体实施中,建立集合w.s和集合w.e,将字段集合F中字段w中的字符串存入集合w.s中,通过计算机程序读取集合w.s中的字符串信息,计算字段w的输入位置E(w),并将计算结果存储至集合w.e中。
本发明设定参数tmin和数fmin,其中tmin用于表示集合F中相邻字段之间的最小输入距离,fmin用于表示最小输入距离的两个字段中的第一个字段。
相邻字段之间的距离通过以下公式计算:
其中,abs(·)表示求绝对值函数,wi表示集合F中的第i个字段,D(wi,wi+1)表示字段wi和字段wi+1之间的距离。根据D(wi,wi+1)的值求出tmin=min{D(w1,w2),D(w2,w3),......,D(wn-1,wn)}。最终,将字段根据tmin与边界滤波阈值Tm进行比较后,逐步形成新的字段,所得到的新的字段放于字段集合F之中,返回。这时,就成功划分出该协议所对应的字段边界。
图1给出了一种具体实施例,输入序列是\x34\x67\x00\x00\x00\x05,通过上述距离公式计算得到每一个字段之间的距离为1、3、0、0、2。假设边界滤波阈值Tm为2,由于位置2和位置5的距离为3和2,大于等于阈值,其余均小于阈值,将其余进行合并,位置2和5被识别为字段边界。
为了进一步验证本发明的效果,使用精度(precision)、召回率(recall)和Flone(用于判断一个算法的优劣性)来评价本发明的方法。
True Positives:如果被逆向出来的边界是协议字段边界,那么这类边界是Truepositives。
True Negatives:如果被逆向出来的边界不是协议字段边界,那么这类边界属于True Negatives。
False positives:如果没有被逆向出来的边界本身不是字段边界,那么这类边界属于False Positives。
False Negatives:如果没有被逆向出来的字段边界本身是字段边界,那么这类字段边界属于False Negatives。
在此基础上,定义准确率(precision),召回率(recall)和Flone如下:
选用Modbus协议和Iec104协议的报文作为数据集进行字段边界推断评估。表1为该算法的实验结果,表2为对比算法的实验结果。
表1
precision | recall | Flone | |
modbus | 100.00 | 93.33 | 90.01 |
lec104 | 90.00 | 100.00 | 95.20 |
表2
从表中数据可以看出,LDA模型的Precision分数在Modbus和Iec104协议上都达到了100%,这意味着LDA模型识别出来的字段边界准确性很高。LDA模型的recall分数比较低,这意味着LDA模型识别的字段边界种类比较单一。这其中的原因是LDA模型对于高频字段具有很好的识别能力,但是无法识别其他频率比较低的字段。VE模型在Modbus协议上的表现比较差,对应的F1值分别为44.40,这主要是因为在这个协议中存在很多短字段,VE算法无法识别这种类型的字段。而新算法在两个工业协议上均取得了最好的表现。从实验结果还可以得出结论:采用ABinfer算法的实验效果都大于等于采用LDA和VE算法的实验效果,这说明该算法在逆向工业协议公共字段的能力上大于等于其他两种方法。
以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (3)
1.一种协议反向工程中字段边界推理优化方法,其特征在于,包括以下步骤:
步骤1:将报文转化为字符串,得到协议痕迹M;
步骤2:将协议痕迹M中的字符串进行初始分割,每一个字节作为一个字段w,得到初始字段集合F={w1,w2,...,wm},其中wi={si1,si2,...,sin},wi表示字段集合F中的第i个字段,m表示初始字段的数量,sij表示第i个字段中的第j个字符串,n表示当前字段中的字符串数量;
步骤4:计算相邻两个字段之间的距离D(wi,wi+1),得到相邻字段之间的最小距离tmin=min{D(w1,w2),D(w2,w3),......,D(wn-1,wn)};若tmin=D(wj,wj+1)<Tm,则将wj与wj+1合并后作为新的字段wj,更新后的字段集合F中的字段重新排序;其中Tm为边界滤波阈值;
步骤5:重复步骤3-4,直至相邻字段之间的距离均大于Tm或者字段集合F中只剩下一个字段,将最终的字段集合F作为最终结果输出。
3.根据权利要求1所述的一种协议反向工程中字段边界推理优化方法,其特征在于,所述Tm=2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010599763.8A CN111767695B (zh) | 2020-06-28 | 2020-06-28 | 一种协议反向工程中字段边界推理优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010599763.8A CN111767695B (zh) | 2020-06-28 | 2020-06-28 | 一种协议反向工程中字段边界推理优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767695A true CN111767695A (zh) | 2020-10-13 |
CN111767695B CN111767695B (zh) | 2023-10-13 |
Family
ID=72722434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010599763.8A Active CN111767695B (zh) | 2020-06-28 | 2020-06-28 | 一种协议反向工程中字段边界推理优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767695B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112702235A (zh) * | 2020-12-21 | 2021-04-23 | 中国人民解放军陆军炮兵防空兵学院 | 一种对未知协议自动化逆向分析的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090254891A1 (en) * | 2008-04-07 | 2009-10-08 | Microsoft Corporation | Automatic reverse engineering of input formats |
CN102523167A (zh) * | 2011-12-23 | 2012-06-27 | 中山大学 | 一种未知应用层协议报文格式的最佳分段方法 |
CN109040081A (zh) * | 2018-08-10 | 2018-12-18 | 哈尔滨工业大学(威海) | 一种基于bwt的协议字段逆向分析系统及方法 |
CN110225027A (zh) * | 2019-06-06 | 2019-09-10 | 贵州华云创谷科技有限公司 | 一种基于三维码技术的隔离网间单向数据摆渡方法及系统 |
-
2020
- 2020-06-28 CN CN202010599763.8A patent/CN111767695B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090254891A1 (en) * | 2008-04-07 | 2009-10-08 | Microsoft Corporation | Automatic reverse engineering of input formats |
CN102523167A (zh) * | 2011-12-23 | 2012-06-27 | 中山大学 | 一种未知应用层协议报文格式的最佳分段方法 |
CN109040081A (zh) * | 2018-08-10 | 2018-12-18 | 哈尔滨工业大学(威海) | 一种基于bwt的协议字段逆向分析系统及方法 |
CN110225027A (zh) * | 2019-06-06 | 2019-09-10 | 贵州华云创谷科技有限公司 | 一种基于三维码技术的隔离网间单向数据摆渡方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112702235A (zh) * | 2020-12-21 | 2021-04-23 | 中国人民解放军陆军炮兵防空兵学院 | 一种对未知协议自动化逆向分析的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111767695B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111314279B (zh) | 一种基于网络流量的未知协议逆向方法 | |
CN109376797B (zh) | 一种基于二进制编码器和多哈希表的网络流量分类方法 | |
US20210027167A1 (en) | Model structure extraction for analyzing unstructured text data | |
CN111224984A (zh) | 一种基于数据挖掘算法的Snort改进方法 | |
CN111767695B (zh) | 一种协议反向工程中字段边界推理优化方法 | |
Hu et al. | Feature fusion convolution-aided transformer for automatic modulation recognition | |
CN113344450A (zh) | 低压台区线户识别方法、系统、终端设备及存储介质 | |
CN117119535A (zh) | 一种移动端集群热点共享的数据分流方法和系统 | |
WO2023169496A1 (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN112235254A (zh) | 一种高速主干网中Tor网桥的快速识别方法 | |
Ke et al. | Spark-based feature selection algorithm of network traffic classification | |
CN114979017B (zh) | 基于工控系统原始流量的深度学习协议识别方法及系统 | |
Zhao et al. | A joint communication and computation design for semantic wireless communication with probability graph | |
Lu et al. | TCFOM: a robust traffic classification framework based on OC-SVM combined with MC-SVM | |
CN112367325B (zh) | 基于闭合频繁项挖掘的未知协议报文聚类方法和系统 | |
Zhao et al. | Realization of intrusion detection system based on the improved data mining technology | |
Zolotukhin et al. | Detection of anomalous http requests based on advanced n-gram model and clustering techniques | |
Liu et al. | Community discovery in weighted networks based on the similarity of common neighbors | |
Jiang et al. | A Text Similarity-based Protocol Parsing Scheme for Industrial Internet of Things | |
Alsubhi et al. | GenSpec: A file fragment classification approach | |
Zhang et al. | An effiective IoT device identification using machine learning algorithm | |
CN111866860B (zh) | 一种基于序贯的无线设备射频指纹识别方法 | |
Sang et al. | A segmentation pattern based approach to automated protocol identification | |
CN113139593B (zh) | 一种基于对话分析的工控协议报文分类方法和系统 | |
Yang et al. | Time Slot Detection‐Based M‐ary Tree Anticollision Identification Protocol for RFID Tags in the Internet of Things |
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 |