CN109462590B - 一种基于模糊测试的未知协议逆向分析方法 - Google Patents
一种基于模糊测试的未知协议逆向分析方法 Download PDFInfo
- Publication number
- CN109462590B CN109462590B CN201811362553.6A CN201811362553A CN109462590B CN 109462590 B CN109462590 B CN 109462590B CN 201811362553 A CN201811362553 A CN 201811362553A CN 109462590 B CN109462590 B CN 109462590B
- Authority
- CN
- China
- Prior art keywords
- data packet
- protocol
- state machine
- test
- format
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- 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/03—Protocol definition or specification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及计算机网络通信领域,公开了一种基于模糊测试的未知协议逆向分析技术方法。该未知协议逆向分析技术方法包括以下步骤:s1.数据包采集,包含数据预处理、会话划分和报文定界;s2.在现有数据包的基础上进行协议格式提取和状态机推断,输出初步的协议规范描述;s3.在初步或改进后的协议规范的基础上生成测试用例,采用带控制的模糊测试方法进行发送数据包,根据应答来做出推断;s4.根据返回的数据包来进行相应的调整:如果发送的数据包占所有协议格式的比例满足一个阈值时,则输出相应的协议规范,否则根据返回的数据包进行词法和语法的调整。本发明采用自动化的方法,可以减少人工对协议分析逆向分析的工作,能满足一定的准确率,提高逆向分析的效率。
Description
技术领域
本发明属于网络通信中未知协议逆向分析领域,具体为一种基于模糊测试的未知协议逆向分析方法,利用截取的数据包和服务器应答的数据包来实现对未知协议进行逆向分析。
背景技术
当前的时代是互联网的时代,在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。据统计,目前Internet与企业网上运行的网络协议大约有600多种,网络应用高达2000多种,同时网络中的新的、私有的、未知的网络通信协议正在不停的增加,深度理解运行在企业单位中局域网和Internet中的广域网中的通信协议对于计算机网络安全来说显得尤为重要。
在计算机网络中还有很多未知的网络通信协议,未知协议逆向分析是在不清楚目标协议的规范的前提下,通过逆向工程跟踪解析协议通信过程的指令级和函数级操作来重构协议的规范,从而解析出未知协议的语法结构和行为语义。未知协议的逆向分析对软件安全性分析、流量控制、入侵检测、指纹生成、应用程序会话重发、漏洞挖掘、网络安全策略的制定等起着至关重要的作用。
为了解决未知协议逆向分析这一类问题,很多研究都是借助逆向工程技术与人工技术来解决未知协议的逆向分析。但是由于现在的网络越来越复杂,软件自身的协议规范也越来越复杂,逆向工程耗费的时间和人工也越来越多,所以迫切需要一种自动化的手段来进行未知协议逆向分析,减少相应的成本,提高工作效率。
发明内容
针对上述现有技术问题,本发明的目的在于提供一种基于模糊测试的未知协议逆向分析方法,根据截取的数据包和服务器应答的数据包能自动化地进行逆向分析。
为了达到上述目的,本发明采用如下技术方案:
一种基于模糊测试的未知协议逆向分析方法,其特征在于,包括以下步骤:
s1.数据包采集:
捕获数据包,并进行相应的数据预处理工作,包括会话划分和报文定界;
s2.初步进行协议推断:
根据预处理完以后的数据包,先进行协议格式提取,然后进行状态机推断,最后生成初步的协议规范描述;
s3.模糊测试生成测试用例并主动推断:
根据生成的协议规范描述,结合模糊测试生成测试用例的方法,在一定范围内生成测试用例,发送给服务器;
s4.协议重构:
服务器返回数据包以后,根据应答的数据包来进行相应的词法和语法修正,采用标记法,对服务器没有正确回应的发送数据包进行标记,重构协议格式和状态机;
所述步骤s4具体包括:
s41.发送模糊测试变异以后的数据包;
s42.等待服务器返回数据包;
s43.判断返回的数据包是否在生成的协议格式中,结果为“否”,则进行步骤s44,为“是”,则进行步骤s45;
s44.把返回的数据包加入到样本中,结合带有标记的数据包,重构协议格式与状态机,如果服务器没有应答或者应答的数据包不是状态机里面下一个数据包(正确的数据包,那么服务器会正确回应,反之亦然),那么我们会把发送数据的数据包或者状态机标记为错误状态,再重新调用协议格式与状态机的时候会把这些数据包给剔除,同时状态机推断的时候也避免这种状态机的推断;然后进行步骤s41
s45.判断返回的数据包是否在生成的状态机中,结果为“否”,则进行步骤s46,为“是”,则进行步骤s47;
s46.重构协议的状态机,然后进行步骤s41;
s47.判断已发送的数据包是否满足阈值,结果为“是”,则结束步骤s4,跳入步骤s5中,结果为“否”,则进行步骤s41。
s5.输出协议格式:
输出满足要求的协议规范。
所述步骤s3具体包括:
模糊测试生成用例:根据现有协议格式来生成数据包
控制生成用例的变异程度:生成数据包保证与原始的数据格式之间的差异在60%-100%之间。
因为本发明采用上述技术方案,因此具备以下有益效果:
1.现有技术有关模糊测试都是在未知协议逆向分析出来以后的利用方式,利用生成的协议规范来生成模糊测试的用例,但是模式测试本身是对之前的未知协议逆向分析没有任何帮助。
2.本申请利用初步生成的协议规范来进行模糊测试,模糊测试的本质是扩充样本集,同时也能提供反例。
3.有关相似性:应该控制相似性,两者之间差异不能过大,过大的变异会导致违背数据包的特征,引出错误的判断。
附图说明
图1是本发明的基于模糊测试用例的未知协议逆向分析方法的流程图;
图2是图1中协议重构的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本申请的核心的思想是利用初步生成的协议规范1来进行模糊测试,模糊测试的本质是扩充样本集,同时也能提供反例(如果仅提供正例,也就是直接使用截取的数据包,那么我们只能获取正例,那么正则语言不可能通过学习得到,那么模糊测试会让服务器提供反例,让我们的推断更加完备),例如发送数据包1但是没有回应,就是说明这个数据包1本身推断情况就是错误的。利用这个特性我们可以提出第一次推断重的一些错误,继续推断出新的协议规范2,进行第二次模糊测试,继续生成新的协议规范,以此往复,一直没有出现出错误的情况。
本发明的未知协议逆向分析方法,主要包括以下步骤:
s1.数据包采集:
可以利用Wireshark工具来捕获数据包,并进行相应的数据预处理工作,具体数据预处理工作包括:剔除原始数据中的冗余和干扰,如报文序列中可能出现的重传、乱序、分片;以会话和报文为粒度对输入进行分割。
s2.初步进行协议推断:
根据预处理完以后的数据包,先进行协议格式提取,可以利用已知的协议格式提取方法,例如PI、PEXT、Discoverer等,然后进行状态机推断,在这里我们利用BFS、PEXT里面的状态机推断,利用不需要与协议实体进行交互的方式,即被动推断的方式来推断状态机,最后生成初步的协议规范描述;
s3.模糊测试生成测试用例并主动推断:
根据生成的协议规范描述,结合模糊测试生成测试用例的方法,在一定范围内生成测试用例,发送给服务器,采用模糊测试的好处能自动化扩大样本的容量和种类,同时也能发现之前协议格式提取和状态机推断中出现的错误;
所述步骤s3具体包括:
模糊测试生成用例:根据现有协议格式来生成数据包
控制生成用例的变异程度:生成数据包保证与原始的数据格式之间的差异不能超过一个值,可以设计一个计算方法来计算两者之间的差异,例如计算两者之间的数值方法,或者可以直接使用基于生成的方式作为模糊测试的引擎算法。
s4.协议重构:
服务器返回数据包以后,根据应答的数据包来进行相应的词法和语法修正,重构协议格式和状态机,在一开始设计系统的时候可以提供词法和语法反馈模块或者直接再一次进行协议格式提取和状态机推断,覆盖原始结果;
s5.输出协议格式:
输出满足要求的协议规范。
所述步骤s4具体包括:
s41.发送模糊测试变异以后的数据包给数据库;
s42.等待服务器返回数据包;
s43.判断返回的数据包是否在生成的协议格式中,结果为“否”,则进行步骤s44,为“是”,则进行步骤s45;
s44.把返回的数据包加入到样本中,重构协议格式与状态机,如果服务器没有应答或者应答的数据包不是状态机里面下一个数据包,那么我们会把发送数据的数据包或者状态机标记为错误状态,再重新调用协议格式与状态机的时候会把这些数据包给剔除,同时状态机推断的时候也避免这种状态机的推断;然后进行步骤s41
s45.判断返回的数据包是否在生成的状态机中,结果为“否”,则进行步骤s46,为“是”,则进行步骤s47;
s46.重构协议的状态机,然后进行步骤s41;
s47.判断已发送的数据包是否满足阈值,结果为“是”,则结束步骤s4,跳入步骤s5中,结果为“否”,则进行步骤s41。在这里阈值可以根据实际情况来选取,例如可以选取为0.8,这个值的作用主要是控制生成测试用例的覆盖率。
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
Claims (3)
1.一种基于模糊测试的未知协议逆向分析方法,其特征在于,包括以下步骤:
s1.数据包采集:
捕获数据包,并进行相应的数据预处理工作,包括会话划分和报文定界,剔除原始数据中的冗余和干扰;
s2.初步进行协议推断:
根据预处理完以后的数据包,先进行协议格式提取,然后进行状态机推断,最后生成初步的协议规范描述;
s3.模糊测试生成测试用例并主动推断:
根据生成的协议规范描述,结合模糊测试生成测试用例的方法,在一定范围内生成测试用例数据包,发送给服务器;
s4.协议重构:
服务器返回数据包以后,根据应答的数据包来进行相应的词法和语法修正,采用标记法,对服务器没有正确回应的发送数据包进行标记,重构协议格式和状态机;
s5.输出协议格式:
输出满足要求的协议规范。
2.根据权利要求1所述的一种基于模糊测试的未知协议逆向分析方法,其特征在于,所述步骤s3包括:
模糊测试生成用例:根据现有协议格式来生成数据包;
控制生成用例的变异程度:生成数据包保证与原始的数据格式之间的相似度在60%-100%之间。
3.根据权利要求1或者2所述一种基于模糊测试的未知协议逆向分析方法,其特征在于:步骤s4具体包括:
s41.发送模糊测试变异以后的数据包;
s42.等待服务器返回数据包;
s43.判断返回的数据包是否在S1生成的初步的协议规范描述中,结果为“否”,则进行步骤s44,为“是”,则进行步骤s45;
s44.把返回的数据包加入到样本中,结合带有标记的数据包,重构协议格式与状态机,重新调用协议格式和状态机算法,同时避免生成出和带有标记的数据包类似的报文格式,然后进行步骤s41;
s44中,重构协议格式与状态机包括以下步骤:
如果服务器没有应答或者应答的数据包不是状态机里面下一个数据包,那么把发送数据的数据包或者状态机标记为错误状态,再重新调用协议格式与状态机的时候会把这些数据包给剔除,同时状态机推断的时候也避免这种状态机的推断;
s45.判断返回的数据包是否在生成的状态机中,结果为“否”,则进行步骤s46,为“是”,则进行步骤s47;
s46.重构协议的状态机,然后进行步骤s41;
s47.判断已发送的数据包是否满足阈值,结果为“是”,则结束步骤s4,跳入步骤s5中,结果为“否”,则进行步骤s41。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811362553.6A CN109462590B (zh) | 2018-11-15 | 2018-11-15 | 一种基于模糊测试的未知协议逆向分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811362553.6A CN109462590B (zh) | 2018-11-15 | 2018-11-15 | 一种基于模糊测试的未知协议逆向分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109462590A CN109462590A (zh) | 2019-03-12 |
CN109462590B true CN109462590B (zh) | 2021-01-15 |
Family
ID=65610662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811362553.6A Active CN109462590B (zh) | 2018-11-15 | 2018-11-15 | 一种基于模糊测试的未知协议逆向分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109462590B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071849B (zh) * | 2019-04-09 | 2020-10-13 | 中南民族大学 | 一种安全协议实施安全性分析方法、装置、介质及设备 |
CN110602073B (zh) * | 2019-09-02 | 2021-05-18 | 西安电子科技大学 | 基于信息论的无人机飞控协议字段划分方法 |
CN110855608B (zh) * | 2019-09-29 | 2022-03-18 | 上海天旦网络科技发展有限公司 | 基于强化学习的协议逆向工程系统及其工作方法 |
CN111314279B (zh) * | 2019-11-25 | 2021-11-19 | 北京航空航天大学 | 一种基于网络流量的未知协议逆向方法 |
CN111723181A (zh) * | 2020-06-17 | 2020-09-29 | 国家计算机网络与信息安全管理中心 | 一种基于主动学习的工控协议逆向分析方法 |
CN113206834B (zh) * | 2021-04-07 | 2022-12-09 | 南京邮电大学 | 一种基于逆向技术的未知协议模糊测试自动化方法 |
CN114866282A (zh) * | 2022-03-30 | 2022-08-05 | 中核武汉核电运行技术股份有限公司 | 一种基于网络行为重构的核电工控协议解析系统和方法 |
CN116614421B (zh) * | 2023-05-24 | 2024-02-06 | 岭东核电有限公司 | 一种s5协议健壮性测试方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087631A (zh) * | 2011-03-09 | 2011-06-08 | 中国人民解放军国发科学技术大学 | 一种面向状态协议实现软件的模糊测试方法 |
WO2014148864A1 (ko) * | 2013-03-21 | 2014-09-25 | 주식회사 퓨전소프트 | Sns 서버의 프로토콜 분석 방법 |
CN104168288A (zh) * | 2014-08-27 | 2014-11-26 | 中国科学院软件研究所 | 一种基于协议逆向解析的自动化漏洞挖掘系统及方法 |
CN104935567A (zh) * | 2015-04-20 | 2015-09-23 | 中国电子科技集团公司第二十九研究所 | 一种未知协议报文格式推断方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN107665191A (zh) * | 2017-10-19 | 2018-02-06 | 中国人民解放军陆军工程大学 | 一种基于扩展前缀树的私有协议报文格式推断方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333769B2 (en) * | 2016-06-09 | 2019-06-25 | LGS Innovations LLC | Deployable linear bitwise protocol transformation |
-
2018
- 2018-11-15 CN CN201811362553.6A patent/CN109462590B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087631A (zh) * | 2011-03-09 | 2011-06-08 | 中国人民解放军国发科学技术大学 | 一种面向状态协议实现软件的模糊测试方法 |
WO2014148864A1 (ko) * | 2013-03-21 | 2014-09-25 | 주식회사 퓨전소프트 | Sns 서버의 프로토콜 분석 방법 |
CN104168288A (zh) * | 2014-08-27 | 2014-11-26 | 中国科学院软件研究所 | 一种基于协议逆向解析的自动化漏洞挖掘系统及方法 |
CN104935567A (zh) * | 2015-04-20 | 2015-09-23 | 中国电子科技集团公司第二十九研究所 | 一种未知协议报文格式推断方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN107665191A (zh) * | 2017-10-19 | 2018-02-06 | 中国人民解放军陆军工程大学 | 一种基于扩展前缀树的私有协议报文格式推断方法 |
Non-Patent Citations (3)
Title |
---|
A Survey on Methods of Automatic Protocol Reverse Engineering;Xiangdong Li,Li Chen;《2011 Seventh International Conference on Computational Intelligence and Security》;20121112;第685-689页 * |
基于网络协议逆向分析的远程控制木马漏洞挖掘;潘道欣,王轶骏,薛质;《计算机工程》;20160229;第42卷(第2期);第146-150页 * |
未知协议逆向分析关键技术研究;王庆亮;《中国优秀硕士学位论文全文数据库信息科技辑》;20150831;第1-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109462590A (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109462590B (zh) | 一种基于模糊测试的未知协议逆向分析方法 | |
Lou et al. | Mining dependency in distributed systems through unstructured logs analysis | |
US8676965B2 (en) | Tracking high-level network transactions | |
WO2018059402A1 (zh) | 确定故障类型的方法和装置 | |
CN109714202A (zh) | 一种客户端离线原因判别方法和集群式安全管理系统 | |
CN111510339B (zh) | 一种工业互联网数据监测方法和装置 | |
CN112039196A (zh) | 一种基于协议逆向工程的电力监控系统私有协议解析方法 | |
CN111866016A (zh) | 日志的分析方法及系统 | |
CN110489317B (zh) | 基于工作流的云系统任务运行故障诊断方法与系统 | |
US20190250950A1 (en) | Dynamically configurable operation information collection | |
CN111444072A (zh) | 客户端的异常识别方法、装置、计算机设备和存储介质 | |
CN117041019B (zh) | 内容分发网络cdn的日志分析方法、装置及存储介质 | |
CN111368172A (zh) | 传感器数据处理方法、装置、计算机设备和存储介质 | |
CN113886225A (zh) | 一种面向未知工控协议的模糊测试系统和方法 | |
CN113630418B (zh) | 一种网络服务识别方法、装置、设备及介质 | |
CN113965497B (zh) | 服务器异常识别方法、装置、计算机设备及可读存储介质 | |
Peng et al. | Event summarization for system management | |
CN112788145B (zh) | 一种基于非嵌入式探针的跨域功能安全异常检测溯源方法 | |
CN116991743A (zh) | 一种基于协议逆向的工控设备黑盒模糊测试方法 | |
CN116723136A (zh) | 应用fcm聚类算法的网络检测数据的方法 | |
CN108183821B (zh) | 一种面向电网业务的应用性能获取方法及装置 | |
CN107566187B (zh) | 一种sla违例监测方法、装置和系统 | |
CN113014587A (zh) | 一种api检测方法、装置、电子设备及存储介质 | |
CN112907221B (zh) | 一种自服务方法、装置及系统 | |
CN115296976B (zh) | 物联网设备故障检测方法、装置、设备及存储介质 |
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 |