一种基于机器学习的ssh协议登录状态检测方法

文档序号:195848 发布日期:2021-11-02 浏览:25次 >En<

阅读说明:本技术 一种基于机器学习的ssh协议登录状态检测方法 (SSH protocol login state detection method based on machine learning ) 是由 徐文勇 田红伟 魏勇 于 2021-10-08 设计创作,主要内容包括:本发明公开了一种基于机器学习的SSH协议登录状态检测方法,属于网络安全技术领域,其特征在于,包括以下步骤:a、构造训练模型所输入的网络流量;b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原;c、将标记好的SSH特征向量输入SVM算法进行训练,最终建立好SVM预测模型并部署到真实环境中;d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果。本发明能够有效的解决由于环境配置的差异和通信行为的不同造成的登陆状态误报和漏报的问题,实现了更精准的SSH登陆状态识别。(The invention discloses a machine learning-based SSH protocol login state detection method, which belongs to the technical field of network security and is characterized by comprising the following steps of: a. constructing network flow input by a training model; b. reducing the successful login and failed login flows by a network flow reduction method; c. inputting the marked SSH feature vector into an SVM algorithm for training, and finally establishing an SVM prediction model and deploying the model into a real environment; d. and reducing the SSH network flow by a network flow reduction method, extracting SSH characteristic vectors in the real network flow, and inputting the extracted SSH characteristic vectors into a trained SVM prediction model to obtain an SSH login state recognition result. The invention can effectively solve the problems of false alarm and false alarm of the login state caused by the difference of the environmental configuration and the difference of the communication behaviors, and realizes more accurate identification of the SSH login state.)

一种基于机器学习的SSH协议登录状态检测方法

技术领域

本发明涉及到网络安全技术领域,尤其涉及一种基于机器学习的SSH协议登录状态检测方法。

背景技术

SSH即安全外壳协议,是一种加密的网络传输协议,通常用作远程管理Linux系统,能够传输命令行界面和远程执行命令。由于该协议使用普及性且重要性很高,在很多网络攻击案件中都会看到SSH使用的痕迹,常见的网络攻击包括SSH暴力破解、弱口令登陆以及账号密码泄露导致的异常SSH登陆。

在防火墙、入侵检测系统和入侵防御系统这些安全监控设备中,通常使用端口识别、深度数据包检测和动态流检测技术来对网络流量中的协议类型和内容进行识别,这些技术针对明文协议通常识别和还原效果都较好,但对于加密协议来说只能识别到大概协议类型。特定于协议来说,由于其本身加密协议的特性,目前还没有能够直接准确识别用户登陆状态的技术手段。只有识别出协议真正登录状态才能对可能存在的系统账号失陷进行最终的定性,协议登陆状态识别对发现SSH暴力破解成功、SSH账号泄密和SSH账号异常网络登录这些网络安全监测方面有着重要的意义。

公开号为CN 109587179A,公开日为2019年04月05日的中国专利文献公开了一种基于旁路网络全流量的协议行为模式识别与告警方法,其特征在于,具体包括以下步骤:步骤一:通过交换机镜像获取网络流量,从中分离得到TCP的流量信息,再通过对TCP流量进行分析获取得到协议相关的数据,最后对协议数据进行清洗和分析,从数据集合中提取关键特征信息;所述获取数据、清洗数据以及提取特征的操作具体包括先通过对交换机进行配置,将镜像流量导出至数据解析器,根据网络报文信息解析获取得到TCP的流量,每次TCP通讯记作一条流量数据;再根据TCP报文中目的端口信息,提取出端口协议的流量信息;再对协议的流量信息进行清洗和分析,从报文信息中提取sip (源地址)、dip (目的地址)的特征信息,并统计本次通讯过程中inpacket (源地址所发出的流量包的数量)、retransmit_in (源地址所发出的流量包的重传数量)、outpacket (目的地址所发出的流量包的数量)、retransmit_out (目的地址所发出的流量包的重传数量)以及记录timeout_state (TCP连接的结束状态),共七个特征信息;步骤二:根据所述步骤一所获取的数据关键特征信息,判断当前集合内的每条流量数据类型是属于登陆成功、暴力破解和扫描过程;步骤三:依据所述步骤二中获得的每条流量数据的判断结果,进行综合考虑和推断当前时间段内的整体行为,根据整体行为执行相应的告警操作;步骤四:依据所述步骤三中的告警操作,进行更新和维护本地黑名单local_bl和本地受攻击名单weak_ip。

该专利文献公开的基于旁路网络全流量的协议行为模式识别与告警方法,虽然基础数据获取简单,避免了传统识别的繁琐。但是,其对登录状态的判断逻辑过于单一,在真实网络环境下,由于网络流量分片的原因,SSH服务器鉴权是公钥验证和键盘交互验证不同鉴权方式,以及SSH在单会话多次尝试登陆的情况都会造成此判断规则判断错误。

发明内容

本发明为了克服上述现有技术的缺陷,提供一种基于机器学习的SSH协议登录状态检测方法,本发明能够有效的解决由于环境配置的差异和通信行为的不同造成的登陆状态误报和漏报的问题,实现了更精准的SSH登陆状态识别。

本发明通过下述技术方案实现:

一种基于机器学习的SSH协议登录状态检测方法,其特征在于,包括以下步骤:

a、构造训练模型所输入的网络流量,通过真实网络环境提取和工具构造来产生SSH网络流量,其中包括基于SSH的SCP协议和SFTP网络流量,分别配置密码鉴权、公钥鉴权和键盘交互鉴权方式的SSH网络流量,通过公开SSH暴力破解工具产出单会话和多会话SSH暴力破解流量,使用SSH工具产生正常网络流量和异常网络流量,使用SFTP和SCP工具产生正常网络流量和异常网络流量;

b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原,并标识每条SSH会话的登录状态,从每条SSH会话的网络流量中抽取用于模型训练的SSH特征向量,同时打上登陆成功和失败标记,用于训练参数输入;

c、将标记好的SSH特征向量输入SVM算法进行训练,通过网格搜索和交叉验证进行参数调优,最终建立好SVM预测模型并部署到真实环境中;

d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果。

所述步骤d中,SSH登陆状态识别通过支持向量机算法实现。

所述步骤d中,SSH登录状态识别结果具体通过以下步骤获得:

步骤1、网络流量采集基于libpcap、pf_ring和DPDK开源网络流量采集框架实现网络流量还原;

步骤2、通过对数据包进行解析,对网络流量中的TCP协议进行流重组;

步骤3、根据SSH的明文特征信息来识别SSH网络流量;

步骤4、抽取SVM预测模型所需要的特征向量;

步骤5、将抽取的特征向量输入到SVM预测模型中,输出SSH登录状态识别结果。

所述步骤1中,网络流量还原是指通过端口镜像获取完整的网络流量,然后网络流量采集框架通过深度包检测识别网络流量中的TCP协议数据包。

所述步骤2中,对网络流量中的TCP协议进行流重组是指根据TCP协议数据包的源ip、源端口、目的ip、目的端口和协议进行会话还原,将每条会话的数据包进行流重组,并记录每条会话的基本信息,抽取TCP协议的应用层负载数据,进行应用层协议解析。

所述会话的基本信息包括会话开始时间、会话结束时间、会话持续时间、会话断开的方向、客户端发送的数据包总数和服务器发送的数据包总数。

所述步骤b中,抽取用于模型训练的SSH特征向量是指抽取SSH的加密通讯阶段的网络流量特征。

所述步骤b中,SSH特征向量包括会话断开方向、连接时长、前十服务器响应包长分段统计计数、首次连续交互数据包个数、服务器首次连续响应包个数、客户端首次连续响应包个数、服务器最大连续小包数、服务器最大连续大包数、客户端最大连续小包数、客户端最大连续大包数、最大连续回显交互数据包个数、加密数据包总数、客户端发包总数和服务器发包总数。

所述前十服务器响应包长分段统计计数是指64、128、512、768和1024。

所述SSH的加密通讯阶段是指版本号协商阶段、密钥及算法协商阶段、认证阶段、会话请求阶段和交互会话阶段,认证阶段、会话请求阶段和交互会话阶段属于加密协议。

本发明所述SCP协议是指安全复制协议。

本发明所述SFTP是指安全文件传送协议。

本发明所述SVM是指支持向量机。

本发明所述libpcap是指linux平台下的网络数据包捕获函数包。

本发明所述pf_ring是指高速数据包处理框架。

本发明所述DPDK是指数据平面开发套件。

本发明的有益效果主要表现在以下方面:

1、本发明,a、构造训练模型所输入的网络流量,通过真实网络环境提取和工具构造来产生SSH网络流量,其中包括基于SSH的SCP协议和SFTP网络流量,分别配置密码鉴权、公钥鉴权和键盘交互鉴权方式的SSH网络流量,通过公开SSH暴力破解工具产出单会话和多会话SSH暴力破解流量,使用SSH工具产生正常网络流量和异常网络流量,使用SFTP和SCP工具产生正常网络流量和异常网络流量;b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原,并标识每条SSH会话的登录状态,从每条SSH会话的网络流量中抽取用于模型训练的SSH特征向量,同时打上登陆成功和失败标记,用于训练参数输入;c、将标记好的SSH特征向量输入SVM算法进行训练,通过网格搜索和交叉验证进行参数调优,最终建立好SVM预测模型并部署到真实环境中;d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果,区别于传统的基于简单的流量统计逻辑,通过SSH登陆状态识别,抽取了更复杂的包长分布统计、包长序列统计和分阶段的包长统计多维度网络流量特征,同时借助SVM支持向量机算法的最优超平面分类实现了更为严格和精准的登陆状态判断,检测效果优于基于经验值得出的基于数据包统计的检测方法,较现有技术而言,能够有效的解决由于环境配置的差异和通信行为的不同造成的登陆状态误报和漏报的问题,实现了更精准的SSH登陆状态识别。

2、本发明,通过TCP流重组实现完整流量还原,规避了一般网络流量还原方案中所遇到的数据包丢包、乱序和重传的问题,有效降低了数据噪声。

3、本发明,区别于一般通过端口识别实现的SSH网络流量判断方法,使用了深度包检测技术实现SSH流量识别,能够识别非22端口的SSH网络流量,能够完整检测网络中所有的SSH网络流量,降低了漏报和误报。

4、本发明,区别于传统通用协议识别的特征抽取方案,根据SSH协议本身网络流量行为特点,针对性的规避了协议握手和协议密钥交互的前期噪声数据,通过提取应用层数据包的大小连续性特征、数据包交互行为特征和网络流量方向行为特征,凸显了登陆成功后的命令回显网络行为特征,凸显了SSH服务器配置的公钥认证和键盘交互认证流程特征,凸显SCP和SFTP网络流量行为特征,进而能够更为准确的实现SSH登录状态识别。

附图说明

下面将结合说明书附图和

具体实施方式

对本发明作进一步的具体说明:

图1为本发明的逻辑框图;

图2为本发明SSH登陆状态检测逻辑框图。

具体实施方式

实施例1

参见图1,一种基于机器学习的SSH协议登录状态检测方法,包括以下步骤:

a、构造训练模型所输入的网络流量,通过真实网络环境提取和工具构造来产生SSH网络流量,其中包括基于SSH的SCP协议和SFTP网络流量,分别配置密码鉴权、公钥鉴权和键盘交互鉴权方式的SSH网络流量,通过公开SSH暴力破解工具产出单会话和多会话SSH暴力破解流量,使用SSH工具产生正常网络流量和异常网络流量,使用SFTP和SCP工具产生正常网络流量和异常网络流量;

b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原,并标识每条SSH会话的登录状态,从每条SSH会话的网络流量中抽取用于模型训练的SSH特征向量,同时打上登陆成功和失败标记,用于训练参数输入;

c、将标记好的SSH特征向量输入SVM算法进行训练,通过网格搜索和交叉验证进行参数调优,最终建立好SVM预测模型并部署到真实环境中;

d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果。

a、构造训练模型所输入的网络流量,通过真实网络环境提取和工具构造来产生SSH网络流量,其中包括基于SSH的SCP协议和SFTP网络流量,分别配置密码鉴权、公钥鉴权和键盘交互鉴权方式的SSH网络流量,通过公开SSH暴力破解工具产出单会话和多会话SSH暴力破解流量,使用SSH工具产生正常网络流量和异常网络流量,使用SFTP和SCP工具产生正常网络流量和异常网络流量;b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原,并标识每条SSH会话的登录状态,从每条SSH会话的网络流量中抽取用于模型训练的SSH特征向量,同时打上登陆成功和失败标记,用于训练参数输入;c、将标记好的SSH特征向量输入SVM算法进行训练,通过网格搜索和交叉验证进行参数调优,最终建立好SVM预测模型并部署到真实环境中;d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果,区别于传统的基于简单的流量统计逻辑,通过SSH登陆状态识别,抽取了更复杂的包长分布统计、包长序列统计和分阶段的包长统计多维度网络流量特征,同时借助SVM支持向量机算法的最优超平面分类实现了更为严格和精准的登陆状态判断,检测效果优于基于经验值得出的基于数据包统计的检测方法,较现有技术而言,能够有效的解决由于环境配置的差异和通信行为的不同造成的登陆状态误报和漏报的问题,实现了更精准的SSH登陆状态识别。

实施例2

参见图1和图2,一种基于机器学习的SSH协议登录状态检测方法,包括以下步骤:

a、构造训练模型所输入的网络流量,通过真实网络环境提取和工具构造来产生SSH网络流量,其中包括基于SSH的SCP协议和SFTP网络流量,分别配置密码鉴权、公钥鉴权和键盘交互鉴权方式的SSH网络流量,通过公开SSH暴力破解工具产出单会话和多会话SSH暴力破解流量,使用SSH工具产生正常网络流量和异常网络流量,使用SFTP和SCP工具产生正常网络流量和异常网络流量;

b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原,并标识每条SSH会话的登录状态,从每条SSH会话的网络流量中抽取用于模型训练的SSH特征向量,同时打上登陆成功和失败标记,用于训练参数输入;

c、将标记好的SSH特征向量输入SVM算法进行训练,通过网格搜索和交叉验证进行参数调优,最终建立好SVM预测模型并部署到真实环境中;

d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果。

所述步骤d中,SSH登陆状态识别通过支持向量机算法实现。

所述步骤d中,SSH登录状态识别结果具体通过以下步骤获得:

步骤1、网络流量采集基于libpcap、pf_ring和DPDK开源网络流量采集框架实现网络流量还原;

步骤2、通过对数据包进行解析,对网络流量中的TCP协议进行流重组;

步骤3、根据SSH的明文特征信息来识别SSH网络流量;

步骤4、抽取SVM预测模型所需要的特征向量;

步骤5、将抽取的特征向量输入到SVM预测模型中,输出SSH登录状态识别结果。

所述步骤1中,网络流量还原是指通过端口镜像获取完整的网络流量,然后网络流量采集框架通过深度包检测识别网络流量中的TCP协议数据包。

所述步骤2中,对网络流量中的TCP协议进行流重组是指根据TCP协议数据包的源ip、源端口、目的ip、目的端口和协议进行会话还原,将每条会话的数据包进行流重组,并记录每条会话的基本信息,抽取TCP协议的应用层负载数据,进行应用层协议解析。

通过TCP流重组实现完整流量还原,规避了一般网络流量还原方案中所遇到的数据包丢包、乱序和重传的问题,有效降低了数据噪声。

实施例3

参见图1和图2,一种基于机器学习的SSH协议登录状态检测方法,包括以下步骤:

a、构造训练模型所输入的网络流量,通过真实网络环境提取和工具构造来产生SSH网络流量,其中包括基于SSH的SCP协议和SFTP网络流量,分别配置密码鉴权、公钥鉴权和键盘交互鉴权方式的SSH网络流量,通过公开SSH暴力破解工具产出单会话和多会话SSH暴力破解流量,使用SSH工具产生正常网络流量和异常网络流量,使用SFTP和SCP工具产生正常网络流量和异常网络流量;

b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原,并标识每条SSH会话的登录状态,从每条SSH会话的网络流量中抽取用于模型训练的SSH特征向量,同时打上登陆成功和失败标记,用于训练参数输入;

c、将标记好的SSH特征向量输入SVM算法进行训练,通过网格搜索和交叉验证进行参数调优,最终建立好SVM预测模型并部署到真实环境中;

d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果。

所述步骤d中,SSH登陆状态识别通过支持向量机算法实现。

所述步骤d中,SSH登录状态识别结果具体通过以下步骤获得:

步骤1、网络流量采集基于libpcap、pf_ring和DPDK开源网络流量采集框架实现网络流量还原;

步骤2、通过对数据包进行解析,对网络流量中的TCP协议进行流重组;

步骤3、根据SSH的明文特征信息来识别SSH网络流量;

步骤4、抽取SVM预测模型所需要的特征向量;

步骤5、将抽取的特征向量输入到SVM预测模型中,输出SSH登录状态识别结果。

所述步骤1中,网络流量还原是指通过端口镜像获取完整的网络流量,然后网络流量采集框架通过深度包检测识别网络流量中的TCP协议数据包。

所述步骤2中,对网络流量中的TCP协议进行流重组是指根据TCP协议数据包的源ip、源端口、目的ip、目的端口和协议进行会话还原,将每条会话的数据包进行流重组,并记录每条会话的基本信息,抽取TCP协议的应用层负载数据,进行应用层协议解析。

所述会话的基本信息包括会话开始时间、会话结束时间、会话持续时间、会话断开的方向、客户端发送的数据包总数和服务器发送的数据包总数。

所述步骤b中,抽取用于模型训练的SSH特征向量是指抽取SSH的加密通讯阶段的网络流量特征。

区别于一般通过端口识别实现的SSH网络流量判断方法,使用了深度包检测技术实现SSH流量识别,能够识别非22端口的SSH网络流量,能够完整检测网络中所有的SSH网络流量,降低了漏报和误报。

实施例4

参见图1和图2,一种基于机器学习的SSH协议登录状态检测方法,包括以下步骤:

a、构造训练模型所输入的网络流量,通过真实网络环境提取和工具构造来产生SSH网络流量,其中包括基于SSH的SCP协议和SFTP网络流量,分别配置密码鉴权、公钥鉴权和键盘交互鉴权方式的SSH网络流量,通过公开SSH暴力破解工具产出单会话和多会话SSH暴力破解流量,使用SSH工具产生正常网络流量和异常网络流量,使用SFTP和SCP工具产生正常网络流量和异常网络流量;

b、将登陆成功和登陆失败的流量通过网络流量还原方法进行还原,并标识每条SSH会话的登录状态,从每条SSH会话的网络流量中抽取用于模型训练的SSH特征向量,同时打上登陆成功和失败标记,用于训练参数输入;

c、将标记好的SSH特征向量输入SVM算法进行训练,通过网格搜索和交叉验证进行参数调优,最终建立好SVM预测模型并部署到真实环境中;

d、通过网络流量还原方法还原SSH网络流量,抽取真实网络流量中的SSH特征向量,将提取到的SSH特征向量输入到已经训练好的SVM预测模型中得到SSH登录状态识别结果。

所述步骤d中,SSH登陆状态识别通过支持向量机算法实现。

所述步骤d中,SSH登录状态识别结果具体通过以下步骤获得:

步骤1、网络流量采集基于libpcap、pf_ring和DPDK开源网络流量采集框架实现网络流量还原;

步骤2、通过对数据包进行解析,对网络流量中的TCP协议进行流重组;

步骤3、根据SSH的明文特征信息来识别SSH网络流量;

步骤4、抽取SVM预测模型所需要的特征向量;

步骤5、将抽取的特征向量输入到SVM预测模型中,输出SSH登录状态识别结果。

所述步骤1中,网络流量还原是指通过端口镜像获取完整的网络流量,然后网络流量采集框架通过深度包检测识别网络流量中的TCP协议数据包。

所述步骤2中,对网络流量中的TCP协议进行流重组是指根据TCP协议数据包的源ip、源端口、目的ip、目的端口和协议进行会话还原,将每条会话的数据包进行流重组,并记录每条会话的基本信息,抽取TCP协议的应用层负载数据,进行应用层协议解析。

所述会话的基本信息包括会话开始时间、会话结束时间、会话持续时间、会话断开的方向、客户端发送的数据包总数和服务器发送的数据包总数。

所述步骤b中,抽取用于模型训练的SSH特征向量是指抽取SSH的加密通讯阶段的网络流量特征。

所述步骤b中,SSH特征向量包括会话断开方向、连接时长、前十服务器响应包长分段统计计数、首次连续交互数据包个数、服务器首次连续响应包个数、客户端首次连续响应包个数、服务器最大连续小包数、服务器最大连续大包数、客户端最大连续小包数、客户端最大连续大包数、最大连续回显交互数据包个数、加密数据包总数、客户端发包总数和服务器发包总数。

所述前十服务器响应包长分段统计计数是指64、128、512、768和1024。

所述SSH的加密通讯阶段是指版本号协商阶段、密钥及算法协商阶段、认证阶段、会话请求阶段和交互会话阶段,认证阶段、会话请求阶段和交互会话阶段属于加密协议。

区别于传统通用协议识别的特征抽取方案,根据SSH协议本身网络流量行为特点,针对性的规避了协议握手和协议密钥交互的前期噪声数据,通过提取应用层数据包的大小连续性特征、数据包交互行为特征和网络流量方向行为特征,凸显了登陆成功后的命令回显网络行为特征,凸显了SSH服务器配置的公钥认证和键盘交互认证流程特征,凸显SCP和SFTP网络流量行为特征,进而能够更为准确的实现SSH登录状态识别。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:云服务的试用方法和服务器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类