基于文件系统过滤驱动的信息安全防护技术研究(4)
发布时间:2008-10-13 11:10
作者:admin
来源:中国信息安全博士网原创
点击:加载中...次
每个I/O请求,由I/O管理器出发,依次从相应的设备栈的顶部向下传递。每传递一层,系统就调用与当前设备对象关联的驱动程序例程来对请求进行处理。这分层的驱动程序模型,允许一个驱动程序构造一个匿名的设备对象,
每个I/O请求,由I/O管理器出发,依次从相应的设备栈的顶部向下传递。每传递一层,系统就调用与当前设备对象关联的驱动程序例程来对请求进行处理。这分层的驱动程序模型,允许一个驱动程序构造一个匿名的设备对象,并把它附着在另一个设备对象上。I/O管理器在传递IRP到目标设备对象之前,如果有附着的匿名设备对象,它就把IRP首先传递给此匿名设备对象,经过对象的过滤设备驱动程序处理之后才发给真正的目标设备对象。而这个附着的匿名设备对象就是我们说的FiDO(过滤设备对象),与它关联的驱动程序就称为过滤驱动程序。因此,我们可以在文件系统设备对象的上面设置一个过滤驱动程序,这个过滤驱动程序可以首先获得I/O的IRP请求,从而对原始的请求进行预处理、修改和监控,最终达到我们想要的目的。?
?
当前对USB设备控制权限基本上是完全禁止或者完全禁用,防护粒度比较粗,缺少细化控制容易造成主机敏感信息的外流。而基于自定制的文件系统过滤驱动程序,自动挂接操作系统中的全部文件系统驱动程序,可以截获到所有的对文件的操作。在过滤驱动程序中,决定是否允许对USB文件的操作,判断依据就是IRP,其中包含了对所有的I/O请求的描述,从中判断是目标设备类型是否为FILE_REMOVABLE_MEDIA,如果不是则直接放行IRP到下层驱动进行处理;否则向应用程序发送请求,根据设定好的规则来决定是允许放行、禁止操作或者提示用户处理。这样可以实现对U盘的禁用、只读、允许等权限;结合对键盘鼠标以及执行程序的行为特征判断,还可以实现防轮渡
木马窃取主机文件。其主要分派例程为:?
SfCreate(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp),在此函数中定义CheckRuleForFile来判断用户的操作是否符合设置的控制权限。具体流程如图3。
图3USB权限控制流程图