【技术实现步骤摘要】
本专利技术属于计算机网络
,具体涉及到一种基于SSH协议的会话解析方法及系统。
技术介绍
协议是各种计算机应用中及应用间通信的方式,协议解析已成为网络应用中不可或缺的技术。通信双方将通信内容封装在协议中进行传输,某些协议还对传输的数据进行加密,如SSH协议,它是在不安全的网络上进行安全远程登录和其他安全网络服务的协议,通过SSH信道传输的数据均为加密数据。在某些企业或机构的业务系统中,需要对用户端的登陆和操作行为进行监控和记录,用于业务审计。而对用户行为的监控一般采用在服务端和客户端之间加入中间人来实现,对于SSH协议而言,中间人截获的数据包均为加密内容,需要先将其解密为明文数据包,再对明文数据包进行解析,解析之后生成解析日志,审计人员可以通过解析日志重现客户端的所有操作行为,从而为这些企业或机构的业务系统提供了安全保障。审计的目的在于不影响客户端和服务器之间正常通信质量的前提下对客户端行为进行监控,中间人的处理效率会影响到客户端和服务端的通信质量,而协议解析是中间人处理很重要的一步,这对协议解析的效率也提出了更高的要求。目 ...
【技术保护点】
一种基于SSH协议的会话解析方法,所述方法包含:步骤101)接收基于SSH协议会话的数据包,并对接收的数据包分别进行如下预处理:当一个数据包包含若干条完整的消息时,从该数据包中依次提取出每一条完整的消息;当一个数据包所含的消息不完整时,首先将当前数据包包含的不完整的消息进行缓存,然后接收后续的数据包,最后将后续数据包包含的消息和缓存的消息内容进行拼接,直至拼接出一条完整的消息;步骤102)从得到的各条完整的消息中提取与生成日志相关的内容,并按照设定的格式封装与日志相关的内容,进而得到解析日志完成会话解析。
【技术特征摘要】 【专利技术属性】
1.一种基于SSH协议的会话解析方法,所述方法包含:
步骤101)接收基于SSH协议会话的数据包,并对接收的数据包分别进行如下
预处理:
当一个数据包包含若干条完整的消息时,从该数据包中依次提取出每一条完整
的消息;
当一个数据包所含的消息不完整时,首先将当前数据包包含的不完整的消息进
行缓存,然后接收后续的数据包,最后将后续数据包包含的消息和缓存的消息内容
进行拼接,直至拼接出一条完整的消息;
步骤102)从得到的各条完整的消息中提取与生成日志相关的内容,并按照设定
的格式封装与日志相关的内容,进而得到解析日志完成会话解析。
2.根据权利要求1所述的基于SSH协议的会话解析方法,其特征在于,所述步
骤102)之后还包含:
步骤103)将生成的解析日志采用流式发送模式发送至日志服务器;
其中,所述的流式发送模式为:将生成的解析日志写入日志缓存中,当缓存的日
志长度达到设定的发送长度时,立即向日志服务器发送解析日志信息。
3.根据权利要求1所述的基于SSH协议的会话解析方法,其特征在于,所述步
骤101)进一步包含:
步骤101-1)当收到一个基于SSH协议会话的数据包后,首先查看缓存区是否
有缓存数据包,若不存在缓存数据包,则直接计算接收的数据包中第一条消息的长
度;若缓存中存在缓存数据包,则表示当前数据包是缓存数据包包含的内容的延续,
则将当前数据包内容拷贝到缓存数据包之后,进而对不完整的消息进行拼接,拼接
后再计算当前缓存的数据包中第一条消息的长度;
步骤101-2)将计算得出的第一条消息的长度和接收的数据包的长度进行比较,
针对判决结果的不同情况分别执行如下步骤:
步骤101-2-1)若第一条消息的长度等于接收的数据包长度,表示当前数据包内
容恰好为一条完整的消息,则能够对该消息直接进行解析;
步骤101-2-2)若第一条消息的长度小于数据包的长度,则对该数据包进行拆分
处理,即从数据包中提取完整的消息,并采用消息首地址和消息长度表征一条完整
的消息;
步骤101-2-3)若第一条消息的长度大于数据包的长度,则通过缓存该数据包进
\t而完成若干数据包的拼接,最终得到一条完整的消息,并将得到的完整的消息进行
解析。
4.根据权利要求1所述的基于SSH协议的会话解析方法,其特征在于,所述步
骤102)具体为:
步骤102-1)根据消息码识别消息类型,进而依据识别的类型判断消息与日志生
成是否相关,若消息与生成日志无关,则将其直接舍弃;否则对与生成日志相关的
各类型消息分别进行如下处理:
对于版本协商消息,获取消息中的协议版本号并缓存;
对于用户认证请求消息,从消息中提取用户名并缓存;
对于信道请求消息,获取请求的信道类型并缓存;
对于信道中传输的消息,通过消息方向判断属于请求还是响应,并缓存消息方向;
其中,若消息方向为从客户端至服务器,则为请求消息,反之为响应消息;
步骤102-2)基于缓存的内容和响应数据包生成解析日志,生成的日志包含:
TCP/IP四元组、会话ID、登陆会话的用户名、登陆时间、客户端请求的命令、请求
开始时间、服务端返回给客户端的响应数据和响应结束时间;
其中,
所述客户端的请求的命令和服务端返回客户端的响应数据在一个会话的生命期
内能够反复发生,而生成的每条解析日志仅包含一条客户端的请求命令和一次服务
器端的响应,即不同解析日志的请求和响应相互独立;
在一次会话的生命周期内所述的TCP/IP四元组、会话ID、登陆会话的用户名和
登陆时间信息保持不变。
5.根据权利要求4所述的基于SSH协议的会话解析方法,其特征在于,客户端
每次输入都会以消息的形式被送至服务器,并通过服务端返回的回显消息将输入的
结果呈现在终端;通过识别回显消息中的转义字符,实现对光标位置的准确控制,
结合消息中携带的请求字符复原请求命令,当检测到客户端请求结束时立即将复原
的请求命令写入日志缓存中。
6.一种基于SSH协议的会话解析系统,其特征在于,所述系统包含:
包处理模块,用于接收基于SSH协议会话的数据包,并对接收的数据包分别进
技术研发人员:宋磊,吴京洪,郑艳伟,叶晓舟,曹作伟,
申请(专利权)人:中国科学院声学研究所,北京中科智网科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。