简易文件审计工具的设计与实现 第9页
第四章 运用层程序设计
4.1模块划分
文件审计工具的最终目的是能够截获计算机中的所有文件操作动作,并且能够对所有的动作根据已经设定好的规则进行鉴别,然后根据鉴别的结果做出响应,产生日志并提供日志的管理功能。
从审计工具的功能来看,我们很容易能够对整个工具划分出几个模块:事件产生模块,事件鉴别模块,日志管理模块,用户交互模块(如图4.1)。
图 4.1 模块方框图
文件过滤驱动监控文件系统的I/O操作,产生操作事件。而事件鉴别模块与文件过滤驱动进行交互,得到产生的事件(原理请参考3.2.3小节),然后由事件产生日志,交给日志管理器和用户交互界面。日志管理器根据不同日志将日志保存到相应的日志文件,而且提供了搜索功能。日志管理器将日志交给用户交互模块,用于显示。用户交互界面会提供给用户一些操作方式,进行显示,控制驱动,配置规则等功能。
4.2 事件鉴别模块
4.2.1 配置文件
一、所包含的配置文件
事件鉴别模块中不可缺少的一项内容是定义鉴别规则。在工具的实现过程中,事件鉴别规则是一配置文件的形式存在的。规则与文件的映射关系是这样的:一条鉴别规则对应一个配置文件,配置文件名称体现了所做的规则,而文件的内容其实是一个集合,它可以使符合规则的集合,也可以是不符合规则的集合,这里我们称它为“白名单”和“黑名单”。目前,工具的配置文件如下:
安全进程文件,即SaveProcess文件。
记录安全的进程,与事件中的进程进行比较。如果命中,相应位设为0,反之设为1。
受保护文件路径文件,即ProtectedPath文件。
记录受保护的路径,与事件中的操作对象路径进行比较。如果命中,相应位设为1,反之设为0。
受保护文件类型文件,即ProtectedFileType文件。
记录受保护的文件类型,与事件中的操作对象类型进行比较。如果命中,相应位设为1,反之设为0。
受保护操作类型文件,即EventType文件。
受保护的记录操作的类型,如果命中,相应位设为1,反之设为0。
二、配置文件格式
如上所述,一个配置文件对应一条鉴别规则,文件中包含了匹配条目。而这些条目在鉴别过程中会进行一一的匹配。所以我们对文件的格式进行定义。现在,所有的配置文件都为文本文件,文件中的各个匹配条目之间用“回车换行(即0x0A, 0x0D)”分隔开。例如,ProtectedFileType配置文件可以这么设定:
图4.2 ProtectedFileType 配置文件摘录
上图中表示了对doc、dll、exe等文件类型设定了保护。则以后有任何对这些文件类型的操作,文件审计工具都会做出警告,并设定风险度。
4.2.2 鉴别规则
事件的鉴别过程就是按照所定义的规则顺序进行的,然后根据配置文件中的信息进行鉴别,返回鉴别结果。所有规则都鉴别结束后鉴别完成,得到最终的鉴别结果。下面我们分项说明:
返回值
经过鉴别后返回一个DWORD Result。该值的大小表示事件的风险度的大小。
返回值
按重要程度由低到高的顺序与各个规则进行比较,各个比较结束后会设置Result的对应的位。最终得到的Result值即为该事件的风险度。
决策
根据Result的结果,做出是否警告决策。
4.2.3 具体实现毕业论文
http://www.751com.cn/ 论文网
http://www.751com.cn/ 事件鉴别功能的最终目的是根据所设定的规则对访问文件动作进行鉴别并得到动作的风险值。所以该模块必须提供两个功能:获取事件和事件处理。两者的关系如图 所示:
图4.3 鉴别模块设计图
一、获取事件功能
由GetLogRecords函数实现。该函数是运用程序和驱动程序的接口,他提供给RetrieveLogRecords函数调用。用于得到文件系统的I/O操作,并且按照一定的格式产生事件字符串,提供给调用者。
二、事件处理功能
由RetrieveLogRecords函数实现。该函数是线程函数,为线程的实体[5],它包含一个循环体进行事件的获取,鉴别操作。也就是说,该函数是工具的一个核心部分,如果这个线程终止,其他的功能将无从谈起。下面我们大致说一下该函数的实现过程:
进入循环,获取事件信息后。首先调用LogFilterCheck函数,进行显示过滤。接着调用LogAudit函数进行事件的鉴别,得到鉴别结果。而LogFilterCheck和LogAudit函数则是根据配置信息进行相应的处理,这里我们不必过于深入,先避免进入一些琐碎的细节处理。
图4.4 事件鉴别流程图
4.3 日志管理模块
4.3.1 设计
一、功能概述
审计工具的日志由鉴别模块产生,然而日志的管理由日志管理模块来完成。对日志的管理一般包括存储和查询。管理模块的最终目的是给用户交互模块提供调用接口。接口包括日志的存储、日志的读取、日志的搜索。下面我们将会对这三个接口进行详细的说明。
二、日志格式
审计工具的日志最终保存为文本文件,对于每个进程有一个日志文件,文件中包含了该进程日志条目。每一条日志条目记录了每一处的文件操作。为了方便处理,工具定义了日志的格式。格式定义如下:
其中,每条日志以“[”开始,以“]”结束。每条日志包含进程名、操作类型和操作对象。例如,进程QQ.exe进程所产生的一条日志将被保存在QQ.exe.log文件中,摘录一条日志条目如下:
从该条日志中,我们得知,QQ.exe在12时59分53秒515毫秒时对文件
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9]
简易文件审计工具的设计与实现 第9页下载如图片无法显示或论文不完整,请联系qq752018766