蒋海霞 周星宇 童玮
摘要:针对移动存储设备在使用中的安全问题,基于文件过滤驱动技术设计开发了一款能够对移动存储设备的读写权限进行灵活控制的软件,功能测试表明该软件简便易用,能够有效地防范电子文件的泄露,增强使用移动存储设备的安全性。
关键词:移动存储设备;文件过滤驱动;读写控制
中图分类号:TP333 文献标识码:A 文章编号:1009-3044(2016)29-0044-03
随着USB(universal Serial Bus)技术的发展,计算机的移动存储介质普遍采用U盘或移动硬盘。Uu盘、移动硬盘因其体积小、容量大、不易损坏、携带方便等诸多优点而备受青睐。但在这类移动存储设备的即插即用和便携的优点背后也给信息的保密安全问题带来了巨大的压力。
调查显示:在各种安全漏洞造成的损失中,30%-40%是由电子文件的泄露造成的。因此,如何对移动存储设备进行安全管理,防止涉密信息的泄露已经成为有关部门关注的重点。针对这一情况,我们通过对U盘的存储机制、U盘读写控制等技术的研究,利用文件过滤驱动技术实现对U盘的授权,开发了U盘存储鉴权认证系统,进一步提升了涉密信息的安全性。
1系统设计方案
研究开发U盘存储鉴权认证系统的目的是防止外部移动存储设备未经许可就随意在主机上进行读写。通过了解Win-dows家族操作系统的总体结构、Windows重要的内核组件,主要对文件系统相关的内核组件和与文件过滤驱动技术相关的内核组件进行研究,拟采用基于文件过滤驱动的移动存储访问控制方法,该方法通过识别出移动存储设备,对其读写权限进行禁止、浏览、只读、可写的控制。
考虑到接入主机的USB设备可能还包含有鼠标、键盘等,它们大多也是基于USB接口,所以系统首先要对接入主机的USB设备进行识别,以确定是否为移动存儲设备;在确定接入主机的是移动存储设备后再对其进行读写权限和使用操作权限的细粒度的控制,即通过文件过滤驱动程序对接入的移动存储设备进行读写控制。总体方案如图1所示。
由此可见,该系统通过对USB存储设备的识别定位、移动存储设备权限识别和控制、存储设备读写控制等几个环节对主机信息进行防护。
2文件过滤驱动技术简介
2.1基本原理
过滤驱动属于内核模式驱动,其依靠挂载在其他驱动上,对某设备发往存在的内核模式驱动的请求进行拦截过滤,可以对设备进行功能扩展或是数据加密等,从而提供附加值。发往目标驱动的I/O(输入/输出)操作请求被过滤驱动拦截过滤(过滤指监控、修改功能驱动的数据流或指令),过滤驱动通过使用目标驱动提供的服务或者使用用户模式、内核模式软件提供的服务进行功能扩展。开发文件系统过滤驱动是为了提供操作系统不能提供的附加功能,例如操作系统一般对于移动存储设备来者不拒,用户可以对移动存储设备上的文件进行任意读写,这在信息安全管理上就是一个漏洞,本文即通过开发文件系统过滤驱动技术,在不改变底层设备驱动情况下,提供新的功能,实现对移动存储设备的鉴权与管理。
过滤驱动工作原理如图2所示:
当用户发出对文件进行读写的操作请求,该请求首先被传给I/O管理器,其先解析文件路径,找到符合该功能的文件系统驱动程序后进行发送。I/O管理器会在内部的注册表中遍历每个文件系统驱动,因此只有通过I/O管理注册的文件系统驱动才能拥有操作文件的权利。文件系统要和I/O管理器以及其他重要的内核组件进行交互。通过设计和实现文件过滤驱动,将其附加到文件系统驱动之上,就可以在I/O管理器发送IRP(I/O Request Package)给文件系统驱动程序之前截获该IRP,并根据需要进行定制。文件系统驱动程序只有一个控制设备对象CDO,主要用于接收请求控制文件系统的命令,例如查询一个卷是否挂载,该访问请求首先传递给I/O管理器,由I/O管理器检查其是否已挂载,若尚未挂载,则生成挂载IRP,传递给文件系统驱动程序的CDO,请求挂载,这时所设计开发的文件过滤驱动程序将拦截并处理该挂载操作。需要说明的是要实现这一目的,文件过滤驱动必须将自己的CDO附加到文件系统驱动的CDO之上,这样I/O管理器在给文件系统驱动程序的CDO发送IRP之前,将检查是否有过滤驱动的CDO存在,若有多层过滤驱动,则I/O管理器依据从上向下的顺序依次传递IRP请求,从而确保每个过滤驱动都有机会处理该请求。
2.2设计实现
通过上述分析可知,要达到对移动存储设备进行鉴权认证的目的,设计和实现文件过滤驱动是关键。而文件过滤驱动的设计实现的一般步骤如下:
1)过滤驱动创建设备对象后附加到目标设备对象,以拦截所有发往该目标设备对象的请求;
2)加载过滤驱动,对截获的IRP进行处理;
3)建立完成例程,供被附加的设备对象完成IRP时调用;
4)建立删除例程,在适当的时候从被附加的目标设备对象解除附加。
要实现对USB存储设备的读写功能进行控制,需要创建能对相关的IRP进行拦截、监视、修改的过滤驱动程序,通过比较论证,采用下层过滤驱动模型就能够实现对USB存储设备的安全控制。控制流程如图3所示。
首先创建过滤驱动程序,把想要实现的对IRP操作的函数加入,接着加载过滤驱动程序,过滤驱动安装到系统里面后,通过对IRP包的拦截过滤,从而实现对USB存储设备的读写操作进行控制。
3系统主要功能模块
根据设计目的,系统主要包括两个功能模块:移动存储设备识别模块,移动存储设备访问控制模块。
3.1移动存储设备识别模块
可以连接计算机的USB设备包括U盘、USB鼠标、移动硬盘、USB键盘等等,从信息安全角度考虑,我们只关心具有文件存取功能的移动存储设备(主要指U盘、移动硬盘),所以首先要识别插入计算机的USB设备是否移动存储设备。主要有两种识别方法,一种是在挂载卷时进行识别,即在USB设备插入后,文件过滤驱动程序要拦截由系统发起的挂载操作,然后通过读取设备对象的属性来判断是否移动存储设备。另一种方法是在文件读写过程中进行识别,即通过对IRP堆栈结构中包含的相关的文件对象中所管理的物理卷设备的属性的判断来进行识别
设计实现时,我们采用第一种挂载时识别的方法来判断是否移动存储设备。
3.2移动存储设备访问控制模块
访问控制模块的控制方法包含两大类:禁止访问模式与控制读写模式。其中控制读写模式又可细分为浏览、只读、可写三种访问方式。禁止访问模式即表示用户无权对移动存储设备进行任何操作,从而保护计算机上信息的安全。浏览权限下,用户只能浏览移动存储设备上的文件目录,但无权读取移动存储中的内容。在只读权限下,用户只能读取移动存储设备中的内容,不能进行拷贝或建立新文档等写操作。只有在可写权限下,用户才能对移动存储设备进行正常的读写操作。以上各种访问权限均有相应的应用背景需求。
4系统功能测试
系统功能测试包括过滤驱动程序设备句柄能否准确获得,驅动程序是否正确安装、挂载,功能模块的功能实现等。其中对移动存储设备访问控制功能的实现是系统设计的目标,也是测试重点。测试用到的第三方测试工具包括GenInf、Device-Tree、WinObj等。
4.1禁止模式功能测试
首先通过模式设置界面对计算机进行U盘控制模式设置,如图4所示:
禁止模式设置成功后插入U盘进行测试。结果如图5所
在禁止模式下,U盘插入计算机后,系统提示无法访问U盘。在安装了保密系统的计算机上插入U盘,系统提示“无法访问未注册盘”。
4.2浏览模式功能测试
浏览模式设置成功后插入U盘进行测试,测试结果如图6所示:
在浏览模式下,U盘插入计算机后,可浏览U盘中的目录结构,但拒绝对文件的访问。
4.3只读模式功能测试
只读模式设置成功后插入U盘进行测试,结果如图7所示:在只读模式下,U盘插入计算机后,可以只读方式查看U盘中文件,对U盘不能进行“写”操作。
4.4可写模式功能测试
可写模式设置成功后插入U盘进行写的测试,测试结果如图8所示:
在可写模式下,U盘插入计算机后,可以对U盘进行正常的读写操作。
通过功能测试可知,该“U盘存储鉴权认证系统”使主机能够灵活地对外部移动存储设备的使用进行控制,在一定程度上加强了主机的信息防护,进一步地防范失泄密事件的发生。
5结束语
基于文件过滤驱动技术的u盘存储鉴权认证系统通过对U盘的读写进行控制,实现了对涉密计算机的信息保护,涉密计算机初始设置建议为禁止模式,任何未经用户许可的非法移动存储设备都无法从计算机中拷贝出任何信息,从而使计算机在用户离开时也能得到最大限度的保护。该系统重新设置权限的方法简单易行,具有很强的实用性。