掌桥专利:专业的专利平台
掌桥专利
首页

一种基于会话相似性分析的SSH中间人攻击检测系统

文献发布时间:2023-06-19 10:11:51


一种基于会话相似性分析的SSH中间人攻击检测系统

技术领域

本发明涉及网络安全及大数据分析领域,尤其涉及一种是从网络流量数据中检测SSH(Secure Shell)中间人攻击的系统。

背景技术

中间人攻击是一种较为隐蔽的攻击,建立中继连接后能够查看原本通信双方发送的所有明文信息,可能造成非常严重的信息泄露或网络入侵。目前针对中间人攻击检测的研究,主要集中在安全套接字协议(SSL,Secure Sockets Layer)上,而现有的SSL中间人攻击检测方法主要有两种,为在线检测和离线检测。在线检测是指客户端在连接过程中通过某种机制主动探测,并在检测到攻击后断开连接。现有的在线检测方法主要有以下几种类型:利用传输时间进行检测:通过定义安全会话重传超时时间,来发现握手阶段到信息传输阶段的异常时间间隔。或在消息传输时通信双方均向第三方时间服务器请求记录,由时间服务器依据时延历史记录和推理算法,检测异常传输时延;通过密钥信息判断,依据多位置观察主机记录的目标服务器历史密钥,在客户端发起连接时检测密钥是否异常;也有研究者提出通过新的证书认证协议和主动回声探测来改善或防止中间人攻击。但这些方法需要对原有协议进行改动,无法广泛应用。离线检测则通过分析网络中捕获的流量数据来检测中间人攻击,从而生成攻击事件并做出反应。包括通过检测固定端点之间的平均通信时延来确定中间人攻击存在性,或者在网络内布置数个探针主机,以检测相同的服务器IP传回的证书是否异常。

在流量层面,目前针对SSH协议中间人攻击检测研究还不多见。SSH的交互性使得响应时间间隔变化较大,而面向SSL的基于时间间隔的检测思路,主要焦点是异常的时间间隔,在SSH中受到用户操作影响太大,因此并不适用。而利用主动探测异常证书或密钥的检测方法,在面对捕获的SSH加密流量时有两个明显缺陷:在已捕获的流量中无法通过主动发送数据来执行检测;SSH不具有SSL的公共性,不能保证服务端在同一时段有多个连接来提供所需的对比源。

发明内容

本发明技术解决问题:克服现有技术的不足,提供一种面向加密会话流量的SSH中间人攻击检测系统,能够在避免对SSH加密数据流量解密的前提下,分析两个加密会话之间的传输内容相似性,从而检测出流量中存在的中间人攻击事件,有效的解决了面向加密流量难以识别中间人攻击的问题,并且非常适合对动态扩展网络环境的信息安全事件进行监控。

针对上述问题,本发明提出了一个基于会话相似性分析的SSH中间人攻击检测系统,基于中间人攻击产生的会话具有相似性的特点。首先根据攻击需要满足的时间分布范围和端点IP及端口的条件,筛选出流量中能构成攻击的可疑会话对集合;然后提取可疑会话对的具有传输环境鲁棒性的信息量往返序列,通过相似性判别模块来判断信息量往返序列的相似性,从而有效判定中间人攻击。本发明的创新点包括:

(1)提出一种中间人攻击可疑会话对选择算法

本发明在进行SSH会话对进行相似判别之前,首先通过一种会话对选择算法从网络流量数据中选择能构成攻击的会话对,该算法结合中间人攻击必须满足的时间和端点条件,通过固定一个会话,然后在一定的时间窗口内选择与该会话满足中间人攻击条件的另一个会话,从而确定可疑会话对,能够大幅度减小待判别会话对的规模,从而提高检测效率。

(2)提出一种具有传输环境鲁棒性的SSH会话序列数据表示方法

为了能够降低不同网络传输环境对会话序列数据造成的影响,本发明在进行会话对相似性判别前,对由数据包长度及时间信息构成的序列进行一定处理,通过丢弃序列中明文阶段数据包部分、合并同方向数据包信息等操作,将数据包序列转换为信息量往返序列,能够有效削减网络拆包的影响,并添加字节长度噪声值以避免数值分布区间固化而降低对加密算法的泛化性。

(3)提出一种面向加密流量的中间人攻击检测框架

本发明将加密流量中的中间人攻击检测工作转化为对SSH可疑会话对的选择和相似判别,并将其抽象为四个主要步骤:首先是协议解析、过滤与会话切分,将网络流量数据以SSH会话为单元解析划分;其次是可疑会话对选择,根据攻击构成条件从划分好的SSH会话中选择出可能构成中间人攻击的会话对;然后是会话表示数据提取,将SSH会话对转换为对传输环境具有鲁棒性的信息量往返序列;最后是会话对相似性判别模块建立,基于LSTM神经网络及全连接层神经网络完成对SSH会话对信息量往返序列相似性的预测,并完成攻击事件判定与输出。

本发明采用的技术方案为:一种基于会话相似性分析的SSH中间人攻击检测方法,包括:SSH可疑会话对选择模块、会话表示数据提取模块、会话对相似性判别模块;

SSH可疑会话对选择模块:从所有SSH协议网络流量数据中选择出具有构成中间人攻击条件的会话对,首先对网络流量数据按照SSH连接会话解析并划分,使得会话按照起始时间排列,然后根据每个会话的起始时间与终止时间,选择先于该会话发起的时间分布相近的会话来配对,并通过会话的端点IP及端口等信息判断是否满足攻击构成条件,最后将满足攻击构成条件的会话对加入至可疑会话对集合中,以进行后续处理;

会话表示数据提取模块:用于提取表示SSH可疑会话对选择模块得到的会话对的序列数据,首先将可疑会话对集合中的每个SSH会话对表示为一对数据包长度及时间信息构成的序列,然后丢弃序列中明文阶段数据包对应的部分,合并同一方向的连续传输数据包的字节长度与时间,从而转换到信息量往返序列形式的数据表示,最后添加从指定区间范围中选取的等概率整数噪声,得到对传输环境具有鲁棒性的信息量往返序列;

会话对相似性判别模块:用于判别会话对的信息量往返序列的相似性,首先输入会话表示数据提取模块得到的会话对的信息量往返序列,通过共享参数的LSTM神经网络计算获得规整向量对,然后将得到的规整向量对合并为单个长向量,将长向量输入至全连接层神经网络获得规整向量对是否相似的二分类结果,在会话对相似性判别模块构建时基于中间人攻击数据集调整LSTM神经网络及全连接层神经网络参数,在模型预测时先输出二分类结果,最后根据二分类结果判定是否为中间人攻击,并输出IP端口信息。

所述的SSH可疑会话对选择模块,负责从所有SSH流量中选择出具有构成中间人攻击条件的会话配对,具体实现如下:

(1)通过五元组Session来描述SSH连接会话,并依据该五元组对网络流量数据进行划分解析:

Session(ClientIP,ClientPort,ServerIP,ServerPort,BeginTime) (2)

其中ClientIP为SSH客户端IP地址,ClientPort为SSH客户端端口,ServerIP为SSH服务端IP地址,ServerPort为SSH服务端端口,BeginTime为连接起始时间;

(2)按起始时间顺序遍历每个SSH会话,在处理每个会话时,向前搜索起始时间差不超过MAX_START_INTERVAL(最大起始时间间隔)、结束时间差不超过MAX_END_INTERVAL(最大终止时间间隔)的另一个会话,在查找到遵循时间要求的每个会话对时,若会话对满足两种中间人攻击条件之一,则将该会话对加入至可疑会话对集合中。如果当前向前搜索会话的起始时间差超过MAX_START_INTERVAL,则停止搜索,开始遍历下一个SSH会话。中间人攻击由两个SSH会话构成,并且两个会话对应的五元组具有以下两种限制条件之一:

(i)会话对遵循服务端-服务端型邻接,即会话一的ServerIP及ServerPort与会话二的ServerIP及ServerPort完全一致,五元组其他端点信息不相同;

(ii)会话对遵循服务端-客户端型邻接,即会话一的ServerIP与会话二的ClientIP一致,而五元组其他端点信息不相同。

所述的会话表示数据提取模块,负责提取出表示SSH会话对的信息量往返序列,反映SSH会话中信息的往返传输量及时间耗费,具体实现如下:

(1)将SSH会话对转换为一对有效数据包的字节长度和时间戳信息组成的序列,并将时间戳转换为相对上一条数据包的时间间隔,然后丢弃序列中处于明文阶段数据包的部分;

(2)对序列数据中同一数据传输方向上的连续数据包进行合并,减弱由于网络传输和执行时间造成的数据拆包影响,在合并时,对于字节长度的数值进行累加,对于时间信息,取最后一条数据包到上一条反方向数据包的时间间隔,完成合并后,得到信息量往返序列形式的数据表示;

(3)对信息量往返序列的每个时间步的长度数值,添加从指定区间范围[-Threshold,+Threshold]中选取的等概率整数噪声,累加至原始字节数值上,得到对传输环境具有鲁棒性的信息量往返序列。

所述的会话对相似性判别模块,负责判别加密会话对传输内容的相似性,具体实现如下:

(1)通过LSTM神经网络结构将会话对的信息量往返序列转为规整向量对,首先输入会话表示数据提取模块得到的会话对的信息量往返序列,通过一个相同参数及结构的双层LSTM神经网络接收每个时间步的数值,并在最后一个LSTM单元输出规整后的定长向量。通过该部分神经网络,会话对的信息量往返序列被转化为规整向量对;

(2)将规整向量对连接为一个长向量,并通过全连接层进行分类,输出规整向量对是否相似的二分类结果。在会话对相似性判别模块构建时,首先基于中间人攻击数据集建立带标签的相似与不相似的训练样本集,并以此样本集执行LSTM神经网络及全连接层神经网络端到端的训练,从而调整好该神经网络的参数。在进行预测时,输入待检测可疑会话对的信息量往返序列,输出该可疑会话对是否相似的结果,如果相似,则将此可疑会话对作为中间人攻击事件的基本信息输出。

本发明与现有方法相比主要优点在于:本发明基于中间人攻击产生的会话具有相似性的特点,实现对中间人攻击的识别,避免了SSH交互性时间间隔变化以及不同网络延迟时间对攻击检测的影响,同时对于中间人攻击事件的判定不受协议加密机制的限制,可以通过深度学习技术避免对数据包的解密。本发明提出的可疑会话对选择算法能够有效减少相似判定的会话对规模,提高检测效率。并且,本发明提出的检测方法面向流量数据进行,与传统基于主机的在线检测方法相比,在大型网络中具有更好的可扩展性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

在附图中:

图1是本发明的SSH中间人攻击检测方法整体框架图;

图2是本发明的基于LSTM的相似性判别神经网络模型结构图。

具体实施方式

下面参考附图,对本发明的实施例进行详细的说明。

本发明为一种基于会话相似性分析的SSH中间人攻击检测系统,从网络流量数据中选择出可疑SSH会话对,然后通过神经网络技术对加密会话对之间的相似性质进行判别,从而完成对网络流量数据里中间人攻击事件的检测,具体包括:设计了基于会话相似性分析的SSH中间人攻击检测流程框架,框架定义了检测方案的组成模块与检测步骤;设计了SSH可疑会话对选择算法,有效减少了需要相似性判别的会话对规模;提出了SSH会话的序列数据表示法,能有效标识SSH会话的相似性与独特性;构建了基于LSTM神经网络和全连接层神经网络的会话对相似判别模块,实现了对SSH会话对相似性的预测,进而完成中间人攻击事件的判定。

首先对本发明的方法全过程进行说明。

图1展示了本发明所设计的基于会话相似性分析的SSH中间人攻击检测方法整体框架图,框架由离线部分与在线部分组成。首先进行相似性模型的离线训练:根据中间人训练数据集中标定的会话对样本,提取会话表示数据,执行模型训练。在线部分是执行真实网络流量数据中的中间人攻击检测:SSH可疑会话对选择模块、会话表示数据提取模块、会话对相似性判别模块。其中SSH可疑会话对选择模块负责对待检测网络流量数据进行解析与划分,并选择出能构成中间人攻击的可疑会话对;会话表示数据提取模块负责将SSH会话对转换为对传输环境具有鲁棒性的信息量往返序列;最后的会话对相似性判别模块,负责通过已训练的LSTM神经网络及全连接层神经网络完成对SSH会话对信息量往返序列相似性的判别,并完成攻击事件判定与输出。

SSH可疑会话对选择模块负责从所有SSH流量中选择出具有构成中间人攻击条件的会话配对,具体实施方式如下:

(1)通过五元组Session来描述SSH连接会话,并依据该五元组对流量数据进行划分解析:

Session(ClientIP,ClientPort,ServerIP,ServerPort,BeginTime) (3)

其中ClientIP为SSH客户端IP地址,ClientPort为SSH客户端端口,ServerIP为SSH服务端IP地址,ServerPort为SSH服务端端口,BeginTime为连接起始时间。首先从网络流量数据中解析五元组的全部字段,数据以五元组描述的单位作为一个独立的SSH会话,然后丢弃掉不包含加密阶段的未完成会话,最后根据BeginTime信息将所有会话有序排列;

(2)按起始时间顺序遍历每个SSH会话,在处理每个会话时,向前搜索起始时间差不超过最大起始时间间隔MAX_START_INTERVAL、结束时间差不超过最大终止时间间隔MAX_END_INTERVAL的另一个会话,在查找到遵循时间要求的每个会话对时,若会话对满足两种中间人攻击条件之一,则将该会话对加入至可疑会话对集合中。如果当前向前搜索会话的起始时间差超过MAX_START_INTERVAL,则停止搜索,开始遍历下一个SSH会话。中间人攻击由两个SSH会话构成,并且两个会话对应的五元组具有以下两种限制条件之一:

(i)会话对遵循服务端-服务端型邻接,即会话一的ServerIP及ServerPort与会话二的ServerIP及ServerPort完全一致,五元组其他端点信息不相同;

(ii)会话对遵循服务端-客户端型邻接,即会话一的ServerIP与会话二的ClientIP一致,而五元组其他端点信息不相同。

会话表示数据提取模块,负责提取表示SSH会话对的信息量往返序列,反映SSH会话中信息的往返传输量及时间耗费,具体实施方式如下:

(1)将SSH会话对转换为一对有效数据包的字节长度和时间戳信息组成的序列,其中每个序列的长度与有效数据包的计数相同,在处理过程中,将不包含实际载荷及TCP序号重复的数据包视为无效数据包,不纳入序列数据中。序列中时间戳信息为UNIX时间戳,在此将其转换为相对上一条数据包的时间间隔,然后丢弃序列中处于明文阶段数据包部分的信息。

(2)对序列数据中同一数据传输方向上的连续数据包进行合并,减弱由于网络传输和执行时间造成的数据拆包影响,在合并时,对于字节长度的数值进行累加,该值表示一个传输方向连续发送的总字节数,对于时间信息,取最后一条数据包到上一条反方向数据包的时间间隔,该值表示当前传输方向上连续发送的信息的总耗费时间,完成合并后,得到信息量往返序列数据;

(3)对信息量往返序列数据的每个时间步的长度数值,添加从指定区间范围[-Threshold,+Threshold]中选取的等概率整数噪声,累加至原始字节数值上,得到对传输环境具有鲁棒性的信息量往返序列,其中Threshold本发明取值为4。

会话对相似性判别模块,负责判别加密会话对传输内容的相似性,具体实施方式如下:

(1)通过LSTM神经网络结构将会话对的信息量往返序列转为规整向量对,首先输入会话表示数据提取模块得到的会话对的信息量往返序列,该序列为不定长的二维数据序列,通过一个双层LSTM神经网络接收每个时间步的数值,规定最大时间步长为40,第一层LSTM神经网络的输出维数为64,第二层LSTM神经网络的输出维数为32,并且在LSTM单元之间添加Dropout处理以防止训练过拟合。在获取规整后的定长向量时,只选取最后一个时间步第二层的32维向量输出。在处理会话对里两个信息量往返序列时,双层LSTM神经网络的参数及结构是共享的。通过该部分神经网络,会话对的不定长信息量往返序列被转化为规整向量对,其中每个规整向量为32维,该部分网络结构如图2序列数据向量化部分所示;

(2)将规整向量对连接为一个64维的长向量,并通过全连接层进行分类,如图2中所示,该长向量经过两层全连接层的处理,第一层输出维度为128维,第二层输出维度为64维,最后通过Sigmoid激活函数得到规整向量对是否相似的二分类结果。在会话对相似性判别模块构建时,首先基于中间人攻击数据集建立带标签的相似与不相似的训练样本集,并以此样本集执行LSTM神经网络及全连接层神经网络端到端的训练,从而调整好该神经网络的参数。在进行预测时,输入待检测可疑会话对的信息量往返序列,输出该可疑会话对是否相似的结果,如果相似,则将此可疑会话对作为中间人攻击事件的基本信息输出。

综上所述,本发明提供的一种基于会话相似性分析的SSH中间人攻击检测方法,其基于中间人攻击产生的会话具有相似性的特点,首先根据攻击需要满足的时间分布范围和端点IP及端口的条件,筛选出网络流量数据中能构成攻击的可疑会话对;然后通过提取具有传输环境鲁棒性的会话表示数据,通过相似性判别模型来判断会话对的相似性,从而有效判定中间人攻击。

通过以上的实施方式的描述,本领域的普通技术人员可显而易见地得出其他优点和修改。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的保护范围应由权利要求限定。

技术分类

06120112452382