一种云取证中间件系统的设计
2018-10-19杨子祺杨淑棉王连海
杨子祺 ,杨淑棉,王连海
(1.山东师范大学信息科学与工程学院, 山东 济南 250358;2. 齐鲁工业大学(山东省科学院),山东省计算中心(国家超级计算济南中心),山东省计算机网络重点实验室,山东 济南 250014)
一种云取证中间件系统的设计
杨子祺1,杨淑棉2*,王连海2
(1.山东师范大学信息科学与工程学院, 山东 济南 250358;2. 齐鲁工业大学(山东省科学院),山东省计算中心(国家超级计算济南中心),山东省计算机网络重点实验室,山东 济南 250014)
摘要:云计算的快速发展在产生巨大的经济效益的同时,也带来了计算机犯罪问题。针对如何从云中全面、便利地获取到可信、完整的数字证据,提出了一种云取证中间件的设计方法。该方法主要包括远程控制端证据再现、服务端证据分析和监控管理、客户端内存获取和分析3个部分。该设计比传统在线取证方法更符合传统物证技术的要求,提高了取证人员的工作效率和证据的可信度。在Windows 10系统(客户端)和Centos7.0(服务端)系统上的验证结果表明,该设计是有效和可靠的。
关键词:云取证;中间件;物理内存;远程控制
中图分类号:TP393
文献标识码:A
文章编号:1002-4026(2018)05-0115-06
DOI:10.3976/j.issn.1002-4026.2018.05.018
收稿日期:2018-05-17
基金项目:山东省自然科学基金(ZR2016YL011)
作者简介:杨子祺(1999—),女,研究方向为软件研究和开发。
*通信作者。E-mail:yangshm@sdas.org
Designofacloudforensicsmiddlewaresystem
YANG Zi-qi1, YANG Shu-mian2*, WANG Lian-hai2
(1.School of Information Science &Engineering, Shandong Normal University, Jinan 250358, China; 2 Shandong Provincial Key Laboratory of Computer Networks,Shandong Computer Science Center ( National Supercomputer Center in Jinan ),Qilu University of Technology (Shandong Academy of Sciences) , Jinan 250014, China)
Abstract∶The rapid development of cloud computing not only has brought huge economic benefits, but also has brought the issue of computer related crimes. In this paper, a design method of cloud forensics middleware was proposed to obtain credible and complete digital evidence from the cloud in a comprehensive and convenient manner. The design method mainly included three parts: remote control end proofs, server-side evidence analysis and monitoring management, and client-side memory acquisition and analysis. Compared with the traditional online forensics methods, this method was more in line with the requirements of traditional physical evidence technology, greatly improving the efficiency of the forensic staff and the credibility of the evidence. The method has been verified on Windows 10 (the client) and Centos 7.0 (the server) and was proved to be effective and reliable.
Key words∶cloud forensics; middleware; physical memory; remote control
云计算、通讯技术和计算机技术快速的发展不仅产生了巨大的经济效益和更多的便利,同时也带来了计算机犯罪问题,越来越多的恶意攻击正在利用云计算、网络实施,云取证是打击网络犯罪最主要的手段。由于云具有不同的部署和服务模式,增加了事件应急响应和数字取证的难度,因此如何从云中获取完整可靠的证据数据是当前云取证研究的难点问题[1]。
此外,随着云计算用户的增加,取证案件数量也逐年增加,但是取证人员的数量却很有限,无法及时到现场进行取证,而且每个案件会有不同的取证方法,甚至一个案件需要多种分析方法,取证人员紧靠自身的个人经验进行取证效率低下,很难进行全方面的取证工作[2]。
基于以上问题,国内外专家针对取出来的数据是否可信、完整,也给出了很多的解决办法。谢亚龙等[3]提出了一种基础设施即服务(IaaS)云模型下的取证框架ICFF,王连海[4]提出基于物理内存分析的在线取证模型及方法研究,解决了传统在线取证方式存在的问题,使在线证据的可信性成为可能;郭牧等[5]提出了基于KPCR结构的Windows系统物理内存分析方法;杨淑棉等[6]提出了一种基于物理内存分析的远程取证系统,这些都在证据的可信性方面提出了解决方案。
针对目前云计算中取证工具的缺失,邓晔[7]研究了从视频监控中间件到云计算中间件,介绍了中间件的产生背景、中间件的作用;裴忠一[8]提出了基于云中间件的VPN系统设计与实现;罗高博[9]提出了健康管理云平台的设计与实现;李光宇等[10]提出了基于C/S模型的OPC客户端实现远程监控;刘艳等[11]提出基于公有云平台进行信息交互的智能控制系统;崔竞松等[12]提出基于KVM虚拟桌面的透明消息通道设计。以上这些都在云中间件设计方面提出了一定的解决方案,但是都是传输的传统类型的数据,并不能保证传输的证据是可信的、完整的。
本文基于以上证据的可信、完整问题,设计了一种云取证中间件,能对云计算环境中的服务器、个人电脑和智能终端等大量计算设备的物理内存进行取证分析,一方面,对物理内存进行镜像并对内存镜像文件进行hash计算,保证证据的真实性;另一方面针对镜像的内存文件进行分析,并应用base64编码后传输内存分析结果及其镜像的物理内存文件。其核心组成包括客户端内存获取与分析软件、服务端证据分析与监控管理、远程控制服务软件。
1 设计方法
本文设计的取证系统通过远程管理服务的模式收集客户端信息,服务端能远程获取客户端的物理内存镜像文件、物理内存分析结果和客户端的日志信息,并提供检索物理内存分析结果和并行分析内存的功能,从内存分析结果中获取到有价值的信息,能够帮助司法人员在海量内存分析结果中发现所需要的证据,大大提高工作效率。系统主要包括3部分:远程控制端、服务端和客户端。
1.1 远程控制管理
主要连接服务端,根据服务端的需求来获取客户端的信息,并对客户端的日志信息进行展示,日志信息主要包括客户端的IP地址、端口、传输的镜像文件名、内存分析文件结果和对应的md5值。另外还有检索的功能,用户想搜索某个关键词,则可以通过检索获取到客户端的内存镜像分析结果。并且提供导出功能,可以把任何一条或者所有的检索结果和内存分析结果导出,便于取证人员进一步分析。远程控制端功能如图1所示。
图1 远程控制端流程图Fig.1 The flow chart of remote control terminal
远程控制端包括5大模块:新建案例、通讯模块、日志管理模块、关键文件检索模块、 并行分析模块。关键模块主要设计如下:
通讯模块使用TCP协议进行连接,双方开始认证,认证通过后,双方建立连接,进行通讯。日志管理模块主要是通过分析Windows日志包括应用程序日志、安全日志、系统日志,并对一条日志中的关键字进行提取分析,主要关键字段是日志名称、来源、记录时间、时间ID、用户、关键字、详细信息等;内存分析结果展示部分可以完成对hadoop hive中的结果进行检索,将符合条件的信息显示在列表框中。如表table选项,包括basicinfo,process,driver,net,registry,syslog,hookinfo,winlogon8个表格。其中每个表格对应各自的主键,basicinfo表中关键字段ClientIP、MemoryTime、registerowner、productname、systemname;process表中关键字段:ClientIP、MemoryTime、name、pid;driver表中关键字段:ClientIP、MemoryTime、 name;net表:ClientIP、MemoryTime、remoteaddress;Registry表:ClientIP、MemoryTime、 name、 type;syslog表:ClientIP、MemoryTime、systemloginfo;hookinfo表:ClientIP、MemoryTime、processname、processPID;winlogon表:ClientIP、MemoryTime、username、rid。
1.2 服务端
服务端开启多线程,同时侦听多个客户端,若有客户端连接请求,则向客户端发送不同的固定字符串“INF#PhysicalMemoryString#”,客户端根据收到的字符串向服务端传输不同的信息,主要收集客户端的物理内存镜像文件和对应的镜像文件分析结果,由于开启了多线程,能同时收集若干个客户端的物理内存镜像文件和内存分析结果信息,并将内存分析结果存储到hadoop hive数据库;同时与远程建立连接,根据远程客户端的需求,向远程发送客户端的日志信息,并能根据远程控制端的检索条件,从hadoop hive数据库中查找符合条件的检索信息,发送到远程控制端在列表中显示。服务端功能如图2所示:
图2 服务端功能流程图Fig.2 Functional flow chart of server side
服务端存储到hive数据库:根据收到的不同字段,使用hive -e " load data local inpath ‘表名’into table 表名向数据库中插入数据。
并行分析:根据远程控制端的需要,服务端开启多线程,同时处理多个物理内存镜像文件的分析。
1.3 客户端(智能终端和客户终端)
与服务端建立连接,首先判断系统版本,根据系统版本的不同选择不同的镜像物理内存的方法,并把镜像文件存储到本地进行分析,并做hash值计算,通过验证hash值验证发送的物理内存镜像文件没有被篡改,然后调用基于KPCR的物理内存分析行程序分析内存镜像文件,并将内存分析结果和物理内存镜像文件一起传送到服务端,内存分析结果写到hadoop数据仓库。客户端部分数据收集分析处理流程如图3所示。
图3 客户端工作流程Fig.3 The flow chart of client
1.3.1 加载镜像文件获取的驱动方法
系统若是64位操作系统,加载驱动的方法:SCMLoadDeviceDriver(str.GetBuffer(str.GetLength()),"64BitMemDump");否则:SCMLoadDeviceDriver(str.GetBuffer(str.GetLength()),"32BitMemDump"),64BitMemDump、32BitMemDump分别为不同版本系统下获取物理内存镜像文件的驱动程序。
1.3.2 内存分析程序
主机若是Linux系统,则使用VMCS结构体分析方法;若是Windows操作系统,则使用基于KPCR的物理内存分析方法,基于KPCR物理内存主要解决物理地址与虚拟地址转换问题,只有获取到物理内存地址才可以对物理内存进行分析。
2 中间件系统的设计与实现
原型系统的开发远程控制端部分使用VS2010开发,要求运行于Windows操作系统中,支持Windows XP、Windows 7和Windows 10系统。远程控制端是界面程序,不需要安装,直接打开.exe文件即可,包括日志文件获取和解析程序。
服务端是命令行程序,在Centos 7.0下使用c语言开发,要求安装hadoop hive数据库。服务端执行./tcp 端口,端口可以任意设置,比如5000,服务开启之后,服务端侦听客户端和远程控制端。一方面与客户端建立连接,从客户端接收物理内存镜像文件和物理内存分析结果,并将内存分析结果存储到hadoop支持的mysql数据库,传输过程支持对文件进行编码解码计算。另一方面与远程客户端建立连接,提供客户端的日志信息并展示,并根据检索要求,提供符合条件的物理内存分析结果。由于客户端、服务端之间传输物理内存镜像文件,传输4G以上内存需要在linux 内核系统中增加参数-D_FILE_OFFSET_BITS=64,两者之间才能正常传输。
客户端程序是进程式命令行程序,目录下包含物理内存镜像程序和物理内存分析程序,分别支持Windows XP、Windows 7系统和Windows 10系统。客户端是Windows下命令行程序,打开tcp_client_send.exe,则客户端一方面获取物理镜像文件并存到本地,然后将调用内存分析程序分析物理内存镜像文件,并将分析结果连同物理内存镜像文件传输到服务端。镜像界面如图4所示。
图4 物理内存镜像Fig. 4 The image of physical memory
远程控制和服务端、客户端和服务端之间需要网络,互相ping通才可以进行连接和传输。系统为保证证据的完整性和可信性,使用TCP协议作为通讯协议,以Windows 7系统为例,运行远程控制端程序,打开remote_tcp_client.exe程序,启动界面如图5所示。
图5 远程控制端主界面Fig.5 The main interface of remote control
主要包括3部分:开启服务、日志信息和检索信息。上半部分左侧树状控件显示服务端的IP地址和客户端的IP地址及其客户端传输到服务端的内存镜像文件,右侧列表框是展示客户端的日志信息,包括客户端内存镜像文件生成时间、IP地址、端口、内存镜像文件的MD5值和文件名。主界面中间部分是服务端的IP地址和端口,与服务端进行连接,开启服务。主界面下半部分列表框主要显示内存分析结果和符合条件的内存检索结果。
选择上半部分列表框中客户端日志信息的任意一行或者若干行,右键点击“发送”,则提取出内存镜像文件发送到服务端,根据镜像的文件名,将对镜像文件进行内存分析,内存分析过程需要等待一段时间,分析完毕后,内存分析结果将展示到主界面下半部分的列表框中如图6所示。
图6 客户端的一条内存分析结果Fig. 6 The memory analysis result of client
本设计方法提出并实现了云取证中间件,满足了IT行业用户在取证和安全审计方面的需求,扩大了应用领域,延长了计算机取证的产业链。
3 结语
本文针对目前传统取证工具存在的在线取证工具缺乏等缺陷,设计了一种云取证中间件,该方法解决了证据可信性和取证人员难以及时处理大量案件的问题。利用此方法开发完成了云取证中间件系统,该系统的客户端软件能根据远程服务器端的需求,实现本地证据的实时处理,包括证据的保存、证据的分析,可以远程控制取证工具和其他第三方应用,实现证据的实时收集和处理,并将远程证据和分析结果发送到服务器端进行证据保存、分析处理。远程控制端可以实现客户端的安全审计,实时收集客户端操作系统的应用程序日志、安全日志、系统日志等审计信息,同时还可以对取证人员进行全程监视和记录,并发送到远程服务器端分析处理,做到对网络安全隐患或违法犯罪活动的及时发现。后续我们将进一步扩大版本的开发,获取并分析不同系统的物理内存,为越来越多的云用户服务。