摘 要:
针对新的应用和协议不断涌现而导致的网络数据流无法识别的问题,对未知密码协议逆向分析技术进行了研究。首先,对密码协议的行为模式进行分析,将密码协议分为安全连接建立阶段和数据传输阶段;其次,分析了安全连接建立阶段和数据传输阶段的数据特点,提出从安全连接建立阶段入手进行密码协议逆向分析的思想;针对密码协议变长字段多的特点,提出了随机采样、多序列对齐、数据挖掘相结合的字段划分方案,提高了字段划分的准确性和效率;分析了长度字段的特点,提出了长度字段的特征提取方法。基于网络数据流的未知密码协议逆向分析技术为网络监管提供技术支撑。
内容目录:
1 研究现状
2 典型密码协议分析
2.1 密码协议交互行为分析
2.2 密码协议数据分析
3 未知密码协议逆向分析
3.1 未知密码协议逆向分析框架
3.1.1 数据预处理
3.1.2 密码协议阶段划分
3.1.3 协议关键词提取
3.1.4 协议格式识别
3.2 密码协议阶段划分
3.3 协议关键词提取
3.4 协议格式识别
3.5 实验结果
3.5.1 网络数据流生成
3.5.2 未知密码协议逆向分析
由于用户对隐私数据保护的需求不断增加,促使网络应用大量使用密码协议,在网络数据流中的加密流量的比例不断提高。为了对加密网络应用进行网络监管,必须对加密流量进行识别。
当 前, 大 量 的 网 络 应 用 使 用 私 有 的 密 码协 议 进 行 加 密, 如 即 时 通 信 软 件 WhatsApp、Telegram, 代 理 软 件 Shadowsocks、V2Ray 等。对这些流量进行网络监管的一种重要方法是对密码协议的格式进行逆向分析,恢复协议格式。
目前网络协议格式解析技术主要包括 2 类方法,即基于目标主机程序执行轨迹的方法和基于网络数据流信息的方法。其中,基于目标主机程序执行轨迹的方法借助特定二进制分析平台对应用程序执行路径进行跟踪,从而恢复网络协议格式。该类方法需要在目标主机上获取执行协议的应用程序,应用局限性较大,无法真正满足网络环境对数据报文监测需求。基于网络数据流信息的方法主要以捕获的网络流量数据为分析对象,依据协议字段的取值变化频率和特征推断得到协议格式,但目前研究主要是针对明文协议,对于密码协议的逆向分析研究较少。
本文对密码协议的执行流程进行了分析,将密码协议交互过程分为安全连接建立阶段和数据传输阶段,重点对安全连接建立阶段的协议格式进行分析,提出了基于网络数据流的密码协议逆向分析方法,通过逆向得到的数据格式,可以得到协议识别方案。
1
研究现状
针对文本协议、二进制协议、密码协议,研究人员提出了基于网络数据流的未知协议逆向分析的不同分析方法。
针对文本协议的逆向分析研究较早。2004年,Beddoe 通过引入生物信息学的多序列比对算法,对报文的结构信息进行提取,称为 PI 项目;2007 年,Cui 等 人 依 赖 于 ASCII 为 典 型字符编码的定界符,提出了 Discoverer 方案,提 取 字 段 域 格 式;2014 年, 钟 晓 欢 等 人 引入 TF-IDF 文本特征模型,对文本类协议消息进行分析;2014 年,詹成等人 提出一种基于统计分析的协议格式推测技术,利用 N-gram 方法得到候选特征词集合,使用统计学中的 K-S(Kolmogorov-Smirnov)测试,筛选冗余特征词。
针对二进制协议的逆向研究是为了弥补上述分析方法无法对二进制协议进行分析的问题来分析的。2009 年,Trifilo 等人提出方差分布的方法确定二进制特征;2013 年,罗建桢等人 采用基于位置的协议逆向方法,使用关联挖掘方法,确定字段域边界的可能位置;2014 年,Zhang 等人提出 ProWord 方法,设计关键字内接边界和外接边界的信息熵来确定字段域的位置。
针对密码协议的研究相对较少。2015 年,朱玉娜等人 提出 SPFPA 方案,在序列模式挖掘和关键词提出的基础上,依照密文长度域启发式识别规则,识别密文域;2019 年,何旭东等人 提出基于混合网络轨迹的安全协议格式逆向方法,输出目标协议轨迹的格式。
2
典型密码协议分析
密码协议是指两个或两个以上的参与者为完成密码通信中某项特定任务而约定的一系列步骤。新应用使用的密码协议通常是现有密码协议的变体。本文对典型密码协议的交互行为特点和数据特点进行分析,为未知密码协议逆向分析提供技术支撑。
2.1 密码协议交互行为分析
图 1 和图 2 分别给出了互联网上常用密码协议安全传输层协议(Transport Layer Security,TLS)和点对点隧道协议(Point-to-Point Tunneling Protocol,PPTP)的协议交互过程。不失一般性,密码协议交互过程一般分为两个阶段:安全连接建立阶段和数据传输阶段。第一阶段是建立安全连接,也称为“密码协议协商阶段”,包括握手、认证和密钥交换,在这个过程中通信双方协商支持的加密算法,交换加密参数,互相认证并生成密钥;第二阶段采用第一阶段产生的密钥,按协商好的加密算法加密传输应用数据。
图 1 TLS 协议的交互过程
图 2 PPTP 协议的交互过程
在安全连接建立阶段,密码协议交互过程中,一个参与者在接收到对端在该阶段需要传输的所有数据后,才会对该阶段的数据进行处理,生成全部响应并发送。
在密码协议从安全连接建立阶段向数据传输阶段转换时,通常会在安全连接建立阶段产生一个固定格式的双向确认信息,确保安全协议的所有参与者生成了相同的密钥。
2.2 密码协议数据分析
安全连接建立阶段,除文本信息外,还包括各种二进制值,如枚举类型的二进制值、具有特定范围的二进制值、随机数等。枚举类型的二进制值通常是协议的版本、协议的类型、可选参数集合等。具有特定范围的二进制值通常表示长度信息。随机数通常是消息认证码、时鲜值、公钥、签名等。
数据传输阶段通常不包含任何文本信息,其主要组成是表示协议类型、长度等的二进制域及密文域。其中,二进制域的长度分为固定长度和非固定长度。非固定长度的字段组成可能为:(1)长度、非固定长度二进制域;(2)长度、固定长度二进制域、非固定长度二进制域;(3)长度、长度、非固定长度二进制域、非固定长度二进制域。
3
未知密码协议逆向分析
根据密码协议交互行为特点及数据特点,本文设计了未知密码协议逆向分析的步骤,并以 TLS 协议为例验证了基于网络数据流的逆向分析技术的有效性。
3.1 未知密码协议逆向分析框架
未知密码协议逆向分析框架包括 4 个主要部分,如图 3 所示。
图 3 未知密码协议逆向分析框架
3.1.1 数据预处理
协议逆向的原始输入为某个特定密码协议的连续网络数据流。先以会话和报文为粒度对输入进行分割,再剔除原始数据中的冗余和干扰,如报文序列中可能出现的重传、乱序、分片等。
3.1.2 密码协议阶段划分
根据密码协议交互特点,先根据时间特征和数据流方向特征将报文进行合并和排序,再针对合并后的双向数据流的各种统计特征和熵特征,划分密码协议的安全连接建立阶段和数据传输阶段。
3.1.3 协议关键词提取
协议关键词提取阶段,首先,通过随机采样获取样本的子集,对样本子集进行多序列对齐;其次,利用对齐后的样本以数据挖掘方法获取报文载荷序列中的频繁模式集;最后,根据启发式方法计算频繁模式是协议关键词的概率,取概率大的频繁模式作为协议关键词。
3.1.4 协议格式识别
在获取协议关键词后,根据序列比对算法对关键词之间的顺序关系、从属关系等进行识别,并对协议语义分析,对非定长字段进行进一步识别,获取协议格式。
3.2 密码协议阶段划分
根据第 2 节的分析,密码协议划分为安全连接建立阶段和数据传输阶段。
首先,对报文进行预处理。对于时间序列上连续的多个报文,如果这些报文都是同一个方向,即都是从客户端发往服务器,或都是从服务器发往客户端,则将这些报文组合成一个报文。用 + 表示报文方向为从客户端发往服务器;用 - 表示报文方向为从服务器发往客户端,用表示报文到达的时间,则每个报文可以用二元组表示。若报文的序列为,则合并报文为;若报文的序列为,则合并报文为(;若报文的序列为 ,则不合并报文,即保留两个报文;若报文的序列为和,也不合并报文。
其次,对密码协议的交互行为进行初步识别。对于组合后的报文,取前 10 个报文进行分析,按照报文字节数(具体数值)、报文方向(+/-)、报文序号(的下标 i )对报文进行统计分析,根据不同阶段的统计特点,初步划分出安全连接建立阶段和数据传输阶段。
最后,对密码协议的交互行为进行精细化识别。对于初步划分出的不同阶段,分别计算不同阶段报文序列的多元组熵,根据多元组熵的特征在加密和非加密流量数据上的明显差异,进一步确定阶段划分的正确性。多元组熵特征是指在以 n 元组集合的形式对报文序列进行切割后,满足不同长度、频率条件的字符组集合的一系列熵值。
3.3 协议关键词提取
对于 3.2 节划分得到的安全连接建立阶段的报文,利用层次化分析的方式进行字段划分,然后进行协议关键词提取。
一是随机选取相同方向、相同序号的若干个报文,采用多序列比对算法,将报文进行对齐。在多序列比对算法之前随机选取报文,可以有效地减小对齐所需的时间。对于随机选取的报文进行对齐,协议中出现次数最多的不变字段仍然得以保存。在基于随机采样的多序列对齐后,完成了协议格式的初步提取,得到的不变字段中,包含了协议报文格式中包含的关键字,如版本号、枚举类型的关键字等。二是对于对齐后的报文,将相同不变字段之间的部分作为输入,通过数据挖掘的方法,得到两个关键字之间的频繁模式集。频繁模式集挖掘得到的信息中通常包含了协议的子协议中包含的关键字。三是将不变字段和频繁模式集组合,统一称为协议的格式信息集。利用多模式匹配算法对所有样本进行匹配,得到协议的格式信息集中的所有项在样本中的存在性和位置信息,并根据格式信息集在所有样本中出现的频度,对协议的格式信息集进行更新,得到关键词的候选集合。四是得到关键词候选集合后,采用启发式关键词提取方法提取协议的关键词。关键词候选集合中的每一项称为一个预选关键词。按预选关键词对所有报文进行分类,对于每一个预选关键词,先计算类内报文的相似性、类间报文的相似性、分类后的类数、分类后报文结构的相似度;再采用概率因子图模型,计算预选关键词为协议关键词的概率,取概率最高的前 N项为协议的关键词。
3.4 协议格式识别
根据 3.3 节中得到的协议关键词,以及协议关键词在样本中的位置,确定关键词之间的顺序关系、从属关系及语义关系。
如果关键词 A 与关键词 B 出现的位置存在先后关系,则它们之间存在顺序关系;如果关键词 A 后总是出现关键词 B,但是与关键词 A相同位置的关键词 C 与关键词 B 之间不存在顺序关系,则关系词 A 与关键词 B 之间存在从属关系。
字段的语义是指协议将如何使用该字段,本文主要对长度字段相关的语义关系进行了分析。根据 2.2 节的分析,长度字段或者紧跟着关键词,或者在关键词后的固定位置上。长度字段的表示方法分为两种:一种是采用固定长度的字符来表示长度;另外一种是通过某种固定格式表示长度。
对于采用固定长度字符表示长度的方法,第一步,计算报文样本最大长度 M,然后,分别计算特征词后固定位置固定长度的字符表示的长度的最大值 L,若 L 大于 M,则该固定位置固定长度的字符肯定不是长度字段。第二步,查找未被排除的字段与样本长度的对应关系,若能对应上,说明该固定位置固定长度的字符是长度字段,否则,重复第一步和第二步,将其中的报文最大长度变换为关键词到报文结尾的最大长度、关键词之间的报文长度等。
对于采用固定格式表示长度的方法,首先,查找两个关键词之间是否存在频繁项,该频繁项出现的位置即是长度字段开始的位置。其次,尝试对该字段开始的格式进行解析,查找长度字段与报文长度的对应关系,确定长度字段。
3.5 实验结果
本文以 TLS 协议作为验证协议,验证了本文方法的有效性。
3.5.1 网络数据流生成
验证所需的原始协议流量数据集由作者所在实验室局域网环境中采集得到。实验室局域网环境中包括 12 台普通台式机、4 台笔记本电脑、1 台交换机(型号为 TP-LINK TL-SH6428)和 1 台 流 量 镜 像 服 务 器(Intel(R) Xeon(R) CPU X5670、60GB 内存、128GB 硬盘)。流量镜像服务器在 2021 年 11 月 1 日至 11 月 5 日之间采集到所有数据构成了本文实验结果所使用的原始协议流量数据集。
在获取原始协议流量数据集后,将原始协议流量数据集中的流量,通过 tcpreplay 命令进行流量重放,通过开源软件 Ntop 对原始协议流量数据集进行识别。Ntop 软件中,标签的不同数值表明不同的协议类型。由于本文使用 TLS协议验证方案的有效性,因此,仅保留了对应TLS 的标签的 50 000 条流量作为输入。
3.5.2 未知密码协议逆向分析
(1)数据预处理。先从 50 000 条 TLS 协议数据流中筛选得到包含完整的前 20 个数据包的流量,然后对其中的重传、乱序和分片进行了处理,得到交互流程完整、协议格式准确的协议数据流。(2)密码协议阶段划分。通过合并同方向的报文,并利用统计分析和多元组熵检测的方法,将从服务器发往客户端的 ChangeCipherSpec数据包作为分界点,准确地区分了安全连接建立阶段和数据传输阶段。(3)协议关键词提取。成功选取 TLS 记录协议版本号、记录协议长度、握手协议类型、握手版本号等作为协议关键词。(4)协议格式识别。成功恢复了记录协议长度、握手协议长度、会话 ID 长度、扩展长度等字段,并进一步获取了关键词与长度字段的相互关系,恢复了 TLS 记录协议的基本格式。
4
结 语
对密码协议网络流量的监管是网络监管中的重点和难点问题,也是进行网络对抗的基础。在对已知密码协议网络流量监管方面,已有大量的研究成果和相应的监管产品,但是对于未知密码协议网络流量的监管技术目前仍处于探索阶段。本文在未知密码协议网络流量监管的技术研究点之一,即基于网络数据流的密码协议逆向分析方面,展开了研究工作。一方面,对典型密码协议的结构特点和数据特点进行了分析,采用基于网络数据流的密码协议逆向分析方法搭建了围绕数据预处理阶段、密码协议阶段划分、协议关键词提取和协议格式识别的未知密码协议逆向分析的基本框架;另一方面,对于逆向分析的每个阶段进行了算法设计,以 TLS 协议为对象,验证了本文提出的基于网络数据流的密码协议逆向分析方法的有效性。
引用格式:陈曼,张文政,吉庆兵.基于网络数据流的未知密码协议逆向分析[J].信息安全与通信保密,2022(6):86-93.
作者简介 >>>
陈 曼,女,硕士,高级工程师,主要研究方向为保密通信;
张文政,男,硕士,研究员,主要研究方向为保密通信;
吉庆兵,男,硕士,研究员,主要研究方向为保密通信
选自《信息安全与通信保密》2022年第6期
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...