朱亚东
ZHU Ya-dong
(江苏联合职业技术学院 南京工程分院,南京 210035)
电子证据是计算机取证技术的核心,计算机取证的过程主要就是围绕电子证据的保护、获取、传输和存储工作开展的。与传统证据一样,电子证据必须是:可信的、准确的、完整的、符合法律法规的,即可为法庭所接受的。另外,根据计算机犯罪年度报告显示,病毒和内部职员成为计算机安全的最大威胁。并且内部职员的威胁正在持续扩大,其危害程度也在不断加强。内部职员是内部网络的合法使用者,不同的内部职员拥有不同的权限,很难管理,防火墙对内部职员没有作用,入侵检测也经常发现不了问题。有些计算机犯罪活动并不需要很高的权限[1,2]。
鉴于事后取证的缺陷以及内部职员的安全威胁,在可能发生网络安全事故或者需要高安全保护的环境进行监控将是十分必要的。动态取证是计算机取证技术的一个发展趋势。在这一背景下,本文设计了一个网络动态取证系统,该系统的基本思路是:确定可能发生网络安全事故或者需要高安全保护的环境(主机或网络);为计算机现场环境建模,即为现场活动的主体(用户、操作系统、设备)设置监控Agent,进行实时监控,最大限度获取真实地、完整地数据,并建立系统事件日志数据库,把现场获取的数据发送到远程安全数据服务器加以妥善保存。在计算机犯罪案件发生后,取证调查人员可以通过记录在数据库中系统事件数据对犯罪现场模拟重现,进行取证分析工作,提交分析结果,保证计算机犯罪案件诉讼过程顺利进行。
系统的设计目标是实现一个网络取证系统,该系统能够自动、动态收集网络和主机的证据,并对能够证据进行保护、存储、分析。具体来讲,系统的目标包括:动态监控主机活动,获取事件数据并加以保护,存储到远程服务器;动态监控网络数据,保存网络数据包数据;提供一个管理平台来配置和管理系统的取证和监控过程提供一个分析平台来辅助分析获取的证据,提供分析报告[3]。
出系统的设计目标可以直接导出系统主要功能包括四个方面,即主机取证,网络取证,取证中心管理,取证分析。鉴于这四个方面在功能上相对独立而在网络物理环境下处在不同的位置,因此每一个方面可以设计成一个独立的子系统。各个子系统具体功能说明如下:
主机取证子系统主要功能:实时监控被取证主机的行为,记录用户、系统,应用程序的重要状态和行为。系统启动时,具有向取证管理子系统登记注册的职责。在运行过程中接受取证管理予系统的控制,包括锁定,重启,关闭,更新等操作。
目前系统已经确定的事件监控类别有如下十二种[4]:1)监控CPU和Memory的使用状态;2)监控操作系统R志文件,包括系统日志、安全审计日志、应用程序日志;3)监控系统的注册表使用情况,包括注册表的创建、打开、修改,删除操作,可以根据需要进行过滤;4)监控文件系统的详细使用情况,包括文件及目录的创建、打开、修改、删除操作,也包括文件及目录属性的修改;5)监控文件系统的一般使用情况,包括文件创建,修改,删除,但不能确定是哪个进程操作该文件;6)监控系统的端口使用情况,包括TCP和uDP端口;7)监控系统进程的创建与销毁;8)监控用户的键盘使用记录:9)监控用户的登陆和退出时间;10)监控用户的打开和关闭的窗口;11)监控用户的命令记录;12)监控用户的www访问同志。
网络取证子系统的主要功能:完整地、真实记录网络中数据包,对每个数据包按协议栈进行解析,目前系统能够对Ethernet,IP,ARP,RARP,ICMP,IGMP,TcP,UDP以及部分应用层协议的解析。能够按定义过滤规则,实现对数据包的底层过取证管理子系统的控制,包括锁定,重启,关闭,更新等操作。
取证管理子系统主要配置系统信息,管理和控制其他子系统来完成取证任务。具体包括如下功能:1)管理取证Agent及系统监控事件列表,包括加入,删除豁控操作;2)管理系统管理员的添加,修改,删除操作;3)管理被取证主机的添加,修改,删除操作;4)实施对被取证主机的更新,关闭,重启,锁定操作,包括对被取证主机上取证Agent的信息更新;5)与网络取证Agent的配合,对过滤规则列表的添加,删除,修改管理;6)查询管理员登陆,主机登陆,系统目志记录;7)管理取证分析员的添加、修改和删除操作。
取证分析子系统在获取证据后,对证掘进行分析,最终提交分析结果。它的主要功能有:
1)提供丰富的查询和过滤功能,基于内容,关键字,过滤规则等;2)提供现场重现功能,能够对网络数据进行动态现场重现和对主机数据进行静态模拟;3)提供统计分析功能;4)提供数据挖掘功能,支持关联分析和序列分析;5)能够自动进行周期性审计,检测可疑数据,提供报告。
本文系统的核心工作就是要实旎对计算机犯罪现场的连续监控,从现场获取有用数据,并安全存储到远程服务器。计算机现场环境可以描述为多个对象及其相互之间的交互行为。如下图3.1所示,原始的计算机现场环境模型可以描述为用户、操作系统、系统设备和应用程序等多个对象之间的交互场景。在计算机犯罪现场,用户通过操作系统来使用计算机资源,比如操作设备,运行特定的应用程序,与外界进行通讯和资源共享。用户在使用操作系统时,会以各种方式计算机发出请求处理的动作。操作系统在运行的过程,会做出响应用户、设备、应用请求的动作,同时为了保证系统的正常运行,操作系统本身也会做出一些例行工作。应用程序为了响应用户或者操作系统的控制、请求,也会执行一些动作。这些动作的发生,采用事件来表示。一个对象的活动日志记录,就是由事件发生的时间、地点和内容来表示。通过记录这些对象的事件来达到实现对计算机现场环境进行监控取证的目的。
Agent技术的一个重要应用场合就是用于在分布式网络环境下的信息收集和信息监控。本文的系统正是实现在分布式网络环境下的信息监控与收集,并且用Agent来分析和设计系统,能够使问题得到简化,因为这种方式的建模比面向对象的分析和设计更直接的反映现实世界的实体及其它们的关系,它不但抽象出实体的特性、动作,还有感觉、心智、承诺等。这样从现实出发,更加容易将系统分解成以Agent为单位的灵活、强交互的系统。通过为计算机现场环境中的每类对象设置取证Agent来实现计算机犯罪环境的动态获取。
从对系统环境的分析,采用Agent来构建系统能够更真实的反映系统环境,系统的构架也更清晰。Gaia K.Kinney等人于2000年提出的基于Agent的系统分析与设计方法。该方法提供了一条系统化的道路让用户能够从需求开始分析,最终得出足够具体的设计方案。因此本文选择Gaia方法来进行系统分析,其步骤如下:
1)识别系统中的角色,输出原始的角色模型。
通过系统的需求分析,可以发现如下角色:主机取证协调者,系统日志文件监控器,注册表监控器,系统状态监控器,系统端口监控器,系统进程监控器,用户键盘监控器,用户登录监控器,用户窗口监控器,文件系统监控器,用户网页浏览监控器,用户命令监控器,应用程序监控器,数据收集器,数据发送者,网络取证协调者,数据包捕获器,协议分析和过滤器,数据包存储者,中心管理者,中心管理界面,取证分析者,取证分析界面。
2)识别角色之间的协议(角色之间的交互),输出交互模型。
协议定义角色之间交互的方法,协议的定义如下六个属性:(1)目的,关于交互的本质的简单概括:(2)交互发起者,发起交互的角色;(3)交互响应者,发起者的交互角色;(4)输入:(5)输出;(6)处理:简单描述发起者在本次交互过程中的执行动作。
由于系统角色之间的协议较多,在这里仅以主机取证协调者与中心管理者的交互为例。由主机取证协调者向中心管理者发出注册确认,登陆,退出等请求。
3)以交互模型为基础,细化角色模型的内容。
在角色模型中,每个角色的内容包括角色名,描述,协议和活动,允许,责任这个五个方面。描述是对角色职能的简单说明。协议表示与系统中其他角色的交互,活动是与角色相关的计算。允许表示角色拥有的权利。责任表明角色的功能,它包括生存属性和安全属性。生存特性描述了在给定的环境条件下,角色必须实现的事件的状态。安全特性表明可接收的事件状态在执行过程中保持不变。
4)重复迭代(1),(2),(3),最终完成系统的分析工作。
本文使用Agent来分析和设计系统,但最终依然采用面向对象的程序设计语言来实现系统。事实上面向Agent的分析和设计方法主要是针对系统的接口层以及业务逻辑层。由于系统本身的复杂性,又要保证系统具有一定的扩展能力,因此系统的体系结构仍然需要精心的设计。系统的结构分为两个层次。
第一个层次是采用分而治之的策略,把复杂问题分解几个次复杂的问题。系统按各自的功能划分为四个子系统,分别为:主机取证子系统,网络取证子系统,取证管理子系统,取证分析子系统。
第二个层次是各个子系统各系统采用多层体系架构,分为表示层、领域层、服务层、存储层四个层次。各个层次用包来组织,保证系统的高度模块化,结构清晰。以主机取证子系统的高层体系结构图为例。其中表示层定义系统的输入输出接口,用于接收和显示外部系统的信息,包括外部系统消息、用户输入、系统输出等,领域层定义了系统的主要功能和任务,主机取证子系统的领域层包含一组Agem,通过Agent的合作来完成证据获取和存储任务。服务层提供了系统安全、网络通讯、数据库访问等基础服务。存储层负责系统数据的持久化存储功能。
系统在被监控主机收集到证据后,必须向远程安全数据服务器发送证据,证据在传输的过程中必须确保的完整性,同时系统的关键数据也必须经过加密后才能传输。而传统TCP/IP协议并能保证一点,TCP/IP协议在一开始设计时就没有考虑安全问题,在通讯过程,数据报的字段时可以被伪造和修改。因此,必须引入加密协议来支持系统安全通讯的需求。
SQL Server2000支持SSL加密传输。可以通过同时配置服务器网络实用工具和客户端网络实用工具启用加密协议传输选项来达到保护证据传输安全的目的。当然,SQL server 2000必须获得公共证书颁发机构证书而且相应的客户端应用程序也必须有一个从同一证书颁发机构取得的根CA证书。
要实现时间安全性,需要周期性对时间进行同步。时问同步是指网络各个节点时钟以及通过网络连接的各个应用界面的时钟的时刻和时间间隔与协调世界时(UTC)同步,最起码在全国范围内要和北京时间同步。时间同步网络是保证时问同步的基础,构成时间同步网络可以采取有线方式,也可以采取无线方式。本文要实现局域网网络时间同步属于有线方式。在局域网中通常采用NTP协议来实现局域网内时间同步。NTP协议是基于客户机/服务器的计算模式。客户机以传统的c/s方式,周期性地向服务器请求时间信息,客户机首先向服务器发送一个NTP包,其中包含了该数据包离开客户机时的时间戳T1,当服务器收到该包时,将填入包到达时问的时间戳T2,然后对本数据包进行处理,对调源1P、目标IP,处理完后填入包离开的时间戳T3,立即把数据包返回给客户机。客户收到服务器来的数据包后又填入包到达客户机的时间戳。
由于网络时间同步对于计算机取证的重要意义,因此本文在取证管理子系统专门开发了一个时间同步服务器,在其他被取证主机开发了时问同步客户端,以支持网络时间同步的需求。
在电脑网络犯罪手段与网络安全防御技术不断升级的形势下,单靠网络安全技术打击计算机犯罪不可能非常有效,因此需要发挥社会和法律的强大威力来对付网络犯罪,计算机取证正是在这种形势下产生和发展的,它标志着网络安全防御理论的成熟。本文对于电子证据的获取,保存、分析方面进行了探讨和分析,提出在网络环境中进行动态监控和取证的思路,并给出了一个网络耿证系统的设计方案,讨论并解决了系统设计过程中出现的关键技术问题。
[1] 杜淑光, 陈永浩. 网络安全与防火墙技术[J]. 制造业自动化, 2007, 29(12).
[2] 王丹, 蔡皖东, 蔡俊朝. 分布式网络行为审计系统设计与实现[J]. 微电子学与计算机, 2008, 25(5).
[3] 鄢喜爱, 杨金民, 常卫东. 基于蜜罐技术的计算机动态取证系统研究[J]. 微电子学与计算机, 2010, 27(1).
[4] 陈龙, 李鹏. 一种基于完整性指示码的电子证据分散存储改进方法[J]. 计算机工程与科学, 2010, 32(11).