专利名称:面向Windows Vista的计算机外部设备安全监控方法
技术领域:
本发明属于信息安全领域,尤其是一种计算机外部设备使用行为的安全监控方法。
背景技术:
在一般的计算机系统中,用户使用USB盘、移动硬盘、光盘、打印机等外部设备是随意的,其安全策略属于自主型。在需要保密的计算机系统中,这种自主型安全策略容易造成涉密信息的泄密,产生严重的后果。因此,在需要保密的计算机系统中,一般采用分布式外部设备安全监管方法来增强计算机系统的安全性。首先由系统控制台规定每个涉密计算机使用外部设备的全局安全策略(即允许或禁止使用),并发送给相应的涉密计算机上,每个涉密计算机上都运行一个监控代理程序,依据全局安全策略对用户使用外部设备行为进行实时监控,对于违反安全策略的用户行为进行实时阻断,同时向系统控制台发出报警信息,并违规行为记录在日志文件中,以便进行查询和审计。这样就将计算机系统的自主型安全策略提升为强制型安全策略,大大提高了涉密计算机系统的信息安全保障能力。
在这种技术中,其核心技术是监控代理程序中所采用的外部设备安全监控模型和方法。由于监控代理程序运行在计算机操作系统上,需要利用操作系统提供的内部功能函数和设备驱动接口来实现外部设备安全监控功能,因此其实现方法与操作系统类型和版本密切相关。
现有技术主要采用驱动注入方法,其技术原理是利用操作系统内部功能函数对设备驱动程序入口地址进行替换和更改,将原来指向设备驱动程序的指针改成指向自定义的设备监控驱动程序。这样,在计算机系统运行过程中,当一个设备使用时所发出的中断请求(IRP)首先被设备监控驱动程序拦截,对IRP进行安全检查,如果符合安全规则,再将IRP传递给原始驱动程序去处理,而不是由原始驱动程序直接处理IRP;如果不符合安全规则,则直接返回一个错误信息,不再传递给原始驱动程序,这样就实现了对设备使用行为的监控。在这种方法中,需要通过高层应用程序与低层设备驱动接口相配合,而高层应用程序主要采用Windows XP、 Windows 2000和Windows NT等操作系统提供的内部功能函数来实现的。
在新的Windows Vista操作系统中,其系统架构和内部结构与Windows操作系统以前版本有较大的差异,这种基于驱动注入的实现方法无法在Windows Vista操作系统上使用,必须按照Windows Vista系统特点和内部结构提出新的外部设备安全监控方法。
发明内容
为了克服现有技术与Windows Vista操作系统不相兼容,无法实现安全监控的不足,本发明提供一种适合在WindowsVista操作系统应用的外部设备安全监控方法,实现对WindowsVista操作系统上外部设备使用行为的有效监控。
本发明建立在WDF(Windows Driver Foundation)驱动模型的基础上,采用过滤驱
动方法,实现对Windows Vista操作系统上外部设备的有效监控,被监控的外部设备
包括USB盘、移动硬盘等各种移动存储设备、光驱、并口设备、串口设备等。本发明解决其技术问题所采用的技术方案包括以下步骤
(1) 在WDF驱动模型中,设备IRP首先由目标设备对象Fdo接收,经过处理后再提交给下层设备对象去执行。本发明首先根据WDF驱动模型设定一个过滤设备对象Fido嵌入在目标设备对象Fdo与下层设备对象之间,实现对设备IRP进行安全检查。
(2) 确定不需要被监控的外部设备(如键盘、鼠标器等)和需要监控的外部设备,根据安全策略,设置每个需要监控的外部设备的设备权限标志,如果设备是允许使用的,该设备的设备权限标志为可读写的,如果设备是禁用的,则该该设备的设备权限标志是不可读写的。
(3) 当用户使用计算机上的外部设备时,会触发产生一个相应的IRP。当目标设备对象Fdo接收到该IRP后,不是直接交给下层设备对象,而是先交给相应的过滤设备对象Fido过滤驱动,进行安全检査。
所述的过滤驱动包括以下步骤
1) 接收该设备产生的IRP请求。
2) 通过IRP的主功能码和副功能码来判断是否为需要拦截的IRP请求。如果不是,说明该设备不是被监控的设备,直接将该IRP请求传递给其它分发例程进行正常处理。
3) 如果是需要拦截的IRP请求,则说明该设备是被监控设备,需要查看设备权限标志,判断该设备是否具有操作权限。4) 如果该设备具有操作权限,是允许使用的,则表示安全策略允许该设备执行读写操作,直接将IRP请求传递给下层设备对象,正常完成该设备的读写操作。
5) 如果该设备不具有操作权限,是禁用的,则表示安全策略禁用该设备,将该IRP请求传递给系统自带的I/O请求完成例程进行结束处理。
6) 1/0请求完成例程首先获得对该IRP请求的控制权,然后将该IRP请求的返回状态设置为完成状态,直接进入结束处理。
通过上述步骤判定,如果该设备使用符合安全规则,Fido再将该IRP交给下层设备对象进行处理;如果不符合安全规则,Fido将直接过滤掉IRP,不再传递给下层设备对象。这样,就在设备驱动层上实现了对外部设备使用行为的监控。
对于USB盘、移动硬盘等、光驱、并口设备、串口设备等不同类型设备,需要建立过滤设备对象Fido,并按照WDF模型规定的不同位置嵌入在目标设备对象Fdo与下层设备对象之间,对相应的设备使用行为进行监控。
本发明的有益效果是本发明是通过在设备驱动层上嵌入相应的过滤设备对象Fido进行驱动过滤来实现安全监控的,而不是通过替换和更改设备驱动程序入口地址的方式来实现,不需要调用系统内部功能函数,因此具有更好的系统兼容性。本发明主要是在设备驱动层上实现的,不涉及高层应用程序调用,对系统性能的影响比较小,执行效率高,工作可靠稳定。
以本发明为基础开发的设备监控代理程序在Windows Vista操作系统上进行了反
复的功能测试、性能测试和可靠性测试。从测试结果来看,本方法达到如下效果
(1) 设备监控代理程序能够在Windows Vista操作系统上可靠稳定地运行,能够按照安全规则对外部设备使用行为进行监控,对于被禁用的外部设备使用请求,能够实时阻断并给出违规使用警告信息。
(2) 设备监控代理程序能够对各种移动存储设备、光驱、并口设备、串口设备等外部设备进行自动识别、检査和控制。
(3) 设备监控代理程序对系统性能的影响比较小,执行效率高,工作可靠稳定。本发明有效地解决了WindowsVista操作系统上的外部设备安全监控问题。以本发
明为基础所开发的监控代理程序能够可靠地运行在Windows Vista操作系统上,能够正确地识别新接入的外部设备,并按照安全策略对实时阻断被禁用的外部设备使用请求,同时详细地记录违规行为日志信息,使基于Windows Vista操作系统的外部设备的可控性和安全性得到有效的保障。经过测试表明,系统工作稳定可靠,系统性能优良,达到了预期的目标和良好的效果。
下面结合附图和实施例对本发明进一步说明。
图1是本发明的工作原理示意图。
图2是本发明所述过滤驱动方法的流程图。
具体实施例方式
本发明可采用如下方法来实施
(1) 在WDF驱动模型中,设备IRP首先由目标设备对象Fdo接收,经过处理后再提交给下层设备对象去执行。本发明首先根据WDF驱动模型,采用VC或0++等高级编程语言开发USB盘、移动硬盘、光驱、并口设备、串口设备等设备的过滤设备对象Fido,嵌入在目标设备对象Fdo与下层设备对象之间,实现对设备IRP进行安全检查。
(2) 确定不需要被监控的外部设备(如键盘、鼠标器等)和需要监控的外部设备,根据安全策略,设置每个需要监控的外部设备的设备权限标志,如果设备是允许使用的,该设备的设备权限标志为可读写的,如果设备是禁用的,则该该设备的设备权限标志是不可读写的。
(3) 当用户使用计算机上的外部设备时,会触发产生一个相应的IRP。当目标设备对象Fdo接收到该IRP后,不是直接交给下层设备对象,而是先交给相应的过滤设备对象Fido过滤驱动,进行安全检查。
所述的过滤驱动包括以下步骤
1) 接收该设备产生的IRP请求。
2) 通过IRP的主功能码和副功能码来判断是否为需要拦截的IRP请求。如果不是,说明该设备不是被监控的设备,直接将该IRP请求传递给其它分发例程进行正常处理。
3) 如果是需要拦截的IRP请求,则说明该设备是被监控设备,需要査看设备权限标志,判断该设备是否具有操作权限。4) 如果该设备具有操作权限,是允许使用的,则表示安全策略允许该设备执行读
写操作,直接将IRP请求传递给下层设备对象,正常完成该设备的读写操作。
5) 如果该设备不具有操作权限,是禁用的,则表示安全策略禁用该设备,将该IRP请求传递给系统自带的I/O请求完成例程进行结束处理。
6) 1/0请求完成例程首先获得对该IRP请求的控制权,然后将该IRP请求的返回状态设置为完成状态,直接进入结束处理。
过滤驱动是监控代理程序的核心功能,除此之外,监控代理程序还应提供日志记录与上传功能、安全策略下载与更新功能、违规使用报警功能、与控制台的通信功能等辅助功能,可采用丫(3或0++等高级编程语言来开发,使监控代理程序的功能更加完整。
权利要求
1、面向Windows Vista的计算机外部设备安全监控方法,其特征在于包括下述步骤(1)根据WDF驱动模型设定一个过滤设备对象Fido嵌入在目标设备对象Fdo与下层设备对象之间;(2)确定不需要被监控的外部设备和需要监控的外部设备,根据安全策略,设置每个需要监控的外部设备的设备权限标志,如果设备是允许使用的,该设备的设备权限标志为可读写的,如果设备是禁用的,则该该设备的设备权限标志是不可读写的;(3)当目标设备对象Fdo接收到外部设备产生的IRP后,交给相应的过滤设备对象Fido过滤驱动,进行安全检查;所述的过滤驱动包括以下步骤1)接收该设备产生的IRP请求;2)通过IRP的主功能码和副功能码来判断是否为需要拦截的IRP请求;如果不是,直接将该IRP请求传递给其它分发例程进行正常处理;3)如果是需要拦截的IRP请求,查看设备权限标志,判断该设备是否具有操作权限;4)如果该设备具有操作权限,是允许使用的,直接将IRP请求传递给下层设备对象,正常完成该设备的读写操作;5)如果该设备不具有操作权限,是禁用的,将该IRP请求传递给系统自带的I/O请求完成例程进行结束处理;6)I/O请求完成例程首先获得对该IRP请求的控制权,然后将该IRP请求的返回状态设置为完成状态,直接进入结束处理。
2、 根据权利要求1所述的面向Windows Vista的计算机外部设备安全监控方法,其特征在于所述的过滤设备对象Fido,根据外部设备的不同类型,按照WDF模型规定的不同位置嵌入在目标设备对象Fdo与下层设备对象之间,对相应的设备使用行为进行监控。
全文摘要
本发明公开了一种面向Windows Vista的计算机外部设备安全监控方法,根据WDF驱动模型设定一个过滤设备对象Fido嵌入在目标设备对象Fdo与下层设备对象之间;确定不需要被监控的外部设备和需要监控的外部设备,根据安全策略,设置每个需要监控的外部设备的设备权限标志;当目标设备对象Fdo接收到外部设备产生的IRP后,交给相应的过滤设备对象Fido过滤驱动,进行安全检查。本发明不需要调用系统内部功能函数,具有更好的系统兼容性,对系统性能的影响比较小,执行效率高,工作可靠稳定。
文档编号G06F9/48GK101539880SQ200910022088
公开日2009年9月23日 申请日期2009年4月20日 优先权日2009年4月20日
发明者蔡皖东, 赵秋实, 邹敬轩 申请人:西北工业大学