一种用户态监视加密磁盘的方法_2

文档序号:8258278阅读:来源:国知局
行流程,将执行流程引导至注入目标进程的动态链接库中的方式,在注入的动态链接库中,代码实现了首先记录数据流,再将数据流返还给原执行流程。
[0023]所述用户态与内核态交互接口,是指内核态驱动程序向用户态进程暴露的调用接口,以函数的形式存在,依系统不同而不同;典型地,windows系统内是ntdll.ZwDeviceControl, Linux 系统内是 1ctl。
[0024]实施例3:
本实施例是在上述任一实施例的基础上进一步优化,进一步的,为更好的实现本发明,结合图1、图2、图3、图4所示,所述“用户态监视加密磁盘的方法”包括以下模块:
进程监视模块,监视系统内所有的进程启动,并根据软件特征码识别启动的进程是否是一个存储加密软件进程;所述软件特征码包括但不限于多个要素:软件可执行文件的Hash值,可执行文件的导入表,可执行文件的数字签名,可执行文件的文件名等。
[0025]动态链接库注入模块,将加密截获模块注入到待监视进程中;
加密交互内容截获模块,记录解密信息;所述解密信息,是指用户态进程与内核加密驱动在加密过程中的交互信息,包括加密方式,密钥类型和长度,密钥数据。
[0026]加密设备重载模块,对已加密的存储数据重新加载并提供明文访问接口。
[0027]实施例4:
本实施例是在上述实施例的基础上进一步优化,进一步的,为更好的实现本发明,结合图1、图2、图3、图4所示,所述“进程注入”,将某个动态连接库置于进程空间运行,并且使用热补丁的方式替换原进程与驱动通讯的接口函数为自身某个监视函数,以达到监视用户态进程与驱动的加密会话过程;
所述“热补丁的方式”,在进程运行过程中,不需要重新启动进程,在内存中对进程代码进行修改并且实时生效的进程代码修改方法,所述进程代码修改方法是指对目标软件的进程内存进行修改,而不是指对目标软件的可执行文件进行修改,改变代码的执行流程。
[0028]所述“加密设备重载”,利用加密交互内容截获模块已记录的信息,对解密流程进行“重放”而获取明文的过程,不需要知道具体的解密密钥结构及含义,仅仅使用已知数据对流程进行重新执行,得到解密后的结果。对于支持多种加密方式的软件/设备来说,这种做法具有普适性。
[0029]实施例5:
本实施例是在上述任一实施例的基础上进一步优化,结合图1、图2、图3、图4所示,一种用户态监视加密磁盘的方法,包括以下步骤:
1、用户启动存储加密程序,被进程监视模块识别。
[0030]2、进程监视模块将识别到的存储加密程序信息发送给动态链接库注入模块。
[0031]3、动态链接库注入模块根据前述信息,将加密交互内容截获模块注入存储加密程序进程的内存空间。
[0032]4、加密交互内容截获模块在存储加密程序进程的内存空间中搜寻到该进程与存储加密驱动程序交互的函数接口,保存该函数接口的内存地址fAddr,并将该函数的入口改为一条跳转语句,跳转到加密交互内容截获模块中来。
[0033]5、记录交互数据,用户的加解密操作和驱动交互的内容,都重定向到了加密交互内容截获模块,加密交互内容截获模块对用户的加解密操作和驱动交互的内容进行数据记录。
[0034]6、加密交互内容截获模块记录完毕后,根据之前保存的fAddr值,跳转回原来的存储加密驱动程序交互的函数接口,将控制权交还原存储加密程序。
[0035]7、当需要审计,监控用户加密存储的数据时,加密设备重载模块将之前记录下的交互数据中的解密数据流提交至存储加密驱动程序交互的函数接口 fAddr,将存储设备以明文方式加载,读取其中数据。
[0036]本发明具有以下这些优势:
1、透明:受控人员几乎不能感知到明显的性能下降以及异常操作。因为进程监控模块是进驻于加密软件内存空间内,并没有实体的进程进行监控。对于原加密软件没有任何影响。同时加密设备重载模块又为上层应用提供了一个透明访问加密存储设备的方法,使得加密存储设备看起来和一般的存储设备无异。
[0037]2、稳定:使用原解密流程重放实现整个解密流程。解密时完全利用了原软件自带的磁盘驱动。目标软件的升级不会影响本方法的实现。同时本方法使用用户态进程注入的方式,对于整个操作系统的影响降低至最小,不会对其他进程有任何操作。
[0038]3、便捷:以该方案部署,已有审计、监控进程可以通过传统的存储访问操作实现对文件的访问,不会修改原有审计、监控进程的文件访问接口,实现完全平滑介入。
[0039]本发明通过对现有审计监控系统,提供一种有效、平滑的软件实现方案,使得其可以审计、监控加密存储设备上的文件,用于实现本发明的软件能够非常方便的嵌入现有的监控、审计环境中,而不必对现有的监控、审计软件、操作系统做更改,极大的降低了部署成本;同时,本发明能够对多种加密软件做到良好的普适性、兼容性和稳定性,不会对系统稳定性造成影响,也不用频繁升级和修改。
[0040]以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
【主权项】
1.一种用户态监视加密磁盘的方法,其特征在于:在监控、审计环境和加密存储设备之间嵌入一个软件层,在需要监控、审计时,该软件层提供一个看起来完全透明的明文存储设备,通过对用户态进程注入,截获用户态和内核态的加密、解密交互数据,而后通过解密流程重放的方式对已加密数据进行解密获取明文,实现过滤和监控。
2.根据权利要求1所述的一种用户态监视加密磁盘的方法,其特征在于:所述“通过对用户态进程注入,截获用户态和内核态的加密、解密交互数据,而后通过解密流程重放的方式对已加密数据进行解密获取明文,实现过滤和监控”具体包括以下步骤: 1)实现一个用户态的进程监视模块,所述进程监视模块监视系统中所有进程的启动,可以根据特定的特征匹配来识别当前启动的进程是否是需要进行监视的目标进程; 2)实现一个用户态的动态链接库注入模块,所述动态链接库注入模块可以注入到指定目标进程中; 3)以动态链接库的形式,实现一个进程监控模块,在进程中搜寻到用户态与内核态交互接口,并通过热补丁的方式,将此接口的数据流重定向到进程监控模块中去; 4)在存储加密过程中,用户态进程与内核进行数据交互时,记录这些交互数据流以及文件位置信息到加密交互内容截获模块; 5)当监控、审计进程需要访问的文件位于加密的存储介质中时,软件从加密交互内容截获模块中找到解密流程使用的数据流,并使用该数据流和目标软件的驱动进行交互,重放解密流程,实现存储数据的解密。
3.根据权利要求1或2所述的一种用户态监视加密磁盘的方法,其特征在于:所述“用户态监视加密磁盘的方法”包括以下模块: 进程监视模块,监视系统内所有的进程启动,并根据软件特征码识别启动的进程是否是一个存储加密软件进程; 动态链接库注入模块,将加密截获模块注入到待监视进程中; 加密交互内容截获模块,记录解密信息; 加密设备重载模块,对已加密的存储数据重新加载并提供明文访问接口。
4.根据权利要求3所述的一种用户态监视加密磁盘的方法,其特征在于:所述“进程注入”,将某个动态连接库置于进程空间运行,并且使用热补丁的方式替换原进程与驱动通讯的接口函数为自身某个监视函数,以达到监视用户态进程与驱动的加密会话过程; 所述“热补丁的方式”,在进程运行过程中,不需要重新启动进程,在内存中对进程代码进行修改并且实时生效的进程代码修改方法; 所述“加密设备重载”,利用加密交互内容截获模块已记录的信息,对解密流程进行“重放”而获取明文的过程。
【专利摘要】本发明公开了一种用户态监视加密磁盘的方法,在监控、审计环境和加密存储设备之间嵌入一个软件层,在需要监控、审计时,该软件层提供一个看起来完全透明的明文存储设备,通过对用户态进程注入,截获用户态和内核态的加密、解密交互数据,而后通过解密流程重放的方式对已加密数据进行解密获取明文,实现过滤和监控,通过对现有审计监控系统,提供一种软件实现方案,可以审计、监控加密存储设备上的文件,发明的软件能够非常方便的嵌入现有的监控、审计环境中,不必对现有的监控、审计软件、操作系统做更改,极大的降低了部署成;发明能够对多种加密软件做到良好的普适性、兼容性和稳定性,不会对系统稳定性造成影响,也不用频繁升级和修改。
【IPC分类】G06F21-60, G06F11-30
【公开号】CN104572398
【申请号】CN201510040140
【发明人】周晓军, 陈曦, 刘韬, 夏欣然, 黎露, 谢莎
【申请人】成都千牛信息技术有限公司
【公开日】2015年4月29日
【申请日】2015年1月27日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1