一种SFTP数据采集及审计的方法及系统与流程

文档序号:12822148阅读:1125来源:国知局

本发明涉及sftp数据采集审计领域,特别涉及一种sftp数据采集及审计的方法及系统。



背景技术:

sftp(securefiletransferprotocol,安全文件传送协议)可以为传输文件提供一种安全的加密方法。sftp为ssh的一部分,是一种传输档案至blogger伺服器的安全方式。在ssh软件包中,包含了一个sftp的安全文件传输子系统,sftp本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作。sftp同样是使用加密传输认证信息和传输的数据,所以,使用sftp是非常安全的。sftp与ftp有着几乎一样的语法和功能,sftp使用了加密/解密技术,传输效率比普通的ftp要低,但网络安全得到了极大的保证。

审计系统可以帮助记录发生在重要信息系统中各种各样的会话和事件,包括网络中的、主机操作系统中,也包括应用系统中的。这些审计信息反映了信息系统运行的基本轨迹。一方面,它可以帮助管理层和审计者审核信息系统的运行是否符合法律法规的要求和组织的安全策略;另一方面,这些宝贵的审计信息在信息系统出现故障和安全事故时,就像航空器“黑盒子”一样,帮助调查者深入挖掘事件背后的情报,重建事件过程,直至完整的分析定位事件的本源,并部署进一步的措施来避免损失的再次发生。

作为当前网络信息安全业界一个逐渐得到公认的事实:在安全事件造成的损失中,有75%以上来自内部,其中包括内部人员的越权访问、滥用、以及误操作等。分析这些内部安全威胁没有得到有效控制的根源,可以发现下列主要因素:审计体系没有有效工作或者根本没有、不具备完整的访问授权机制,不具备完善的职责分离机制,人员安全意识和技能方面的不足等。其中,缺少可信的、完备的审计系统是目前普遍存在最重要的根源因素。

目前,sftp协议中的审计过程只提取了操作码,没有将操作码还原为操作命令,这样就不能建立操作命令黑名单,对一些操作命令以及命令的操作对象进行禁止操作,并且所做的回放系统只是对操作码进行回放,不能启到实时审计的作用。



技术实现要素:

本发明的目的在于克服目前sftp协议中审计方法存在的上述缺陷,提出了一种sftp数据采集及审计的方法,该方法能够对用户进行sftp登陆操作的行为进行审计,在不影响用户操作的情况下,监控用户登陆操作行为;针对用户的操作,能够通过sftp日志复现;同时,通过命令黑名单的设置,预防用户的非法操作。

为实现上述目的,本发明提供了一种sftp数据采集及审计的方法,所述方法包括:

步骤1)采集ssh协议密文传输阶段的数据包,针对ssh协议握手阶段的数据包,推导出ssh密钥协商后的传输密钥;利用密钥将数据包中的密文数据转换成明文数据;

步骤2)从ssh明文数据中提取sftp数据,并从sftp数据中采集会话信息;提取sftp数据的关键操作码,并采集传输文件信息;将提取的sftp关键操作码还原为关键操作命令,并采集关键操作命令信息;

步骤3)对所有关键操作命令进行黑名单匹配,对于匹配成功的关键操作命令,构造禁止该关键操作命令的ssh消息发送给客户端;并将所有匹配不成功的关键操作命令对应的ssh明文数据进行封装和加密,然后传输给服务端;

步骤4)根据步骤2)中采集的会话信息、关键操作命令信息和传输文件信息生成sftp审计日志。

上述技术方案中,所述步骤2)具体包括:

步骤201)从ssh明文数据中提取sftp数据,并从sftp数据中采集会话信息;

步骤202)提取sftp数据的关键操作码,其中过滤掉索取文件属性的关键操作码;并采集每一个传输文件信息;

步骤203)将提取的sftp关键操作码还原为关键操作命令,提取出操作目标信息,采集关键操作命令信息。

上述技术方案中,所述审计日志包括会话日志、操作日志和文件日志;

所述会话日志记录一个完整的sftp会话信息,包括源mac、目的地mac、ip、ip端口、用户名、用户登录时间和用户退出时间;

所述操作日志记录每一条关键操作命令信息,包括操作命令、操作返回数据、操作起始时间和操作结束时间;

所述文件日志记录每一个完整的传输文件信息,包括文件路径、文件名称、文件内容和文件传输方向。

一种sftp数据采集及审计系统,所述系统包括:ssh数据采集及解密模块、sftp解析模块、关键操作命令处理模块和生成setp审计日志模块;其特征在于;

所述ssh数据采集及解密模块,用于采集ssh协议密文传输阶段的数据包,针对ssh协议握手阶段的数据包,推导出ssh密钥协商后的传输密钥;利用密钥将数据包中的密文数据转换成ssh明文数据;将ssh明文数据传输给sftp解析模块;

所述sftp解析模块,用于从ssh明文数据中提取sftp数据,提取sftp数据的关键操作码,将提取的sftp关键操作码还原为关键操作命令;将所有关键操作命令发送到所述关键操作命令处理模块,将从sftp提取的所有信息发送到所述生成sftp审计日志模块,

所述关键操作命令处理模块,用于对所有关键操作命令进行黑名单匹配,对于匹配成功的关键操作命令,构造禁止该关键操作命令的ssh消息发送给客户端;并将所有匹配不成功的关键操作命令对应的ssh明文数据进行封装和加密,然后传输给服务端;

所述生成sftp审计日志模块,用于根据所述sftp解析模块发送的所有信息,生成sftp审计日志。

本发明的优点在于:

1、本发明的方法能将用户的sftp操作准确地还原出来,并通过生成的sftp日志帮助管理层和审计者审核用户进行的sftp登录和操作是否符合法律法规的要求和组织的安全策略;在出现故障和安全事故时,通过生成的sftp日志能够帮助调查者深入挖掘,重建事件过程,直至完整的分析和定位事件,并部署进一步的防范措施;

2、本发明的方法能设置sftp的命令黑名单,当用户进行操作时,会对操作命令进行黑名单匹配,出现黑名单命令时,能及时禁止用户的该操作命令。

附图说明

图1为本发明的sftp数据采集及审计的方法的流程图。

具体实施方式

下面结合附图对本发明进行详细的说明。

如图1所示,一种sftp数据采集及审计方法,所述方法包括:

步骤1)采集ssh协议密文传输阶段的数据包,针对ssh协议握手阶段的数据包,推导出ssh密钥协商后的传输密钥;利用密钥将数据包中的密文数据转换成明 文数据;

步骤2)从ssh明文数据中提取sftp数据,并从sftp数据中采集会话信息;提取sftp数据的关键操作码,并采集传输文件信息;将提取的sftp关键操作码还原为关键操作命令,并采集关键操作命令信息;具体包括:

步骤201)从ssh明文数据中提取sftp数据,并从sftp数据中采集会话信息;

ssh明文数据包括:ssh1数据和ssh2数据;从ssh明文数据中提取sftp数据包括从ssh2数据中提取通道数据和从ssh1数据中提取标准输入输出数据;提取出来的sftp数据不包含ssh的头部信息、ssh2的通道头部信息、hmac的校验信息和ssh的填充位。

步骤202)提取sftp数据的关键操作码,其中过滤掉索取文件属性的关键操作码;并采集每一个传输文件信息;

步骤203)将提取的sftp关键操作码还原为关键操作命令,提取出操作目标信息,采集关键操作命令信息;

需要还原的关键操作命令包括:ls、cd、mkdir、rmdir、get、put、ln、symlink、rm、rename、chgrp、chmod和chown;每个命令对应的关键操作码见表1:

表1

从上表可以看出,有的操作命令直接对应一条关键操作码,而有的操作命令对应多条关键操作码,此时需要将多条关键操作码整合成一条关键操作码,然后还原为对应的关键操作命令;该命令与用户输入的命令一致;

对于操作命令直接对应一条关键操作码的情况,当出现其对应的关键操作码时,就对该操作码消息进行解析,还原出操作命令和操作目标;

对于操作命令对应多条从操作码的情况,根据第一条出现的关键操作码,对该操作码消息进行解析,能够还原出操作命令和操作目标,中间操作码表示该操作正在读或者写,根据生成审计日志的需要,提取其读或者写的内容,最后一条操作码表示该操作结束。

步骤3)对所有关键操作命令进行黑名单匹配,对于匹配成功的关键操作命令,构造禁止该关键操作命令的ssh消息发送给客户端;并将所有匹配不成功的关键操作命令对应的ssh明文数据进行封装和加密,然后传输给服务端;

步骤4)根据步骤2)中采集的会话信息、关键操作命令信息和传输文件信息生成sftp审计日志;所述审计日志包括会话日志、操作日志和文件日志;

所述会话日志记录一个完整的sftp会话信息,包括源mac、目的地mac、ip、ip端口、用户名、用户登录时间和用户退出时间;

所述操作日志记录每一条关键操作命令信息,包括操作命令、操作返回数据、操作起始时间和操作结束时间;

所述文件日志记录每一个完整的传输文件信息,包括文件路径、文件名称、文件内容和文件传输方向。

基于上述sftp数据采集及审计方法,本发明还提供了一种sftp数据采集及审计系统,所述系统包括:ssh数据采集及解密模块、sftp解析模块、关键操作命令处理模块和生成setp审计日志模块;

所述ssh数据采集及解密模块,用于采集ssh协议密文传输阶段的数据包,针对ssh协议握手阶段的数据包,推导出ssh密钥协商后的传输密钥;利用密钥将数据包中的密文数据转换成ssh明文数据;将ssh明文数据传输给sftp解析模块;

所述sftp解析模块,用于从ssh明文数据中提取sftp数据,提取sftp数据的关键操作码,将提取的sftp关键操作码还原为关键操作命令;将所有关键操作命 令发送到所述关键操作命令处理模块,将从sftp提取的所有信息发送到所述生成setp审计日志模块,包括:

提取sftp数据单元:用于从ssh明文数据中提取sftp数据,并从sftp数据中采集会话信息,发送到所述生成setp审计日志模块;

提取sftp关键操作码单元,用于提取sftp数据的关键操作码,其中过滤掉索取文件属性的关键操作码;提取传输文件信息发送到所述生成setp审计日志模块;

还原关键操作命令单元,用于将提取的sftp关键操作码还原为关键操作命令,将所有关键操作命令发送到所述关键操作命令处理模块和生成setp审计日志模块;

所述关键操作命令处理模块,用于对所有关键操作命令进行黑名单匹配,对于匹配成功的关键操作命令,构造禁止该关键操作命令的ssh消息发送给客户端;并将所有匹配不成功的关键操作命令对应的ssh明文数据进行封装和加密,然后传输给服务端;

所述生成sftp审计日志模块,用于根据所述sftp解析模块发送的所有信息,生成sftp会话日志、sftp操作日志以及sftp文件日志;包括:

生成sftp会话日志单元;用于记录一个完整的sftp会话信息,包括源mac、目的地mac、ip、ip端口、用户名、用户登录时间和用户退出时间,

生成操作日志记录单元,用于记录每一条关键操作命令,包括操作命令、操作返回数据、操作起始时间和操作结束时间;

生成文件日志单元,用于记录每一个完整的传输文件,包括文件路径、文件名称、文件内容和文件传输方向。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

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