一种基于网络流量的协议逆向分析方法、系统和电子设备



1.本发明涉及协议逆向分析技术领域,尤其涉及一种基于网络流量的协议逆向分析方法、系统和电子设备。


背景技术:



2.目前进行协议逆向分析的技术手段和缺点如下:
3.1)pi项目:利用了生物信息学中的序列对比相关算法解决协议逆向工程中的问题,其采用局部序列对比算法smith waterman算法获取距离矩阵,然后使用upgma算法构造系统树,最后采用渐进对比算法执行多序列对比,缺点为:不能分析字段语义,需要依赖人工分析。对于复制的、冗余的协议,其效率和准确率较为低下。
4.2)discoverer项目:首次实现了完整的协议格式提取,它采用了逐层解析字段,需要依据格式字段决定自结构的解析方式,提出了以递归聚类为核心的协议逆向方法。主要包括标记和初始化、递归聚类、格式融合三个模块,缺点为:虽然实现了格式提取,但是语义推断人为带入了先验知识,格式识别准确率低、格式分组时引入误差较大。


技术实现要素:



5.本发明所要解决的技术问题是针对现有技术的不足,提供了一种基于网络流量的协议逆向分析方法、系统和电子设备。
6.本发明的一种基于网络流量的协议逆向分析方法的技术方案如下:
7.以第一预设分类标准,将数据包中的多个数据流进行聚类,得到多个第一集合,每个第一集合至少包括一个数据流;
8.确定每个数据流的语义标签,判断每个第一集合中的每个数据流的字符串,以及判断每个第一集合的每个数据流的语义标签,是否均相同,得到判断结果;
9.当所述判断结果为是时,以第二预设分类标准,将多个数据流划分为多个第二集合,每个第一集合至少包括一个数据流;
10.利用smith-waterman算法计算每个第二集合中所有数据流之间的相似度,按照相似度从高到低的顺序,对所有第二集合进行排序;
11.利用needleman-wunsch算法,按照所有第二集合的排序,对每个第二集合中的每个数据流进行字段识别,得到每个数据流的识别结果;
12.使用迭代聚类方法,将每个数据流的识别结果进行聚类,得到多个第三集合,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合;
13.根据多个第四集合,得到用于被第三方软件识别的协议格式。
14.本发明的一种基于网络流量的协议逆向分析方法的有益效果如下:
15.在避免引入先验知识的情况下,实现字段识别,且确定协议格式的过程效率高、准确率高,并适用于复制的、冗余的协议。
16.本发明的一种基于网络流量的协议逆向分析系统的技术方案如下:
17.所述第一聚类模块用于:以第一预设分类标准,将数据包中的多个数据流进行聚类,得到多个第一集合,每个第一集合至少包括一个数据流;
18.所述判断模块用于:确定每个数据流的语义标签,判断每个第一集合中的每个数据流的字符串,以及判断每个第一集合的每个数据流的语义标签,是否均相同,得到判断结果;
19.所述分类模块用于:当所述判断结果为是时,以第二预设分类标准,将多个数据流划分为多个第二集合,每个第一集合至少包括一个数据流;
20.所述排序模块用于:利用smith-waterman算法计算每个第二集合中所有数据流之间的相似度,按照相似度从高到低的顺序,对所有第二集合进行排序;
21.所述识别模块用于:利用needleman-wunsch算法,按照所有第二集合的排序,对每个第二集合中的每个数据流进行字段识别,得到每个数据流的识别结果;
22.所述第二聚类模块用于:使用迭代聚类方法,将每个数据流的识别结果进行聚类,得到多个第三集合,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合;
23.所述获取模块用于:根据多个第四集合,得到用于被第三方软件识别的协议格式。
24.本发明的一种基于网络流量的协议逆向分析系统的有益效果如下:
25.在避免引入先验知识的情况下,实现字段识别,且确定协议格式的过程效率高、准确率高,并适用于复制的、冗余的协议。
26.本发明的一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行上述任一项所述的一种基于网络流量的协议逆向分析方法。
27.本发明的一种电子设备,包括处理器和上述的存储介质,所述处理器执行所述存储介质中的指令。
附图说明
28.图1为本发明实施例的一种基于网络流量的协议逆向分析方法的流程示意图;
29.图2为本发明实施例的一种基于网络流量的协议逆向分析系统的结构示意图。
具体实施方式
30.如图1所示,本发明实施例的一种基于网络流量的协议逆向分析方法,包括如下步骤:
31.s1、以第一预设分类标准,将数据包中的多个数据流进行聚类,得到多个第一集合,每个第一集合至少包括一个数据流;
32.其中,未知协议逆向分析技术大体可以分为两类,第一种为基于网络流量的未知协议逆向分析技术,第二种为基于执行轨迹的未知协议逆向分析技术。网络流量具体在发明中的体现:为s1中数据包中的多个数据流。
33.其中,可利用隐马尔可夫模型或k-means聚类算法,以第一预设分类标准,将数据包中的多个数据流进行聚类;
34.其中,第一预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主
机的ip地址、发送数据流的端口信息和接收数据流的端口信息如端口号等。
35.那么s1具体为:
36.以发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、发送数据流的端口信息和接收数据流的端口信息作为聚类标准,利用隐马尔可夫模型或k-means聚类算法将数据包中的多个数据流进行聚类,得到多个第一集合。
37.s2、确定每个数据流的语义标签,判断每个第一集合中的每个数据流的字符串,以及判断每个第一集合的每个数据流的语义标签,是否均相同,得到判断结果;
38.其中,根据任一数据流的源主机的ip地址、目标主机的ip地址、数据类型(ascii或二进制)等与上下文信息有联系的语义信息,向任一数据流添加语义标签,依次对每个数据流添加语义标签,确定每个数据流的语义标签,其中,每个数据流可有多个语义标签。
39.判断每个第一集合中的每个数据流的字符串,具体可依次判断每个第一集合中的数据流中的字符是否相同。
40.s3、当判断结果为是时,以第二预设分类标准,将多个数据流划分为多个第二集合,每个第一集合至少包括一个数据流;
41.其中,第二预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、时间戳和源主机的用户名。那么s2具体为:
42.利用k-means聚类算法,以发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、时间戳和源主机的用户名作为划分标准,将多个数据流划分为多个第二集合。
43.s4、利用smith-waterman算法计算每个第二集合中所有数据流之间的相似度,按照相似度从高到低的顺序,对所有第二集合进行排序;
44.其中,smith-waterman算法的基本思想是:对相似度计分,然后迭代求和,若求和矩阵小于0,则重新开始比对,比对结果可选择任意得分最大的元素,并确定为该第二集合的所有数据流之间的相似度。
45.s5、利用needleman-wunsch算法,按照所有第二集合的排序,对每个第二集合中的每个数据流进行字段识别,得到每个数据流的识别结果;具体地:
46.利用needleman-wunsch算法,按照所有第二集合的排序,对每个第二集合中的每个数据流进行全局对比,得到最佳匹配符序列。其中,在needleman-wunsch算法比较过程中,函数不仅比较每个字节的值,还会比较其语义标签并计算相似性,主要分为三个步骤:
47.1)、相似度计分,若语义标签匹配但数值不同,相似性函数会返回一个高分;相反若数值匹配但语义标签不匹配,会返回0。
48.2)积分求和,选取最大元素,空位罚分可设置为0。
49.3)最优回溯,选取元素上侧、左侧和左上中最大的元素进行移动,若左侧元素大则在第一个报文序列中插入空格,上侧元素最大则在另一报文序列中插入空格。
50.由此得到每个数据流的识别结果,具体地:
51.将最佳匹配符序列进行字段识别,通过与协议库中的已有协议信息进行字段对比,得到与已知协议相似的每个数据流的识别结果。
52.s6、使用迭代聚类方法,将每个数据流的识别结果进行聚类,得到多个第三集合,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合;具体地:
53.首先对每个数据流的识别结果的首个相似字段进行聚类合并,再使用迭代聚类方法加入后续相似字段进行分类合并,直至迭代结束,得到多个第三集合,然后,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合。
54.s7、根据多个第四集合,得到用于被第三方软件识别的协议格式。具体可将第四集合输入已知的netzob平台,得到用于被第三方软件识别的协议格式。
55.其中,第三方软件为:wireshark软件、scapy软件或模糊测试器,模糊测试器可为peach模糊测试器或sulley模糊测试器。
56.本发明的一种基于网络流量的协议逆向分析方法,在逆向协议分析过程中加入语义分析即字段识别,进一步实现完整的协议格式提取,在避免引入先验知识的情况下,实现字段识别,且确定协议格式的过程效率高、准确率高,并适用于复制的、冗余的协议。适用于网络安全技术领域。
57.在另外一个实施例中,包括如下步骤:
58.s10、预处理,具体地:
59.基于统计特征进行数据预处理,根据源目的主机地址、端口、关联规则等分类方法转化为隐马尔可夫模型,根据不同报文的相似度进行聚类。原始数据流被划分为不同报文序列集合。
60.s11、序列对齐阶段,具体地:
61.在该过程中,会对每个要素进行语义信息收集,每个要素可以具有多个语义标签。
62.s12、消息格式聚类,具体地:
63.对含有相同信息的数据进行重新分组,如主机地址、时间戳、用户名等。采用needleman-wunsch算法与smith-waterman算法相结合得到相似矩阵,匹配最佳符序列。其中,利用smith-waterman算法计算序列之间的相似度并生成相似矩阵,序列按照相似度从高到低进行排列,再使用needleman-wunsch算法全局对比序列进行字段识别。此外,在needleman-wunsch算法比较过程中,函数不仅比较每个字节的值,还会比较其语义标签并计算相似性,主要分为三个步骤:
64.1)相似度计分:若语义标签匹配但数值不同,相似性函数会返回一个高分;相反若数值匹配但语义标签不匹配,会返回0;
65.2)积分求和:选取最大元素,空位罚分可设置为0。
66.3)最优回溯:选取元素上侧、左侧和左上中最大的元素进行移动,若左侧元素大则在第一个报文序列中插入空格,上侧元素最大则在另一报文序列中插入空格。通过基于语义的序列对齐过程,可以在计算字段的同时保留语义定义。
67.s13、语义推断,具体地:
68.使用迭代聚类,将格式标识符范围小,聚类后属性序列相同的fd字段,继续往后再聚类,若语义相同或相似度很高则合并两个子类。
69.s14、协议格式提取并输出,具体地:
70.该模块主要负责导出输出结果,输出的结果即输出的协议格式可以被第三方软件如wireshark和scapy理解或者支持模糊测试器如peach和sulley。
71.本实施例的一种基于网络流量的协议逆向分析方法具有如下技术效果:
72.1)基于网络流量的协议逆向分析具有依赖性小、实时性高、应用范围广泛等优点;
73.2)在现有技术的基础上,提出了基于语义的协议格式推断方法,将语义分析融合进序列对比阶段,考虑了报文结构信息的提取和字段语义推断,解决了引入先验知识的局限性和复杂度等问题,增加了语义标注的主动性和种类。
74.3)针对传统needleman-wunsch算法做出优化,在相似度计分部分考虑进语义的影响,能够进一步提高消息聚类的准确度。
75.在上述各实施例中,虽然对步骤进行了编号s1、s2等,但只是本技术给出的具体实施例,本领域的技术人员可根据实际情况调整s1、s2等的执行顺序,此也在本发明的保护范围内,可以理解,在一些实施例中,可以包含如上述各实施方式中的部分或全部。
76.如图2所示,本发明实施例的一种基于网络流量的协议逆向分析系统200,包括第一聚类模块210、判断模块220、分类模块230、排序模块240、识别模块250、第二聚类模块260和获取模块270;
77.第一聚类模块210用于:以第一预设分类标准,将数据包中的多个数据流进行聚类,得到多个第一集合,每个第一集合至少包括一个数据流;
78.判断模块220用于:确定每个数据流的语义标签,判断每个第一集合中的每个数据流的字符串,以及判断每个第一集合的每个数据流的语义标签,是否均相同,得到判断结果;
79.分类模块230用于:当判断结果为是时,以第二预设分类标准,将多个数据流划分为多个第二集合,每个第一集合至少包括一个数据流;
80.排序模块240用于:利用smith-waterman算法计算每个第二集合中所有数据流之间的相似度,按照相似度从高到低的顺序,对所有第二集合进行排序;
81.识别模块250用于:利用needleman-wunsch算法,按照所有第二集合的排序,对每个第二集合中的每个数据流进行字段识别,得到每个数据流的识别结果;
82.第二聚类模块260用于:使用迭代聚类方法,将每个数据流的识别结果进行聚类,得到多个第三集合,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合;
83.获取模块270用于:根据多个第四集合,得到用于被第三方软件识别的协议格式。
84.在避免引入先验知识的情况下,实现字段识别,且确定协议格式的过程效率高、准确率高,并适用于复制的、冗余的协议。
85.可选地,在上述技术方案中,第一预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、发送数据流的端口信息和自定义关联规则。
86.可选地,在上述技术方案中,第二预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、时间戳和源主机的用户名。
87.可选地,在上述技术方案中,第三方软件为:wireshark软件、scapy软件或模糊测试器。
88.上述关于本发明的一种基于网络流量的协议逆向分析系统200中的各参数和各个单元模块实现相应功能的步骤,可参考上文中关于一种基于网络流量的协议逆向分析方法的实施例中的各参数和步骤,在此不做赘述。
89.本发明实施例的一种存储介质,存储介质中存储有指令,当计算机读取指令时,使计算机执行上述任一项的一种基于网络流量的协议逆向分析方法。
90.本发明实施例的一种电子设备,包括处理器和上述的存储介质,处理器执行存储介质中的指令,其中,电子设备可以选用电脑、手机等。
91.所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。
92.因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
93.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram),只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
94.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:


1.一种基于网络流量的协议逆向分析方法,其特征在于,包括:以第一预设分类标准,将数据包中的多个数据流进行聚类,得到多个第一集合,每个第一集合至少包括一个数据流;确定每个数据流的语义标签,判断每个第一集合中的每个数据流的字符串,以及判断每个第一集合的每个数据流的语义标签,是否均相同,得到判断结果;当所述判断结果为是时,以第二预设分类标准,将多个数据流划分为多个第二集合,每个第一集合至少包括一个数据流;利用smith-waterman算法计算每个第二集合中所有数据流之间的相似度,按照相似度从高到低的顺序,对所有第二集合进行排序;利用needleman-wunsch算法,按照所有第二集合的排序,对每个第二集合中的每个数据流进行字段识别,得到每个数据流的识别结果;使用迭代聚类方法,将每个数据流的识别结果进行聚类,得到多个第三集合,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合;根据多个第四集合,得到用于被第三方软件识别的协议格式。2.根据权利要求1所述的一种基于网络流量的协议逆向分析方法,其特征在于,所述第一预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、发送数据流的端口信息和接收数据流的端口信息。3.根据权利要求1所述的一种基于网络流量的协议逆向分析方法,其特征在于,所述第二预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、时间戳和源主机的用户名。4.根据权利要求1所述的一种基于网络流量的协议逆向分析方法,其特征在于,所述第三方软件为:wireshark软件、scapy软件或模糊测试器。5.一种基于网络流量的协议逆向分析系统,其特征在于,包括第一聚类模块、判断模块、分类模块、排序模块、识别模块、第二聚类模块和获取模块;所述第一聚类模块用于:以第一预设分类标准,将数据包中的多个数据流进行聚类,得到多个第一集合,每个第一集合至少包括一个数据流;所述判断模块用于:确定每个数据流的语义标签,判断每个第一集合中的每个数据流的字符串,以及判断每个第一集合的每个数据流的语义标签,是否均相同,得到判断结果;所述分类模块用于:当所述判断结果为是时,以第二预设分类标准,将多个数据流划分为多个第二集合,每个第一集合至少包括一个数据流;所述排序模块用于:利用smith-waterman算法计算每个第二集合中所有数据流之间的相似度,按照相似度从高到低的顺序,对所有第二集合进行排序;所述识别模块用于:利用needleman-wunsch算法,按照所有第二集合的排序,对每个第二集合中的每个数据流进行字段识别,得到每个数据流的识别结果;所述第二聚类模块用于:使用迭代聚类方法,将每个数据流的识别结果进行聚类,得到多个第三集合,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合;所述获取模块用于:根据多个第四集合,得到用于被第三方软件识别的协议格式。6.根据权利要求5所述的一种基于网络流量的协议逆向分析系统,其特征在于,所述第
一预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、发送数据流的端口信息和接收数据流的端口信息。7.根据权利要求5所述的一种基于网络流量的协议逆向分析系统,其特征在于,所述第二预设分类标准为:发送数据流的源主机的ip地址、接收数据流的目标主机的ip地址、时间戳和源主机的用户名。8.根据权利要求5所述的一种基于网络流量的协议逆向分析系统,其特征在于,所述第三方软件为:wireshark软件、scapy软件或模糊测试器。9.一种存储介质,其特征在于,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行如权利要求1至4中任一项所述的一种基于网络流量的协议逆向分析方法。10.一种电子设备,其特征在于,包括处理器和权利要求9所述的存储介质,所述处理器执行所述存储介质中的指令。

技术总结


本发明涉及协议逆向分析技术领域,尤其涉及一种基于网络流量的协议逆向分析方法、系统和电子设备,方法包括:以第一预设分类标准,将数据包中的多个数据流进行聚类,确定每个数据流的要素的标签;当判断结果为是时,将多个数据流划分为多个第二集合,依次利用Smith-Waterman算法和Needleman-Wunsch算法后,得到每个数据流的识别结果,将每个数据流的识别结果进行聚类,得到多个第三集合,将每个第三集合中的每个数据流的识别结果对应的数据流划分为同一集合,得到多个第四集合,进而得到用于被第三方软件识别的协议格式,在避免引入先验知识的情况下,实现字段识别,且确定协议格式的过程效率高、准确率高。准确率高。准确率高。


技术研发人员:

孔晴 陶玥欣

受保护的技术使用者:

北京邮电大学

技术研发日:

2022.08.30

技术公布日:

2022/12/22

本文发布于:2024-09-23 14:25:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/44236.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据流   多个   协议   语义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议