一种主机文件安全监控方法

文档序号:6402132阅读:159来源:国知局
专利名称:一种主机文件安全监控方法
技术领域
本发明涉及信息安全技术领域,尤其涉及一种主机文件安全监控防护方法。
背景技术
数字内容本身易拷贝,网络技术的发展导致非法传播扩散更加泛滥。在公司内部,特别是某些资料涉密的单位内部,员工是不允许将电脑中的文件资料私自带走的。然而,单凭员工自己的自觉性显然是远远不够的,尤其是一些人还带有主观恶意地想要窃取公司机密,公司机密资料的泄漏直接导致的是经济利益的巨大损失。随着使用计算机创建和处理电子化信息的情况越来越多,保护企业信息、数据和文档成为企业商务活动中的一项艰巨且长久的任务。企业都希望能在内部实施一种最佳的信息权限保护解决方案,有效地保护机密文件的信息,避免机密信息的未授权使用,并且保证数据万无一失。在网络化的电子办公环境中,信息的使用者经常会通过电子邮件、磁盘共享或文件服务器来共享他们的文档。然而,当工作人员共享这些文档和信息时,很难控制文档和信息的传播范围,也难以跟踪信息的访问记录,这样就可能造成机密信息的不安全访问和非法利用。而单纯地依靠企业的信息安全政策公示很难实现电子信息的集中安全管理和授权访问。在众多的网络攻击事件中,由内部人员发起的攻击或者由内部人员滥用网络资源造成的攻击占据网络攻击事件中相当大的比例,因此内部网络和主机安全对于企事业单位的信息安全至关重要。目前,基于网络攻击的信息安全存储技术发展比较成熟,如防火墙技术、IDS (Intrusion Detection Systems,即入侵检测系统)等,而基于主机安全的信息安全存储技术发展还远未达到市场的要求。在此条件下,为了保障敏感信息的安全性,各个企业都采取了一定的措施。但仅仅通过完善文档、源程序、设计资料等的保密制度,利用法律、法规保护自己的知识产权还是不够的,一定要寻找技术的手段从根本上阻止和防范泄密事件的发生。很多涉密企业采用的方法是将员工使用的涉密电脑的网络隔离、拆除所有软盘、光盘驱动器,有些甚至连USB端口同时封死。这些方法能够起到一定的作用,防止员工拷贝机密文档,然而这种安全保障是在牺牲设备提供给用户应用便利性的基础之上的,并不是最终的解决办法。传统的技术措施对于证实电子文件内容的真实、可靠,保证电子文件在存储、传输过程中的安全、保密,防范对电子文件的非法访问和随意改动,具有不同程度的效果。但随着计算机技术的普及和发展,文件信息安全领域面临着更多的新的挑战。因此,传统的文件信息安全措施还存在着种种不足之处。(I)文件信息存储安全技术相对发展比较缓慢:信息安全包括传输安全、系统安全和存储安全。现在信息安全的热点集中在传输安全和系统安全,上述技术措施绝大多数是针对信息传输安全的,而存储媒介往往是安全事件的高发区,应引起高度重视。(2)针对文件信息存储安全的内控技术匮乏:现在针对文件信息存储安全的策略和技术大多是针对外部威胁,而很少涉及内部监控,缺乏完善的内控安全保障措施,而70%的泄密犯罪来自于内部,因此增加终端文件的内控安全,是文件信息安全存储领域急需完善的技术。(3)市场上已有一些文件内控安全产品存在以下缺陷:缺乏一套完善的监控策略,监控功能单一、存在这样或那样的漏洞。另外,作为易用性要求,引入安全的系统不应该强迫用户改变在没有安装监控软件时使用文件的操作和处置习惯,监控防护的引入也不应该大大降低主机运行性能。

发明内容
本发明的目的在于克服上述不足,提供一种主机文件安全监控防护方法,采用基于文件过滤的内核层文件透明加解密方案。每一个物理设备对应着多个驱动设备对象,而这些驱动设备对象是按分层结构堆叠的。每一层只能同上层和下层进行服务请求交互,这些服务请求信息被统一设计为IRP(I/O Request Package,即输入输出请求包)。每一个驱动设备对象处理IRP完一次,完成一次服务。这些设备对象根据目的的不同,被设计为不同的功能。Windows的分层驱动程序模型允许用户开发第三方驱动程序,并通过1AttachDeviceByPointer或者1AttchDevice函数将自己的设备驱动程序插入列这个分层结构中,这样我们的第三方驱动程序就有机会截获IRP,然后通过分析IRP,针对自己感兴趣的IRP包进行相应的处理。这种第三方驱动程序称为过滤驱动程序。根据上面叙述的原理,我们可以设计一个文件系统的过滤驱动程序来完成我们的功能。首先需要把过滤驱动程序挂接在某个硬盘分区之上,可以在过滤驱动程序的入口点DriverEntry函数发送一个IRP,请求驱动程序来挂接到硬盘上。该过程的函数调用流程为:1、由ZwCreateFile得到硬盘分区的设备句柄;2、再用ObRefereneeObjectByHandle得到对应的FILE0BJECT指针(Windows把每个设备当作一个文件来看待,并有一个对应的FILE0BJECT结构描述其属性);3、然后调用IOGetRelatedDevieeObjeet得到硬盘分区设备对象指针;4、然后调用IOCreateDevice来构造代表过滤器的一个设备并为它指定驱动程序也就是过滤驱动程序;5、最后调用IOAttachDeviceByPOinter把该设备挂接在硬盘分区设备上。挂接上设备链后,我们的驱动就可以截获对文件的IRP请求包。根据我们磁盘过滤驱动的要求,我们只对打开文件、读文件、写文件的IRP进行处理,对于其他IRP请求,我们则统统直接传递给下层驱动程序处理。基于上述技术构思,本发明提供的方案是:一种主机文件安全监控防护方法,包含如下步骤。步骤一,当使用者在硬盘上创建新文件或者读取已有文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则对硬盘上的文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。步骤二,对文件类型进行监控保护,不允许使用者更改涉及受保护的文件类型。步骤三,对已添加加密标识的文件,隐藏含有加密标识的文件头,并更正文件指针。步骤四,当使用者写硬盘时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型, 则对文件内容进行加密。
步骤五,当使用者使用非授权进程打开或发送或拷贝或上传机密文件,则获得的是未被解密的数据,呈现乱码。而且,在磁盘格式为FAT32的情况下,步骤一中当使用者在硬盘上创建新文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则根据IRP(I/0 Request Package,即输入输出请求包)的不同类型对该文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。而且,在磁盘格式为NTFS的情况下,步骤一中当使用者在硬盘上创建新文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,贝1J判断文件是否含有加密标识,若含有,贝1J利用EFS (Encrypting File System,即加密文件系统)对该文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。而且,步骤四中的加密操作为:加密操作主要发生在从磁盘读取文件数据时,所以必须等待读请求(IRP-MJ-READ)完成后再进行加密处理。直接从IRP中得到所读取到的数据缓冲区,对缓冲区中的数据加密即可。IRP缓冲区的取得方法是:如果IRP->MdlAddress不为NULL,则使用IRP->MdlAddress,而实际缓冲区的位置可以利用 MmGetSystemAddressForMdl (IRP_>MdlAddress, NormalPagePriority)得到,否则直接使用 IRP->UserBuffer。而且,步骤五的加密操作为:在处理写请求之前,透明解密系统自己分配一个缓冲区,把原缓冲区的数据复制到自己分配的新缓冲区中。然后,把新缓冲区指派给IRP对写数据进行加密处理,并保存原缓冲区。当请求完成后再将原缓冲区恢复给IRP。本发明具有如下优点。

一、在操作系统的内核实时加密写入文件系统的文件,实时解密从文件系统读出的文件。加解密操作完全在用户感知不到的情况下进行,上层的应用程序不会因为透明加解密而改变应用程序的行为和使用习惯。二、当授权用户读涉密文档时,透明加解密服务能透明地对读出的原始内容进行解密,读取多少,就解密多少,不会有性能的瓶颈。三、涉密文档的任何对物理硬盘保存和刷新,透明加解密服务会及时的加密,保证写在物理硬盘上的数据为密文状态。四、加解密由于工作在受Windows保护的内核层中进行,运行速度快。五、用户模式下所有对驱动程序的I/O请求,全部由操作系统转化为一个叫做IRP的数据结构,结构简单。


图1是本发明方法步骤图。图2是本发明进程加/解密流程图。图3是本发明文件读取流程图。图4是本发明文件写入流程图。
具体实施例方式下面结合附图及实施例对本发明作进一步说明。本实施例提供一种主机文件安全监控防护方法,如图f图4所示,包含如下步骤。步骤一,当使用者在硬盘上创建新文件或者读取已有文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则对硬盘上的文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。步骤二,对文件类型进行监控保护,不允许使用者更改涉及受保护的文件类型。步骤三,对已添加加密标识的文件,隐藏含有加密标识的文件头,并更正文件指针。步骤四,当使用者写硬盘时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的 文件类型,则对文件内容进行加密。步骤五,当使用者使用非授权进程打开或发送或拷贝或上传机密文件,则获得的是未被解密的数据,呈现乱码。进一步的,在磁盘格式为FAT32的情况下,步骤一中当使用者在硬盘上创建新文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则根据IRP(I/0 Request Package,即输入输出请求包)的不同类型对该文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。进一步的,在磁盘格式为NTFS的情况下,步骤一中当使用者在硬盘上创建新文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则利用EFS系统(Encrypting File System,即加密文件系统)对该文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。进一步的,步骤四中的加密操作为:加密操作主要发生在从磁盘读取文件数据时,所以必须等待读请求(irp-mj-read)完成后再进行加密处理。直接从IRP中得到所读取到的数据缓冲区,对缓冲区中的数据加密即可。进一步的,步骤五的加密操作为:在处理写请求之前,透明解密系统自己分配一个缓冲区,把原缓冲区的数据复制到自己分配的新缓冲区中。然后,把新缓冲区指派给IRP对写数据进行加密处理,并保存原缓冲区。当请求完成后再将原缓冲区恢复给IRP。本发明采用自动加/解密本地计算机上生成的涉密文件的处理方式。文件系统驱动过滤。文件系统驱动是存储管理子系统的一个组件,文件系统过滤驱动是一种为文件系统提供具有附加值功能的驱动程序。文件系统是建立在逻辑盘上的管理程序,逻辑盘是抽象的一种结构,可以是整个磁盘,也可以是部分磁盘,每一个逻辑盘里都需要有一个管理系统来负责对磁盘的访问、存储、删除等操作,例如流行的FAT、NTFS文件系统。文件系统过滤驱动是建立在文件系统基础上的驱动程序,负责对文件系统进行额外的附件操作。文件加密标志。加密文件和普通文件的区别是通过判断加密标识来区分的。加密标识可以写在文件头部和文件尾部。写在文件尾部的标识,如果文件长度有所改动需要重新写入加密标识。本发明采用将加密标识写入文件头部的方法。当拦截到文件打开的请求后,跳过文件加密标识部分,对文件内容进行解密然后传递给下层过滤驱动,使用户感觉不到解密程序的存在。进程分类。操作机密文件的进程分为两类,即授权进程和普通进程。授权进程是指文件类型关联的程序进程,该类进程一般也是文件的创建进程,此类进程操作文件会正常地进行加密解密操作。用该类进程创建一个文件后,加密程序会自动对该文件内容进行加密,以密文的形式存在于硬盘上。下次授权进程再访问这个文件时,解密程序会自动将该文件解密后呈现给用户。加解密只针对授权进程进行操作,对于普通进程操作不进行加密解密的操作。普通进程访问加密文件,文件始终会以密文的形式存在,无法获取文件本身内容。这样做有两点好处:一是为了安全性考虑,二是为了减轻系统加密解密的消耗。普通进程打开机密文件由于其格式不匹配,本身也是无法打开的,此时如果再进行加密解密的会浪费系统的性能。本发明中对被保护程序的判别。当通过API函数CreateFile对文件进行打开操作时候,驱动程序需要判断打开的文件是否属于需要保护的文件。我们是通过进程内核的PEB(Process Environment Block,即进程环境块)对象来查看当前发出该请求的进程。Windows操作系统为每一个进程在内核都创建了一个PEB对象。该对象的ImageFileName成员变量就是进程的名字。驱动程序可以调用内核函数PsGetCurrentPiOcess获得运行上下文环境的PEB对象,然后根据进程名就判断是否是我们需要保护的进程。需要注 意的,不同版本的Windows的PEB中ImageFileName的偏移量是不确定的,为此,我们通过内核函数PsGetVersion判断Windows的版本号来决定ImageFileName 的偏移量。为了区分涉密文档和非涉密文档、以及控制用户对涉密文档的操作,本发明在每个涉密文档的头部嵌入了能唯一标识该文档特征信息的文档标识。文档标识由文档ID、文档加密标识、文档安全等级标识等几部分组成嵌入文档标识的操作对用户来说是透明的,即用户无法从表面看出文档是否具有文档标识。当涉密文档嵌入文档标识后,就相当于为每个文档盖上了不同的印章,印章和涉密文档具有相同的生命周期。本发明采用双缓冲加解密技术防数据泄密。因为虽然文件已成功加密并写入磁盘,但在系统的缓存中仍然会保留数据的副本且以明文形式存在,缓存数据不受保护,极易被非法进程获取。所以在文件完成加密操作且不再使用时,应尽快清除加密数据的缓存,以保证数据的安全性。传统的加密是采用的单缓冲方式,即当涉密程序访问加密文件时,文件解密后放入缓冲区。当非涉密程序访问时,则清空缓冲区再读入非解密数据,这种方式大大降低了系统效率,也带来了兼容性问题。双缓冲,即在系统中会生成明文和密文两个缓冲区。授权程序访问加密文件时,力口密数据被自动解密后存入明文缓冲区供涉密程序读取,非涉密程序访问加密文件时,文件不会被解密,而是直接将加密数据读取到密文缓冲区中,这样非涉密程序读取到的就是密文,从而避免非涉密程序泄密数据。
本发明的文件透明加密算法及其密钥处理。透明加密算法。对于每一个文件的读写,文件系统会产生很多个IRP_MJ_READ请求或者IRP_MJ_WRITE请求,数据也被分成了很多块。同时由于windows读文件不一定是顺序的,加密的时候通过IRP中的Write.Length获取明文长度,如果不够分组整数倍用全O填充。不过值得注意的是,如果在某个IRP中处理的是文件的最后一块分页,写成功的长度1Status.1nformation通常会小于 IRP请求的长度 Write.Length,这时再用 Write.Length来作为参考进行分组加密的话就会出问题,需要进行特殊处理。在IRP_MJ_READ请求中解密的时候则不存在这个问题,可以每次都按照返回的长度即1Status.1nformation来进行解密。基于以上要点规则,在文件系统过滤驱动的IRP_MJ_WRITE分派函数进行加密的流程如下。I)判断IRP的读写方式,只处理以下几种IRP_N0CACHE、IRP_PAGING_10和IRP_SYNCHR0N0US_PAGING_10。2)读取文件路径和类型决定是否需要进行加密。若不需要,则直接把IRP往下层传,否则执行加密。3)得到Windows传下来的数据缓冲地址,在内核中分配连续的页作为一个新的缓冲区保存数据。4)用AES对新的缓冲区中的数据加密。5)设置完成函数,并将IRP原来的参数作为完成函数下文环境变量。6)调用1CallDriver把密文向下层驱动传,写入硬盘。7)在完成函 数中设置IRP的MdlAddress及UserBuffer,成功。密钥处理。如何来保存AES算法的密钥?使用动态密钥,而且可以将此密钥放在硬盘上面。使用一个RSA公钥对动态AES密钥进行加密,再使用时候利用私钥进行解密,获得对称密钥。实现对文件的进一步控制。创建文件和打开一个文件都于IRP_MJ_Create,所以这里需要区别一下新建文件和文件。当创建一个文件的时候,系统会首先发送一个标FILE_OPEN的请求,并且判断底层文件系统的返回值,返回成功,则表明文件存在并且已经成功打开。否则,如返回结果是NO SUCH FILE,则紧接着创建一个E_0PEN_IF请求,得以将文件创建,所以如果在 MJ_Create 的 Options 域当中发现了 FILE_CREATE,E_0PEN_IF 或者 FILE_OVERffRITE_IF的三个标志之一,则是在创建,否则就是打开。防止拷到U盘之类的方法是查询该新增卷的设备类型,FILE_REM0VABLE_MEDIA则为移动存储产生。得到类型以后保存到该卷的过滤设备对象中。当该过滤设备对象得到一个写请求的IRP时即可判断是否在将文件拷贝U盘,接下来就是禁止或者允许。以上仅供说明本发明之用,而非对本发明的限制。有关技术领域的科技人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变型,所有等同的技术方案,都落入本发明的保护范围。
权利要求
1.一种主机文件安全监控防护方法,其特征在于包含如下步骤: 步骤一,当使用者在硬盘上创建新文件或者读取已有文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则对硬盘上的文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识; 步骤二,对文件类型进行监控保护,不允许使用者更改涉及受保护的文件类型; 步骤三,对已添加加密标识的文件,隐藏含有加密标识的文件头,并更正文件指针;步骤四,当使用者写硬盘时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则对文件内容进行加密; 步骤五,当使用者使用非授权进程打开或发送或拷贝或上传机密文件,则获得的是未被解密的数据,呈现乱码。
2.根据权利要求1所述的一种主机文件安全监控防护方法,其特征在于:在磁盘格式为FAT32的情况下,步骤一中当使用者在硬盘上创建新文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则根据IRP的 不同类型对该文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。
3.根据权利要求1所述的一种主机文件安全监控防护方法,其特征在于:在磁盘格式为NTFS的情况下,步骤一中当使用者在硬盘上创建新文件时,判定当前进程是否被授权,若当前进程为授权进程,且该文件类型属于需要保护的文件类型,则判断文件是否含有加密标识,若含有,则利用EFS对该文件进行加密,并将该段数据置于受保护的内存区域中;若不含有加密标识,则在文件头部添加加密标识。
全文摘要
本发明涉及信息安全技术领域,尤其涉及一种主机文件安全监控防护方法,是基于驱动层的文件透明加密法,对用户完全透明,用户在使用过程中感觉不到文件加解密的存在,并辅以具有安全性更高、速度更快的应用层加密法,提供基于传统文件过滤方法的对于更复杂的软件系统的文件透明加密方案。本发明通过对本地计算机的进程和文件的识别,自动对涉密文件进行加密和解密,其间解决了内存映射和文件缓冲等问题,增加了安全性。
文档编号G06F21/77GK103218575SQ20131013390
公开日2013年7月24日 申请日期2013年4月17日 优先权日2013年4月17日
发明者王玉林, 陈亦欣, 时先科 申请人:武汉元昊科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1