《一种文件监控的实现方法.pdf》由会员分享,可在线阅读,更多相关《一种文件监控的实现方法.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一种文件监控的实现方法周斌辛阳?山东大学信 息科学与工程学院!?,陈涤#北京邮电大学信息安全中心?%&摘要(本文介绍了)+,)./0系统下的一种通过拦截112 0入口的方 法实现文件监控 的技术,并对其中的驱动程序和应用程序间的通信和同步控制进行了着重阐述。关键词(文件系统3驱动31120 3通信3同步4+?567858+9:;?+7玩+88+2#?187:7力:59 +1 8+88+,+8 8血,1+,+7 8.9 !?3 59+18 9 8+98,8 +8.9:6.9.+,0 8 788+589 +.?%&4.9 9(498知 山 89 97567858+9.9 8组8一5+9)9 9 8
2、589,9 8+9 8.:9 8112 0?!+9,8.+9.6 68,9 8 5 5 58 9 +,.+?9+8七万88+,8.+,667 9+?!.68 7 7+98 89 8,8),.(;781.985(2 831120 35 5画8 9 +(1+让9+,引言目前,随着计算机网络的发展,计算机安全越来越受到人们的重视。由于计算机操作系统主要由文件组成,而用户对系统文件的不当操作或者病毒和木马等恶意程序对文件的感染或破坏,都会对操作系统造成不可预料 的后果,因而对文件系统的保护十分重要。与其他文献主要采用文件过滤驱动技术不同,本文介绍一种基于 1120的文件监控的实现方法,对其中的关键技术
3、做了重点介绍。文件监控的主要手段是采用微软公司的22来开发驱动程序,对文件操作实施监控。对重要的系统文件或者用户的私人文件进行操作时,文件监控系统会提示用户该操作是否是自己的本意,然后根据用户的选择来实现对文件操作的控制,从而有效地保护了文件系统的安全。)+,)./0 4 6调用机制在)+,)./0的体系结构中,应用程序要正常运行,几乎都得调用刃又#4 6函数,图?以)+,).为例解释了)+,)./0系统的46 8 98;78为例,当用户模式的应用程序创建文件时,就会调用)+#4 68 98;78。这时操作系统会到达+,7 7,7 7中的入口点/98 9 878函数,该函数仍在用户模式。然后该
4、函数接着调用系统服务接口,最后由系统服务接口调用内核模式中的服务例程,该例程名称也是/9 8 98;78,此时的/9 8 98;78为内核模式。内核模式的/9 8 9 8;78函数会首先检查传递给它们的参数以保护系统安全或防止用户模式程序非法存取数据,然后创建一个称为,请求包?6”的数据结构,并把这个数据结构送到某个驱动程序的入口点,最终由该 89 8;78的调用中,/9 8 98;78将创建一个!主功能代码为 6=40 的 6消息。应用程序46接口?#46调用基于+9,77,7的本地系统月3务用户模式内核模式系统服务接口下毓赢一一传递 6给驱动程序派遣函数设备驱动程序任4调用%硬件抽象层
5、平台相关操作硬件图 汽+,)./0的妙 89 8;78为例,在内核模式下为/9 8 9 8;78?该函数也称为/9 84 6,经过系统的包装后,在用户模式下的)+#4 68 9 8;78,这样处理的优点是可以防止用户对系统数据的非法访问,这也是/0架构的系统比系统更稳定的原因之一。在通过+9,7 7,7 7接口访 问系统函数时,在系统内部会执行以下语句(58,18 8 87,7 8 8,6+898 0 7 8+9?818 8 87,是传递给系统服务调用 的系统服务号,系统内核使用这个 82 印9 0 78中的对应系统服务信息。在系统服务调度表中的每一项包含了一个指向系统服务程序的指针。因此我们
6、可以通过拦截并修改这个指针使其指向我们自定义的系统服务的地址函数,然后在该函数中对该操作进行一些必要的处理来达到文件保护和访 问控制 的目的。经过研究,我们发现为了保证日常的计算机操作安全,我们只需要对以下#个/9 84 6 8 98;78,文件创建、文件打开等操作会调用到该函数,但是创建以外的其他操作不是我们所关自的,我们暂不处理3监控文件的创建只需要当/9 8 98;7 78的 8 982.7 +参数值为一 月陀、6/)8;或者 一 5 9+;78,文件 的 删 除和重命名等。在/9.897+:5 99 +函数的 参数中,由;787刊_ 59+7.可以判断操作类型(当为删除操作时,该参数为
7、;788+587+:59 +,当为重命名操作时,该参数为;782.9+7+:59+。#/9认叭9 8;78,文件写或者修改操作。!&实现及关键技术前面我们对文件监控 的原理以及需要监控 的”进行了阐述,图 是文件监控的具体的实现流程。文件监控涉及到了操作系统内核,通常情况下需要开发2 2驱动程序,而驱动程序需要加载、卸载、与用户交互,这需要使用 环境下开发界面应用程序。驱动程序的开发流程在此不详述,这里主要解决 个关键问题,如何拦截112 0表 的入口以及驱动与应用程序间的通信问题。应应用程序调用用 +#46 :函数来进行的。在调用该函数之前,需要在驱动程序和应用程序之间建立一种命令的对应关系
8、。首先需要在驱动程序和应用程序的头文件 中加入同样的02宏,格式如下(,8:+8 776即772?;五 2、/场叹,:来通知驱动执行该命令,函数原型详见=12/,函数引用可见下文关于同步的介绍。驱动接下来会响应叨七 2宏,响应函数应在班6如一7,8(.9 3刀堆栈区域存储了用户缓冲区信息67.9 二 8+97.987习8 9+?67 (8+9 7,867 619 一6 5898 .288 8 77,8(!&!算机系统的智能保护,具有很大的研究价值和实用价值。参考文献【?白798+8,6+7且98=8.:9+,).2 8=,87,=.:,#【?翟洪涛,)/加 驱动程序设计,驱动开发网,?【#张之
9、勇等,五+,)./0文件系统实时监控的实现,计算机应用,第%卷,%年&月,%#一%!【?李民等,文件过滤驱动及应用,信息与电子工程,第#卷 第期,!年?月,压 【!?8 7+,+,58.78,9 79.(18 9+98+,).8+87,4,.+七.78 6:8.+7,7 ,!作者简介周斌,男,?年生,山东烟台人,山东大学通信与信息系统专业硕士研究生,主要研究方向为计算机网络安全、传感器网络时间同步等。辛阳,男,?%年生,山东海阳人,工学博士,北京邮电大学讲师,主要研究方向为计算机网络与信息安全等。陈涤,男,?&?年生,山东曹县人,工学博士,山东大学信息科学与工程学院教授,主要研究领域(嵌入式系统理论、技术与应用3计算机自动测试与监控系统3网络环境下分布式数据采集、传输与信息处理3通信网流量工程与.等。联系方式(山东省济南市山大南路%号信息科学与工程学院 !研!?联系人(周斌手机(?#%?电子邮箱(+?回? 5!&%
限制150内