一种基于代理技术的SSH协议运维审计系统的审计方法转让专利

申请号 : CN201410401839.6

文献号 : CN104135389B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴克河张晓良崔文超

申请人 : 北京华电天益信息科技有限公司

摘要 :

本发明公开了一种基于代理技术的SSH协议运维审计系统的审计方法,在代理服务器中设置了监控回放模块,通过监控回放模块审计人员对客户端和目标服务器之间的运维会话进行实时监测,同时运维人员也可以根据自己的需求回放已经完成的运维会话。实现了在运维人员对目标服务器进行运维操作中对操作过程的命令分析、会话监控、切断、回放功能,实现了运维操作的事前预防、事中干预和事后分析处理。本发明在一定程度上帮助企业提升内部风险控制水平,提高信息系统运维管理水平,跟踪服务器上用户行为,降低运维成本,提供控制和审计依据,使运维操作更加安全。

权利要求 :

1.一种基于代理技术的SSH协议运维审计系统的审计方法,其特征在于:包括代理服务器,客户端和目标服务器,所述客户端通过所述代理服务器与所述目标服务器进行运维会话通信;其中,所述代理服务器包括:Web管理模块、代理模块和回放监控模块;

所述Web管理模块分别与客户端和所述代理模块连接,用于连接代理服务器和客户端;

所述代理模块将Web管理模块传输的运维会话通信数据经检测后传输至目标服务器,并将目标服务器的反馈信息通过Web管理模块传输至客户端;其中所述代理模块包括认证服务模块、数据记录模块和数据库,其中,认证服务模块用于认证客户端的身份和权限;所述数据记录模块用于存储客户端与目标服务器之间所有的运维会话通信数据;所述数据库用于存储目标服务器的相关信息;

所述回放监控模块用于从所述数据记录模块中提取监控回放所需的运维会话通信数据,通过回放监控模块中的回放监控插件将对应的运维会话通信数据反馈到客户端;

包括以下步骤:

步骤1:运维人员或审计人员通过客户端的Web浏览器登录代理服务器,代理服务器中的认证服务模块对客户端的身份和权限进行认证;

步骤2:身份认证通过后,客户端和目标服务器通过代理服务器建立通信,所述代理服务器中的数据记录模块记录客户端和目标服务器之间所有的运维会话通信数据;

步骤3:代理服务器对客户端和目标服务器之间的运维会话通信数据进行检测,发现异常的运维会话通信数据,则中断客户端和目标服务器之间的所有的运维会话通信;

步骤4:所述监控回放模块根据客户端发来的监控回放指令,从所述数据记录模块中提取监控回放所需的运维会话通信数据,通过回放监控插件将对应的运维会话通信数据反馈到客户端;

其中,所述步骤4中,如果客户端发来的是监控指令,所述监控回放模块从数据记录模块中调取客户端和目标服务器之间通信的实时运维会话通信数据;如果客户端发来的是回放指令,所述监控回放模块根据监控指令从数据记录模块中调取客户端和目标服务器之间通信的已经完成的运维会话通信数据;

所述运维人员发送回放监控指令时,监控回放模块进行回放的方法为:

步骤401:代理服务器生成一个32位的随机用户名和32位的随机密码;

步骤402:代理服务器利用ActiveX控件将32位的随机用户名、32位的随机密码、运维会话号、目标服务器端口号、目标服务器IP地址作为命令行参数启动监控回放模块中的回放监控插件;

步骤403:回放监控插件将ActiveX控件传来的命令行参数和其他参数组合成一个认证数据包;其他参数包括代理服务器的IP地址及服务监听端口位置,所述其他参数组合用来查找内存数据库,以完成身份认证;

步骤404:回放监控插件将认证数据包发动到认证服务模块中,认证服务模块验证32位的随机用户名和32位的随机密码是否正确,如果正确,回放监控模块在数据记录模块中查找需要的运维会话对应的数据结构,如果发现运维会话还没有结束,那么将不能回放;如果发现运维会话已经结束,就在数据记录模块中查找运维会话数据,并将查找的数据发送至客户端;如果32位的随机用户名和32位的随机密码不正确,则将错误信息反馈至客户端;

其中,存储回放数据的文件是以运维会话号作为文件的名称的,通过在路径下寻找是否有名称为运维会话号的文件,就可以判断是否存在回放数据,如果没有查找到,则不能回放,如果查找到开始向客户端发送数据,发送数据的格式如下:首先发送文件的大小,然后发送文件头,文件头由版本号,会话起始时间,会话起始时间,会话结束时间,会话结束时间组成,然后开始发送命令;回放插件逐条解析数据,并通过VT100的方式将数据显示出来;回放程序将运维回话记录数据从数据文件中读取出来并将其显示在界面上;回放线程中涉及到播放控制,同时实现了快进,向前跳转,向后跳转,暂停的功能。

2.根据权利要求1所述的基于代理技术的SSH协议运维审计系统的审计方法,其特征在于:所述步骤1中的认证服务模块对客户端的身份和权限进行认证的方法为:步骤101:Web管理模块将客户端发送的需要运维的目标服务器的相关信息发送至代理模块;

步骤102:代理模块将接收到的需要运维的目标服务器的相关信息输入到内存数据库中进行查询;其中内存数据库为数据库的一部分,用户缓存一部分目标服务器的相关信息;

步骤103:判断需要运维的目标服务器是否存在内存数据库中,若需要运维的目标服务器已在内存数据库的设备表中,则记录需要运维的目标服务器在内存数据库设备表中的位置;若需要运维的目标服务器不在内存数据库的设备表中,则数据库中读取需要 运维的目标服务器的相关信息,将读取的相关信息插入到内存数据库的设备表中并记录读取的相关信息在内存数据库设备表中的位置;

步骤104:认证服务模块将生成一条认证数据,并将生成的认证数据插入到内存数据库认证表中,其中,认证数据包括:需要运维的目标服务器的相关信息在内存数据库设备表中的位置、客户端IP、运维人员账号、32位的随机用户名和32位随机密码,其中随机用户名前8位为生成的认证数据在内存数据库认证表中的位置;

步骤105:代理服务器通过ActiveX插件启动标准运维客户端,并将32位随机用户名、32位随机密码以及代理服务器自身连接信息发送给客户端;其中,代理服务器自身连接信息包括:代理服务器的IP地址、代理服务器与客户端的连接端口;

步骤106:客户端通过连接信息连接至代理服务器,使用32位随机用户名和32位随机密码进行认证;代理模块将收到的包括32位随机用户名和32位随机密码的认证信息发送给认证服务模块;认证服务模块到认证信息后,提取出随机用户名前8位的偏移信息并找到内存数据库认证表中指定数据,然后验证剩下56位随机串是否一致,若一致则根据数据库设备表中需要运维的目标服务器的位置信息找到需要运维的目标服务器的连接数据,将需要运维的目标服务器的连接数据发送给代理模块连接至需要运维的目标服务器;若验证不一致则返回认证错误信息至客户端。

说明书 :

一种基于代理技术的SSH协议运维审计系统的审计方法

技术领域

[0001] 本发明涉及一种基于代理技术的SSH协议运维审计系统的审计方法。

背景技术

[0002] 随着企业信息内网建设不断的加快,需要运维的设备也不断增多,如何管理好众多的运维设备已经成为企业信息化建设的一个问题,更重要的是,企业缺乏对运维人员操作的审计方法,一旦出现了运维操作失误,不仅无法分析出是什么运维操作导致错误,而且无法定位到底是哪一运维人员出现操作失误。
[0003] 传统的运维操作中,对于字符型操作系统,例如Linux,大多数采用基于文本显示的网络协议,如SSH,FTP,TELNET等,其中以SSH协议较为普遍。SSH协议是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,具有一定的安全性。但与此同时,管理人员也无法获取SSH协议中的运维操作信息,无法及时发现阻止违规操作,这在监控和审计上带来了一些安全问题。

发明内容

[0004] 发明目的:本发明为了克服现有技术中存在的不足,本发明提出一种可以实时对运维会话进行监控的基于代理技术的SSH协议运维审计系统。
[0005] 发明内容:为解决上述技术问题,本发明提供了一种基于代理技术的SSH协议运维审计系统,包括代理服务器,客户端和目标服务器,所述客户端通过所述代理服务器与所述目标服务器进行运维会话通信;其中,所述代理服务器包括:Web管理模块、代理模块和回放监控模块;
[0006] 所述Web管理模块分别与客户端和所述代理模块连接,用于连接代理服务器和客户端;
[0007] 所述代理模块将Web管理模块传输的运维会话通信数据经检测后传输至目标服务器,并将目标服务器的反馈信息通过Web管理模块传输至客户端;其中所述代理模块包括认证服务模块、数据记录模块和数据库,其中,认证服务模块用于认证客户端的身份和权限;所述数据记录模块用于存储客户端与目标服务器之间所有的运维会话通信数据;所述数据库用于存储目标服务器的相关信息;
[0008] 所述回放监控模块用于从所述数据记录模块中提取监控回放所需的运维会话通信数据,通过回放监控模块中的回放监控插件将对应的运维会话通信数据数据反馈到客户端。
[0009] 本发明还提供了一种基于代理技术的SSH协议运维审计系统的审计方法,包括以下步骤:
[0010] 步骤1:运维人员或审计人员通过客户端的Web浏览器登录代理服务器,代理服务器中的认证服务模块对客户端的身份和权限进行认证;
[0011] 步骤2:身份认证通过后,客户端和目标服务器通过代理服务器建立通信,所述代理服务器中的数据记录模块记录客户端和目标服务器之间所有的运维会话通信数据;
[0012] 步骤3:代理服务器对客户端和目标服务器之间的运维会话通信数据进行检测,发现异常的运维会话通信数据,则中断客户端和目标服务器之间的所有的运维会话通信;
[0013] 步骤4:所述监控回放模块根据客户端发来的监控回放指令,从所述数据记录模块中提取监控回放所需的运维会话通信数据,通过回放监控插件将对应的运维会话通信数据反馈到客户端。
[0014] 进一步,所述步骤4中,如果客户端发来的是监控指令,所述监控回放模块从数据记录模块中调取客户端和目标服务器之间通信的实时运维会话通信数据;如果客户端发来的是回放指令,所述监控回放模块根据监控指令从数据记录模块中调取客户端和目标服务器之间通信的已经完成的运维会话通信数据。
[0015] 进一步,所述步骤1中的认证服务模块对客户端的身份和权限进行认证的方法为:
[0016] 步骤101:Web管理模块将客户端发送的需要运维的目标服务器的相关信息发送至代理模块;
[0017] 步骤102:代理模块将接收到的需要运维的目标服务器的相关信息输入到内存数据库中进行查询;其中内存数据库为数据库的一部分,用户缓存一部分目标服务器的相关信息;
[0018] 步骤103:判断需要运维的目标服务器是否存在内存数据库中,若需要运维的目标服务器已在内存数据库的设备表中,则记录需要运维的目标服务器在内存数据库设备表中的位置;若需要运维的目标服务器不在内存数据库的设备表中,则数据库中读取需要运维的目标服务器的相关信息,将读取的相关信息插入到内存数据库的设备表中并记录读取的相关信息在内存数据库设备表中的位置;
[0019] 步骤104:认证服务模块将生成一条认证数据,并将生成的认证数据插入到内存数据库认证表中,其中,认证数据包括:需要运维的目标服务器的相关信息在内存数据库设备表中的位置、客户端IP、运维人员账号、32位的随机用户名和32位随机密码,其中随机用户名前8位为生成的认证数据在内存数据库认证表中的位置;
[0020] 步骤105:代理服务器通过ActiveX插件启动标准运维客户端,并将32位随机用户名、32位随机密码以及代理服务器自身连接信息发送给客户端;其中,代理服务器自身连接信息包括:代理服务器的IP地址、代理服务器与客户端的连接端口;
[0021] 步骤106:客户端通过连接信息连接至代理服务器,使用32位随机用户名和32位随机密码进行认证;代理模块将收到的包括32位随机用户名和32位随机密码的认证信息发送给认证服务模块;认证服务模块到认证信息后,提取出随机用户名前8位的偏移信息并找到内存数据库认证表中指定数据,然后验证剩下56位随机串是否一致,若一致则根据数据库设备表中需要运维的目标服务器的位置信息找到需要运维的目标服务器的连接数据,将需要运维的目标服务器的连接数据发送给代理代理模块连接至需要运维的目标服务器;若验证不一致则返回认证错误信息至客户端。
[0022] 进一步,所述运维人员发送回放监控指令时,监控回放模块进行回放的方法为:
[0023] 步骤401:代理服务器生成一个32位的随机用户名和32位的随机密码;
[0024] 步骤402:代理服务器利用ActiveX控件将32位的随机用户名、32位的随机密码、运维会话号、目标服务器端口号、目标服务器IP地址作为命令行参数启动监控回放模块中的回放监控插件;
[0025] 步骤403:回放监控插件将ActiveX控件传来的命令行参数和其他参数组合成一个认证数据包;其他参数主要是代理服务器的IP地址及服务监听端口等参数,这些参数主要是用来查找内存数据库,以完成身份认证。
[0026] 步骤404:回放监控插件将认证数据包发动到认证服务模块中,认证服务模块验证32位的随机用户名和32位的随机密码是否正确,如果正确,回放监控模块在数据记录模块中查找需要的运维会话对应的数据结构,如果发现运维会话还没有结束,那么将不能回放;
如果发现运维会话已经结束,就在数据记录模块中查找运维会话数据,并将查找的数据发送至客户端;如果32位的随机用户名和32位的随机密码不正确,则将错误信息反馈至客户端。
[0027] 工作原理:本发明应用代理技术实现SSH协议运维操作的代理转发、会话记录、命令分析、过程监控及回放。当客户端需要运维服务器时,首先由代理服务器模拟成远程访问的服务端时,接受客户端发送的信息,并对其进行协议的还原、解析、记录,最终获得客户端发送的指令信息,再模拟成操作的客户端,与目标服务器建立通讯,并转发用户端发送的指令信息。代理服务器接收到目标服务器端的返回信息后,再反向执行此过程,将返回值发送给客户端从而实现对各种协议的代理转发过程。在通讯过程中,代理服务器会记录各种指令信息及其返回结果,并根据审计人员和运维人员的需求对记录的各种指令信息及其返回结果进行回放。同时,代理服务器会根据违规规则库对指令信息进行比对,如发现违规的操作行为,则终止数据包的转发,并中断整个运维会话。
[0028] 有益效果:本发明在代理服务器中设置了监控回放模块,通过监控回放模块审计人员对客户端和目标服务器之间的运维会话进行实时监测,同时运维人员也可以根据自己的需求回放已经完成的运维会话。实现了在运维人员对目标服务器进行运维操作中对操作过程的命令分析、会话监控、切断、回放功能,实现了运维操作的事前预防、事中干预和事后分析处理。本发明在一定程度上帮助企业提升内部风险控制水平,提高信息系统运维管理水平,跟踪服务器上用户行为,降低运维成本,提供控制和审计依据,使运维操作更加安全。

附图说明

[0029] 图1为本发明的结构示意图;
[0030] 图2为本发明中认证服务模块进行身份认证的流程图;
[0031] 图3为本发明中监控回放模块进行回放的流程图。

具体实施方式

[0032] 下面结合附图对本发明的技术方案作进一步解释。
[0033] 如图1所示,一种基于代理技术的SSH协议运维审计系统,包括代理服务器,客户端和目标服务器,客户端通过代理服务器与目标服务器进行运维会话通信;其中,所述代理服务器包括:Web管理模块、代理模块和回放监控模块。
[0034] Web管理模块是整个系统中对客户端的接口,运维人员用客户端通过访问网页来管理配置运维审计参数,同时,通过调用网页的ActiveX控件,启动标准客户端MSTSC连接代理模块,通过代理模块的代理、转发,运维人员可以运维目标服务器。审计人员也可以通过网页调用ActiveX控件,启动监控或回放插件,监控、回放运维人员的运维操作。
[0035] 代理模块将Web管理模块传输的运维会话通信数据经检测后传输至目标服务器,并将目标服务器的反馈信息通过Web管理模块传输至客户端;其中,代理模块包括认证服务模块、数据记录模块和数据库。
[0036] 认证服务模块负责提供身份认证功能,判断客户端发来的随机认证信息是否合法,若合法则返回相关设备的真实连接信息,若不合法则拒绝连接,并将非法连接信息写入数据库中。
[0037] 数据记录模块用于存储客户端与目标服务器之间所有的运维会话通信数据;主要负责将已解析还原的运维会话信息完整的写入会话记录过程文件。会话过程记录文件分为两种,一种是供分析使用的命令文件,该类文件以“.cmd”结尾,其中数据格式如表1:
[0038] 表1:
[0039]类型 日期 时间 数据内容
[0040] 第一个字段为数据类型,分为命令与响应两种;第二个字段为日期,其格式为:yyyy-mm-dd;第三个字段为时间,其格式为:hh:mm:ss;最后一个字段为数据的具体内容。
[0041] 另外一种是供回放使用的过程文件,该类文件以“.pcs”结尾,其中数据格式如表2[0042] 表2:
[0043]时间 长度 数据内容
[0044] 第一个字段为时间,其格式为:yyyy-mm-dd;第二个字段为数据长度;第三个字段为数据具体内容。
[0045] 数据库主要用于存储目标服务器的相关信息,这里的相关信息包括目标服务器的IP地址、用户名和密码等。
[0046] 回放监控模块包括回放监控插件,回放监控模块用于从所述数据记录模块中提取监控回放所需的运维会话通信数据,通过回放监控模块中的回放监控插件将对应的运维会话通信数据数据反馈到客户端。基本过程是首先调用认证模块判断是否回放监控请求合法,然后,从内存缓冲区和文件中读取数据,并将数据发送给监控回放插件。其中,回放监控插件包括回放插件和监控插件,回放插件的主要作用是,根据运维审计人员审计的要求,对已完成的运维会话进行回放。监控插件的主要功能是:根据运维审计管理员的审计要求,对正在进行运维操作的会话进行监控。
[0047] 一种基于代理技术的SSH协议运维审计系统的审计方法,包括以下步骤:
[0048] 步骤1:运维人员或审计人员通过客户端的Web浏览器登录代理服务器,代理服务器中的认证服务模块对客户端的身份和权限进行认证;
[0049] 其中,如图2所示,认证服务模块对客户端的身份进行认证时包括以下步骤:
[0050] 步骤101:Web管理模块将客户端发送的需要运维的目标服务器的相关信息发送至代理模块;
[0051] 步骤102:代理模块将接收到的需要运维的目标服务器的相关信息输入到内存数据库中进行查询;其中内存数据库为数据库的一部分,用户缓存一部分目标服务器的相关信息;
[0052] 步骤103:判断需要运维的目标服务器是否存在内存数据库中,若需要运维的目标服务器已在内存数据库的设备表中,则记录需要运维的目标服务器在内存数据库设备表中的位置;若需要运维的目标服务器不在内存数据库的设备表中,则数据库中读取需要运维的目标服务器的相关信息,将读取的相关信息插入到内存数据库的设备表中并记录读取的相关信息在内存数据库设备表中的位置;
[0053] 步骤104:认证服务模块将生成一条认证数据,并将生成的认证数据插入到内存数据库认证表中,其中,认证数据包括:需要运维的目标服务器的相关信息在内存数据库设备表中的位置、客户端IP、运维人员账号、32位的随机用户名和32位随机密码,其中随机用户名前8位为生成的认证数据在内存数据库认证表中的位置;
[0054] 步骤105:代理服务器通过ActiveX插件启动标准运维客户端,并将32位随机用户名、32位随机密码以及代理服务器自身连接信息发送给客户端;其中,代理服务器自身连接信息包括:代理服务器的IP地址、代理服务器与客户端的连接端口;
[0055] 步骤106:客户端通过连接信息连接至代理服务器,使用32位随机用户名和32位随机密码进行认证;代理模块将收到的包括32位随机用户名和32位随机密码的认证信息发送给认证服务模块;认证服务模块到认证信息后,提取出随机用户名前8位的偏移信息并找到内存数据库认证表中指定数据,然后验证剩下56位随机串是否一致,若一致则根据数据库设备表中需要运维的目标服务器的位置信息找到需要运维的目标服务器的连接数据,将需要运维的目标服务器的连接数据发送给代理代理模块连接至需要运维的目标服务器;若验证不一致则返回认证错误信息至客户端。
[0056] 步骤2:身份认证通过后,客户端和目标服务器通过代理服务器建立通信,所述代理服务器中的数据记录模块记录客户端和目标服务器之间所有的运维会话通信数据;
[0057] 步骤3:代理服务器对客户端和目标服务器之间的运维会话通信数据进行检测,发现异常的运维会话通信数据,则中断客户端和目标服务器之间的所有的运维会话通信;
[0058] 步骤4:所述监控回放模块根据客户端发来的监控指令,从所述数据记录模块中提取监控回放所需的运维会话通信数据,通过回放监控插件将对应的运维会话通信数据反馈到客户端。如果监控指令来自审计人员,所述监控回放模块从数据记录模块中调取客户端和目标服务器之间通信的实时运维会话通信数据,通过监控插件将对应的运维会话通信数据反馈到客户端;如果监控指令来自运维人员,所述监控回放模块根据监控指令从数据记录模块中调取客户端和目标服务器之间通信的已经完成的运维会话通信数据,通过回放插件将对应的运维会话通信数据反馈到客户端。
[0059] 如图3所示,所述运维人员发送回放监控指令时,监控回放模块进行回放的方法为:
[0060] 首先,当运维人员点击对某个会话进行回放时,在代理服务器中将生成一个32位的随机用户名和32位的随机密码,然后ActiveX控件将用户名,密码,运维会话号,目标服务器端口号,目标服务器IP地址当作命令行参数启动回放插件,回放插件启动之后,先将ActiveX传来的命令行参数和其他参数组合成一个认证数据包,发送给认证服务模块,其中,其他参数包括代理服务器的IP地址及服务监听端口位置,所述其他参数组合用来查找内存数据库,以完成身份认证;认证服务模块验证用户名,密码是否正确,如正确则查找共享缓冲区里该会话对应的数据结构,如果发现会话还没有结束,那么将不能回放,如果发现会话已经结束就在数据库中查找文件存放路径,其中,存储回放数据的文件是以运维会话号作为文件的名称的,通过在路径下寻找是否有名称为运维会话号的文件,就可以判断是否存在回放数据,如果没有查找到,则不能回放,如果查找到开始向客户端发送数据,发送数据的格式如下:首先发送文件的大小,然后发送文件头,文件头由版本号,会话起始时间(s),会话起始时间(ms),会话结束时间(s),会话结束时间(ms)组成,然后开始发送命令。回放插件逐条解析数据,并通过VT100的方式将数据显示出来。
[0061] 回放程序将运维回话记录数据从数据文件中读取出来并将其显示在界面上。回放线程中主要涉及到播放控制,为了使审计人员更好的审计,回放线程实现了快进,向前跳转,向后跳转,暂停的功能。系统全局变量中有个工作参数,它标示当前系统所处工作状态,当读取一条命令之后,根据当前工作状态,进行不同的处理。
[0062] 播放状态,则进行正常处理,通过使用Sleep函数,使线程休息此命令和上一条命令的时间差,达到控制播放速度的效果。
[0063] 快进状态,则通过缩小此命令与上一条命令的时间差,达到加快播放速度的效果。
[0064] 向前跳转状态,首先记录下需要跳转的位置P1,然后设置显示函数处理方式,将数据显示在界面。当到达位置P1后,则改变工作状态,恢复为播放状态。
[0065] 向后跳转状态,首先将当前文件指针指向文件首地址,同时记录下需跳转的位置P2,然后设置显示函数处理方式,将数据显示在界面。然后改变工作状态为向前跳转状态。相当于从文件第一个条命令直接向前跳转到位置P2。
[0066] 暂停状态,则通过等待某个事件的到来而阻塞自己的方式,达到暂停的功能。当用户点击播放,触发一个播放事件,改变工作状态,就能继续播放。
[0067] 工作状态之间的转化主要是由两方面因素决定的,一方面是用户通过点击按钮,比如点击播放/暂停、快进按钮,滑动播放滚动条的方式进行转化,另一方面是通过状态之间的自动转化,比如将向后跳转的功能转化为向前跳转来实现,又如跳转到给定位置后,工作状态的还原。