论文部分内容阅读
随着计算机技术的快速发展和信息时代的到来,计算机系统的安全日益成为人们关注的焦点。由于蠕虫、木马、病毒、Rootkit、后门程序等恶意代码的出现和发展,计算机系统的安全受到了巨大的威胁。因此,监控、分析恶意代码并消除恶意代码对计算机的威胁便成为计算机安全领域的重要目标。监控技术作为恶意代码分析的基础,可为恶意代码分析提供了重要的信息和数据来源。目前监控技术主要有:虚拟机技术和API挂钩技术。但虚拟机技术和API挂钩技术对于分析、调试恶意代码不够成熟,具有一定的局限性。所以迫切需要开发高效、可靠的恶意代码监控系统。本文首先阐述了该课题的选题背景以及国内外的发展现状,分析了恶意代码的种类及其特点。然后介绍了当前相关的监控技术,进而阐述基于Linux下的恶意代码监控系统。该监控系统的设计思想主要是在Linux内核层位于虚拟文件系统(Virtual Filesystem Switch,VFS)和下层真正文件系统之间来进行监控,基于VFS的原理机制,利用可加载内核模块(Loadable Kernel Module,LKM)技术,通过修改VFS的函数跳转表,截获恶意代码的系统调用,获得所要操作的文件对象,对比恶意代码进程访问权限和重要文件访问权限,拒绝或允许恶意代码进程对文件的操作。该监控系统主要用来监控计算机进程对重要文件操作,同时记录下计算机进程对文件的操作信息,并以日志的形式展示给用户然后加以分析,从而判断出该进程对文件操作是否具有合法性,这样可以有效的保护系统文件。该系统主要包括用户模块、通信模块和监控模块三个子模块。用户模块在用户层提交需要监控的恶意代码进程并记录到相应的进程信息列表之中,此外,用户模块还需要提供监控的重要文件列表并把信息配送到内核层,然后把监控得到的日志信息展示出来;通信模块用来保证用户模块与监控模块之间的数据通信,将用户模块指定的进程和重要文件信息配置传递到监控模块,以及将监控模块得到的日志信息反馈给用户模块;监控模块是该系统的核心模块,是一个可以动态加载到内核层的模块,它被动态的加载到了VFS与下层真正的文件系统之间,用来截获过滤被监控进程对文件操作的信息,具有对恶意代码监控的功能。最后本文详细描述了各个子模块的设计与实现。