浅谈计算机安全监控系统技术
2013-06-25肖仕侨
肖仕侨
【摘 要】第三次工业革命带来了信息技术的高速发展,掀起了新时代的革命的高潮。信息技术的发展给信息安全带来了新的挑战,计算机安全监控系统是一种保障信息安全的有效机制。它通过数据采集、分析处理、规则判别、违规阻止和全程记录等手段,对本地或远程计算机中各类信息和用户操作进行保护和监控。本文对文件、文本和用户操作的监控技术做出了简要分析。
【关键词】计算机安全 文件监控 剪贴板监控 用户操作
【中图分类号】TP309 【文献标识码】A 【文章编号】1672-5158(2013)03-0163-01
随着信息技术的发展,计算机在很多领域得到广泛应用,占有极其重要的地位,因此计算机的安全监控问题越来越受到重视。如果计算机系统的安全监控问题得不到解决势必给各领域、各部门的生产生活带来严重影响。
1.计算机安全监控的对象
一般情况下,计算机安全监控的对象可分成两类:信息和操作。其中,信息主要是指系统的文件和文本信息,操作主要是指用户人为产生的操作行为。监控系统要对文件信息的变更,文本信息的复制传播以及人为操作做到及时记录和判别,必要时阻止有威胁的信息的传播。
文件是信息的主要载体。在信息安全领域,计算机安全监控系统会对涉密文件进行保护,对文件的新建、修改、删除等操作进行准确的记录,更有甚者会依据判别规则进行操作干预,防止受保护的文件被非法修改、删除或复制传播;文本是大部分信息的直接表现形式。文本的监控保护主要体现在对文本内容复制的监控并且记录复制的相关信息,阻止敏感信息的非法传播;人为操作因为具有高度不确定性和破坏性等特点,因此可以在记录键盘和鼠标的操作基础上,结合操作对象来判断操作目的和生成信息,以阻止有威胁的操作和信息非法传播。
2.文件变更的监控技术研究
文件变更监控是对目录和文件的新建、修改、重命名和删除等操作进行记录,保存发生变更的时间、位置、类型等信息。监控可以针对整个文件系统,也可以针对指定的存储位置,这对于集中管理安全文件和减少系统开销具有重要意义。
实现文件变更监控的方法有很多,按照实现机制的不同可以分为3个层次:基于 Windows API 的方法,基于拦截系统调用的方法和基于中间层驱动程序的方法。
2.1 基于 Windows API 的方法
Windows 应用程序接口(API)是 Windows 系统提供给用户进行系统编程和外设控制的函数库。其中,与实现文件变更监控相关的 API 函数为ReadDirectoryChangesW。ReadDirectoryChangesW 函数的主要特征是提供了同步和异步两种监控结果的处理方式,该方法最大的特点就是提供了比较完备的文件变更监控处理,功能强大,可以满足大部分文件的变更监控功能。
2.2 基于拦截系统调用(API Hook)的方法
拦截系统调用也称为 Windows应用程序接口挂接技术。它的核心功能就是设法使一个活动进程空间中的一块代码(API)在发生调用时,转向到一段编程者提供的挂接代码中,实现拦截调用的功能。在文件监控系统中,当应用程序需要打开文件时,首先调用用户空间态中的Kerne132.DLL 模块提供的 API 函数CreateFileA,处理相关参数后调用Ntdll.DLL 模块提供的 API函数NtCreateFile。随后,Ntdll.DLL 模块通过一个软中断 INT2Eh 指令进入内核态的处理程序,相应系统调用NtCreateFile。所以,只要把包含监控代码的模块MyAPI.DLL注入到Ntdll.DLL 中,并拦截其中的 NtCreateFile函数,插入 MyAPI.DLL 提供的监控代码,就完成了文件打开操作的监控。
2.3 基于中间层驱动程序的方法
中间层文件设备监控驱动程序处在应用程序和文件设备驱动程序之间,实现文件监控功能。它拦截所有用户程序向内核驱动发出的文件I/O 请求,与监控程序通信完成监控功能。
3.文本复制的监控技术研究
文本的复制在本质上可以归结为 Windows 剪贴板操作。Windows系统是消息驱动的,当剪贴板内容发生变化时,Windows 提供了剪贴板变化消息,因此要实时感知剪贴板内容的变化,关键是监控程序要能响应和处理 Windows 触发的剪贴板变化消息。剪贴板监控的关键技术实现主要分为两个部分:注册/注销剪贴板监控链和响应剪贴板变化消息。
3.1 注册/注销剪贴板监控链
剪贴板监控链(clipboard viewer chain)是一个由剪贴板监控器(clipboard viewer)组成的链表结构,应用程序通过SetClipboardViewer 函数将自己注册成监控器,系统自动将最新的监控器挂接到监控链上。当发生剪贴板事件时,剪贴板消息将在监控链上传递。当应用程序结束或不需要剪贴板消息时,应调用ChangeClipboardChain 函数注销自己的监控器,并自行维护监控链的完整性。
3.2 响应剪贴板变化消息
在监控程序接收到剪贴板变化消息后,进行剪贴板内容的读取,主要通过 Windows 剪贴板 API 来实现。当系统发生复制到剪贴板的操作时,剪贴板中的内容是一组复合数据类型,只需从中提取操作者关心的文件类型和文本类型信息即可。
4.人为操作的监控技术研究
操作者对计算机的操作主要通过键盘和鼠标进行,所以对键盘和鼠标所有动作进行监控就基本上完成了对操作者的直接监控。
4.1 键盘监控
在注册安装 Hook 时,有 3 种类型的 Hook 都可以实现键盘监控,分别是 WH_JOURNALRECORD、WH_KEYBOARD和WH_KEYBOARD_LL。WH_JOURNALRECORD 注册系统日志钩子,它只能对接收到的事件消息进行拷贝处理,类似于快照的功能,并不能改变消息的传递或消息的内容,不利于监控。WH_KEYBOARD 注册键盘钩子,可以实现对键盘操作事件信息的监控,但是它作为独立进程,不能做到全局监控,若要实现全局监控,必须以 DLL 的形式附属于其他进程。WH_KEYBOARD_LL 注册底层键盘钩子 Low Level,能够作为独立进程实现全局键盘监控,同时可以对键盘操作信息进行修改或阻断消息的传递,是一种理想的键盘监控实现方式。
4.2 鼠标监控
鼠标监控与键盘监控类似,使用 WH_MOUSE_LL 注册底层鼠标钩子,在挂钩函数中处理鼠标操作,对鼠标按键、位置等信息进行处理、保存,实现对鼠标操作的监控。函数结束后,可调用 CallNextHookEx 函数继续向后传递消息,或直接返回使消息阻断,实现鼠标的屏蔽功能。
5.结束语
计算机安全监控系统作为保障信息安全的有效屏障,可以实现对本地甚至远程计算机中各类信息和用户操作的保护与监控。通过对文件、文本和用户操作等监控技术的深入研究,可以更好地根据系统需求选用适当的技术方式,提高监控的针对性,确保系统的稳定与高效。
参考文献
[1] Power R. 2002 CSI/FBI Computer Crime and Security Survey[Z]. San Francisco: American Computer Security Institute,2002.
[2] 冯德旺,兰建容,谢纯珀. 基于 windows NT 主机入侵检测系统的文件和进程监控[J]. 计算机系统应用,2001,8(12): 19-22.
[3] 邱建雄,蔡 放,方 逵. Hook 技术及其在软件研发中的应用[J].计算机应用与软件,2003,20(2): 1-3.