【协议逆向工程】Part 1 概述

协议逆向工程概述

1.1 协议

协议是计算机网络与分布式系统中各类通讯实体键相互交互信息时必须遵照的一组规则和约定,这些规则明确规定了所交换的数据格式以及有段的同步问题,从而保证了双方通讯有条不紊、可靠地交换信息。安全

比较著名的网络协议有TCP/IP协议栈中的一些协议,好比IPTCPUDPPOP3SMTPHTTP等。除了大量标准化的通讯协议外,网络中还存在大量私有协议,各类软件厂商或我的处于经济利益、安全、隐私等因素的考虑,并无公开协议细节;一些恶意软件也采用了本身的私有协议防止被跟踪和分析。网络

1.2 协议分析技术

协议分析技术主要分为两大类:分布式

(1)对已知协议的识别与分析。学习

(2)对未知协议的逆向分析。测试

第一类以协议特征(好比协议格式特征、端口特征、流量特征等)为基础,识别应用使用的通讯协议并根据协议规范对协议报文进行分析,前提是协议规范已知。加密

第二类在协议特征未知的条件下,经过协议报文或协议软件执行过程分析获得协议规范(好比协议字段格式和协议状态机),即协议逆向分析。spa

1.3 协议逆向工程

协议逆向工程是指在不依赖协议描述的状况下,经过对协议实体的网络输入输出、系统行为和指令执行流程进行监控和分析,提取协议语法、语义和同步信息的过程,是工程化的协议逆向分析方法。随着网络规模的扩大和应用种类的增多,对协议逆向的准时性和时效性要求愈来愈高,自动化协议逆向分析技术成为人们追求的目标。计算机网络

2 协议逆向分析流程

以协议规范描述模型为目标,协议逆向分析系统应当包括输入预处理,协议格式提取,协议状态机推断三个阶段。3d

 

2.1 输入预处理

协议逆向的原始输入为连续的网络数据流或者处理网络数据流的指令执行轨迹。要实现协议格式提取以及协议状态机推断,首先要以会话个报文为粒度对输入进行分割。分析以前要提出原始输入中的冗余和干扰,好比报文序列中可能出现的重传、乱序、分片。会话划分和报文定界是网络流量分析领域的重要研究方向。目前研究已较为成熟。对象

2.2 协议格式提取

字段符号特征和结构是格式文法的属性。协议格式提取需依次通过字段识别、结构提取、语义与取值约束判断三个步骤,才可识别每一个报文对应的格式。对报文全部格式进行合并,获得统一的协议格式文法和各个报文结构属性。根据分析对象的不一样,协议格式提取技术分为两类:

(1)基于网络流量的协议格式逆向分析

(2)基于执行轨迹的协议格式逆向分析

第一类基于网络流量的协议格式逆向分析技术,也叫做基于报文的协议逆向分析技术,或者报文序列分析技术。即以截获的网络数据流做为分析对象,依据协议字段的取值变化频率和和特征推断获得协议格式。其依据是:数据流中的当个报文是协议格式的一个实例,相同格式的报文样本每每具备类似性,能够将具备类似性的报文聚集到一块儿,推断他们所遵循的报文格式。

第二类是基于执行轨迹的协议格式逆向分析技术,也成为基于指令序列的逆向分析技术,或者指令序列分析技术。以指令执行轨迹为分析对象,利用动态污点分析技术跟踪程序对报文的解析过程,并依据协议实体解析报文字段的具体过程实现协议格式的提取。

 

基于网络流量的分析技术与基于执行轨迹的分析技术相比,存在如下优势:

(1)时效性强。在报文样本数量大,协议种类多的状况下,运行速度快,可以快速获得结果。

(2)对终端依赖小。在未知目标通讯软件的状况下,不须要跟踪报文在终端运行状况。

3)通用性强。报文序列分析方法不关心报文所在协议的层次,只对报文的格式进行分析。

基于网络流量的分析技术与基于执行轨迹的分析技术相比,存在如下缺点:

(1)在仅提供正例网络流量的前提下,正则语言不可能经过学习获得。

(2)对采用加密和压缩机制的协议,报文字节的取值已被破坏,没法经过网络流量分析进行逆向。

(3)对样本集的覆盖率依赖大,样本中不存在的报文格式,没法网络流量分析逆向。

 2.3 协议状态机推断

协议状态机推断是指经过分析捕获的网络协议报文序列和协议实体对该报文序列的解析过程,得到协议实体处理状态迁移的逻辑结构以及行为语义信息,最终构成协议的状态机。

在协议状态机推断过程当中,一般须要将报文序列中的报文实例抽象为其所属的报文类型,进而将一个或连续的多个抽象类型标注为一个状态。 

通过输入预处理,协议格式提取,协议状态机推断后,造成协议规范文本,为后续网络协议逆向应用奠基基础,好比基于协议的模糊测试技术等。

相关文章
相关标签/搜索