基于状态标注的协议状态机逆向方法
基于动态二进制分析的网络协议逆向解析
Ne wo k Pr t c l v r ePa sngBa e n Dy mi na yAn l i t r o o o Re e s r i s d o na cBi r a yss
HE Y n - n S iXI o gj , HU Hu, ONG Xio bn u a—ig
中图分类号: P9 T33
基 于动 态 二进 制 分 析 的 网络协 议 逆 向解 析
何永君 , 舒 辉 ,熊小兵
( 放军信 息工程大学信息工程学院 ,郑州 4 0 0 ) 解 5 0 2
摘
要:研究未知 网络协议逆 向解析技术在 网络安全应用中具有重要的意义 。基于此 ,介绍网络协议逆 向解析技术 的发展现状 ,分析 基于
d s rb st e e si g cr u t n e r t c lr v re e ta to e h o o e , n n l e wo ma n r ve s x r c i n meho s o e b s d o e c i e h xit i msa c sofp o o o e e s x r ci n t c n l gi s a d a ays s t i e r e e ta to t d , n a e n n c
第3 6卷 第 9 期
V L3 o 6
・
计
ቤተ መጻሕፍቲ ባይዱ
算
机
工
程
21 00年 5月
M a 01 y2 0
No 9 .
Co put rEng ne rng m e i ei
开发研 究 与设计 技术 ・
文章编号:10 4800 9 28_ 文献标识码: oo 2(1)—06 _3 —3 2 0 —0 A
stm32基于表结构的状态机设计方法
一、介绍1.1 状态机的概念状态机是一种描述系统行为的数学模型,它由一组状态、一组事件和状态转移函数组成,可以有效地描述系统的状态变化及其对应的动作。
1.2 STM32的应用STM32是一款由意法半导体公司推出的基于ARM Cortex-M内核的微控制器,广泛应用于工业控制、汽车电子、智能家居等领域。
二、基于表结构的状态机设计方法2.1 状态表的建立在设计基于表结构的状态机时,首先需要建立状态表。
状态表是一个描述系统状态及其转移关系的表格,通常包括状态、事件和下一状态三个要素。
2.2 实例分析以一个简单的闪灯控制器为例,介绍如何利用表结构设计状态机。
列出系统可能的状态,例如“灭灯”和“亮灯”,列出可以触发状态变化的事件,例如“按下开关”和“释放开关”。
根据状态及事件确定状态转移关系,并将其填写到状态表中。
2.3 状态转移函数的实现将状态表转化为代码实现时,需要定义状态转移函数。
状态转移函数通常包含当前状态、事件参数,返回下一状态。
利用STM32提供的硬件和软件资源,实现状态转移函数,实现状态机的具体功能。
三、基于表结构的状态机设计实例3.1 程序框架搭建首先建立一个简单的STM32工程,设置系统时钟、引脚状态等基本配置。
3.2 状态表的建立在工程中建立状态表,定义系统可能的状态及其转移关系,填写到表格中。
3.3 状态转移函数的实现编写状态转移函数,根据状态表的定义,实现状态机的具体功能。
3.4 程序验证在开发板上烧录程序,通过观察LED灯的闪烁来验证状态机的设计是否符合预期。
四、表结构的状态机设计方法的优势4.1 结构清晰基于表结构的状态机设计方法能够清晰地描述系统的状态变化及其对应的动作,便于理解和维护。
4.2 易于扩展通过增加状态和事件,并修改状态转移关系,能够方便地扩展状态机的功能。
4.3 便于调试由于状态机的设计通过表格直观呈现,便于调试和验证状态机的正确性。
五、结语通过本文的介绍和实例分析,可以清晰地了解基于表结构的状态机设计方法在STM32上的应用。
协议解析原理
协议解析原理在计算机网络通信中,协议扮演着重要的角色,它规定了数据传输的规则和格式。
协议解析是指在网络通信过程中对数据包进行解析和处理的过程,它是网络通信中的关键环节之一。
本文将从协议解析的原理出发,介绍协议解析的相关概念、工作流程和实现方法。
一、协议解析的概念协议解析是指将网络通信中的数据包进行解析和处理的过程,它的目的是从数据包中提取出需要的信息,并进行相应的处理和转发。
协议解析的基本原理是根据协议规定的格式和规则,对数据包进行逐层解析,将数据包中的各个字段提取出来,并进行相应的处理和解释。
二、协议解析的工作流程协议解析的工作流程可以分为以下几个步骤:1. 数据包接收:当网络设备接收到数据包时,首先需要将数据包从物理层传递到数据链路层。
2. 数据包解封:在数据链路层,数据包中的帧头部分会被解封,得到帧的载荷。
3. 协议识别:在协议解析的过程中,首先需要对数据包进行协议识别,即确定数据包所采用的协议类型,如HTTP、TCP、UDP等。
4. 协议解析:根据协议规定的格式和规则,对数据包进行逐层解析。
首先是对传输层协议进行解析,如TCP或UDP协议;然后是对应用层协议进行解析,如HTTP或FTP协议。
5. 数据处理:在协议解析过程中,根据协议规定的字段和标志,提取出数据包中的各个字段,并进行相应的处理和解释。
例如,在HTTP协议解析中,可以提取出请求方法、URL、头部信息等。
6. 数据转发:根据协议解析得到的信息,对数据包进行相应的转发。
根据协议规定的规则,将数据包发送到目标设备或目标应用程序。
三、协议解析的实现方法协议解析的实现方法有多种,常见的方法包括:1. 基于状态机的解析:将协议解析过程看作是一个状态机,根据不同的状态进行不同的处理。
通过定义状态转换规则,实现对数据包的解析和处理。
2. 基于语法分析的解析:将协议规定的格式和规则转化为语法规则,利用语法分析的方法对数据包进行解析。
常见的方法有正则表达式、上下文无关文法等。
工控安全入门(九)——工控协议逆向初探
⼯控安全⼊门(九)——⼯控协议逆向初探在⼯控领域,我们会遇到许多协议,为了进⾏安全研究,经常需要对协议的具体内容进⾏探索,今天我们就来聊聊关于⼯控协议逆向的问题。
在接下来的⼏篇⽂章中,我会简单介绍⼀下常⽤的协议逆向⽅法并配合⼀些实战,当然,从未知到已知的探索过程不仅仅需要代码上的实践,还需要数学上的分析与建模,所以在这⼏篇⽂章中不仅会有⼯控、协议的知识,还有⼤量的数学内容,因为我本⾝不是搞学术研究的,所以⼀些东西也只是略微了解⽽已,如果⼤佬们发现有什么错误请在评论中指出,我⼀定仔细查看。
还要感谢⼤佬的⽂章让我了解到了很多知识。
按照分类,⼯控协议⼀般可以分为以下两种:公开协议,这⾥的公开主要是说它是公开发表并且⽆版权要求的,我们介绍的modbus就属于这⼀种。
私有协议,顾名思义就是⼚家⾃有的,为正式公开的,我们介绍过的西门⼦S7comm就属于这⼀种。
但不论是公开协议还是私有协议往往都具有⼀定的未知性。
像是modbus,虽说⼤部分信息我们都是了解的,但是还有很多function code是⼚商⾃⼰偷偷⽤的,像是施耐德我们之前就提过,有⾃⼰的0x5a来实现⼀堆⾼权限操作;S7comm这类的私有协议就更不⽤说了,要不是前辈们的逆向⼯程,我们其实是对协议内容⼀⽆所知的。
我们今天要聊的就是对于这类未知的逆向过程。
对于协议的逆向我们也是分成两类⽅法:基于⽹络轨迹的逆向,即对抓取的流量包进⾏分析,利⽤各类数学分析、推理,对数据进⾏切分、关系预测、⽣成状态机等等,从⽽推断出协议的部分内容、进⾏fuzz等操作。
基于接收端程序的逆向,即对协议数据的接收端程序进⾏逆向分析,从⽽得到协议的内容,这也是现在常⽤的⽅法,像是最近S7commPlus的逆向就是借助分析上位机的OMSp_core_managed.dll组件来实现的。
当然,这两种逆向⽅式都需要结合相应的设备进⾏调试来完成,也完全可以两种⽅式结合,先基于⽹络轨迹⼤致判断协议格式、关系,再通过逆向程序加以完善。
基于模糊测试的未知协议逆向分析方法与制作流程
图片简介:本技术涉及计算机网络通信领域,介绍了一种基于模糊测试的未知协议逆向分析技术方法。
该未知协议逆向分析技术方法包括以下步骤:s1.数据包采集,包含数据预处理、会话划分和报文定界;s2.在现有数据包的基础上进行协议格式提取和状态机推断,输出初步的协议规范描述;s3.在初步或改进后的协议规范的基础上生成测试用例,采用带控制的模糊测试方法进行发送数据包,根据应答来做出推断;s4.根据返回的数据包来进行相应的调整:如果发送的数据包占所有协议格式的比例满足一个阈值时,则输出相应的协议规范,否则根据返回的数据包进行词法和语法的调整。
本技术采用自动化的方法,可以减少人工对协议分析逆向分析的工作,能满足一定的准确率,提高逆向分析的效率。
技术要求1.一种基于模糊测试的未知协议逆向分析方法,其特征在于,包括以下步骤:s1.数据包采集:捕获数据包,并进行相应的数据预处理工作,包括会话划分和报文定界,剔除原始数据中的冗余和干扰;s2.初步进行协议推断:根据预处理完以后的数据包,先进行协议格式提取,然后进行状态机推断,最后生成初步的协议规范描述;s3.模糊测试生成测试用例并主动推断:根据生成的协议规范描述,结合模糊测试生成测试用例的方法,在一定范围内生成测试用例数据包,发送给服务器;s4.协议重构:服务器返回数据包以后,根据应答的数据包来进行相应的词法和语法修正,采用标记法,对服务器没有正确回应的发送数据包进行标记,重构协议格式和状态机;s5.输出协议格式:输出满足要求的协议规范。
2.根据权要求1所述的一种基于模糊测试的未知协议逆向分析方法,其特征在于,所述步骤s3包括:模糊测试生成用例:根据现有协议格式来生成数据包;控制生成用例的变异程度:生成数据包保证与原始的数据格式之间的相似度在60%-100%之间。
3.根据权利要求1或者2所述一种基于模糊测试的未知协议逆向分析方法,其特征在于:步骤s4具体包括:s41.发送模糊测试变异以后的数据包;s42.等待服务器返回数据包;s43.判断返回的数据包是否在S1生成的初步的协议规范描述中,结果为“否”,则进行步骤s44,为“是”,则进行步骤s45;s44.把返回的数据包加入到样本中,结合带有标记的数据包,重构协议格式与状态机,重新调用协议格式和状态机算法,同时避免生成出和带有标记的数据包类似的报文格式,然后进行步骤s41;s45.判断返回的数据包是否在生成的状态机中,结果为“否”,则进行步骤s46,为“是”,则进行步骤s47;s46.重构协议的状态机,然后进行步骤s41;s47.判断已发送的数据包是否满足阈值,结果为“是”,则结束步骤s4,跳入步骤s5中,结果为“否”,则进行步骤s41;根据权利要求3所述的一种基于模糊测试的未知协议逆向分析方法,其特征在于所述步骤s4具体包括:s44中,重构协议格式与状态机包括以下步骤:如果服务器没有应答或者应答的数据包不是状态机里面下一个数据包,那么把发送数据的数据包或者状态机标记为错误状态,再重新调用协议格式与状态机的时候会把这些数据包给剔除,同时状态机推断的时候也避免这种状态机的推断。
基于状态标注的协议状态机逆向方法
Pr o t o c o l s t a t e ma c hi n e r e v e r s e me t ho d ba s e d o n l a be l i ng s t at e
HUANG Xi a o y a n’ ,CHEN Xi ng y u a n,ZHU Ni n g ,TANG Hu i l i n
t y p e s ,b a s e d o n w h i c h t h e p r o t o c o l s t a t e s w e r e l a b e l e d a n d a s t a t e t r a n s i t i o n d i a g r a m w a s b u i l t .T h e e x p e r i me n t a l r e s u l t s s h o w t h a t t h e me t h o d c a n a c c u r a t e l y d e s c r i b e t h e s e q u e n t i a l r e l a t i o n s h i p b e t we e n t h e me s s a g e t y p e s a n d a b s t r a c t s t a t e ma c h i n e mo d e l
J o u r n a l o f C o mp u t e r A p p l i c a t i o n s
I S SN 1 oo1 . 9 081
2 01 3—1 2。 01
计 算机 应 用 , 2 0 1 3 , 3 3 ( 1 2 ) : 3 4 8 6—3 4 8 9 , 3 4 9 8 文章编号 : 1 0 0 1 — 9 0 8 1 ( 2 0 1 3 ) 1 2 - 3 4 8 6 — 0 4
网络协议状态机逆向工程方法的分析
华中科技大学硕士学位论文摘要网络协议的技术信息对入侵检测、模糊测试和协议重用等有着非常重要的作用,但是现在网络中使用的协议大部分都是非公开的协议,没有正式的描述文档,因此,研究人员提出了协议逆向工程。
协议逆向工程的研究力图建立一套通用的方法,自动化地对协议进行分析处理,得到协议的技术特征。
目前的协议逆向工程研究大部分致力于协议报文格式的解析,而忽略了协议的行为模式识别,即协议状态机的还原。
在协议状态机的还原方面,多数的研究是使用离线算法,较少的研究使用在线算法。
基于在线算法的协议逆向工程,可以动态的产生待测试的序列,提高学习的精度,得到更准确的协议状态机模型。
改进的在线算法NL*,使用了高效的反例处理策略,降低了算法构造状态机的复杂度,并减少了所需的成员确认。
另外,对在线算法在协议逆向的应用进行了两点优化,充分利用协议逆向第一阶段的成果,学习初始集,使用协议知识进行成员确认的过滤,进一步提高了协议状态机推断的效率。
实验结果显示,原始的NL*算法比L*算法需要更多的成员确认,而改进的NL*算法,比L*算法更加地高效,需要更少的成员确认和等效确认,在对FTP和SMTP 的测试中,改进的NL*算法性能上明显更加的优秀,效果上,在线算法也可以得到比离线算法更为准确的结果。
关键词:协议逆向工程,有限状态机推断,在线算法,剩余语言状态机华中科技大学硕士学位论文AbstractS pecifications of network protocols are very important for intrusion detection, fuzz test and protocol reuse. But much of these protocols using in network are closed, there is no official descriptions, for this reason, researchers propose the protocol reverse engineering. The research of protocol reverse engineering keep trying to establish a set of commonly used method, which can automatically analyze the network protocols and get its technical specifications.Most of recent researches focus in message analysis, leave the protocol state machine inference for future work. In the field of protocol state machine inference, mostly use offline algorithm, little of research use online algorithm. Protocol reverse engineering based on online algorithm can query further messages to get more complete model. Improved online algorithm NL*, using a high-efficiency way to process counter example, can reduce the complexity of constructing automate, and decrease the number of member ship query. In addition, two modifications of online algorithm are used in the reverse engineering process, learning basic sets and use protocol knowledge to filter number of membership queries. These changes make the algorithm has a higher performance.Experiment shows, NL* needs more membership queries than L*, but improved NL* appears higher efficiency than L*, cause it always need less membership queries and equivalence queries. Then the three algorithms were used to test FTP and SMTP protocol, the result shows that improved NL* has a higher performance, and the online algorithm can get more complete model than offline algorithm.Keywords: Protocol Reverse Engineering, State Machine Inference, Online Algorithm, Residual Finite-State Automaton华中科技大学硕士学位论文目录摘要 (I)Abstract (II)1绪论1.1研究背景及意义 (1)1.2国内外研究现状 (2)1.3主要研究内容 (4)1.4论文的组织结构 (4)2有限状态机推断算法研究2.1有限状态机与正则语言 (5)2.2有限状态机的推断 (6)2.3DFA推断算法 (7)2.4NFA推断算法 (8)2.5在线算法的优化研究 (11)2.6本章小结 (12)3改进的在线算法设计3.1在线算法的分析 (13)3.2改进的在算法NL* (15)3.3使用协议知识优化算法 (16)3.4本章小结 (19)4使用在线算法的协议逆向系统实现4.1系统框架 (20)华中科技大学硕士学位论文4.2报文格式解析 (21)4.3协议状态机推断 (24)4.4本章小结 (31)5实验结果与分析5.1随机DFA测试 (32)5.2常用协议状态机推断测试 (35)5.3本章小结 (39)6总结与展望6.1总结 (40)6.2不足及展望 (40)致谢 (42)参考文献 (43)华中科技大学硕士学位论文1绪论1.1研究背景及意义随着计算机网络快速发展,网络影响的范围越来越广,网络应用也越来越多,网络已经成为现代生活中不可或缺的一部分。
利用状态数据的无人平台测控协议逆向分析方法
第57卷第5期 2017年5月电讯技术Telecommunication EngineeringV ol.57,N o.5May,2017doi:10. 3969/j.issn. 1001 -893x.2017. 05.016引用格式:徐浩文,苟先太,李昌喜,等■利用状态数据的无人平台测控协议逆向分析方法[J]■电讯技术,2017,57(5):586-591.[XUHaowen, GOU Xiantai,LI Changxi,et al. A reverse analysis method of TT&C protocol based on monitoring state data for unmanned platform[J]. Telecommunication Engineering,2017,57(5) ;586-591.]利用状态数据的无人平台测控协议逆向分析方法+徐浩文苟先太,李昌喜,金炜东(西南交通大学电气工程学院,成都610031)摘要:针对无人平台测控数据通信安全问题,提出了一种测控协议逆向分析模型。
模型采用数据挖掘方法对通信报文中的协议格式和语义信息进行分析,主要采用改进BF(Brute-Force)算法和AP(A ffin ity-Propagation)算法进行模式串匹配和关联规则提取,以提取协议初步格式;采用序列比对技术中改进SW(Smith-Waterman)算法,结合监测状态数据对格式和语义信息作进一步分析。
通过仿真实验模拟协议逆向分析了所需要的无人平台与基站的通信数据和雷达监测状态数据;根据协议逆向模型仿真试验结果可得到100%的协议格式识别率和90. 9%的语义识别率,结果证明了提出的逆向分析模型的有效性。
关键词:无人平台;测控系统;通信安全;协议逆向分析;数据挖掘;关联规则;序列比对中图分类号:TN918.91 文献标志码:A文章编号:1001-893X(2017)05-0586-06A Reverse Analysis Method of TT&C Protocol Based onMonitoring State Data for Unmanned PlatformXU Haowen,GOU Xiantai,LI Changxi,JIN Weidong(School of Electrical Engineering,Southwest Jiaotong University,Chengdu 610031,China) Abstract:For the communication security problem of telemetry,tracking and command(TT&C)data onunmanned platform,a reverse analysis model of TT&C protocol is proposed.The model adopts the data mining method to analyze the protocol format and semantic information in the message.The improved Brute -Force(BF)algorithm is used to perform the pattern string matching,and the AP(A ffin ity-Propagation) algorithm is used to perform the association rule extracting.Then the preliminary format of protocol message is obtained.The improved Smith-Waterman(SW)algorithm in sequence alignment technique is adopted to analyze the format and semantic information in combination with the monitoring state data.Simulation experiments are carried out to simulate the experimental data of the protocol reverse analysis,inclu-ding the communication data on unmanned platform and base station and radar monitoring status data.The simulation results of reverse analysis show 100% resolution rate of protocol format and 90. 9%semanticparsing resolution rate.The results demonstrate the effectiveness of the model.Key words:unmanned platform;TT&C system;communication security;protocol reverse analysis;data mining;association rule;sequence alignment1引言方发达国家非常重视无人平台系统的持续发展,并无人平台(Unmanned Aerial Vehicle,U AV)系统在不断更新无人平台发展路线图,以适应其变化着是当前高新技术装备的热点之一。
网络协议逆向分析
网络协议逆向分析协议名称:网络协议逆向分析协议一、背景和目的网络协议逆向分析是一种通过研究和分析网络协议的通信机制和数据结构,以获取协议的工作原理和实现细节的方法。
本协议的目的是规范网络协议逆向分析的流程和方法,确保分析结果准确、可靠,并且符合相关法律法规的要求。
二、术语定义1. 网络协议逆向分析:指通过逆向工程的方法,研究和分析网络协议的通信机制和数据结构,以获取协议的工作原理和实现细节。
2. 逆向工程:指通过分析已有的软件或硬件系统,推断出其设计和实现的过程。
3. 通信机制:指网络协议在通信过程中所采用的交互方式和规则。
4. 数据结构:指网络协议中用于传输和存储数据的格式和组织方式。
三、逆向分析流程网络协议逆向分析的流程包括以下几个步骤:1. 收集协议样本1.1 确定需要分析的网络协议类型和版本。
1.2 收集相关的协议样本,包括协议的二进制文件、抓包数据等。
2. 反编译和静态分析2.1 使用逆向工程工具对协议的二进制文件进行反编译。
2.2 分析反编译后的代码,理解协议的数据结构和通信机制。
2.3 根据静态分析的结果,绘制协议的状态机图或数据流图。
3. 动态调试和分析3.1 在模拟环境中运行协议的二进制文件。
3.2 使用调试工具对协议进行动态调试,观察协议的运行过程。
3.3 分析调试过程中的数据流和状态变化,验证静态分析的结果。
4. 结果验证和文档编写4.1 验证分析结果的准确性和可靠性。
4.2 撰写详细的分析报告,包括协议的工作原理、通信机制和数据结构的描述。
4.3 根据需要,编写相关的演示代码或工具,以便其他人能够复现和验证分析结果。
四、方法和工具在进行网络协议逆向分析时,可以使用以下方法和工具:1. 反编译工具:如IDA Pro、Ghidra等,用于将协议的二进制文件反编译为可读的汇编代码。
2. 调试工具:如GDB、OllyDbg等,用于动态调试协议的二进制文件,观察运行过程中的数据和状态变化。
网络协议逆向分析
网络协议逆向分析协议名称:网络协议逆向分析协议1. 引言网络协议逆向分析是指对计算机网络中的协议进行逆向工程,以了解其工作原理、数据结构和通信过程的一种技术。
本协议旨在规范网络协议逆向分析的过程、方法和要求,以确保分析的准确性和有效性。
2. 目的本协议的目的是为了提供一个标准的网络协议逆向分析流程,以便研究人员能够按照统一的标准进行工作,并获得可靠的分析结果。
通过逆向分析网络协议,可以匡助发现潜在的安全漏洞、改进协议设计和提高网络通信的效率。
3. 分析流程网络协议逆向分析的流程包括以下几个步骤:3.1 采集协议样本:从网络中获取待分析的协议样本,并确保样本的完整性和准确性。
3.2 反汇编:使用逆向工程工具对协议样本进行反汇编,获取其汇编代码。
3.3 静态分析:对反汇编后的代码进行静态分析,了解协议的数据结构、算法和逻辑。
3.4 动态分析:通过调试器或者摹拟器对协议样本进行动态分析,观察其运行过程和数据交互。
3.5 数据解析:根据静态和动态分析的结果,解析协议中的数据格式和通信流程。
3.6 结果验证:验证分析结果的准确性和有效性,并与已知的协议规范进行比对。
4. 分析方法网络协议逆向分析可以采用以下方法:4.1 静态分析方法:通过反汇编和静态代码分析工具,分析协议样本的代码结构、变量和函数调用关系。
4.2 动态分析方法:通过调试器、摹拟器或者网络抓包工具,观察协议样本的运行过程、数据交互和通信流程。
4.3 数据解析方法:根据静态和动态分析的结果,解析协议样本中的数据格式、字段含义和通信协议。
4.4 反编译方法:将反汇编得到的汇编代码转换为高级语言代码,以便更好地理解和分析协议的功能和逻辑。
5. 分析要求网络协议逆向分析的过程中,需要满足以下要求:5.1 保密性:对于涉及商业机密或者个人隐私的协议样本,必须保证其保密性,并遵守相关法律法规。
5.2 准确性:分析结果必须准确无误,并能够被验证和复现。
5.3 可靠性:分析过程必须可靠可复制,以确保其他研究人员能够重现结果。
网络协议逆向分析
网络协议逆向分析协议名称:网络协议逆向分析协议1. 背景和目的网络协议逆向分析是一种通过分析网络协议的通信过程和数据包结构,以及逆向工程技术,来研究和理解网络协议的工作原理和实现细节的方法。
本协议的目的是规范网络协议逆向分析的流程和方法,确保分析结果的准确性和可信度。
2. 定义和缩写2.1 网络协议逆向分析:指通过逆向工程技术对网络协议进行分析和研究的过程。
2.2 数据包:指在网络通信中传输的数据单元。
2.3 逆向工程:指通过分析和研究已有的软件或硬件系统,以了解其设计和实现原理的过程。
2.4 原始数据:指从网络协议通信过程中捕获到的未经解析和处理的数据。
3. 分析流程3.1 收集样本:收集网络协议通信过程中的数据包样本,并记录相关信息,如通信双方的IP地址、端口号等。
3.2 数据包解析:对收集到的数据包进行解析,提取出关键信息,如协议版本、数据类型、字段结构等。
3.3 协议特征提取:根据解析结果,提取协议的特征信息,如协议头部字段、协议行为等。
3.4 协议行为分析:分析协议的行为特征,如请求-响应模式、状态管理等。
3.5 逆向工程:基于协议特征和行为分析的结果,进行逆向工程,还原协议的设计和实现原理。
3.6 结果验证:对逆向工程的结果进行验证,确保分析结果的准确性和可信度。
4. 数据处理和工具4.1 数据处理:在进行数据包解析和逆向工程之前,应对原始数据进行预处理,如去除冗余信息、过滤无关数据等。
4.2 工具使用:可以使用各种网络抓包工具、协议解析工具和逆向工程工具来辅助进行网络协议逆向分析。
5. 分析报告5.1 报告内容:网络协议逆向分析报告应包含收集样本的信息、数据包解析结果、协议特征提取结果、协议行为分析结果、逆向工程结果等。
5.2 报告格式:报告应采用标准格式,包括标题、摘要、目录、引言、方法、结果和结论等部分。
5.3 报告交付:报告应以书面形式交付,并根据需要进行口头或在线演示。
6. 保密与知识产权6.1 保密责任:协议参与方应对在网络协议逆向分析过程中获得的机密信息保密,不得泄露给未经授权的第三方。
基于状态相关字段识别的未知二进制协议状态机逆向方法
doi:10.3969/j.issn.1001-893x.2015.04.004引用格式:孟凡治,刘渊,张春瑞,等.基于状态相关字段识别的未知二进制协议状态机逆向方法[J].电讯技术,2015,55(4):372-378.[MENG Fanzhi,LIU Yuan,ZHANG Chunrui,et al.StateReverse Method for Unknown Binary Protocol Based on StateRelated Fields[J].Telecommuni-cation Engineering,2015,55(4):372-378.]基于状态相关字段识别的未知二进制协议状态机逆向方法*孟凡治**,刘渊,张春瑞,李桐(中国工程物理研究院计算机应用研究所,四川绵阳621900)摘要:协议状态机逆构技术是分析未知协议行为逻辑的基本方法,是网络安全、信息对抗领域的一个重要研究方向。
针对截获的未知二进制协议的通信数据,提出了一种二进制协议状态机逆向方法,该方法能够根据通信数据逆构协议状态转移图。
在该方法中,设计了针对通信数据帧的基于多序列比对的对应字段对齐算法以及基于字段统计量分析的协议状态相关字段提取算法,并根据提取出的协议状态相关字段构建状态转换模型。
在地址解析协议(ARP)和传输控制协议(TCP)上的实验结果表明该方法能够有效逆构出协议的状态转换模型。
关键词:信息对抗;通信数据;二进制协议;协议逆向;状态重构;状态相关字段中图分类号:TN918;TP393文献标志码:A文章编号:1001-893X(2015)04-0372-07StateReverse Method for Unknown Binary ProtocolBased on State-Related FieldsMENG Fanzhi,LIU Yuan,ZHANG Chunrui,LI Tong(Institute of Computer Application,China Academy of Engineering Physics,Mianyang621900,China)Abstract:Inferring protocol state machine for unknown protocol is a basic technology for understanding the protocol's intrinsic behavior logic,which has played an important role in the fields of network security and information countermeasure.This paper proposes a novel approach in the mining of unknown binary proto-col state machine from the communication data.It allows automatically generating the state models for bi-nary protocol by listening to network traces.A new method is presented to align the corresponding fields and extract the state related fields from binary protocol communication traces based on statistical analysis,and then construct the protocol state model based on the state related fields.The experimental results of AddressResolution Protocol(ARP)and Transmission Control Protocol(TCP)show that the approach is ef-fective.Key words:information countermeasure;communication data;binary protocol;protocol reverse;state recon-struction;states related fields1引言随着互联网的发展,网络的安全形势变得越来越严峻。
网络协议逆向分析
网络协议逆向分析协议名称:网络协议逆向分析协议协议简介:本协议旨在规范网络协议逆向分析的相关工作流程和方法,以确保分析过程的准确性和可靠性。
网络协议逆向分析是一项重要的技术,可用于分析和理解各种网络协议的工作原理和数据传输过程。
通过逆向分析,我们可以深入了解网络协议的结构、功能和安全性,为网络安全防护、漏洞修复和攻击检测提供有力支持。
一、背景和目的1.1 背景网络协议逆向分析是一项关键技术,用于研究和分析网络协议的工作原理和数据传输过程。
通过逆向分析,我们可以深入了解协议的结构和功能,发现潜在的安全风险和漏洞,并提供有效的解决方案。
1.2 目的本协议的目的是确保网络协议逆向分析的准确性和可靠性,规范分析过程和方法,提高分析效率和成果的质量。
二、工作流程2.1 任务分配根据具体需求,将网络协议逆向分析任务分配给专业的分析人员。
任务分配应包括任务名称、描述、截止日期和负责人等信息。
2.2 环境准备分析人员应准备适当的硬件和软件环境,包括逆向工程工具、抓包工具、调试器等。
2.3 数据收集分析人员应收集相关的协议数据包,包括正常的数据传输过程、异常情况下的数据包和攻击场景下的数据包等。
2.4 协议分析分析人员应使用逆向工程工具对收集到的数据包进行分析,包括解析数据包结构、提取关键信息和分析数据传输过程等。
2.5 安全评估分析人员应评估协议的安全性,发现潜在的安全风险和漏洞,并提供相应的修复建议。
2.6 结果报告分析人员应撰写详细的分析报告,包括协议的结构、功能、安全评估结果和修复建议等。
三、方法和技术3.1 数据包分析分析人员应使用抓包工具对网络数据包进行捕获和分析,获取协议的数据传输过程和相关信息。
3.2 逆向工程分析人员应使用逆向工程工具对协议进行逆向分析,包括解析数据包结构、提取关键信息和还原数据传输过程等。
3.3 调试技术分析人员应使用调试器对协议进行调试,以深入理解协议的工作原理和数据处理过程。
一种逆向分析协议状态机模型的有效方法
一种逆向分析协议状态机模型的有效方法田园;李建斌;张振【期刊名称】《计算机工程与应用》【年(卷),期】2011(047)019【摘要】Protocol reverse engineering is important to both trusted software verification, protection and malware analysis.Because of protocol's complexity,it's particularly helpful to reconstruct high-level model which is consistent with the protocol's source code among which the Finite State Machine (FSM) model is the most widely used.This paper proposes an efficient method to reconstruct network protocol' s FSM model from the recorded transcripts and execution traces in protocol' s sessions via decompilation and enhanced formal analysis/verification techniques, resulting in state instances, transition relations and state-transition conditions in the FSM.As a result, a generic FSM model is reconstructed from execution trace instances with practical efficiency and provable soundeness.In addition to theoretical description,the engineering evaluation and application of this method is also discussed.%网络协议的逆向分析技术无论对可信软件的验证、保护还是对恶意软件机理的分析都具有重要用途.由于协议的内在复杂性,重构与其源程序一致的高级模型对分析尤为有益,其中又以有限状态机模型最为典型.建立一种重构网络协议状态机模型的有效方法,主要依据所记录的协议会话的消息流及协议软件实际执行的指令流,通过对指令流反编译并应用改进的形式分析及验证技术构建出状态对象、转移关系及状态转移条件.该方法从协议的会话实例重构出充分一般的状态机模型,效率可行并具有逻辑上可证明的精确性.在详细阐述理论基础之后,也讨论了该方法的实现和应用.【总页数】5页(P63-67)【作者】田园;李建斌;张振【作者单位】大连理工大学软件学院,辽宁大连116620;大连理工大学软件学院,辽宁大连116620;大连理工大学软件学院,辽宁大连116620【正文语种】中文【中图分类】TP3【相关文献】1.乐观电子合同签订协议的一种有限状态机模型 [J], 缪裕青;常亮2.Nova-BFT:一种支持多种故障模型的副本状态机协议 [J], 王永剑;裴翔;李涛;栾钟治;钱德沛3.加密通信协议的一种逆向分析方法 [J], 石小龙;祝跃飞;刘龙;林伟4.协议通信有限状态机模型和协议Petri网模型的变换 [J], 徐志农5.一种协议栈RRC状态机的分析与实现 [J], 汪小军;祝颂东因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期: 2013-06-13 ; 修回日期: 2013-08-19 。 基金项目: 国家 973 计划项目( 2011CB311801 ) ; 河南省科技创新人才计划项目( 114200510001 ) 。 作者简介: 黄笑言( 1989 - ) , 女, 福建福州人, 硕士研究生, 主要研究方向: 信息安全、 协议逆向; 陈性元 ( 1963 - ) , 男, 安徽无为人, 教授, 博士, 主要研究方向: 信息安全、 分布式操作系统; 祝宁( 1981 - ) , 男, 辽宁抚顺人, 讲师, 博士, 主要研究方向: 网络对抗; 唐慧林 ( 1980 - ) , 男, 安徽枞阳人, 讲师, 硕士, 主要研究方向: 信息安全。
当 δ t ≥ 1 或 δ t ≈ 0 时均不符合语义关键字的分布特征 :
| ≥ | M | 时,t 为协议标识级的关键字; t 为变量 token, 而非协议的关 δ t ≈ 0 即 | M t | | M | 时,
定义 φ t 度量语义关键字 t 在会话中的分布与报
文中的分布的一致性: φ t = | M t | / | S t | , 要求 φ t 与 1 没有显 著差异。 当 φ t = 1 时表示 t 在会话中出现的次数与报文中出现的 次数一致, 符合语义关键字的分布特征 。 2. 1. 2 语义关键字的报文偏移特征 上述识别规则容易忽略很少出现在网流中的语义关键 字, 由于文本协议有一定的格式规范 , 语义关键字往往出现在 报文的固定位置上, 因此本文进一步发现语义关键字的偏移 并基于偏移属性对 2. 1. 1 节的识别规则进行修正 。 属性, 定义 2 pos_permanent( t) 表 示 t 的 固 定 偏 移 率。 令 PF m ( t) 表示 t 在报文 第 m 个 位 置 出 现 的 频 率,PF m ( t) = N m ( t) / | M t | 。 其中 N m ( t) 表示 t 在每个报文文本 token 序列 中 第 m 个 位 置 出 现 的 次 数,则 pos_permanent( t) = max( PF m ( t) ) 。 规则 3 若 pos_permanent( t) = max( PF m ( t) ) ≥ , 则t m 是其固定偏移, 具有固定偏移属性, 此时 m 偏移处的关键 字都是语义关键字。 本文通过发现语义 关 键 字 的 报 文 偏 移 特 征 , 一方面对 2. 1. 1 节的识别规则进行修正 , 补充进出现频率较少的语义关 键字; 另外, 基于语义关键字的偏移特征可以进行语义关键字 实现报文类型的快速识别 , 将协议的每个会话转 的迅速定位, 化成报文类型序列。 2. 2 状态标注 定义 3 协议状态是协议的一个逻辑概念 , 特定状态下 。 协议实体可以接受特定事件和执行相应动作 由于服务器发送的报文多是一些表示服务器服务能力的 命令码, 无法反映协议的行为逻辑 , 因此本文同先前的工作一 样, 从客户端发送的报文类型序列中构建状态机 。 不同的报文类型可能会引起状态的转换 , 因此通常利用 描述协议的行为 状态转换图表现报文类型之间的时序关系 , 逻辑。先前的文献首先构建状态前缀树 , 接受所有的报文类 导致初始构建的状态前缀 型序列再进行状态的合并和化简 , 树过于庞大, 且需要大量的比较操作 。 而本文利用邻接矩阵 描述报文类型之间的关系 , 基于报文类型之间的关系对状态 进行标注, 可 以 省 去 状 态 前 缀 树 的 构 造, 直接构建状态转
Journal of Computer Applications 计算机应用,2013,33( 12) : 3486 - 3489,3498 文章编号: 1001-9081 ( 2013 ) 12-3486-04
ISSN 1001-9081 CODEN JYIIDU
2013-12-01 http: / / www. joca. cn doi: 10. 11772 / j. issn. 1001-9081. 2013. 12. 3486
*
Abstract: Protocol state machine can describe the behavior of a protocol, which can help to understand the behavior logic of protocol. Oriented towards text protocols, a statistical method was firstly used to extract the semantic keyword of representative message type, and an adjacency matrix was used to describe the sequential relationship between the message types, based on which the protocol states were labeled and a state transition diagram was built. The experimental results show that the method can accurately describe the sequential relationship between the message types and abstract state machine model accurately. Key words: protocol reverse; protocol semantic; protocol session; protocol state machine; adjacency matrix
基于状态标注的协议状态机逆向方法
黄笑言 ,陈性元,祝
*
宁,唐慧林
( 信息工程大学,郑州 450004) ( * 通信作者电子邮箱 eileen0908@ qq. com)
摘
要: 协议状态机可以描述一个协议的行为 , 帮助理解协议的行为逻辑 。 面向文本类协议, 首先利用统计学方
基于时序关系进行协议状态 法提取表示报文类型的语义关键字 ; 然后利用邻接矩阵描述报文类型之间的时序关系 , 标注, 构建出协议的状态转换图 。 实验表明, 该方法可以正确地描述出报文类型的时序关系 , 抽象出准确的状态机 模型。 关键词: 协议逆向; 协议语义; 协议会话; 协议状态机; 邻接矩阵 中图分类号: TP393 文献标志码: A
第 12 期
黄笑言等: 基于状态标注的协议状态机逆向方法
3487
检测状态的前一状态和随后的状态来区分由同一特征值表示 的不等状态, 避免构建出的状态机产生错误的报文序列 。 2011 年,Wang 等[12] 提 出 了 协 议 的 概 率 状 态 机 ( Probabilistic Protocol State Machine, PPSM ) 模型构建单方向 网流的状态机。PPSM 首先利用统计学的方法找到网流中最 频繁的 字 符 串; 而 后 利 用 围 绕 中 心 点 的 划 分 ( Partitioning Around Medoids, PAM) 聚类方法获取协议的状态关键字 , 根据 关键字为每一个数据包分配状态类型 ; 最后以概率的形式描 构建概率协议状态机。 述状态之间的转换, 2009 年, Comparetti 等[13] 综合利用网流级和指令级的信 息提出了完整的协议逆向方案 Prospex, 为客户端的输出报文 逆向状态机, 旨在识别表示相似应用情景的状态 。 首先利用 抽取每个报文的格式, 继而结合格式 指令执行序列分析技术 , 特征和执行特征对报文进行聚类 , 抽取更普遍的报文格式 , 识 别会话中的每个报文类型 ; 然后构建增广前缀树 ( Augmented Prefix Tree Acceptor, APTA) 接受网络会话中的所有报文类型 继而从观察到的会话中抽取报文类型之间的顺序特征 , 序列, 以正则表达式表示, 称为先决条件; 接着对 APTA 的每个状态 用那个状态允许输入的报文类型集合进行标注 , 表示其符合 ; Exbar 算法将 先决条件的 可 接 受 的 报 文 类 型 集 最 后 使 用 APTA 最小化。 以上依据网流级状态机逆向的方法有以下不足 : Trifilo 等 的方法依赖于各种报文类型字段在报文格式的同字节 偏移位置上出现, 不适于报文类型字段的字节位置不固定的 [12 ] 文本协议; Wang 等 的方法适于文本协议, 但是只依据频繁 没有区分字符串之间的层次 , 无法准确 字符串标识报文状态, 提取出报文的语义字段 。 另外, 目前构建状态机的方法都是先构建一棵状态前缀 再利用启发式方法进行状态机的合并和简化 , 这会导致初 树, 始构建的状态机过于庞大 , 并且在状态机简化过程中容易导 致路径的错误合并, 无法准确地描述报文类型之间的时序关 系。 为解决以上问题, 本文依据网络流的分析提出一种面向 文本类协议的状态机逆向方法 。首先利用语义关键字的分布 特征和偏移属性提取语义关键字 , 识别出会话中的报文类型 ; 然后利用有向图的邻接矩阵描述报文类型之间的时序关系 , 进行状态标注; 最后实现协议状态机的逆向 , 体现协议行为逻 辑。其流程如图 1 所示。
[8 ] [7 ]
: 前者
规范了协议报文由哪些字段组成 , 每个字段的位置、 类型和取 ; 后者规定了协议报文的时序关系 , 体现出协议 的行为逻辑。目前大多研究集中于反向推断协议的格式 , 较 少研究协议状态机的逆向 。 事实上, 逆向出协议状态机可以 描述一个协议的行为, 帮助理解协议的行为逻辑 , 进一步应用 到入侵检测或蜜罐系统中 , 因此本文对协议状态机逆向方法
目前关于协议状态机逆向的研究分为两类 。 一类是 指令级的分析方法。这种方法需要在指令级监控协议实体对 报文的解析过程, 实现起来比较复杂, 在实际应用中很难获得 对协议实体的控制权, 加之很多软件为了防止其代码被逆向 , 加强了软件的模糊性。另一类网流级的分析方法是以嗅探得 到的网络数据流为分析对象 , 它的可行性在于同一报文格式 对应的多个报文样本具有相似性 , 会话内报文的时序关系体 现了协议状态转换的信息 。 由于实现起来简单, 因此近年来 很多研究者开始研究基于网流级的状态机逆向方法 。 2007 年, Shevertalov 等[10] 提 出 协 议 状 态 机 逆 向 的 工 具 PEXT, 将协议的运行过程划分为多个阶段 ( 子会话 ) , 每个子 被定义成一个状态。 PEXT 以最长公 会话完成不同的功能, 共子序列长度为相似度指标 , 对报文样本进行聚类, 将协议流 转化成一系列的聚类 ID, 在协议流之间提取相同的聚类 ID 序列标注成一个协议的状态 , 根据状态转换序列生成状态机 , 通过合并算法得到涵盖所有协议会话实例的最小确定状态 机。 2009 年, Trifilo 等[11] 将会话中的每条报文 ( 包括不同的 认为协议报文中通常存在一些报文 方向) 定义为一个状态, 状态域标志了当前的状态逻辑 , 通过分析二进制协议报文中 各字节的变化分布来识别状态域并构建状态机 ; 并考虑通过