Windows日志取证系统设计

来源 :计算机时代 | 被引量 : 0次 | 上传用户:beyondzcy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:日志文件分析是系统安全检测的重要内容,同时日志文件也是计算机取证的重要依据。文章设计了第三方的Windows日志取证系统,并讨论了今后的研究方向。
  关键词:日志文件;网络取证;审计跟踪;IRP
  
  0 引言
  
  当前网络应用非常广泛,网络涉及了各种各样的信息,由此产生各种攻击事件非常多,有些已经构成网络犯罪。我们除了对攻击进行防范外,还要记录下犯罪现场的信息,得到黑客入侵证据,以便分析入侵者的企图和事后追究责任。这需要记录网络状态、系统状态等一系列的数据和信息。整个记录系统中有一个重要的环节是系统日志的获取,但系统中的任何日志文件都可能被入侵者改动过,因此必须要获得原始的系统日志,尤其对于存储了敏感信息的服务器,或者是安全需求大的部门,不仅在系统受到威胁时需要备份出原始的系统日志,平时也需要备份出原始的系统日志。本文就是设计一个基于Windows的用于计算机取证的日志系统。该系统有相对独立的取证计算机,不影响原系统,在实时取证中,不会破坏原始的系统状态,不会惊扰攻击者,可以跟踪攻击过程,以便分析入侵者的企图和攻击技术。有了全面完整的日志,也便于事后的分析和追究责任。
  
  1 取证日志
  
  1.1 Windows日志
  Windows日志的默认存放路径是%SystemRoot%\system32\config\,其中应用日志为AppEvent.Evt,系统日志为SysEvent.Evt,安全日志为SecEvent.Evt。其文件格式为Windows日志文件专用的格式。日志文件中包含了一定的信息,但还有一些信息是在另外的dll文件中。在日志记录结构中,有定长的部分和不定长的部分。定长部分是固定的描述信息,在定长结构的最后就是事件来源信息。不定长部分则是相关的描述信息。在描述信息中有一些插入字符串,如n%的形式,这些插入字符存在相关的dll文件中。
  
  1.2 日志文件的防护
  计算机取证的数据保护的重点是日志保护,它是取证与反取证斗争的焦点。日志文件包含大量敏感的记录,每条记录由时间戳和操作描述组成。普通日志系统非常脆弱,入侵者能轻易读取、修改或删除日志而不留痕迹。安全保存日志的方法有:①将日志“定期”备份到异地的日志主机,缺点是日志易被篡改;②直接打印日志或写入WORM(Write Once Read Multiple)介质,缺点是费用昂贵,不适应大容量日志;③将日志数据“实时”发送到远程的日志主机。攻击者对攻击目标的操作系统的漏洞非常熟悉,但用另一个系统存储日志,作为第三方日志,可以被隔离保护,免受入侵者攻击。第三方存储作为计算机取证的核心技术之一,目前在国内还属于新技术。本文设计的系统功能就是将日志数据“实时”发送到远程的日志主机,作为取证的日志系统。
  
  2 系统设计
  
  2.1 系统拓扑介绍
  把要记录日志的那台机器称为被取证机。我们不能把日志信息记录在被取证机上,因为从原理上来说有被黑客删除的可能。所以要把日志信息传到另一台黑客所不能发现的,但与被取证机连在同一个网络上的机器上,这台机器称为取证机。不同的被取证机上运行的操作系统有多种类型(Windows。Liunx,Unix),本文设被取证机上运行Windows2000(2003)操作系统。日志获取模块在Windows2000(2003)下截获操作系统产生的日志,并通过SSL加密方式传到取证机上。取证机上运行的操作系统是Linux,上面运行接收模块,接收模块把接收到的日志解密,用给定的格式存储,实现了整个系统的日志记录。
  
  2.2 系统结构图


  取证系统的结构。
  2.3 Windows系统模块功能
  在Windows系统上,运行三个模块:日志信息获取模块、日志信息缓存模块、加密认证传输模块。各模块主要功能如下:
  2.3.1日志信息获取模块
  日志信息获取模块是上述三个模块中最重要的部分,它又分为:主引导子模块、过滤器驱动程序子模块、日志获取线程子模块。其中主引导子模块的作用就是启动日志获取线程。
  过滤器驱动子模块:是一个独立的模块,主要进行日志截取处理,利用Windows系统驱动程序的方式来实现。
  Windows系统由好几个部分组成,而且是分层次的,上层的程序运行依靠下层的服务。一般来说,上层的程序运行方式叫用户模式(user Mode),一般的API就是运行在这种模式。在用户模式下,程序只能得到有限的权限使用计算机的资源,很多硬件资源是限制的,不允许访问。这样可防止用户模式程序不经意地,或故意地会造成计算机崩溃的操作,从而保护了计算机。用户模式下的程序运行在3个级别的权限下。处于用户模式下层的是核心模式(Kernel Mode),核心模式下的程序可用任何计算机资源,没有限制,也就是运行在0级权限下。在这种模式下,误操作很容易会引起系统死机。日志获取模块为了更可靠地截取到日志记录,使用了过滤器驱动的方法,驱动运行在核心模式,从而可以在系统底层得到更多的权限,把日志充分地记录下来。
  用户模式对计算机的操作其实是通过向底层即核心模式发送请求实现的。每一个请求被封装成一个包,叫IRP(IJOrequest packet),包里面有操作的相关信息。所以用驱动进行日志截取的原理就是,当对日志文件写入日志信息时,就会有一个IRP发到底层,只要截获了这个IRP,那就能从IRP里面得到写入的信息,也就是说得到日志实时记录信息。而截获IRP的过程是由过滤器驱动实现的。
  过滤器驱动会在启动的时候或适当的时候把自己挂接到硬盘驱动上去,只要挂接成功,对硬盘操作的IRP不再发向硬盘驱动,而是传到了过滤器驱动上,过滤器驱动作相应的处理后再传到硬盘驱动,这就是截获的过程。
  该驱动程序在系统启动时会由日志获取线程子模块中的服务调用,一直驻留在内存中,直到关机或用户让服务停止驱动才停止工作。同一时间系统只运行一个实例,它负责截取指定文件的写入操作,把写入的内容记录下来,并在其它模块的要求下传送截获的内容。
  在这个模块中数据流的变化:日志信息获取模块截获数据并进行格式化,得到格式化的字节流,字节流将组装成日志信息对象及日志信息对象指针。
  日志获取线程子模块:在本系统中日志的获取和传输是通过服务来实现的。将相关功能写成服务,这样更可靠、稳定。为了实现可靠、稳定的目的,共设计了三个眼务。第—个是主要的服务:启动日志获取线程,调用过滤器驱动程序。为防止服务意外终止,又设计了第二个服务,用于保护的服务。这两个服务互相监视,若发现一方停止,另一方会马上启动被停止的一方,这样就能保证服务不会停止。为了方便用户,还设计—个用于停止这两个服务的程序,以便在确实需要停止的时候,可以停止前两个服务。
  
  2.3.2日志信息缓存模块
  日志信息缓存模块的功能是对日志获取模块获得的数据作缓存处理。其中控制功能部分依靠中心控制器来完成,中心控制器检测到当前优先级队列中有缓存的数据,立即查看它所缓存的传输控制对象的指针是否已经初始化,若没有,则先获取传输控制对象,否则进行下一步:利用缓存的指向传输控制对象的指针,进行数据的传输Send。Send函数执行过程中,传输控制对象将对它进行数据的加密、认证等操作,这些操作对于其他对象或者模块而言是透明的。
  
  2.3.3 加密认证传输
  加密认证传输部分主要是获得日志信息缓存模块中的日志信息对象指针,对该指针所指向的数据进行加密、认证并传输。传输以网络bit流方式进行。
  
  2.4 Linux系统模块功能
  Linux一方完成日志信息接收和解密:监听网络数据流,一旦有数据流到达,则进行接收,接收后立即进行数据解密。使用对象缓存的日志信息存储对象的指针,调用相关操作进行日志的存储操作,解析数据接收控制对象的数据,进行正确的日志保存。通过数据接收控制对象得到格式化的字节流,对格式化的字节流,按照Windows的日志格式和规范进行存储,保证数据在Windows平台上的正确格式,产生日志文件。
  
  3 结束语
  
  本系统为了安全、可靠,通过IRP(UO request packet)来获得日志信息,所以对WWW、FTP所产生的Log文件不能截获,因为对这些Log文件的操作不经过Fast I/0及一般的IRP。在下一步的工作中,要实现相关服务所产生的Log文件的获取;另外,将在现有的模型基础上,实现基于Linux操作系统的日志取证,并通过实践进一步完善模型的设计。
其他文献
摘 要:探讨了一种移动设备信息管理系统的设计原理和实现机制。该系统采用PDA硬件平台,在MicrosoftEmbedded Visual C++编程环境下,采用特殊的检索算法,实现了中英文关键字的快速检索,并解決了中文词组检索的诸多难题。  关键词:信息管理;CHM;PDA;检索;编码;内部文件
期刊
摘要:网络课程是教育资源建设和精品课程建设的重要组成部分,是顺利实施现代远程教育教学的关键所在。针对目前存在的网络课程开发环境不完善、资源管理无序化、封闭式低水平重复建设的现状,介绍了Blog(博客)的特点和优势,并将Blog应用于网络课程设计与开发中,说明了Blog在网络教育中的良好发展前景。  关键词:网络课程;Blog;日志;RSS    0 引言    网络课程是按照相应学科的教学目标和教
期刊
摘要:通过模拟海量数据的产生,生成测试数据并进行数据查询、插入,对索引的效率进行分析,给出了Oracle数据库中大数据量下如何合理使用全局索引与分区索引的建议。  关键词:大数据量;索引;效率;分区    0 引言    一些大的应用系统如医保、移动、银行等行业的应用系统,出于节约管理成本、提高数据共享度等方面的考虑,业务数据一般以省为单位集中,数据库中存放的数据量很大(一般为T级),而这类业务系
期刊
摘 要:在P2P(peer—to-peer)网络的大规模应用中,资源查询一直是备受关注的核心问题。文章在对当前P2P网络查询的三种主流模型进行研究和分析的基礎上,通过整合及改进,比较巧妙地设计了一种新型的适用于复杂P2P网络的资源查询模型。  关键词:Napster;Gnutella;Chord;混合式网络
期刊
摘 要:基于定位的服務(LBS)是指为移动设备的用户提供一系列个性化的与位置相关的服务。文章着眼于J2ME技术的应用,开发一项向无线用户提供的增值业务——手机地图,对手机地图实现矢量地图缩放、地理信息等功能进行分析和研究。  关键词:J2ME;LBS;手机定位;矢量地图
期刊
摘 要:分析了UML建模和關系数据库设计的关系;说明了应用UML进行关系数据库设计的优点和基本过程;最后结合实例给出由UML类图映射到关系数据库的基本策略,从而实现对象的持久性存储。面向对象模型和关系模型紧密结合为信息系统的成功开发提供了良好的保障。  关键词:UML;关系数据库;设计;映射
期刊
摘 要:IPv6在智能家居中已有较好的发展和应用,文章着重对智能报警系统的硬件结构和软件流程进行了设计,对IPv6的包头结構进行了分析,并且应用IPv6的数据包结构进行通信,同时指出IPv6在智能社区中具有广泛的应用前景。  关键词:IPv6;智能小区;智能报警系统RS485
期刊
摘 要:通过对一个Windows缓冲区溢出程序的详细调试分析,深入研究了Windows系统中缓冲区溢出的机制和具体流程,指出了缓冲区溢出攻击的基本原理,并提出了防范緩冲区溢出攻击的有效措施。  关键词:缓冲区;溢出;堆栈;ShellCode;漏洞
期刊
摘 要:单点登录(SSO)技术被广泛应用在各个领域的软件系统中,使得用戶只经过一次身份认证便可以访问多处被授权的资源。文章首先介绍了单点登录的概念及解决方案,然后研究了Sun ONE单点登录的原理,最后分析了使用JAAS实现单点登录的过程。  关键词:Sun ONE;单点登录;JAAS
期刊
摘要:数据流具有连续、实时、无限性,同时数据流也是不可预测的,且具有不可重现性,利用传统的数据库管理技术显然不能解决数据流的问题,因此必须进行数据流管理新技术的研究。文章先介绍了数据流管理系统的一般体系结构,然后研究了数据流管理系统TelegraphCQ的开源码,并在此基础上详细阐述了TelegraphcQ的体系结构、数据管理方法和查询处理技术,同时给出了建立TelegraphcQ的详细步骤及使用
期刊