《一种基于蜜罐技术的主机取证系统研究》由会员分享,可在线阅读,更多相关《一种基于蜜罐技术的主机取证系统研究(10页珍藏版)》请在金锄头文库上搜索。
1、 一种基于蜜罐技术的主机取证系统研究 孙国梓,薛磊,李云 (南京邮电大学计算机学院,江苏南京210003)摘要:在对取证需求进行分析的基础上,将蜜罐技术应用于主机取证,设计实现了一个主机取证系统从蜜罐创建、数据传递、行为监视、行为分析等几个方面对系统构建的关键技术进行了详细分析,给出系统实现和测试的结果,验证了方案的可行性。关键词:主机取证;蜜罐;计算机犯罪TP309.2 :A:1671-1122( 2010) 12-0042-04O 引言计算机取证已成为信息安全领域研究的热点,目前的计算机取证大都是静态的,在犯罪事件发生后对目标系统静态分析并获取证据,该取证方式效率低,有效性差且难以保证数据
2、安全。蜜罐技术是一种用于欺骗攻击者的技术,蜜罐是故意让人攻击的目标,可以诱使攻击者前来攻击,由此可以减少对实际系统所造成的安全威胁。攻击者入侵后,可以观察入侵者在蜜罐中所作的一切行为,并把这些行为记录下来形成日志,对其进行研究后,可以分析攻击者所使用的工具、策略及其目的。目前蜜罐技术已被广泛应用于对网络入侵进行检测。在数字取证过程中,按数字证据发生的时间不同,将数字取证分为事后取证和实时取证。随着网络犯罪技术的提高,事后取证已无法适应要求,解决方案是进行实时取证。实时取证,也称动态取证,也即实时获取网络数据并以此分析攻击者的企图和获得攻击者的行为证据。基于蜜罐的数字取证系统是用真实的系统、应用
3、程序、服务和虚假的“敏感”信息来与攻击者进行交互,由此获取入侵者证据的系统,它具有真实性、可控性、高效性和完整性。1 基于蜜罐技术的主机取证体系目前,蜜罐技术已被应用于入侵检测和网络取证,主机方面运用的还比较少。通过分析Windows操作系统中文件的读写机制,对一些针对存储介质上的敏感数据的攻击行为的分析、总结,可以确定基于蜜罐的主机取证体系如图1所示。该体系中,主机系统由真实设备和虚拟设备组成,其中虚拟设备是采用蜜罐技术构建的取证蜜罐。对于入侵者而言,其所能见到的是具有若干“敏感信息”的“事实存在”的系统。当入侵者对上述系统发起攻击或破坏时,事先部署的取证蜜罐可以获取入侵者对系统的相关操作行
4、为。通过对这些行为进行分析、比对、筛选,最终形成一个全面、有效的取证报告。同时,由于该取证蜜罐已经将入侵行为发生后的痕迹进行了有效保存,使得取证报告更具法律效力。蜜罐技术的使用,能构建出具有敏感信息的虚拟设备,该取证蜜罐可以避免入侵行为对真实的设备和信息造成的恶意破坏的同时,可以更好地监视入侵者的行为。2 关键需求分析基于蜜罐技术的主机取证系统是核心层程序与应用层程序相结合的系统,在核心层,要利用设备驱动技术构建虚拟设备形成蜜罐,而在应用层要开发应用程序,简单明了显示所取得的证据。2.1蜜罐选择由于现在大量病毒和木马通过U盘的可移动存储介质进行传播和感染,所以本主机取证系统设计时主要针对可移动
5、磁盘病毒进行取证,也即本文所选择的蜜罐就是通过设备驱动创建的存储有敏感信息的虚拟磁盘。2.2取证技术限于本文的取证环境和取证条件,需要获取的电子证据是病毒、木马等的非法操作行为。为了获取非法行为,必须截获病毒、木马等的非法操作,因此,在取证过程中拟利用全局钩子,对目标进程的创建进程、结束来自W进程、拷贝文件、读写文件、删除文件等操作进行了监控和取证。2.3平台选择Windows XP系统是目前使用最多的操作系统,针对该操作系统的病毒、木马也最多,而且这些病毒、木马等其中很大程度是通过可移动存储介质进行传播的,这类病毒、木马的破坏行为也最为典型,因此,本文选择对Windows XP系统的可移动磁
6、盘进行蜜罐取证。3主机取证系统构建的关键技术3.1蜜罐创建本系统首先要解决虚拟磁盘的问题,目前很多软件都可以虚拟出磁盘,多采用基于内存的方式将内存中的一段空间虚拟为磁盘。由于内存中的数据断电后会自动清除,可疑程序对虚拟磁盘中敏感文件操作后的痕迹也将消失,无法得到有效证据。除此之外,效率问题也是一个不容忽视的问题。图2给出了一种基于虚拟设备的蜜罐构建方案。在虚拟磁盘创建时,首先创建磁盘镜像文件,然后再将磁盘镜像文件虚拟成磁盘,并添加虚拟的敏感信息。该方案在提高效率的同时,可以保证入侵痕迹被正常保存。3.2数据传递主机取证系统最终由四个模块构成,设备驱动模块、全局HOOK(文件过滤)模块、磁盘初始
7、化模块和界面图形化模块,这些模块处于不同的状态,不同的进程中,因此需要设计到用户态与内核态之间的数据传递、不同进程间的数据传递,确保不同模块间的数据准确无误的传递对于系统的高效运行将起到至关重要的作用。1)核态与用户态之间的数据传递。在创建虚拟驱动时,创建虚拟磁盘的数量、磁盘容量、磁盘盘符、镜像文件路径等都需要从用户态得到,因此从用户态向核态发送控制数据就变得格外重要。驱动间信息的传递跟用户态数据的传递是完全不同的,是通过IRP(I/O请求包)实现的。IRP(I/O请求包),在驱动开发里是十分重要的概念,说白了它就是一个数据结构,里面有对应操作需要的数据,比如我们在应用层调用了CreateFi
8、le函数,在驱动层就需要构建一个JRP(IRP_MJ_CREATE),通过这个IRP的处理完成对应操作。在本取证系统中,需要解决常用的IPR类型问题。另外,在调用内核态的API函数处理我们的数据时,大部分的函数也会返回它们的完成状态,也即NTSTATUS,这是用户态下程序所没有用到过的,在本主机取证系统中也需要对此类信息进行处理。2)过滤函数与取证进程之间的数据传递。过滤函数是在全局钩子中的,因此调用过滤函数的进程是所要监视并取证的进程,而不是我们控制的取证进程,但是过滤函数过滤到的可疑数据却要交给取证进程进行处理,因此,需要对不同进程间的数据进行传递。为了提高过滤函数的工作效率,过滤函数采用
9、了发送WM_COPYDATA消息的方式向取证进程传递数据。这是系统定义的用于在进程间传递数据的消息。事实上,直接在消息的参数中传递指针是不行的,因为进程的地址空间是相互隔离的,接收方接收到的仅仅是一个指针的值,不可能接收到指针所指的内容。如果要传递的参数必须由指针来决定,就要使用WM_COPYDATA消息。但是接收方必须认为接收到的数据是只读的,不可以改变lpData指向的数据。如果使用内存镜像文件的话则没有这个限制。所以,我们在接收进程的消息镜像表中添加一个消息映射项:ON_WM_COPYDATA(),然后重载OnCopyData函数即可处理WM_COPYDATA消息,以获得过滤函数传递过来
10、的数据。3.3行为监视要对可疑进程的可疑行为进行监控取证,就必须知道可疑进程进行了哪些操作,因此就要对可疑进程的行为进行过滤。简单的方式就是采用HOOK技术。API函数的挂钩的基本原理如图3所示。进程Process在经虚线调用APIFunction()的过程中,却在不知情的情况下经过了MyFunction()函数的过滤,而MyFunction()就是我们对可疑进程进行过滤的过滤函数。目前,大部分的应用系统对入侵行为的监视都是采用应用层API函数HOOK机制来实现的,即通过对入侵进程所调用的API函数进行过滤来完成对入侵行为的监视。这种方式无疑会影响API函数的调用效率,而且对入侵者的入侵行为的
11、过滤不够全面,很可能造成遗漏。为了解决这个问题,后期利用文件过滤驱动的高效率性和对数据过滤的全面性对入侵行为进行了监视。入侵者对虚拟设备的任何调用都必须经过文件过滤驱动才能将IRP指令发往设备对象。上层应用程序与底层驱动程序通信时,应用程序会发出I/0请求,操作系统将相应的I/O请求转换成相应的IRP,不同的IRP会根据类型被分派到不同的派遣例程中进行处理。由于文件过滤驱动程序只是对IRP进行分析而不改变其内容,因此对入侵行为不构成任何影响,从而保证对入侵行为监视的客观公正性。3.4行为分析在行为监视阶段,获取的行为数据量非常大并且数据是不断更新的,对这些庞大的、变化的数据,取证系统需要解决如
12、何快速有效地从这些数据分析出正常异常数据、提取出与计算机犯罪案件相关的证据。这些行为,主要包括文件信息查询、数据交换、数据读写、数据复制删除等。在已经获取的数据流或信息流中需找、匹配关键词或关键短语,是目前主要的数据分析技术。为了保证从获取的海量数据中得到最有效、最有说服力的证据,我们提出了基于证据链的行为分析模型,将计算机犯罪行为可能所具有的多种特征相结合,对监视到的行为数据分析,从而确定哪些行为是可疑的入侵行为。分析过程如图4所示。上层进程对磁盘数据的所有调用都是通过IRP来实现,因此,系统的过滤驱动会监视到大量的上层应用程度对下层设备驱动的操作数据,但这些操作中可能只有极少数是入侵进程的
13、操作,另外很大一部分是由正常应用层进程的操作。为了使系统的取证效率更高,分析的目标行为更有针对性,需要首先将这大部分的正常操作过滤掉,避免对其进行没有必要的分析,浪费系统资源,降低效率。为此,系统会根据特征数据库对监视到的行为进行过滤。特征数据库是可配置的,其中包含了正常系统调用行为的特征,比如系统进程对文件信息的查询、杀毒软件等对磁盘的扫描等,特征数据库可根据具体的取证环境配置过滤规则,从而保证取证系统在不同的取证环境下都具有较高的针对性和更高的过滤效率。经过行为过滤将正常的操作行为过滤掉后,剩下的操作行为就是我们要分析的目标行为了o经过行为过滤将正常的操作行为过滤掉之后,我们要分析的行为数
14、据量已经大大减少了o由于证据可能是存在于蜜罐系统中的文本文件、图片、音频等各种数据源,因此需要结合多种方式对检测得到的可疑行为进行分析取证。构建的取证知识库中包含于取证相关的特征、特征主题、特征语义、犯罪特征的实例、入侵行为、取证规则和证据与证据之间的关联规则等。分析机根据证据特征和取证知识库得到基于主题语义的特征,然后挖掘引擎从各种数据源中挖掘与非正常操作行为有关的证据,通过模式识别、文本挖掘等先进技术手段从数据源中将涉案证据正确提取、表明属性、抽象特征,并结合证据库对所得证据进行关联,并尝试重构案件。如果整个过程清晰明了´则表明取证过程正确,有解释器对证据和整个过程进行解释,得
15、出证据链;否则,将挖掘结果送往分析机,由分析机来决定是否继续重新挖掘和分析。经过以上步骤后,监视到的非正常操作行为的分析取证工作完毕。4 系统实现和测试在最终实现的系统中对各个模块进行了综合,将取证信息直观有效的现实出来。系统主界面如图5所示。通过系统主界面,可以对系统进行配置,可以让系统打开自动监视,可以让系统启动后最小化运行等。我们可以通过主界面按钮加载磁盘和卸载磁盘,也可以启用文件过滤驱动函数开始监视取证和卸载文件过滤驱动函数停止监视取证,以及一些其他操作。单击选项按钮,可通过选项卡来设置对可疑进程的行为进行取证。通过对上述系统进行测试,可以正常地进行磁盘的加载和卸载,用软件Device
16、Tree打开驱动设备,会发现增加了驱动对象filedisk,并在该驱动对象目录下创建了两个磁盘设备,分别为filedisk0和filediskl。其中filediskl的设备属性为REMOVABLE_MEDIA,而filedisk0却不是,因设计的策略是在驱动程序中建立的filediskl来自wwW.lw5U.coM为可移动磁盘设备,而filedisk0为本地磁盘设备,可见驱动程序实际创建的设备与预期的完全一致。通过对虚拟的移动磁盘或本地磁盘设备进行操作,如在上面新建文件、复制文件、删除文件、创建文件、打开文件、创建进程,结束进程等,来模拟可疑程序的非法操作,可以发现系统能够全部成功检测。结果如图6所示。经测试,上述操作完成的效率,没有明显的变