基于Windows API文件存储监控技术

2011-04-23 10:13张凯然
电子科技 2011年7期
关键词:序列号U盘文件夹

尚 瑛,张凯然

(1.中交第二公路工程局有限公司信息技术处,陕西西安 710065;2.西安电子科技大学电子工程学院,陕西西安 710071)

在网络给人们生活带来方便的同时,其安全也成为困扰人们的一个难题。病毒、黑客入侵等,给社会造成了巨大的经济损失。此外,机密文件在生产的过程中经过多个环节,也存在潜在的威胁、干扰或泄漏。因此保障信息存储的安全性成为目前研究的热点。

对于计算机重要信息数据的保护,目前已有学者提出了3层保护体系[1-2]。多家公司也基于操作系统内核设计了软、硬件结合的信息安全产品,具有一定的优势,但价格昂贵。对于某些关系国计民生的数据生产商而言,使用这些产品存在弊端。据权威咨询公司调查指出,超过60%的被调查公司,报告信息的非授权使用和篡改的非法行为时有发生。70%的公司认为,PC计算机信息丢失和被窃取,是造成公司经济损失的主要原因。由此,有必要研制一套利于第三方用户灵活使用的一套体系,实现在内部网络中对机密文件进行有效实时监控。目前常用的文件监控方法,是基于虚拟设备挂接方式的监控[3],这需要在Windows系统内核层编程,实现难度较大,且多个设备挂接,容易造成系统资源浪费。

文中针对数据文件,基于Windows API设计并实现了一种较为通用的文件监控系统,首先针对具体的数据文件类别,引入数字水印技术,确保数据文件的版权或完整性;此外对打开、查询、读/写、删除、重命名文件等操作进行监控和记录,防止未授权用户非法拷贝盗取文件信息。

1 数据安全监控系统

系统设计目标:所有用户均需进行严格的身份验证,系统管理员可根据工作任务不同动态设置终端用户的权限和资源,任何非法用户或未授权用户对涉密文件的访问、外接设备的访问被禁止,系统对用户的所有操作均记录,并对日志进行有效管理。要求该系统的设计模式具有通用性、实用性、易于管理、可维护性好。

通过分析现有技术,设计的数据文件安全监控系统对应的软件模块为:系统管理员模块、数据加密模块、访问控制模块、端口控制模块、U盘监控模块、审计日志模块和系统保护模块,具体功能如下:

(1)数据加密,信息置乱、数字水印是新兴的信息安全技术。信息置乱就是利用一些变换,将数据以其他方式存储,具有一定的加密性;数字水印是在载体数据中嵌入版权信息来表示该数据的版权,或嵌入其他一些信息以确保原文件数据仍保持完整,没有被篡改。现有的文件数据可分成图像数据、矢量图形数据、文本数据和文档数据。针对以上数据的鲁棒水印技术或脆弱、半脆弱水印技术已比较成熟。在保证文件可用的前提下,完全可以引入以上技术来实现数据文件的加密,这样即使文件泄漏,也可保证数据不可直接被窃取者利用,在一定程度上降低损失;而数字水印可以协助追踪信息泄漏的源头。

(2)身份认证,被监控设备用户的身份验证。

(3)访问控制,当用户访问涉密文件时,实时获取其操作信息,并将其传输给用户层,并确认其是否有此权限,并作出相应的响应。

(4)外接存储设备及端口监控,对计算机端口和外接存储设备如光盘、软盘、USB设备等的使用情况进行监控,防止机密信息通过外接存储设备发生泄漏和流失。

2 存储监控系统设计与实现

2.1 信息加密技术

以军用地理信息数据为例,部分地理信息产品以栅格图像的形式存储。它可能受到以下攻击:增大或减小图像的亮度和对比度;为看清图像细节,通常先将图像放大,再缩小到原来尺寸;计算机软、硬件的限制,使海量地理信息图像不可能一次完成,必须进行图像拼接或裁剪。由于地理信息数据具有一定的地理精度和明确的属性特征,一般不进行压缩、加噪、缩小和滤波等操作,会损失图像信息,使地理信息丧失使用价值。为对数据进行加密,首先采用文献[4]算法嵌入水印,然后进行存储。

2.2 基于Window API文件监控实现

文件访问控制模块是监控系统中的核心模块,其保护涉密文件不被随意修改,阻止涉密文件被未经授权的拷贝,并实时监控对涉密文件的其他操作。

Windows操作系统中,文件系统的主要功能是由文件系统驱动程序(File System Driver,FSD)和存储设备驱动程序两部分完成。其中,FSD负责文件管理,应用程序接口通过FSD来创建和存取文件。文件系统按不同的处理功能进行了层次划分,其基本结构如图1所示。

图1 基于NT核心的文件系统结构

这种层次结构,为程序员开发文件系统的特性化功能提供了丰富的接口,既可以在FSD层采用文件系统驱动过滤的方式来开发文件监控系统,又可以在应用程序接口层利用系统提供的Win32 API开发存储监控系统[5]。

要完成存储数据的监控,需要对涉密文件的操作进行拦截,通常采用的方法有:挂钩函数、拦截系统调用和加载文件系统过滤驱动。挂钩函数方式通过在用户模式下挂钩与文件操作相关的API函数来达到监视文件操作的目的;而通过修改系统调用表中提供的接口函数的调用入口,拦截文件操作,需要过滤大量无关信息,造成不必要的系统开销;加载文件系统过滤驱动相对于拦截系统调用方式则更底层,实现不易。基于上述分析,直接利用系统API相关接口实现用户层操作。

该途径利用系统提供的Windows API监视文件及文件夹的改变,针对文件信息状态的变化来执行特定的操作,实现监控存储数据的目的。通过指定被监控文件的后缀,该后缀类型的文件的任何操作都将被监控程序监视和记录,其中非法的操作会被立即禁止。对于指定后缀名的文件,可监视的操作有:新建、删除、修改后缀、拷贝至移动设备等。

当新建、删除文件或文件夹,修改文件名称或后缀时,通过系统提供类CDirectoryChange-Watcher和CDirectoryChangeHandler中的API函数,就能得到有关文件状态改变的系统消息,程序开发人员就可依据需求,为系统消息加入相应的响应处理,实现文件操作的监控。其中,CDirectoryChangeWatcher通过创建一个线程,来监视文件或文件夹,并等待文件或文件夹的改变进而捕获消息,类CDirectoryChangeWatcher的一个对象可同时监视多个文件或文件夹,并能根据需要增加或删减文件夹。当接收到文件或文件夹改变的消息时,类 CDirectoryChange-Watcher利用CDirectoryChangeHandler类把相关消息发送给应用程序。程序开发人员从CDirectoryChangeHandler继承一个子类,处理文件或文件夹改变的消息。

通过上述两个Windows类API函数进行重载,当用户在本机或者移动存储设备上新建、删除、修改或拷贝涉密件时,安全监控系统对具有特殊文件后缀名的涉密文件进行监控,并控制文件进出端口和U盘等移动介质,保护了文件的安全性和隐密性。

2.3 U盘合法性认证

注册表由微软公司引入,其特点有:(1)允许对硬件、系统参数、设备驱动程序等进行跟踪配置。(2)注册表中登录的硬件部分数据支持高版本Windows的即插即用特性。(3)通过注册表可以检查系统的配置和设置,注册表的这些特征为U盘的合法性认证奠定了基础。

笔者根据U盘的惟一性标志对U盘进行识别和分类,达到身份验证的目的。这需要从计算机硬件信息中提取U盘序列号和盘符,并根据序列号的惟一性判断U盘的合法性。U盘序列号的获取步骤如下:首先,根据U盘的系统注册记录读取U盘的相关信息;然后,逐字节分析U盘信息,提取U盘的序列号和盘符;最后,将提取的U盘序列号与监控端允许的合法序列号集合进行比对,实现U盘认证。

U盘如果认证合法,则对U盘进行实时监控;否则强行退出,拒绝对该U盘的任何访问。对于合法U盘,若用户具有涉密文件的拷贝权限,则监控系统允许对涉密文件进行拷贝,同时监控系统会实时记录对U盘的一切操作信息,并写进日志记录文件,以便事后追查,有效保障涉密文件的安全性。

3 结束语

对Windows操作系统中数据文件的安全监控进行了研究,设计并实现了一种基于Win32API的文件监控系统。通过数据加密、用户权限设定、U盘认证、端口控制等技术的利用,在操作系统的应用层实现了用户对文件的创建、删除、拷贝、重命名等操作的监控和处理,有效防止了涉密文件数据非法访问等问题。

[1] 王雷,庄毅,潘龙平.基于强制访问控制的文件安全监控系统的设计与实现[J].计算机应用,2006,26(12):161-164.

[2] 李慧,孙波.网络监控技术的研究与实现[J].计算机工程与设计,2004(8):1302-1304.

[3] 李凡,刘学照,卢安,等.WindowsNT内核下文件系统过滤驱动程序开发[J].华中科技大学学报:自然科学版,2003(1):28-30.

[4] 朱静静,曾平,谢琨.针对栅格地图的快速鲁棒盲水印算法[J].计算机工程,2008,34(1):167-169.

[5] 求是科技.Windows API程序设计参考大全[M].北京:人民邮电出版社,2006.

猜你喜欢
序列号U盘文件夹
一种离线电子钱包交易的双向容错控制方法
采用U盘文件冗余方案实现TSP系统的可靠装载
自动辨认插口方向的U盘
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
recALL
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
挂在墙上的文件夹
不容忽视的空文件夹
U盘“闹肚子”