APP下载

一种信息防泄密系统的设计与实现

2017-04-22武旭方胡晓勤

现代计算机 2017年7期
关键词:机密文件驱动程序磁盘

武旭方,胡晓勤

(四川大学计算机学院,成都 610065)

一种信息防泄密系统的设计与实现

武旭方,胡晓勤

(四川大学计算机学院,成都 610065)

由于信息安全形势日益严峻,数据保护手段也多种多样。传统的安全手段都是基于透明加解密来实现,这些方法会在加密文件中添加加密标志会导致保护系统的稳定性降低。提出一种信息防泄密系统,结合加密软件TrueCrypt和文件过滤驱动,在不修改机密文件的前提下,将机密文件重定向到虚拟加密磁盘。有效保护数据的同时,提高系统的稳定性。

信息安全;文件过滤驱动;透明加解密

0 引言

随着信息化的发展,用户及企业产生数据的场景越来越多,包括了很多对机密性有高要求的情况。因此数据的防泄漏变得十分重要,保护数据防止被非法获得是信息科学中的一个重要命题。目前,IPS、IDS及防火墙的技术和理念虽然也有了高速的发展,但是网络攻击手段也是日新月异,让人防不胜防。即使是不联网的主机也有被非法用户查看或盗取机密信息的风险。所以数据加密存储在计算机中是防止数据泄露的一种可靠的方法。但是,在保证数据的安全性的同时不能破坏用户的原有习惯,即合法用户能够正常读写机密信息。因此本文提出了一种结合开源加密软件TrueCrypt的透明加解密系统来实现数据的防泄漏。

1 系统架构

本系统主要包含以下几个模块,客户端模块、内核拦截模块、磁盘加解密模块、服务端模块。客户端模块工作在被保护主机的应用层,主要实现系统与用户的交流。包括要求用户输入用户名及密码、保护数据类型配置、保护路径配置、脱密文件导出、清空加密磁盘等。

内核拦截模块是本文的核心内容。关于截获文件操作的方法大概有这么两种,一是利用hook函数在应用层截获相关的文件读写函数及文件信息设置函数,这种方法实现简单但是很容易被非法进程绕过。本文采取的是第二种方法,即通过文件过滤驱动来截获文件系统的I/O操作。磁盘加解密模块是结合TrueCrypt来实现的。传统基于文件过滤驱动的透明加解密系统中一个重要问题就是加密文件的识别,也就是说计算机的文件系统中同时存在密文文件和明文文件,因此在文件操作时就需要判断是否为密文并解密。目前的解决方案中基本都是在文件的数据中添加已加密的标示,添加的位置可以是文件数据的开头,中间或尾部。如果加在头部还要考虑文件大小的问题,也就是说不能因为加密标志的添加导致了用户看到文件大小的变化,所以此时还需要过滤文件系统的setinformation类IRP,屏蔽掉加密标志的影响。如果加密标志加在尾部,则每次写文件都要对其进行移动。还有一种方法是自定义一种表示加密标志的文件属性,文件的内容是一个文件的默认属性,添加文件属性并不会影响用户看到文件大小的变化,文件属性是NTFS所特有的,也就是说对于FAT32等其他文件系统来说,这种方法是无效的。

图1 系统架构

因此综上所述,传统的文件透明加解密系统存在一些问题,实现复杂,增加保护系统的负担,适用性不够广。所以本文提出了结合TrueCrypt的磁盘加解密方法。TrueCrypt可以创建虚拟磁盘,所有存放在这个虚拟磁盘中的文件都是加密存储的,并不会添加加密标示。而且只有认证通过的合法用户才能看到加密磁盘并正常读写,认证失败时,加密磁盘不会被系统挂载。而且,由于文件是加密存储的所以即使文件被拷贝或传输到其他地方也不怕信息泄露。

服务端模块是实现登录认证的功能,验证用户输入的用户名和密码是否正确。验证通过才可以读写机密文件,否则所有读写的文件都是明文存储的。

2 系统实现的关键技术

2.1 Windows NT文件系统及过滤驱动

总所周知,用户对文件的读写不是简单的操作物理磁盘。Windows NT内核模式驱动是采用分层模型,及应用层对文件的读写先通过系统服务调用I/O管理器的IRP生成函数,又由于文件系统驱动在磁盘驱动的上层且已向IO管理器注册。所以,文件系统驱动会先于磁盘驱动接收到该IRP。文件系统过滤驱动程序能够过滤针对文件系统或卷的IO操作,它们可以监视、记录、修改或阻止这些IO操作。它们的工作方式与设备栈中的其他驱动程序类似,它们接收IRP,执行自己的逻辑,再根据自己的需要,设置完成例程并将IRP发送给底层的驱动程序。但需要注意的是文件过滤驱动程序针对的是文件系统,它们不是WDM驱动程序,不能支持即插即用,所以我们不需要添加AddDevice例程。

2.2 文件实时监控

要做到实时监控文件系统,首先需要正确的附加我们的过滤设备到文件系统设备,附加过滤设备可以用内核函数IoAttachDevicetoStack。同时,我们驱动程序的例程中也要处理相应的操作,例如文件读写的IRP主要包括IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_ WRITE。由于文件系统支持FastIO例程,因此也需要相应处理。在这些例程中,我们可以针对感兴趣的应用层操作进行处理,例如禁止用户创建、读、写文件时,在相应IRP例程中直接调用IoCompleteRequest,并返回STATUS_SUCCESS。在这里,我们针对机密文件的写操作要重定向到加密磁盘。

2.3 过滤驱动与客户端的通信

用户的一些文件可能不是机密的,或者并不想把一些不重要而且体积庞大的文件进行重定向到虚拟磁盘去加密,例如视频文件、图片文件等。这时用户就可以设置文件格式白名单,意味着特定格式的文件将在文件操作的监控中不做处理。同样的,用户可能对特定路径下的文件操作并不感兴趣,此时可以设置路径白名单,特定路径下的文件读写也不会被重定向。这些白名单的设置都是在应用层的客户端完成,但需要通知到我们内核设备。这时就涉及了我们的驱动程序与应用层客户端的通信问题。在这里我们利用DeviceIocontrol来实现控制驱动的目的。但这里产生并发生给我们驱动程序的IRP是IRP_CONTROL_CODE,接收这类IRP的是我们的控制设备不是过滤设备,所以在IRP例程中要判断设备类型。这里我们通过定义宏来实现,如下:

3 结语

该本文在Windows NT内核平台上,设计并实现了一种信息防泄漏系统。利用文件系统过滤驱动能够有效的监控文件操作,相对于应用层的拦截,本文提出的方法更加可靠,恶意程序难以绕过。传统的透明加解密方法,要在加密文件中添加加密标志。本文结合True-Crypt创建虚拟加密磁盘,并将机密文件的写操作重定向到加密磁盘,读取文件时从加密磁盘中透明解密返回给用户。这样确保了机密文件的加密存储防止机密文件被盗取到明文的风险。

本系统还有一些方面需要完善,由于机密文件被重定向到虚拟磁盘,机密文件的位置会变成虚拟磁盘,读取时需要到虚拟磁盘中。可以这样完善,机密文件的实际内容扔重定向到虚拟磁盘,但其创建时的初始位置被一个空文件代替,可以利用空文件的命名来识别已重定向文件,识别完成后再实际读取虚拟磁盘中的真实机密文件。

[1]王全民,周清.文件透明加密技术研究[J].计算机技术与发展,2010,20(3):147-150.

[2]谭文,陈铭霖.Windows内核安全与驱动开发[M].北京:电子工业出版社,2015.

[3]张帆.Windows驱动开发详解[M].北京:电子工业出版社,2008.

[4]瞿进,李清宝,白燕,魏珉.文件过滤驱动在网络安全终端中的应用[J].计算机应用,2007,27(3):624-626.

Design and Implementation of a Data Leak Prevention System

WU Xu-fang,HU Xiao-qin
(College of Computer Science,Sichuan University,Chengdu 610065)

Due to the increasingly serious situation of information security,data protection is in varied forms.Traditional security methods are based on transparent encryption and decryption,these methods will modify sensitive file to show that it need to be encrypted or decrypted.So, traditional method will lead to the stability of the protection system to reduce.Proposes a kind of information leakage prevention system, which is based on the encryption software TrueCrypt and file system filter driver.While effectively protecting the data,the stability of the system is improved.

Information Security;File System Filter Driver;Transparent Encryption/Decryption

1007-1423(2017)07-0072-03

10.3969/j.issn.1007-1423.2017.07.018

武旭方(1991-),男,安徽阜阳人,硕士,研究方向为信息与网络安全

2016-12-22

2017-02-10

国家重点研发计划(No.2016yfb00604、No.2016yfb00605)、国家自然科学基金项目(No.61572334)

胡晓勤,四川内江人,博士,研究方向为灾难备份、信息安全

猜你喜欢

机密文件驱动程序磁盘
找到那间格格不入的房间
它的好 它的坏 详解动态磁盘
创建虚拟机磁盘方式的选择
解决Windows磁盘签名冲突
阻止Windows Update更新驱动程序
台共享单车内惊现机密文件
计算机硬件设备驱动程序分析
档案管理中存在的问题及应对措施
Windows系统下动态磁盘卷的分析与研究
档案管理中存在的问题及应对措施