根据国际标准化组织(ISO)标准中的《数据处理词汇》部分的名词解释,“仿真”(Simulation)即指使用另一种数据来处理系统,主要是用硬件来全部或部分地模仿某一数据处理系统,以致于模仿的系统能像被模仿的系统一样接受同样的数据,执行同样的程序,获得同样的结果。仿真技术最开始被应用在计算机取证中,获取传统计算机取证系统所无法得到的“动态数据”,包括目标对象的工作环境、主机操作轨迹、网络操作轨迹、加密数据明文、帐户/口令明文等一系列电子证据1。
系统环境仿真必要性当今社会高速发展,计算机技术有着前所未有的发展前景,信息技术的成熟化也为各种不法分子提供了犯罪的条件。信息诈骗、勒索病毒、色情传播、毒品交易、商业机密信息的窃取与破坏、政府网站攻击、军事部门网站攻击等等,新型网络犯罪手段增加,犯罪技术层出不穷,造成的危害也越来越大,受影响范围更加广泛。
由于犯罪取材有很多不便利的因素,如取证目标体积过大难以拆卸,或运行的环境多样复杂化等等。如果只利用常规取证手段,案件很难进行侦破。动态仿真取证系统即基于对犯罪分子的计算机进行仿真,从而再现计算机的运行环境,为侦破案件提供有效思路的一种取证手段。所获信息具有法律证据合法有效性,为司法鉴定和计算机取证提供重要的帮助,搜寻确认罪犯及其犯罪证据,并可据此提起诉讼,从而将犯罪嫌疑人绳之于法。
计算机仿真取证
计算机仿真取证是指在仿真模拟目标计算机系境的运行环境下实施的动态取证活动。由于一些证据信息是系统运行时产生的,而且有些软件要依赖于系统的操作系统、管理员权限等问题,所以就需要依赖于仿真取证系统来取证。通过系统仿真对系统原始环境再现,可实现数据写保护、数据动态在线分析和保全,这也是仿真取证的主要特点。同时也可以在硬件级只读模式下,以第一用户视角展示被取证对象的操作系统环境及数据,并获取相应电子证据。
总言之,计算机仿真取证是指运用计算机仿真技术实现对目标计算机系绕的仿真模拟和环境再现,在系统写保护状态下实施的对目标系统中各类电子数据原有状态的还原、操作轨迹的追踪以及各种数据记录的收集与保全活动。
计算机仿真取证的原理计算机仿真取证主要是利用虚拟机技术、Shadow技术、重新定向等技术对目标计算机系统的操作系统内核、硬件设备、用户环境、各种网络协议、应用程序、数据记录等信息进行动态的仿真运行模拟、以在此基础上构建出安全的,可供动态取证的操作环境。
计算机仿真取证的分类按照取证对象的不同,可将计算机仿真取证分为:基于原机的仿真、基于硬盘镜像的仿真和基于硬盘镜像文件的仿真。基于原机的仿真是在拥有原始主机且系统处于写保护状态下的即时化线取证、其主要目的是动态获取目标主机中的即时数据工、程序运行数据、网络通信信息以及攻击、入侵行为的数据记录;基于硬盘仿真取证是在借助虚拟机技术的基础上对装有操作系统的硬盘进行硬件的仿真重建,通过仿真加戴原有系统设置,重建原有计算机系统运行的软、便件环境,进行原始电子数据的动态分析获取;基于硬件镜像的仿真取证是在甄别镜像文件中的原有系统配置信息的基础上、实现原载系统的仿真启动,以在线直观、准确的判别、收集和保全所需的电子证据。
手机系统仿真取证同样,为了解决手机取证系统难以提取手机应用的动态数据即云端数据的访问问题,建立了手机仿真取证系统。手机仿真取证系统在专用取证设备上运行仿真器,模拟手机运行环境,运行并登录手机应用程序,进行云端数据的浏览和分析。通过手机仿真取证系统,能够提取QQ聊天历史记录,查询微信红包等互联网金融交易的详细信息2。
手机仿真取证系统通过在专用设备上建立仿真器,“拷贝”原有手机运行环境、数据及应用程序,实现在仿真系统登录应用后,进行云端数据的浏览和分析。仿真过程中也可实时抓取应用程序的通讯数据,分析应用程序的行为特征。
具体地,对Android手机的仿真来说,目前市面上Android仿真器软件种类繁多,如:Android官方仿真器、Bluestacks、Genymotion和Andy等,每个Android仿真器有其各自特点,但同时也都有各自的缺陷,需要根据实际情况对不同Android仿真器进行选择。
Android官方手机仿真器主要由手机仿真器程序-emulator.exe、虚拟机内核-kernel、虚拟机根文件系统镜像-ramdisk.img、虚拟机系统文件镜像-system.img、虚拟机用户文件镜像-userdata.img五个部分组成,其中仿真器程序和虚拟机内核是独立开源代码项目,其他部分可从Android开源项目-AOSP中编译生成。
手机仿真器程序主要是对手机硬件的模拟,如对0cpu、keyboard、gps和modem等硬件进行模拟;虚拟机内核主要是增加一些支持仿真器的特殊驱动,比如:qemutrace和qemupipe等;虚拟机根文件系统镜像(ramdisk.img)也包含一些配合虚拟机内核运行的参数配置;虚拟机系统文件镜像主要包括Android系统层面文件(包含内置一些系统应用),这个镜像内容决定虚拟机模拟的Android版本;虚拟机用户文件镜像最开始基本为单个文件系统,在虚拟机第一次启动过程中生成相应文件(类似手机第一次开机或恢复手机出厂设置)。
手机仿真过程启动虚拟机,之后通过adb install向虚拟机安装一个agent,再由手机仿真应用程序发送数据到虚拟机上的agent,最后再由agent通过Android系统的API把数据导入虚拟机Android系统,这种方法主要运用在联系人,短信和通话记录导入;
启动虚拟机,之后通过adb install安装手机应用到虚拟机,再通过adb push命令把手机应用数据上传到虚拟机data分区对应目录,最后修改相应的配置参数,比如:uid、gid和permission等,这种方法主要运用在第三方应用;上述两种加载数据方法最主缺点速度慢,效率低,也容易出错;
在启动虚拟机之前,根据手机数据直接修改虚拟机用户文件镜像,对比前两种方式,在虚拟机运行过程中减少应用安装和数据加载过程,加快虚拟机运行速度,同时也提高数据加载的效率和准确性。
手机仿真取证方法手机在线仿真:提取手机应用数据进行在线仿真,通过仿真器查看手机应用的数据,进行调查分析并可以实现截图取证,这样能够保留原有手机数据的完整性、有效性;手机镜像离线仿真:手机在提取镜像后归还,通过手机仿真系统,可以加载镜像进行离线仿真。通过仿真器上查手机应用的数据,进行调查分析并可以实现截图取证。
通过提取QQ、微信、陌陌、阿里云等主流聊天通讯软件的聊天记录、语音记录、视频图像、红包、转账等重要信息;还有现在的一些直播软件,视频软件,目标系统的网上浏览信息,
解决手机取证支持率。目前,各大取证软件对取证系统尤其是手机上应用系统的版本比较敏感,安卓系统6.0后大大限制了root权限,而且各大软件厂商对版本的更新迭代速度更是远远超过取证软件的迭代速度,致使一般取证无法胜任取证工作,是否能够解析应用程序与版本密切相关。手机仿真系统优点是不依赖应用程序的解析,能够直接加载应用数据进行浏览分析,避开了版本升级,提升了手机取证的支持率。
目前手机仿真存在速度慢、个别应用不支持等问题,但随着仿真技术和计算机软硬件水平的发展,这些问题将会得到完善的解决方案。
本词条内容贡献者为:
麦永浩 - 教授 - 湖北警官学院电子数据取证重点实验室