一种SSH登录成功行为判断方法、装置及存储介质与流程

文档序号:24938174发布日期:2021-05-04 11:30阅读:512来源:国知局
一种SSH登录成功行为判断方法、装置及存储介质与流程

本发明涉及信息安全技术领域,具体而言,涉及一种ssh登录成功行为判断方法、装置及存储介质。



背景技术:

ssh为secureshell的缩写,ssh是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用ssh协议可以有效防止远程管理过程中的信息泄露问题。目前ssh的使用已经成为类unix平台后台管理的必备,几乎所有类unix平台—包括hp-ux、linux、aix、solaris、digitalunix、irix等,都可运行ssh。目前常用的ssh连接工具主要有xshell、securecrt、putty等,其中xshell以其方便实用且有免费版本,成为多数it从业人员的必备工具,但是在2017年8月,xshell被爆出某些版本存在后门,存在ssh的用户名和密码泄露的问题。一旦ssh的管理用户与密码丢失或者被破解,不法分子就可以利用ssh连接上服务器做一系列的非法操作。如何判断是否存在非法ssh登录行为,首要条件是需要判断是否存在登录成功的ssh链接。而判断ssh是否登录成功,往往是通过系统日志来进行判断,但是如果系统日志一旦被删除掉,则无法判断出是否存在ssh登录成功的行为。



技术实现要素:

本发明旨在提供一种ssh登录成功行为判断方法、装置及存储介质,以解决因系统日志被删除掉而无法判断出是否存在ssh登录成功行为的问题。

本发明提供的一种ssh登录成功行为判断方法为:通过对ssh登录时的网络流量进行分析,判断ssh登录行为是否成功。

进一步的,所述方法包括如下步骤:

s1,通过镜像端口获取ssh登录时的网络流量,并从网络流量中识别ssh会话数据;

s2,从ssh会话数据中判断是否有ssh认证过程,若有ssh认证过程,则统计ssh认证结束后的交互次数和服务器回复最大数据包大小;

s3,判断交互次数和服务器回复最大数据包大小是否大于相应的阈值,若是则标记ssh登录成功。

进一步的,步骤s2包括如下子步骤:

s21,从ssh会话数据中获取密钥协商数据,若获取到密钥协商数据则表示有ssh认证过程,否则没有ssh认证过程;

s22,解析获取的密钥协商数据,通过数据标识判断密钥协商是否成功;

s23,统计密钥协商成功后的交互次数和服务器回复最大数据包大小。

作为优选,所述交互次数的阈值为4次。

作为优选,所述服务器回复最大数据包大小的阈值为400个字节。

进一步的,若步骤s2中判断没有ssh认证过程,则从ssh会话数据中统计ssh会话通讯时长,如果统计的ssh会话通讯时长大于设定的ssh会话通讯时长阈值,则标记ssh登录成功。

作为优选,所述ssh会话通讯时长阈值为3分钟。

进一步的,若步骤s2中判断没有ssh认证过程,则判断ssh会话数据中是否存在定时的心跳数据包,若存在则标记ssh登录成功。

本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序运行时执行如上述的ssh登录成功行为判断方法。

本发明还提供一种ssh登录成功行为判断装置,包括:

存储介质,用于存储计算机程序;

处理器,用于运行所述计算机程序;所述计算机程序运行时执行如上述的ssh登录成功行为判断方法。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

本发明通过对ssh登录时的网络流量进行分析来判断ssh登录行为是否成功,能够有效避免系统日志丢失的情况下,实现对ssh登录情况的审计。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为ssh登录交互过程部分截取的展示图。

图2为putty登录成功数据交互情况部分截取的展示图。

图3为xshell登录成功数据交互情况部分截取的展示图。

图4为securecrt登录成功数据交互情况部分截取的展示图。

图5为mobaxterm登录成功数据交互情况部分截取的展示图。

图6为putty登录失败数据交互情况部分截取的展示图。

图7为xshell登录失败数据交互情况部分截取的展示图。

图8为securecrt登录失败数据交互情况部分截取的展示图。

图9为mobaxterm登录失败数据交互情况部分截取的展示图。

图10为本发明实施例的ssh登录成功行为判断方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

本实施例的ssh登录成功行为判断方法的设计原理如下:

在整个ssh登录交互过程中,服务器与客户端要经历如下五个阶段:

第一阶段,版本号协商阶段:双方通过版本协商确定使用的版本;

(1)服务器打开端口22(即ssh端口),等待客户端连接。

(2)客户端向服务器发起tcp初始连接请求,tcp连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“ssh-<主协议版本号>.<次协议版本号>-<软件版本号>”,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。

(3)客户端收到报文后,解析该报文数据包,如果服务器的协议版本号比自己的低,且客户端能支持服务器的低版本,就使用服务器的低版本协议号,否则使用自己的协议版本号。

(4)客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决定是否能同客户端一起工作。

(5)如果协商成功,则进入密钥和算法协商阶段,否则服务器断开tcp连接。

(6)note:版本号协商阶段报文都是采用明文方式传输的。

第二阶段,密钥和算法协商阶段:ssh支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法;

(1)服务器和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、mac(messageauthenticationcode,消息验证码)算法列表、压缩算法列表等;

(2)服务器和客户端根据对端和本端支持的算法列表得出最终使用的算法。

(3)服务器和客户端利用dh交换(diffie-hellmanexchange)算法、主机密钥对等参数,生成会话密钥和会话id。

(4)通过以上步骤,服务器和客户端就取得了相同的会话密钥和会话id。

(5)对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传送的安全;

(6)在认证阶段,两端会使用会话id用于认证过程。

(7)note:在协商阶段之前,服务器已经生成rsa或dsa密钥对,他们主要用于参与会话密钥的生成。

第三阶段,认证阶段:ssh客户端向服务器发起认证请求,服务器对客户端进行认证;

(1)客户端向服务器发送认证请求,认证请求中包含用户名、认证方法、与该认证方法相关的内容(如:password认证时,内容为密码)。

(2)服务器对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。

(3)客户端从认证方法列表中选取一种认证方法再次进行认证。

(4)该过程反复进行,直到认证成功或者认证次数达到上限,服务器关闭连接为止。

第四阶段,会话请求阶段:认证通过后,客户端向服务器发送会话请求;

(1)服务器等待客户端的请求;

(2)认证通过后,客户端向服务器发送会话请求;

(3)服务器处理客户端的请求。请求被成功处理后,服务器会向客户端回应ssh_smsg_success包,ssh进入交互会话阶段;否则回应ssh_smsg_failure包,表示服务器处理请求失败或者不能识别请求。

第五阶段,交互会话阶段:会话请求通过后,服务器端和客户端进行信息的交互;

(1)客户端将要执行的命令加密后传给服务器;

(2)服务器接收到报文,解密后执行该命令,将执行的结果加密发还给客户端;

(3)客户端将接收到的结果解密后显示到终端上。

参见图1,ssh登录交互过程中,在密钥协商阶段都是使用的可见明文,但是其密码部分采用了非对称加密以保证密码的安全性,而认证登录是在其对数据加密之后进行的,难以像ftp等非加密认证方式可以通过特征识别的方式对登录成功的行为进行识别。由此再对不同的ssh客户端软件登录行为的网络流量进行分析:

1、登录成功数据交互,putty、xshell、securecrt和mobaxterm登录成功数据交互情况分别参见2、图3、图4、图5;

2、登录失败数据交互,ssh协议为了安全性,如果输入的用户名并不存在,ssh协议规范并不会提醒用户名是否存在,只会返回认证错误,一般ssh的默认配置是允许进行6次认证尝试,putty、xshell、securecrt和mobaxterm登录失败数据交互情况分别参见6、图7、图8、图9;

通过以上对不同的ssh客户端软件登录行为的网络流量进行分析,得出在有ssh认证过程的网络数据流中判断一个ssh会话中是否存在登录成功的情况,可以根据以下条件来进行判断:

ssh会话的密钥协商过程完成,即newkeys标志之后,至少存在4次数据交互过程;

在ssh密钥协商完成之后的数据交互过程中,ssh服务器回复的数据包负载长度至少大于400个字节。

由此本实施例实现一种ssh登录成功行为判断方法,所述方法为:通过对ssh登录时的网络流量进行分析,判断ssh登录行为是否成功。参见图10,所述方法具体包括如下步骤:

s1,通过镜像端口获取ssh登录时的网络流量,并从网络流量中识别ssh会话数据;

s2,从ssh会话数据中判断是否有ssh认证过程,若有ssh认证过程,则统计ssh认证结束后的交互次数和服务器回复最大数据包大小;具体地:

s21,从ssh会话数据中获取密钥协商数据,若获取到密钥协商数据则表示有ssh认证过程,否则没有ssh认证过程;

s22,解析获取的密钥协商数据,通过数据标识(即newkeys标志)判断密钥协商是否成功;

s23,统计密钥协商成功后的交互次数和服务器回复最大数据包大小(统计ssh服务器每次回复的负载数据长度,取其最大值标记为服务器回复最大数据包大小);

s3,判断交互次数和服务器回复最大数据包大小是否大于相应的阈值,若是则标记ssh登录成功。根据前述分析,优选设置所述交互次数的阈值为4次;所述服务器回复最大数据包大小的阈值为400个字节。

进一步的,以上是针对能够获取到ssh会话数据中有ssh认证过程的判断,但是旁路获取网络流量时,可能存在未能获取到ssh会话创建阶段的网络流量,这是需要其他方法来进行判断,由此本实施例进一步提出了以下判断方法:

(1)如果重复尝试一定次数的ssh登录认证,ssh服务器会主动断开ssh的网络连接,由此可以实现判断方法为:若步骤s2中判断没有ssh认证过程,则从ssh会话数据中统计ssh会话通讯时长,如果统计的ssh会话通讯时长大于设定的ssh会话通讯时长阈值,则标记ssh登录成功。其中,一般可设置所述ssh会话通讯时长阈值为3分钟。

(2)ssh会话在登录成功之后,即使客户端不做任何的操作,为了维护ssh会话的通道,客户端和服务器之间会定时发送心跳数据包来维持ssh连接通道,由此可以实现判断方法为:若步骤s2中判断没有ssh认证过程,则判断ssh会话数据中是否存在定时的心跳数据包,若存在则标记ssh登录成功。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

由上,本实施例还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序运行时执行上述的ssh登录成功行为判断方法。

由上,本实施例还提供ssh登录成功行为判断装置,包括:

存储介质,用于存储计算机程序;

处理器,用于运行所述计算机程序;所述计算机程序运行时执行上述的ssh登录成功行为判断方法。

至此,本发明通过对ssh登录时的网络流量进行分析来判断ssh登录行为是否成功,能够有效避免系统日志丢失的情况下,实现对ssh登录情况的审计。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1