基于Android平台的手机取证方法研究_取证_应用程序_手机

第一章绪论

1.1研究背景

随着移动互联网的到来,智能手机早已普及,很多人将它作为生活和工作的交流工具。

日益丰富的移动应用程序改变了人们的生活方式,人们可以进行购物,聊天,发微博等,手

机依然成为移动端的小型电脑。与此同时,一些不法份子利用手机进行高科技犯罪的现象越

来越普遍,手机中存储的犯罪证据便成为了公安部门进行案件侦破的重要依据,手机中的通

话记录、短信、QQ聊天记录、邮件、上网记录等都有可能记录着犯罪份子的犯罪行为。因

此如何在合法、可靠的情况下对手机进行取证,获取犯罪份子的犯罪证据便成为了手机取证

的重点研究内容,手机取证也成为了现代取证科学的分支之一。

智能手机含有丰富的应用程序,几乎可以实现电脑端的所有功能,所以从诞生起便受到

了人们的喜爱。随着移动互联网的快速发展,智能手机的技术研究日益成熟,生产成本不断

降低,智能手机已然成为市场主流。据市场研究机构Kantar Worldpane12013年第四季度的统

计数据显示,中国智能手机市场份额达到97.3%,比去年增长了4%,其中,Android系统继

续保持增长的态势,达到了78.8%}1} o

Android手机巨大的市场占有率使得其成为不少犯罪份子作案的工具,同时也成为了手机

取证的重要对象。Android手机中不仅存储着短信息、联系人和通话记录这些基本信息,还存

储着大量的应用程序信息,例如QQ聊天记录、Gmail邮件信息和微信聊天记录等。这些信

息都可能成为犯罪人员作案留下的证据,因此取证人员可以提取其数据进行分析,挖掘潜在

证据,提高取证效率。

面对迅速增长的高科技犯罪现象,公安机关需认真分析研究当前现状,提出有效的策略

方针,尤其解决智能手机电子证据等关键问题。智能手机电子证据的提取、鉴定、分析和举

证是打击犯罪的重要手段,同时也是公安机关解决的问题。手机证据同属于电子证据,因此

必须完整可靠,符合法律规范,被法庭所接受。智能手机证据的存储格式呈现多样性且极易

展开全文

发生变化,在提取过程中面临很大的困难,逐渐成为司法机关打击犯罪的瓶颈。因此,手机

取证这门科学的相关研究变得非常迫切,制定手机取证规范和研发在手机取证规范下的手机

取证系统,为打击手机犯罪提供大力支持,已成为公安机关、安全局等司法机关有待解决的

问题。

1.2.2国外研究现状

由于国外的智能手机普及较早,因此在智能手机取证的研究方面也取得了不少成果,其

中Android系统取证的研究也逐渐展开,主要集中在取证技术、取证流程和线性分析等方面。

Jeff Lessard和Gary C. Kessler}g]提出了对Android手机中内存数据和SD卡数据进行逻辑

获取的取证步骤,并借助FTK工具对HTC Hero手机进行取证,详细说明取证中的每个细节,

并对获取的数据进行线性分析。Andrew Hoog}9}建立了Android手机取证的里程碑,简单介绍

了Android手机的取证方法,提出了物理获取和逻辑获取两种主流的数据提取方法,并对这

两种取证技术进行深入地研究,接着讨论如何保证数据完整性和有效、合法地将证据呈现给

法庭等问题,最后介绍了目前市场主流的各种取证工具。Lamine M.Aouad和Tahar M.

Kechadi}lo」针对由于Android手机系统版本和手机型号的多样性而缺乏统一的取证标准的问

题,提出了对 Android手机内存进行物理提取和分析的一般性方法,通过物理获取方法可以

对数据进行完全恢复,包括删除的数据,而且采用物理获取方法机会不会对原始数据造成任

何改变,此外,针对商业取证软件不支持yaffs2系统的物理取证问题,提出了一种端到端的

针对yaffs 2系统的Android手机物理提取方法,并利用Linux环境对获取到的yaffs2系统的

数据进行分析。

国外学者在智能手机取证流程规范化方面的研究也取得了不少成果。Jeong-Hyun Lim,

Chang-Woo Song和Kyung-Yong Chung等人「m针对电子证据容易消失、篡改、污染等问题,

提出了智能手机取证流程,确保获取的数据能够作为证据应用于原始犯罪场景。Stefan Sack,

Knut Kroger和Refiner Creutzburg}l2]对Android系统结构进行分析,提出了Android手机取证

的规范,取证过程包括犯罪现场调查、鉴定、备份还原和证据呈现这四个步骤,在数据提取

过程中包括SD卡分析、逻辑分析、技术分析和碎片分析这四种方法,最后通过实例验证了

文中提出的取证规范。

当然,一些学者在智能手机的应用程序数据的取证方面也展开了一些研究,包括社交网

络、即时通讯、地理位置数据等信息。Stefan Maus, Hans Hofken和Marko Schuba}l3]对应用

程序中可能产生的地理位置数据信息进行取证分析,采取一种简单、综合地方法对手机中的

地理位置数据进行线性分析,该方法能够自动获取相关数据,关联性地展示给取证人员。Noora

A1 Mutawa, Ibrahim Baggili和Andrew Marrington}l4]针对智能手机的社交网站可能存在的潜在

证据进行取证分析,文中主要对三大流行社交网站Facebook, Twitter和MySpace分别在

B1ackBerry, iPhone和Android三种主流操作系统手机进行实验,首先在每个设备中安装社交

网站并产生数据,然后在取证规范下获取每个设备的逻辑镜像并对获取到的逻辑镜像进行线

性分析,其目的是验证这些社交网站的用户数据是否存储在设备的内存中,该实验表明通过

逻辑取证能够获得iPhone和Android手机中社交网站的大量有价值的证据,而B1ackBerry手

机中由于不存在社交网站使用数据的痕迹,因此无法通过取证获得相关证据。Aditya Mahajan,

M.S.Dahiya和H.P.Sanghvi}ls]对Android手机中即时通讯类应用程序进行取证分析,文中对

Whatsapp和Viber这两款主流的即时通讯类应用程序进行实验,将这两款主流软件安装在

Froyo(2.2), GingerBread(2.3.x)和IceCream Sandwich(4.O.x)这三种版本的5部手机进行测试和

分析,研究这些应用程序的聊天记录、视频等信息在设备中的存储位置以及形式,最后通过

Cellebrite UFED Classic Ultimate取证工具对这些应用程序数据进行获取并分析,实验结果表

明这些设备内存中存储着大量有价值的信息。

1.3本文研究内容

本论文对Android手机取证方法和证据可视化方法进行研究,设计并开发了一套基于

Android手机的取证系统。主要内容如下:

(1)对Android系统结构、安全机制、数据存储机制进行研究,并结合手机取证原则提

出了针对Android手机的取证流程模型,该模型结合Android手机本身的特点,在整个取证

过程中能够确保数据的完整性、有效性,并且能够快速、合理地获取潜在证据,保证了最终

证据能够被法庭所接受。

(2)提出了Android手机信息静态与动态取证相结合的方法,静态取证方法是对Android

手机基本信息和应用程序信息中包含的关键数据进行逻辑提取,并对这些数据进行线性分析。

针对由于应用程序信息更新迭代速度快、数据存在加密现象而导致线性分析的工作量大、耗

时和取证困难问题,本论文提出了对Android手机应用程序信息的动态取证方法,通过将应

用程序数据仿真到Android仿真器中进行取证,该方法能够绕过加密数据,屏蔽了应用程序

版本问题并且能够获得远程网络信息。利用静态与动态取证相结合的方法能够更加快速、全

面地对Android手机信息进行取证。

(3)提出了利用时间序列和社会网络分析的的证据可视化方法,将证据以可视化的方式

展示给取证人员。首先提出了时间序列模型,将数据之间的关联关系反应到时间维度上,例

如犯罪嫌疑人A和B的整个通话记录作为一个事件进行处理,建立一条通话时间线,反映A

和B整个通话的事件发展关系。接着提出了手机信息网络模型,根据手机信息网络模型的特

点提出了基于手机信息网络的图自动布局算法,实例证明算法方法简单、易于实现,能够直

接绘制非连通图。利用证据可视化的方式能够直观地展示了用户之间的关联关系,便于取证

人员快速发现潜在证据,降低取证难度,加快破案速度。

1.4本文结构安排

根据研究内容,文章分为五章,具体安排如下:

第一章主要介绍了智能手机取证的研究背景与意义以及当前智能手机取证在国内外的

研究现状。

第二章主要介绍了Android手机取证的理论与前提,首先介绍了Android系统结构、数

据存储机制、安全机制,接着介绍了智能手机的取证原则,最后结合Android手机特点和取

证原则提出了Android手机取证流程模型。

第三章主要介绍了Android手机信息静态和动态取证的方法,首先研究了Android手机

权限分配机制,并根据分配机制产生的漏洞实现了一种临时root权限提取方法。接着,介绍

了手机信息静态取证方法,包括基本信息的静态取证和应用程序信息的静态取证。最后,介

绍了应用程序信息的动态取证方法,包括动态取证意义、准备阶段和仿真阶段。

第四章主要介绍了时间序列和社会网络分析的可视化方法。首先简单描述了手机信息的

时间序列,包括数据预处理和时间序列模型。接着,介绍了手机信息网络的可视化方法,提

出了手机信息网络模型,描述了基于手机信息网络的图自动布局算法,最后,详细描述了算

法分析和设计的过程。

第五章利用C#编程实现了系统的所有模块功能,包括手机信息静态取证模块、手机信

息动态取证模块以及证据可视化模块,详细描述了这些模块的实现原理,并利用实例进行了

展示和分析。

第六章首先对本文的工作进行了总结,并指出了论文研究工作中存在的残留问题,最后

提出了下一步研究方向。

第二章Android手机取证理论与前提研究

随着4G网络的到来,真正意义上的移动互联网已经悄然来临,人们的各种生活几乎都

离不开智能手机,智能手机可以进行购物、团购、在线聊天、买票等。Android系统的优越性

已使得其在短短几年内迅速成长为全球最流行的手机操作系统。用户使用Android手机进行

日常生活所产生的数据也越来越丰富,越来越私密。窃取存储在Android手机中的数据进行

信息诈骗等犯罪行为的犯罪团伙变得非常猖撅。面对这些威胁,手机取证这门交叉科学正在

不断地发展与完善。取证人员经过特殊的培训后,对Android系统架构、Android开发套件、

Android数据存储机制、Android安全机制、Android手机取证原则以及Android手机取证流程

等有了比较深入的理解后,能够根据不同的案件场景,采取合法、有效的取证方法与取证技

术对取证对象进行处理,以便最终的证据能够被法庭所接受。

2.1 Android系统介绍

2.1.1 Android系统结构

Android是一款基于Linux内核的智能手机操作系统。Android系统结构分为四层如图2.1

所示:

C1>应用程序层

Android应用层包含电话拨号程序、图片阅读器、浏览器、短信程序等应用程序。这些

应用程序可以被第三方开发的应用程序所替换,因此,更加灵活和个性化。

C2)应用程序框架层

应用程序框架层是Android开发的基础框架,它能够实现很多应用程序的核心功能。

C3)系统运行库层

从图2.1中可以看出,系统运行库层包括系统库和Android运行时。系统库是应用程序

框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。Android运行时采用Java

语言编写,程序在Android运行时中运行。

C 4 ) Linux内核层

Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一

的服务。

Android的系统架构采用分层架构的思想,架构清晰,层次分明,协同工作。Android的

系统架构不仅从宏观上认识了Android系统,同时,也对Android取证提供了很好的理论依

据与实践指南。

2.1.2 Android软件开发套件

Android的软件开发套件(C SDK)是开发应用程序所需的资源。Android的软件开发套件

不但提供工具,创建在Android平台上运行的应用程序,而且能够在很大程度上帮助取证人

员对终端设备进行取证或安全分析。不仅Android硬件设备在终端平台功能上发挥着主要作

用,软件开发套件又将这些特点发挥到极致,最终创建出消费者希望获得的体验和功能。对

Android软件开发套件的深入了解,为我们在对数据、终端设备以及重要的共享程序库进行取

证调查时提供帮助。Android的软件开发套件是一个功能强大的取证工具,在很多情况下被取

证人员用于帮助对Android终端设备进行取证调查。

Dalvik虚拟机能够保证移动应用程序的安全性,每一个应用程序在它自己的虚拟机中运

行。因此,许多虚拟机能够同时运行。Dalvik虚拟机严重依赖于Linux操作系统提供的底层

功能。

每个应用程序通过编译生成二进制代码,然后转换成.dex文件格式在虚拟机中运行,便

于提高执行效率。Dalvik是对Android设备进行取证调查的重要组成部分。

Android程序调试桥是Android软件开发套件的重要组成部分,同时又是取证人员的重要

取证工具。开发者、取证人员和安全工程师可以利用Android程序调试桥通过USB与Android

设备进行通信,掌控此设备。这里需要注意的是,USB调试模式必须被打开才能使用Android

程序调试桥进行相应的操作。Android设备将在后台运行adbd,与USB连接。adbd将以普通

用户身份进行运行,所访问的数据受到限制。若Andorid设备已经root,则用户将以root权

限身份进行访问。此时,开发者、取证人员则可以利用Android程序调试桥对终端设备中的

数据进行操作和访问。为取证的调查以及数据的搜集提供了有效的保证。

Android程序调试桥的使用涉及以下3个主要部件:

(1)在Android设备上运行的adbd;

(2)在工作站上运行的adbd;

C3)在工作站上运行的adbd客户端程序。

若Android设备上启动了USB调试模式,adbd将会对通信进行监控。此USB连接所形

成的虚拟网络是运行在设备上的adbd和运行在工作站上的adbd之间的通信通道。后台程序

之间使用本地端口5555到5585进行通信。

Android程序调试桥的功能非常强大。取证人员可以利用Android程序调试桥中的很多命

令进行取证。

主要有以下功能:

C1)在终端设备上运行shell命令;

C2)在命令行安装应用程序;

C3)工作站与终端设备之间的端口转发;

C4)从终端设备上反复地递归复制文件和文件夹;

CS)查看终端设备的日志文件。

Android软件开发套件不但提供了Android平台深入的信息,而且从取证和安全角度均为

调查一个终端设备提供了功能强大的工具,在一台取证工作站上安装了Android软件开发套

件后,取证分析师就具备了与一部通过USB接口连接的Android终端设备进行交互的能力,

只要启动了USB程序调试功能。我们不但可以从终端设备获取信息,而且可以安装和运行应

用程序,最终实现从终端设备中抽取数据。Android软件开发套件是一个用于取证和安全分析

的重要工具。

2.2 Android手机数据存储机制和安全机制

掌握了Android系统架构和开发套件,取证人员就可以根据不同的案件策略采用不同的

取证技术进行取证。那么每个案情的侧重点不同,必须根据情况进行重点取证,这就需要取

证人员对Android手机数据的存储机制有很好地掌握。同时,由于Android手机具有一定的

安全机制,不同数据的取证,所需要的权限不同,因此取证人员需充分掌握Android的安全

机制,采取相应地措施对Android手机数据进行取证。

2.2.1 Android手机数据存储机制

Android提供了5种在终端设备上存储数据的方式。取证人员能够至少从4中数据格式的

文件中获得数据。因此,理解这5种数据存储机制非常重要。具体来说,这5种方式如下:

(1)共享优先

共享优先是一种轻量级的数据存储机制。开发者能够将基础数据类型的变量定义一数值二

元组以轻量级的XML格式进行存储。SharedPreferences主要用于存储“key-value paires”格式

的数据,只可以存储基本数据类型,包括整型、布尔型、浮点型和字符串型等。SharedPreferences

主要是通过键盘值对来存储简单数据,我们可以通过SharedPreferences的put()方法来实现键

值数据的存储,同样我们也可以使用SharedPreferences的get()方法来获取键盘值数据的内容。

我们存储的SharedPreferences是以XML文件的格式方式自动保存的,通常存储在应用程序

的数据目录中的shared_pref文件夹中。由于很多应用程序都利用轻量级的共享优先方法来存

储变量定义一数值二元组,它也许成为取证数据的丰富来源。当取证人员能够恢复过去的或已

经被删除的XML优先文件,这一点尤为明显。

C2)内部存储

内部存储是通过Java中的IO流来对文件进行操作,然而在Android系统中文件是一个应

用程序私有的,一个应用程序无法读写其他应用程序的文件。应用程序运行所建立的文件都

保存在设备的内部存储器上,在”/data/data<package name>/files”路径中。开发者可以在文件中

存储更复杂的数据结构,并可以将文件存储在内部存储器的几个不同地方。开发者具有控制

文件类型、名称和地点的能力。在默认情况下,这些文件只能被所属的应用程序去读取,甚

至终端设备持有者也不允许查看这些文件的内容,除非他们拥有root访问权限。取证人员可

以通过排除法快速找到这些文件进行取证。原则上,任何在应用程序的/data/data子目录下,

不属于shared_prefs, lib, cache及databases子目录中的文件都是内部存储文件。这些内部存

储数据很可能是取证人员感兴趣的数据。

C3)外部存储

存储在内部存储器上的文件具有很严格的安全和位置参数,然而存储在外部存储器上的

文件却具有极少的限制。外部存储器用于保存大文件和无权限限制的文件,通常含有用户录

制的视频文件等。外部存储器使用的是FAT的文件系统,不支持访问模式和权限控制。虽然

此文件系统获得广泛的支持,它缺少像ext3, ext4等文件系统中存在的细化安全机制。因此,

在默认情况下,这些文件无法强制访问控制权限。而这些文件通常都包含了非常丰富的数据,

对取证价值非常大。

(4)SQLite

SQLite数据库是一个非常流行的数据库格式,应用于很多移动系统以及传统的操作系统

中,用于存储结构化的数据。与传统的关系数据库管理系统有所不同,SQLite的整个数据库

全部包含在一个单独的跨平台文件中。

Android软件开发套件通过提供专门的应用编程接口允许开发者在他们的应用程序中使

用SQLite数据库。SQLite文件通常存储在内部存储器的”/data/data/<应用程序名>>/databases"

路径下。但是,对于在其他地方创建数据库没有设置任何限制。SQLite数据库是取证数据的

丰富来源。

(5)网络

用户通过网络存储或获取数据,利用网络硬盘空间上传或者下载网络资源,获取网络空

间中的数据。虽然用户利用终端设备在网络存储空间中进行数据相关操作,我们无法直接获

取存储在远程网络空间中的数据,但是我们可以对存储在终端设备上的相关数据进行取证,

而常见的是,重要的配置和数据库数据都可以得到恢复。

2.2.2 Android手机安全机制

Android系统安全机制既继承了Linux系统又有所区别,应用层都有各自的安全性。系

统利用Linux进程工具设置应用程序的安全级别,分配UID和GID。具体来说,Permission

权限机制可以限制应用程序的具体操作,"per-URI permissions”机制则可以控制应用程序中产

生的数据的权限访问模式,例如将数据访问方式设置为只读、读写等模式。因此,应用程序

之间是相互独立的,相互之间无法访问。但,Permission安全机制提供了一些功能,用于应

用程序间的安全访问。

C 1) Linux内核层安全机制

Linux内核安全机制包括强制访问控制机制以及自主访问控制机制。强制访问控制机制由

Linux安全模块来实现,但未将LSM编译进Android系统中。自主访问控制机制由用户、用

户组、其它用户与读、写、执行的组合来实现,控制文件的访问权限模式,包括允许、限制、

拒绝用户、用户组和其他用户的访问。拥有“system”和“root”权限的用户可以访问文件系

统,应用程序可以申请相应的权限访问相应文件。

C 2 ) Android的“沙箱”机制

Android“沙箱”机制可以隔离应用程序和进程,使得应用程序无法访问文件系统或其它

文件。每个应用程序与系统进程都被分配独一的UID,与内核进程相对应。每个应用程序在

自己的虚拟机中运行,拥有单独的地址和资源。应用程序必须在其manifest文件中进声明权

限或者共享UID才能访问文件系统或者其它文件。

C 3 ) Android的权限检查机制

Android是一个“权限分离”的系统,任何一个应用程序在使用Android受限资源之前都

必须以XML文件的形式事先向Android系统提出申请,待系统授予应用程序权限时,才能使

用相应的资源。

当应用程序获得相应权限后,便可调用API应用层接口实现相应功能。可分为以下三个

步骤:

(a)调用Public库中的API应用层接口。

(b)公共API应用层会调用RPC stub,即API代理接口。

Cc)以IPC绑定的方式传递给系统服务,由系统服务进程实现相应功能。

权限检查包含应用程序安装时的静态检查和运行时的动态检查。动态检查是指应用程序

在运行期间调用的系统服务或组件必须经过授权检查。

C 4 ) Android的数字签名机制

应用程序必须拥有用于标识应用程序的用户身份和应用程序之间的信任关系的一个数字

证书。Android系统在安装应用程序时会自动检查该应用程序是否含有数字证书及其权限,若

权限级别为signature,则会检查应用程序使用的数字签名和声明signature权限的应用程序所

用数字签名,只有当两者的数字签名一致时,才允许安装。若应用程序的权限为

signatureOrSystem,系统便会授权一样的数字签名的应用程序。

2.2.3 Android手机取证原则

Android手机取证是指取证人员从涉案Android手机中获取手机的用户信息、手机位置信

息、手机内存信息、SIM卡信息、短信、通话记录、通讯录、多媒体信息、应用程序信息、

日志等,并对这些信息进行分析、整理,最终形成对案件有证明力的证据并且被法庭所接纳

的过程。取证人员要经过一定的取证认证,并且被法庭所接受。在整个取证过程中,取证人

员采用的取证技术、取证方法要符合取证规则和原则,能够具有法律效力。

手机取证与计算机取证都是数字取证的分支,也可遵循计算机取证原则:执法部门以及

具体执行人员的任何行为都不能改变存储在计算机内存储介质上的数据,这些数据可能在后

续阶段为法院所使用;在任何人认为有必要访问存储在计算机内或存储介质上数据的情况下,

此人必须能够胜任此项工作,而且能够清楚地提出证据,用于解释其行为的关联性以及涵义;

对所有基于计算机的电子证据的过程都要创建审计记录,并予以保留。任何一个独立的第三

方都要能够对这些过程进行检查,并能够取得同样的结果;负责调查的人对确保法律以及以

上这些原则得到遵循负有全部责任。

通过对计算机取证原则的借鉴,Android手机取证应遵循以下五个方面的原则:

C1>取证合法性原则

首先,取证人员必须取得法定资格,具有合法的取证技术,能够科学认识和处理取证过

程的细节,保证取证工作合法。其次,取证流程必须合法化。取证过程必须严格按照法定程

序进行取证,保证取证结果被法庭所接受。最后,取证人员所使用的取证技术工具以及包含

的使用环境都必须符合法定标准,不允许在取证过程中存在数据篡改等问题,使得取证的证

据失去法律效力。

C2>取证及时性原则

首先,由于Android手机中的数据本身比较脆弱,容易受到干扰,从而发生改变。其次,

由于Android手机的内存比较小,数据更新快,若不采取网络隔离,则接入的通话或者短信

都覆盖原有通话或者短信记录。再者,手机本身需通过电池续航才能进行正常工作,若手机

没电,则存储在RAM区的数据都将丢失,给取证工作带来很大的麻烦。最后,网络运营商

则会通过网络对用户数据进行周期性更新,若取证不及时,则会发生数据覆盖现象。总之,

取证人员应对手机采取合法措施,及时对手机证据进行提取与固定,避免因数据发生改变,

造成取证失败。

C3)取证备份原则

取证人员要在合法的取证流程下对Android手机中的电子证据进行备份,至少备份两次,

形成两个副本。一份副本是取证人员用于对电子证据的获取和分析,另一个副本进行保存用

于为第三方进行复查。

C4)取证环境安全原则

Android手机设备中的电子证据存储在电磁介质中,而电磁介质易受到高温、灰尘、挤压、

潮湿等因素的影响而发生改变。因此应该安全保管手机,取证人员对手机进行操作时应避免

这些因素对手机产生的影响。为防止静电消磁从而对手机中的电子数据造成影响,应使用纸

质等不易产生静电的材料对手机进行包装。此外,由于手机在开机状态下,它的通信网络收

发装置能够与无线通信网络进行交互,导致手机内存的变化。因此,必须第一时间采取网络

隔离措施,隔断手机与无线通信网络的信息交互,保证手机证据的原始性和完整性。

CS)证据保管原则

在建立取证对象后,应采用笔录、拍照、录像多种方法对取证过程进行详细地、不间断

地记录,包括手机的收集、保存、运输的方法,取证操作的步骤,数据源的采集和分析的方

法以及生成证据报告的方式。

以上五个原则的执行可以保证整个取证过程的合法性和客观性,使得手机证据能够经得

住法庭质证的严格考验。

2.3 Android手机取证流程模型

取证的手机必须严格按照取证流程进行取证,并且在最终的呈述报告中,将取证的整个

过程都以文件方式详细记录下来,使其更加符合司法程序,以便作为证据为整个案件作出有

力的说服。Android手机取证流程模型如图2.2所示:

(1)取证准备

取证准备阶段是对案件的取证需要获得授权后,制定取证方案,安排有一定资历的取证

人员,准备取证工具以及所需的软硬件和附属设备。由于手机证据的特殊性,所以现场手机

取证不同与一般证据的取证。除了物证袋、照相或摄像机等工具和设备之外,针对手机取证

的特殊情况应当准备的设备主要有:具备多种手机接口的工具箱,包括各种线缆,续航电源,

防静电袋、硬质屏蔽箱、多用电源适配器、备份和拷贝数据所必需的空白存储介质等。

C2)证据获取与采集

Android手机的数据获取与采集是后续取证工作顺利进行的一个前提。取证人员到达现场

后,迅速对取证现场的周围环境进行拍照和文字记录。在取得手机后,迅速根据手机的状态

进行保护。当手机电量不足时,应对手机进行及时充电,避免手机因电量不足关机对取证造

成困扰。由于手机无线收发装置会周期性地与无线通信网络进行信息交互,因此应迅速将手

机进行网络隔离,避免手机证据的改变。由于Android的安全机制,取证人员进行证据获取

和采集时需要root权限,若手机没root,则采用临时root方法对手机进行权限获取。根据

Android中取证数据源的不同,采用不同的取证技术进行证据的采集。获取的信息包括RAM

区数据,NAND Flash中的数据,SD卡中的数据等等。对每个数据对象计算完整性校验码。

至少要备份两份副本,同时对副本中的每个数据对象计算完整性校验码,在对比完整性校验

码之间的一致性来判定手机数据的完整性与可靠性。

C3)证据分析

证据分析需根据备份下来的数据种类,结合案件犯罪类型,有针对性的对某些侧重的数

据进行分析,以便更快速地获取所想要的证据。由于RAM中的数据主要存储着用户登录过

的用户名、密码等,对这些数据进行分析可以获得非常有价值的潜在证据。NAND Flash中主

要存储着大量的用户数据,比如:短信、通话记录、QQ、微博、Gmail等信息,对这些数据

的分析可以挖掘出大量的证据。SD卡中主要存储一些音频、视频、图片等数据,这些数据也

具有极高的取证价值。因此首先对这些数据进行线性分析,以列表形式展现给取证人员,便

于取证人员对具体数据有直观地筛选,然后利用时间序列分析和社会网络分析,将数据之间

关联关系展示在时间维度和二维空间上,使得取证人员能够快速、直观地通过这些关联关系

挖掘潜在证据,定位搜索范围,提高破案速度。

C4)证据存管

证据存管主要包括手机本身作为物证进行存管和从手机中获取的电子证据的存管。在取

证过程中,对手机的存管也是非常重要的。应采用防静电袋将手机进行保存,由于手机本身

会存在无线通信网络模块进行信息交互现象,因此需要将手机保存在密闭环境或者屏蔽环境

中。获取的电子证据应有专门的存管人员进行存管,而且要实行严格的存管制度,防止数据

被篡改。

CS)证据呈述

取证人员需要根据分析的证据编写证明文件,证明文件中应该详细阐述每个取证步骤中

取证人员的操作。尤其为了获取某些重要数据而不得不对手机的某些状态做出改变时,应该

详细说明改变的目的以及改变的具体情况,防止被误认为篡改数据而对最终的数据的有效性

造成了影响。在编写好证明文件后,需结合犯罪嫌疑人手机中获取的潜在证据,对整个案件

进行评估,最终将证明文件与评估报告一同呈于法庭。同时应该用录像机对整个取证过程的

每个细节进行录像,以便在法庭中为取证过程中的每个步骤进行证实。

2.4本章小结

本章主要介绍了Android手机取证的理论基础,首先介绍了Android系统结构以及取证

时要用到的Android开发套件,为Android手机取证技术提供了理论依据。其次,进一步介

绍了Android的数据存储机制和安全机制,便于取证人员对Android手机中的数据进行提取

和分析。再者,结合计算机取证原则,提出了Android手机取证的五个原则,为手机以及手

机中的电子数据的完整性、有效性提供了保证。最后,结合手机的本身特性,提出了Android

手机取证流程模型。结合不同的案件,取证人员根据Android取证原则,按照Android取证

流程模型对取证对象进行取证,取证的最终结果可以作为证据被法庭所采纳。

第三章基于SDK机制的静态与动态取证方法研究

随着移动互联网的迅速崛起,手机犯罪的日益猖撅,针对手机犯罪的手机取证工具也变

得越来越丰富。Android手机应用程序的日益丰富化,使得人们之间的沟通方式、生活方式逐

渐发生改变,人们从最初的传统方式逐渐向即时通讯类和网络电话类应用程序交流方式转移。

因此,Android应用程序中的数据变得越来越有价值。Android手机取证的侧重点也慢慢从传

统的基本信息取证发展到对Android应用程序信息的取证。

然而,国内的Android手机取证工具相对非常少,而且大部分都侧重于取证技术手段而

忽略了整个取证的合法性、有效性。国外的Android手机取证工具虽然相对丰富,但是针对

Android中应用程序的本地化,这些手机取证工具无法对Android应用程序数据进行取证和分

析。同时由于应用程序的更新迭代速度快,种类繁多,存在加密现象,存储方式也不相同,

若只是对应用程序信息进行静态取证,不仅取证所需时间长,而且,有些因加密数据而无法

取证。应用程序的动态取证不仅可以直接绕过具体的数据存储结构和版本问题,通过仿真器

直接取证,而且还可以获取静态取证无法获取的远程网络信息。

因此,本章结合手机取证原则和流程,应用程序的特性,提出了针对Android静态与动

态取证相结合的取证方法,最大程度地发掘潜在证据,同时使得整个取证过程更加有效、合

法,最大程度地保证了Android手机数据的原始性、完整性、有效性,使得最终证据能够被

法庭所接受。

3.1 Android手机权限提升方法研究

由于Android安全机制的限制,如果用户想要访问手机中的个人隐私数据,则必须要获

得root权限才可以对手机的隐私数据进行操作。若要在手机未root的情况下进行取证,获取

潜在证据,则必须对手机进行权限提取,获取位于手机内存中的隐私数据。但,对手机进行

root权限提取则必然会改变手机中的某些状态,这似乎与取证规范相矛盾。如何对手机进行

root,尽量减少对手机地改变,成为手机取证中的一个关键性因素。本节通过对Android权限

机制的研究,提出了一种临时root权限提取方法,这种方法能最大程度地保护手机中的原始

数据。因为它只是改变了手机文件系统,并未对手机中的用户数据产生影响,采用细分数据

对象进行数据完整性校验,可以保证用户数据的完整性与原始性。因此,只需在最后的文件

呈述加以说明,最终获得的证据便会被法庭所接纳,能够有效地说明某些犯罪行为。

3.1.1 Android手机权限分配机制

Android系统是基于Linux内核而开发的操作系统,但与Linux有所不同。Android系统

会默认临时分配用户权限给Android系统的应用程序先进行启动,Linux系统则是需要用户身

份登录启动。虽然Android系统会分配临时用户权限,但这种权限的作用时间非常短。Android

手机的文件和设备访问控制仍然使用了Linux的权限访问控制。部分权限声明后,应用程序

启动的时候,AMS会从PKMS那里获得该应用进程的uid和gid信息,然后通过Zygote来创

建一个指定id的进程。获得指定组id的进程,也只能获得部分文件的访问权限。因此,必须

要通过su对应用程序的进程进行权限提升。su是linux中的一个命令,用于普通用户提权到

root。但是,root和shell下的用户才可以调用su。大部分应用程序由于在运行过程中会产生

的大量的私密数据,基于安全考虑,这些应用程序不能调用su命令。当su被调用时,会主

动验证它的程序,若发现非root和shell,则无法对应用程序的权限进行提升。因此,su命令

是应用程序执行权限提升的关键,若进程可以在root和shell模式下运行,便可以通过su对

应用程序的执行权限进行提升。

Android应用开发套件中详细介绍了Android程序调试桥(adb,它通过adbd服务和

Android手机进行信息交互。Android手机与电脑连接且手机中的USB调试模式已经打开,便

可以通过adb命令对终端设备进行取证。对adb的源文件进行分析可以发现adbd的代码如下:

int adb_ main(int is_ daemon)

property_get("ro.secure",value,"");

if (strcmp(value,"1")==0)

secure=1

if (secure){

由Android的安全机制可知,adb默认不会被分配root权限,adb启动后,adbd会检测系

统的ro.secure属性,如果ro.secure属性值为1则将会把自己的用户权限降级成shell用户。

一般设备出厂时,都会在default.prop文件设置ro.secure属性值为1。此时,adb不能在root

权限模式下运行,取证人员通过adb机制只能获取那些在不需要root权限模式下的数据。然

而,取证中的大部分有价值的数据都存储在必须拥有 root权限模式才能进行操作的文件中。

比如//data/data目录下的文件含有大量隐私数据,必须拥有root权限才能进行获取和取证。

由Android文件系统结构可知,init.rc是一个可配置的初始化文件,存储着很多系统服务,

adb由init.rc进程启动。在init.rc中配置的系统服务启动的时候都是root权限,所以其子程序

adb也拥有root权限。查看init.rc中代码如下所示:

/*then switch user and group to "shell"*/

setgid(A} SHELL);

setuid(A} SHELL);

从代码中可以看到,执行了setgid和setuid函数后,adb程序权限便会降级为shell。假如,

能够让setgid和setuid函数执行失败,那么adb程序便会以root权限继续执行,此时取证人

员可以利用adb对Android手机中的隐私数据进行取证。

3.1.2 Android手机权限提取方法

基于上节中对Android手机分配机制的研究可以发现,当adb进程执行setgid和setuid

函数失败后,adb进程便继续以root权限进行执行。通过查看setuid的文档手册,可以发现

如下代码:

RETURN VALUE

On success, zero is returned. On error,一1 is returned, and errno is set appropriately.

ERRORS

EAGAIN The uid does not match the current uid and uid brings process over its RLIMIT_NPROC

resource limit.

从上述代码中可以看到,setuid是可能发生错误的,并且在uid的进程数超过

RLIMIT_ NPROC极限时,发生EAGAIN错误。而adb的源文件中并未对setuid的返回值做

任何判断,所以adb会继续以root权限运行。

在Android的源码中,setuid()定义于//bionic/libc/unistd/setuid.c,实际上引用了一个外部符

号_setuid,这个符号在/bionic/libc/arch_ xxx/syscalls/-setuid.S中定义,最终是一

个%eax=$一 N凡setuid32, %ebx=uid的int 0 X 80中断。因此,可以通过不断制造子进程,使

shell用户的进程数超过RLIMIT_ NPROC极限,返回EAGEIN的错误信息,此时setuid函数

执行失败,adb进程降级shell模式失败。此时,adb会在root权限下继续执行。

由于Android手机每次重启时,系统服务进程都会对设备进行初始化处理,Android系统

属性的ro.secure值仍然为1,因此adb会降级为shell模式,此时手机处于未root状态下。所

以,称此种方法为临时root权限提取方法。具体原理如图3.1:

C1>在Android的shell用户下不断创建子进程,直至达到shell用户的进程数上限

RLIMIT_ NPROC;

C2)结束当前系统中的adb, adbd进程,并再次占据其进程位置以保持达到上限;

C3)系统会在一段时间后重启adb, adbd进程,该进程最初是root用户,在完成少许初

始化工作后,调用setuid()切换至shell用户;

C4)此时shell用户的进程数已经达到上限,所以setuid()失败,返回一1,并且用户降级

为shell模式没有完成,adb还是root权限;

CS) adb没有检查setuid()的返回值,继续执行,因此产生了一个具有root权限的adb

进程,可以被用于与用户的下一步交互。

C1>首先获取了RLIMIT_ NPROC的值,这个值是Linux内核中定义的每个用户可以运

行的最大进程数。

(2)获得RLIMIT_NPROC的值后,调用find adb()函数来搜索Android系统中adb进程

的PID,具体而言,该函数读取每个进程对应的文件的//proc/<pid>/cmdline,根据其是否等

于”/sbin/adb',来判断是否是adb进程。

C3)父进程退出,创建一个新的子进程,子进程继续执行,同时创建一个管道。新建一

个进程后,在子进程之中,不断地创建新的子进程,而新的子进程不断退出,从而使不断创

建的子进程占据shell用户的进程数。最终,进程数达到上限,fork()函数的返回值小于0,于

是打印当前已经创建多少子进程,并向管道输入一个字符。在这里,管道的作用是和之前创

建的父进程同步,此父进程会读取管道信息,因而阻塞直至子进程已经达到上限。

C4)此时调用restart_adb()函数,结束adb进程,并在系统检测到这一现象并重启一个

adb进程之前,再一次创建子进程,将前一个adb留下的进程空位占据。最后,调用

wait for root adbQ,等待系统重启一个adb,这个新建的adb就会具有root权限。此时,临

时权限提升成功。

整个临时权限提取过程,必须通过文件和录像详细记录,尤其是对设备进行权限获取中

造成Android设备改变的某些步骤,都必须详细记录并反应在报告中,连同最终的证据一起

呈述给法庭。

3.2 Android手机基本信息提取技术的研究

Android手机基本信息是指人们进行日常的沟通和交流所产生的基本数据,包括短信息、

通讯录、通话记录。虽然Android手机更加类似于一台微型智能电脑,可以利用它进行上网、

聊天、购物等,但是一般比较重要的日常交流和远程沟通都是发短信和打电话。因此,Android

手机的基本信息会包含大量的有价值的数据,对取证工作来说也是非常重要的。

3.2.1 Android手机短信息提取

短信息(short message service)简称SMS,是用户通过手机或移动终端直接发送或接收

的文字或数字信息。它属于一种数据通信业务,可以精确、快速地传递信息。一些不法份子

可能会通过短信进行敲诈勒索和非法交易等犯罪活动。因此,对于取证人员来说,短信数据

的取证价值是非常巨大的。

通过基于adb机制的adb pull命令对Android手机的文件系统进行逻辑取证,快速抽取一

个逻辑复本到本地目录下,对此目录下的文件进行分析可以看到短信信息的文件路径

为”/data/data/com.android.providers.telephony/",整个文件夹下的目录结构如图3.6所示:

从图3.3中可以看到短信目录文件夹的子目录中主要包含lib, databases和shared_prefs

三个子文件夹。lib文件夹下的文件都是应用程序所需的自定义库文件,取证价值可以忽略。

shared_prefs文件夹下的文件是以XML格式存储的共享优先目录文件,取证价值也可以忽略。

databases文件夹下的文件包含了mmssms.db和telephony.db两个数据库文件。telephony.db数

据库文件只包含无线服务提供商所提供服务的信息,通常含有一些用户数据,因此可以忽略。

mmssms.db的数据库中会含有大量的用户数据,对取证价值巨大,因此应重点分析。在取证

过程中,已发信息、已收信息、草稿箱和发送失败的信息都应该是取证重点关注的对象,在

提取解析过程中应该重点关注短信发送的时间、内容、接收方、发送方、消息状态等等。

分析mmssms.db数据库文件的数据结构可以发现sms表中存储着短信数据的所有信息,

因此对sms表进行详细分析。

如图3.4所示,sms表中包含着很多字段,有些字段信息是我们取证的主要信息,另外一

些字段信息则不含有取证信息。对主要字段信息解析如下:

_ id:短信信息生成序号,每一条短信都会按照顺序分配一个序号。

thread_ id:发件人序号,同一发件人序号都是一样的,不同发件人序号不一样。

address:收件人或者发件人的手机号码。

person:手机通讯录中联系人的序号,陌生人则为空值。

date:短信收发时间。

protocol:彩信或短信的标示符。1表示短信,0表示彩信。

read:标志短信是否已读,0表示短信未读,1表示短信已读。

status:标识短信状态。一1表示接收,0表示完成,128表示发送或接收失败。

type:短信类型。0代表所有短信,1代表收件箱信息,2代表已发送信息,3代表草稿

信息,4代表发件箱信息,5代表发送失败信息,6代表待发送信息。

subject:彩信主题,短信则为空值。

body:短信或彩信的内容。

通过人工分析可以发现,短信中的字段信息比较杂乱无序,但字段之间存在着某种关联

性,因此需要通过调用SQLite的应用接口对短信数据库信息进行有选择性地提取,对短信的

时间、发送者、接收者、短信内容等与取证相关的重要信息进行可视化展现,让取证人员能

够快速找到案件相关证据。

3.2.2 Android手机联系人信息提取

联系人信息存储在Android手机通讯录中的联系人的姓名、手机号码、家庭地址、头像

等信息。联系人信息存储方式有两种,一种是存储在SIM中,另一种存储在手机内存中。手

机通讯录保存着与同学、同事、亲戚之间的关系,手机号码已经成为个人身份的标志。联系

人信息已然成为取证人员进行取证工作中获取的重要价值信息,通过获取联系人信息可以迅

速对某些不明身份嫌疑人进行筛选、锁定,为案件进展提供非常有利的证据。对提取到本地

目录下的逻辑复本进行分析,可以发现联系人信息的文件路径

为”/data/data/com.android.providers.contacts/",整个文件夹下的目录结构如图3.5所示:

从图3.5可以发现联系人信息包含3个文件夹,可以发现联系人的信息都存储在databases

文件夹中的contacts2.db数据库文件中。分析contacts2.db中的所有表可以发现联系人信息存

储在data表和raw contacts中,分别对这两个表进行分析。

图3.6为raw_ contacts表中的主要字段信息,对字段信息解析如下:

_id:索引号,用来关联通话记录表中的联系人。

deleted:册」除标志位。0表示未删除,1表示已删除。

times contacted:通话次数。

last time_ contacted:最后通话时间。

display_name:联系人姓名。

图3.7为data表中的主要字段信息,对字段信息解析如下:

minitype_id:表示所存数据类型。1表示邮箱,3表示住址,5表示电话号码,7表示姓

version:

contact

标识数据的变化次数。

记:联系人信息索引号,用来与短信数据库等表相关联。

datal:基本数据,例如联系姓名、号码。

data4:电话号码逆序排列,以及联系人的身份、街道信息。

data?若是地址行则有市数据。

data8若是地址行则有省数据。

data9:若是地址行则有邮编数据。

从图3.6和图3.7的字段分析可以看出,一个联系人信息可以会产生多行记录,可以通过

联系人索引号将某个联系人的详细信息进行关联,形成完整的联系人信息,通过调用S QLite

的应用接口进行可视化展现,有助于案件信息的采集和处理。

3.2.3 Android手机通话记录信息提取

手机通话记录是人们之间相互通话交流产生的记录,反映着一个人的交流范围,可以证

明在某个时间段是否有人与犯罪嫌疑人进行交流,可以快速缩小搜查范围,因此是一种重要

的取证数据源。通话记录的数据存储在”/data/data/com.android.providers.contacts/databases”路

径下的contacts2.db的calls表中。通话记录分为已拨电话、未接来电、已接来电。

图3.8为calls表中的主要字段信息,对calls表进行分析如下:

_id:联系人信息索引号。

number:联系人号码。

date:通话起始时间。

duration:通话时长。

type:

name:

通话类型标示符。1表示来电,2表示已拨,3表示未接。

联系人姓名。

从calls表中的字段信息分析可以看出,number, date, duration, type, raw

五个字段信息可以完全表示通话记录的所有信息,因此将这些数据进行关联,

contact id这

以可视化的方

式进行展现,同时导出成excel格式的表格形式进行保存,通过excel表格对数据进行更加直

观和有侧重点的筛选,比如将这些信息按照通话长短进行排序等,提高破案的速度。

3.3 Android手机应用程序信息提取技术的研究

4G时代的来临以及智能手机的迅速普及,由于智能手机的强大功能,PC时代的一些社

交类、即时通讯类、邮箱类等这些涉及个人的私密数据的应用软件已经逐渐被应用于智能手

机终端中。人们可以利用安装在Android手机中的应用程序随时随地进行日常活动和交流,

例如,通过QQ与同事交流,更新微博的状态,查收公司的邮件等等。日益丰富的应用程序

为人们的生活带来了很大的便利,与此同时,由于这些应用程序含有大量的个人隐私数据,

也成为了不少犯罪份子进行欺诈、勒索、盗窃的对象。应用程序的数据往往对取证工作具有

非常重大的价值。目前,主流的涉及个人隐私数据比较多的应用程序主要分为四类,第一类

是即时通讯类应用程序,包括QQ, Skype、飞信等。第二类是邮件类应用程序,包括Gmail,

Hotmail、网易、QQ邮箱等。第三类是浏览器类应用程序,包括UC浏览器、QQ浏览器、百

度浏览器等。第四类是社交类应用程序,包括人人网、新浪微博、腾讯微博等。

根据Android系统架构和数据存储机制可以了解,Android应用程序主要将数据存储在内

部存储器上,内部存储器通过Android应用编辑接口(API)进行控制。当安装一个应用程序

时,系统会在//data/data子目录下使用这个应用程序包的名字为此应用程序建立一个内部存储

器。例如,Android浏览器程序包的默认名字为com.android.browser,因此,数据文件将会被

存储在子目录”ata/data/com.android.browser',下。虽然系统没有要求应用程序必须存储数据文

件,但大多数应用程序都会这样做。在应用程序的”/data/data”子目录中,有一些标准目录以

及由开发者控制的目录,常见目录如表3.1所示:

从表3.1可以看到,在”/data/data/'’子目录中的应用程序目录下的databases目录中的文件

是应用程序产生的用户数据,应重点提取与分析。掌握应用程序的标准目录机制可以让取证

人员快速锁定应用程序中的数据,快速找到相应的证据。

3.3.1即时通讯类信息提取

即时通讯(Instant messaging,简称IM)是一个终端服务,允许两人或多人使用网路即

时的传递文字讯息、档案、语音与视频交流。即时通讯按使用用途分为企业即时通讯和网站

即时通讯,根据装载的对象又可分为手机即时通讯和PC即时通讯,网站、视频即时通讯如:

米聊、QQ、微信、飞信、Skype, MSN等应用形式。

即时通讯具有方便、可靠、时尚、便宜等特点,已经逐渐替代了短信功能,越来越多的

人使用即时通讯进行沟通交流,国内主流的即时通讯类应用程序有QQ等。本节主要对

QQ2011的应用程序进行详细解析。

2011版本的QQ信息存储在’'/data/data/com.tencent.qq/databases/”路径下的QQ_database

数据库文件中,进一步分析,可以发现QQ的信息主要存储在qq_accounts, qq_selfInfo,

qq_qGroupList_ detail、qq一uddy_list detail、qq_groupInfo_detail、qq_msgHistory、

as buddylist main, qq qGroupList main这8个表中。如下图所示:

从表3.2和表3.3可以看出,QQ主要字段信息包含登陆账号信息、QQ分组信息、QQ好

友备注、QQ聊天记录等等,而且多账号登陆时,会自动保存每个账号的信息,通过数据库

工具查看这些数据是杂乱无章的,通过分析可以发现每个账号都有一个身份id号,且每个表

中都会有对应的id号与其相互关联,因此我们可以调用数据库应用程序接口,对这些数据进

行关联,提高数据的聚合度,以可视化的形式展现。

3.3.2邮箱类信息提取

如今,邮箱类已然被应用到了Android手机中,人们可以利用邮箱客户端随时随地收发

邮件与同事、朋友进行交流。目前主流的邮箱类应用程序包括Gmail, Hotmail、自带邮箱、

网易邮箱、新浪邮箱等。因此,本节主要对常用的邮箱Gmail进行提取和解析。

Gmail是Google公司开发的一款邮箱类应用,也是全球最流行的邮箱,在中国也占据着

不少的份额,而且Android系统手机都会自带Gmail邮箱,因此对Gmail邮箱的提取和解析

的数据是非常有价值的。2.3.5和2.3.6版本的Gmail数据存储方式是一样的,而且是很多

Android手机自带的版本,因此本文对其进行提取和解析。

根据应用程序标准目录可知,一般情况下与用户相关的信息都存储在以应用程序包命名

的文件夹下的数据库文件中,然而Gmail是个特例,他的用户登陆信息存储在/data/system/路

径下的accounts.db数据库中,如下图所示:

从图3.17中可以看到,账号信息包括用户名、密码、邮箱类型。name为用户登录的账

号,type为邮箱类型,password为登陆时的密码。

Gmail的邮箱信息存储在”/data/data/com.google.android.gm/databases”文件下的数据库文

件中,数据库文件的命名方式为mailstore.+账号信息,本文中以作者的邮箱账号进行登录测

试,所以为mailstore.zhengya 198902 @ gmail.com.db。其数据结构如图3.18所示:

从图3.18可以看出Gmail数据结构中包含很多表和索引,对这些表进行分析可以发现邮

箱的主要信息存储在messagges, conversations, attachments这三张表中,以下分别为这三张

表的主要字段信息。

主要字段信息的解析如表3.4所示:

3.3.3浏览器类信息提取

手机浏览器是用户利用无线互联网进行信息浏览的主要工具,浏览器中存储着大量的用

户个人数据,例如qq密码、社交网站的密码、浏览的信息等等。目前主流的浏览器有QQ浏

览器、UC浏览器等。本文主要对QQ浏览器进行提取和解析。

QQ浏览器2.9版本的数据存储在”/data/data/com.tencent.mtt/databases/',路径下的

database.db, default.db和webview.db数据库中。对这三个数据库文件进行分析可以发现浏览

器的信息主要存储在database.db的history表、default.db的mtt bookmarks表和webview.db

的password表中,如下图所示:

具体解析如表3.5所示:

3.3.4社交类信息提取

社交类应用程序是指基于社交类服务的移动客户端,例如人人网移动客户端、新浪微博

移动客户端。人们使用这些社交类应用程序和拥有相同兴趣的人进行聊天、文件分享、群组

讨论,它记录了人们的生活点滴,含有大量的私密数据,在取证中可以提供丰富的潜在证据。

本文对主流的新浪微博3.0.5版本进行提取和解析。

新浪微博3.0.5版本的数据存储在”/data/data/com. sina.weibo/databases/”路径下的sina weibo

数据库中,对sina_ weibo中的表进行分析,可以发现新浪微博的信息主要存储在home_ table,

account table一 v2, follow_ table和group_ table这四张表中。如下图所示:

3.4 Android手机应用程序动态取证方法研究

3.4.1动态取证方法研究的意义

由于手机键盘输入存在一定的局限性,用户在使用过程中会将应用程序设置为记住密码

或者自动登录。因此,利用保存在应用程序中的密码,采用动态取证方法不需要对应用程序

进行解析,直接获取应用程序数据。动态取证方法是对静态取证的有效补充,具有非常重要

的意义。

C1>绕过加密数据

由静态取证方法的研究可以看出,使用静态取证方法对应用程序进行提取与解析不仅需

要实时添加新版本的应用程序解析的动态链接库。而且随着安全意识的提高,许多开发应用

程序的公司对应用程序的数据进行加密。若应用程序数据已经加密,则采用静态取证方法对

应用程序数据进行提取与解析基本变得不可能,采用动态取证方法可以绕过对具体的加密算

法,直接将应用程序数据还原到仿真器上进行取证。

C2)克服应用程序版本问题

由于应用程序种类繁多,数据复杂,即使采用插件机制对每一款应用程序进行解析都会

消耗大量的时间,而随着Android系统的日趋开放化, Android手机中的应用程序种类和版本

也越来越多,因此在解析过程中需要对这两个版本的应用程序分别进行解析。手机应用程序

的发展速度已远远超过了对应用程序的分析速度,采用动态取证方法可以有效地解决应用程

序的版本问题。

C3)获取远程网络信息

随着云存储的快速发展,许多用户将信息存储在网盘存储空间中而不是手机本地上,比

如将一些文件存储在115网盘、百度网盘,在QQ空间中发表日志,在人人网上写日志等。

采用静态取证方法只能获取非常少的用户数据,而利用用户保存在手机上的用户名和密码,

采用动态取证方法可以直接进入用户的网络存储空间,从而得到用户在网络上的数据。

3.4.2动态取证方法设计

采用动态取证方法可以绕过加密数据、克服软件版本问题、获得远程网络信息,解决静

态取证方法不能解决的问题,而这些问题是现今取证的常见问题,因此,手机动态取证方法

应受到重视。

从图3.29可以看出,动态取证方法分为准备阶段和仿真阶段。准备阶段是取证人员结合

取证流程和取证原则对目标设备所采取的措施以及创建与目标设备完全相同的仿真系统的过

程,此过程中,需确保目标设备的数据的原始性,应避免目标设备进行信息交互而导致的数

据变化。仿真阶段是取证人员提取应用程序数据并将数据仿真到仿真器上进行取证的过程,

在这个过程中,应尽量采用临时提权技术对目标设备进行提权。此外,取证人员应详细记录

每个细节,最终形成报告,将证据提交给法庭。

C1)准备阶段

取证人员在拿到嫌疑人的设备后,第一时间对设备进行隔离,确保数据的原始性和完整

性。在确保证据原始性与完整性的前提下,将设备与电脑连接,设置设备连接模式确保安装

相应的驱动程序,电脑能够正确访问设备的数据。取证人员按照取证规范进行操作,解析

Android手机的系统版本,获取相应android版本,确保android仿真的一致性与正确性。利

用手机取证系统工具搭建相应模拟器环境,创建出与目标设备一致的仿真环境。

Ca)隔离目标设备

取证人员获取目标设备后,采用隔离箱迅速对目标设备进行信号屏蔽,防止因犯罪嫌疑

人通过网络信号远程执行目标设备中的程序并对相关数据进行清除,导致目标设备中电子数

据遭到破坏。

(b)连接PC端

打开设置一>应用程序一>开发一>USB调试模式,根据目标设备型号选择相应的USB数据

线,连接电脑,根据目标设备型号安装相应驱动,确保两者能够正确进行数据通信,能够读

取目标设备内部的数据,为获取数据做准备。

Cc)解析系统版本

利用adb对目标设备中装载的操作系统以及版本进行详细分析,得到准确的操作系统版

本,通过Android SDK创建与目标设备系统版本相匹配的模拟环境,在电脑上创建出对应的

仿真系统,防止因操作系统版本不同导致的仿真失败情况。

C2)仿真阶段

在仿真系统创建成功后,需要在仿真环境中创建相应应用程序的软件环境。基于Android

安全机制的保护,在获取手机应用程序以及数据时,必须先获取最高权限,因此需要先对目

标设备进行权限提取,确保可以获得相关仿真数据。由于应用程序繁多,提取相应应用程序

以及相关数据后,进行应用程序关联性筛选,对相关应用程序进行版本分析。将相应应用程

序还原到仿真器中,创建与目标设备相同的软件环境,确保仿真的一致性与可靠性。利用取

证系统工具将相应应用程序的数据导入到仿真系统中应用程序的文件存储位置,实现仿真。

Ca)提取目标设备权限

通过手机取证系统工具对目标设备进行权限查看,若呈现完全root状态,则可以获取目

标设备中的内部应用程序数据。若呈现未完全root或者未root状态,则通过手机取证系统进

行权限提取。应首先采用临时root权限提取方法对手机进行提权,因为此种方法只改变了系

统设置中的初始化程序中的setuid的值,没有对用户数据产生影响,而且在设备重启后会还

原到初始状态。但临时提权只针对一些版本的Android手机,若采用此种方法提权失败,则

应考虑采用第三方工具进行提权,获取root权限。

Cb)获取应用程序以及数据

adb拥有root权限后,便可以利用adb pull命令将存储在”/data/data/”和”/data/app/”路径下

的应用程序及其数据保存到PC端的案例文件路径下,为进一步地仿真做准备。

Cc)对应用程序进行分析,过滤无价值程序

建立一个xml格式的应用程序规则匹配文件,包含目前市场上所有应用程序的版本和软

件包名。遍历”/data/app”路径下得应用程序,与应用程序规则匹配文件进行匹配,仔细分析目

标设备中的应用程序以及详细版本号,整理出可仿真应用程序。通过手机取证系统工具,在

创建好的仿真系统中安装相应详细版本号的应用程序,构建与目标设备操作系统中相同的软

件环境。

Cd>还原应用程序,搭建仿真系统

运行仿真系统中的应用程序,通过手机取证系统工具将保存在指定路径中的相关软件数

据导入到仿真系统的软件数据存储的位置中。由于某些应用程序在仿真系统重启前无法读到

导入的数据,无法看到仿真效果。因此要重启仿真系统,完成仿真。由于每次在仿真器启动

时需要几分钟到十几分钟的时间才能完全启动,对取证工作是极其不利的。因此,可以使用

快照(Snapshot)功能,快速启动仿真器,及时对目标设备进行动态取证。

Ce)还原应用程序数据,动态取证

运行仿真系统中可仿真的应用程序,查看应用程序的使用痕迹,利用虚拟身份查看网络

远程数据,并对相关数据进行动态取证。

Cf)形成分析报告,提交证据

取证人员对整个过程中的每个细节,采用纸质文件记录、拍照和录像方式进行记录,对

设备产生可能性影响的步骤应详细说明原因和产生的变化。最后,整理分析的报告,将证据

提交给法院。

3.5本章小结

本章主要介绍了基于SDK机制的静态与动态取证方法,第一节介绍了ADB权限分配机

制和提取方法,实验证明此权限提取方式可以应用于Android2.1-4.0.3版本的手机。第二节

介绍了Android基本信息和应用程序信息的静态提取技术研究,在应用程序信息的提取与分

析中,由于文章篇幅的限制,在四大类应用程序中,分别各列一款主流的应用程序进行提取

和分析。实际上提取与分析过程中的应用程序中,包括不同版本的 QQ、微信、飞信、Skype,

MSN等即时通讯工具,不同版本的QQ, UC、百度、遨游、firefox, 360等浏览器,不同版

本的Gmail、网易、Hotmail、新浪等邮箱,不同版本的新浪微博、腾讯微博、人人网、陌陌

等社交软件,基本涵盖了目前市场主流的所有版本的能够提取与解析的应用程序。最后,介

绍了应用程序的动态取证方法,对静态取证的有效补充。利用静态与动态取证相结合的手段,

可以对手机中的绝大部分数据进行取证,不会遗漏潜在的证据。

第四章基于时间序列和社会网络分析的可视化方法研究

由第三章可知,对Android手机信息的静态与动态取证可以快速方便地对可疑人员的通

信内容进行排查,但这种传统的文字与列表相结合的线性关系展现形式已无法满足日益丰富

的手机数据取证需求,采用统计分析与社会网络可视化技术可以直观、深入地理解网络结构

并挖掘网络内部隐藏的潜在证据,因此被应用于手机取证中。本章首先构建Android手机信

息时间序列(Timeline)模型,反应联系双方在时间维度的关联关系。最后,结合统计分析与社

会网络可视化技术手段对Android手机信息进行通信双方、联系主被动关系、频度关系进行

分析和展现,反应目标对象的人际社会关系,案件初始阶段给取证人员提供一个直观的观察,

很有可能确定犯罪嫌疑人的数量甚至确定可疑人员。

4.1手机信息时间序列

采用统计和可视化技术相结合的方法对某个时间段的信息进行分析,缩小搜索范围,进

一步确定范围。手机信息时间序列是指随着时间的推移,用户之间进行信息互动所产生的时

间链。以时间变量作为主要变量,描述用户的通信行为随着时间的推移所发生的改变。通过

手机信息的时间线,取证人员能够非常清晰地看到用户在某个时间段的通信频率,与其他用

户的联系亲密性,帮助取证人员推断潜在的信息,为进一步调查和分析提供很好地参考。

4.1.1手机信息预处理

在获取手机原始信息的过程中不仅存在取证人员重点关注的潜在证据,还含有大量地与

侦查取证无关的信息。这些冗余数据会干扰取证人员的分析,降低破案效率。因此需要取证

人员对手机信息进行预处理,过滤与案件无关的信息,提取手机中的关键信息,提高破案速

度,同时为构建时间序列图做基础。

手机信息的数据预处理需要考虑以下两个方面:

(1>空值处理。

手机信息中往往含有一些内容属性值为空的数据,例如即时通讯类的飞信信息数据库中

的message字段值为NULL,则说明此条飞信信息记录的聊天内容为空。这种信息对取证人

员来说基本是没有取证分析价值的数据,若将此条信息进行统计,反应在时间序列中的通信

频率中,反而会干扰案件的调查。因此对这些空值数据记录进行删除,减少对取证人员案件

判定的干扰。

C2)数据抽象化。

数据抽象化是将低层次或者数据层的数据对象用更抽象的概念进行替代。例如,数据类

型中时间属性往往会具体到秒,因此可以将时间抽象成天。

由于手机用户进行通信行为所产生的数据记录中的时间属性都精确到秒,时间属性的取

值粒度非常细,反应到手机信息时间序列图中的结构非常松散,无法非常直观地反应相关成

员之间的通信行为频率,不便于取证人员进行分析,因此对手机信息中的时间属性进行数据

抽象化,将时间从秒抽象成天,减少对时间属性的取值个数,更加方便统计时间数据。

4.1.2时间序列模型

时间序列模型是指根据用户之间进行通信的时间属性,对用户和时间进行统计和分析,

以X-Y坐标轴的方式建立的模型。如图4.1所示。

将时间属性映射到X轴上,用户账号属性映射在Y轴上,用户A和用户B在时间点Ti和

兀上发生了通信行为,其中用户A是本机账号,B为A的联系好友账号。用红颜色字体在坐

标原点处表示A账号,以便于区分其他账号,B采用默认颜色表示,A的坐标轴为A(坐标

原点,账号A), B在时间点Ti的坐标轴为B1(时间点Tl ,账号B ), B在时间点Tz的坐标轴

为Bz(时间点Tz ,账号B),用线段将坐标A和坐标B1, Bz进行连接,表示A在时间点Ti和

Tz与B进行了通信。

采用时间序列图进行证据可视化,取证人员可以对用户间在时间线上的通信行为有更加

直观和深入地查看和分析。其主要功能有以下几点:

C1)查看特定时间段内,犯罪嫌疑人用户的通信范围。

C2)查看某一时间段内用户的通信频率,若在这个时间段内,用户与某一个或几个用户

的联系频度颇为频繁,则应考虑对这些用户进行调查分析。

C3)查看与核心人物相关的某个用户的通信行为状态,例如:通信开始时间,结束时间,

频繁度等。

C4)查看特定时间段内,犯罪嫌疑人用户与新增用户之间的通信行为,及时发现某些异

常行为。

手机信息时间序列图通过时间维度地展现,非常直观地反应了与犯罪嫌疑人账号有关联

的用户账号信息及通信行为频率,便于取证人员结合案件发生的时间,对特定时间段内犯罪

嫌疑人进行通信的用户范围进行界定,缩小取证范围。对这段时间与犯罪嫌疑人通信频率高

的用户或者新增用户首先进行锁定,进而查看此用户在线性关系展现中的具体内容,再结合

案件和内容锁定或者排除此用户。依次对这段时间内与犯罪嫌疑人有通信行为的用户进行锁

定或排除,提高取证效率。

4.2手机信息网络的可视化方法

手机中的信息量相对来说比较小,不足以构成基础数据,若采用聚类等数据挖掘技术,

不仅效率低下,而且挖掘精确度会大大降低,很有可能产生误导。因为手机信息中的某些类

信息含有大量的元数据,且文本信息仅含有一部分,这对于聚类等技术的实现存在很大的壁

垒。因此,我们充分利用手机信息中存在的大量元数据,提取关键信息,采用社会网络分析

技术,构建以犯罪嫌疑人用户为中心的星型人际关系网络图,分析手机信息中核心人物的通

信行为模式,挖掘与犯罪嫌疑人有关联的潜在信息。

采用统计分析和社会网络可视化技术相结合的方法,从取证的角度出发,将手机信息中

用户通信行为之间的关联性所构成的人际关系网进行可视化。手机信息网络不仅能够让取证

人员更加直观地理解网络结构数据之间的关系,而且能够辅助取证人员在短时间内以最自然

地方式挖掘和获取数据之间隐藏的特征信息,便于采取快速有效的策略。因此,手机信息网

络在手机取证的数据分析过程有着非常重要的意义。

4.2.1手机信息网络模型

手机信息网络与一般的社会网络有所不同,由于手机都是个人化定制,一部手机一般只

限于一个人使用,从取证角度来看,手机中所产生的信息一般是手机拥有者(犯罪嫌疑人)

进行通信所产生的信息,网络展现形式一般是以持有手机者的单账号或者多账号为中心的星

型网络,其他用户之间的连通性基本不存在,核心人物自身比较明显,不存在区分性。例如

手机中的短信网络,则是以手机用户本身号码为中心与其他用户进行信息互动的网络,其他

用户之间不存在直接联系,不存在连通性,显而易见核心人物便是手机用户。

手机信息网络是指用户借助手机平台与其他人进行信息互动所产生的存储在手机中的信

息集合构成的网络,由于这些信息集包括通信人和通信行为关系,因此可以用社会网络表示。

图4.2所示,手机信息网络包含用户在每个应用程序下进行信息互动所产生的信息网络,

可分为基本信息网络和应用程序信息网络。基本信息网络可分为以用户号码为中心的短信网

络和以联系人为中心的通话记录网络。应用程序信息网络又可以分为即时通讯、邮箱和社交

网络三大类信息网络。以用户QQ号码为中心的QQ网络属于即时通讯类信息网络,以用户

Gmail账号为中心的手机邮件网络属于邮箱类信息网络,以新浪微博账号为中心的微博信息

网络属于社交网络。按照网络类型,又可将分为单账户星型网络和多账户复合网络。

图4.3所示为单账户星型网络,单账户星型网络是犯罪嫌疑人始终使用单一账号进行通

信所形成的人际关系网络,典型的单账户星型网络包括短信息网络和通话记录网络,绝大部

分情况下的手机都是单卡式手机,因此会形成以犯罪嫌疑人手机号码为中心的通信行为网络。

从上图可以看出,处于网络中心的红色A用户为犯罪嫌疑人使用的账号,其余是与A发生通

信行为关系的账号,用带箭头的线条表示两者之间的通信行为,单向箭头表示两者之间单向

通信,例如A->C表示A向C发送信息给C } B->A表示B发送信息给A。双向箭头代表

两者之间互相进行通信,例如A<一>H表示A与H之间相互发送信息。

图4.4所示为多账号复合网络,多账号星型网络是犯罪嫌疑人使用多个账号进行通信所

形成的人际关系网络,这些账号可能是犯罪嫌疑人本身的,也可能是与犯罪嫌疑人有特殊关

系的用户账号。常见的多账号复合网络基本都是应用程序信息网络,例如即时通讯类的QQ

网络,邮箱网络的Gmail网络,社交网络的新浪微博网络等。这些多账号所形成的复合网络

除了以每个账号为中心的星型网络,这些账号之间也有可能进行通信,而且这些账号之间也

可能会存在共同用户账号。从图4.4可以发现,位于网络中心的用户A和B是犯罪嫌疑人使

用的两个账号,A和B又以自身为中心形成各自的星型网络,A与J、K、L、M、N、0、C、

D、E形成以A为中心的星型网络,B与C、D、E、F、G、H和I形成以B为中心的星型网

络。可以发现A与B的共同账号为C、D和E,且A与B之间也存在互相通信关系。

由于手机犯罪中,大部分犯罪嫌疑人都会同时产生单账户和多账户的网络,经常会出现

以犯罪嫌疑人为中心的一对多或者多对多的犯罪行为,通过对手机信息中的关键信息和通信

频度进行统计分析,建立以犯罪嫌疑人为核心的单账户或多账户通信网络,从通信网络中分

析出犯罪嫌疑人可能存在的同伙或者与案件有关的受害者,从而确定犯罪规模或者受害者范

围,扩大侦查范围,进而提高案件侦破速度。

图是比线性表更加复杂的一种数据结构,被广泛应用于社会、地理、化学等不同领域。

图G一(D,R)中D表示图中数据元素的集合,R表示这些数据元素之间存在的关系集合。若

数据元素和关系分别抽象为节点和边,则可以用G一(V,E)表示图,其中v代表结点的集合,

E表示边的集合。如节点A和节点B发送通信行为,产生关联关系,则可以A与B之间可以

用边(A,句表示,即(A,B)二E.根据边的方向性,可以将图分为有向图和无向图。

无向图是指图中的所有边都是无向的,在图G一(v,E)中,对于任意结点Y,砚任V,当

(M,砚)任E时,则必有(砚,M)任E,则称图G为无向图。无向图中可以用不带箭头的边表示,

因为(:,砚)·(砚,:)。

有向图是指图中所有边都是有方向的,边是有节点之间组成的有序对,例如(v,砚>表示

结点M与v,之间的一条边,则(Y,砚)一Y。砚,即M表示边的始点,v,表示边的终点。而

(砚,Y)一砚。Y,即v,表示边的始点,M表示边的终点。在有向图中,·(v,砚>‘(砚,v)一可

以用带箭头的线段表示两个结点之间的关联关系,箭头方向由始点指向终点。

手机信息网络主要包括单账户的星型网络和多账号的复合网络,由于手机信息网络中通

信双方的主被动关系在取证过程中具有非常重要的参考价值,通信双方具有方向性,因此采

用有向图构建手机信息网络。其形式化定义如下:

定义1:以有向图G-(v}E)表示手机信息网络,其中v代表通信行为关系双方的用户账

号的集合,即V一{{v;lv,代表用户账号};E是有向边(通信行为关系)的集合,即E一{(v,,v;),v

成功发送消息给V} } o

n

定义2:手机信息网络中通信双方亲密度C一W,,其中W.,一艺‘,W,为用户账号1和用

k =1

户账号j之间的边权值,n表示用户1和用户j之间发送通信行为的交互总次数,W.,的值越大

说明用户之间的关系越亲密,交往越频繁。亲密度C的值可以用来衡量用户之间的关系亲密

J性。

定义1和定义2只是对手机信息网络进行形式化定义,以即时通讯类网络的QQ信息关

系网络为例进行说明。在QQ信息的解析中,可以发现QQ的关键信息主要有发送者号码、

发送者昵称备注、发送的信息内容、发送时间、接收者和接收者昵称备注。由于发送者昵称

更能直观地反应用户的真实信息,并且能唯一代表用户,因此统计发送者和接收者昵称备注

的属性值作为用户账号,即V={v;lv,代表昵称备注}}o E代表发送者和接收者的关系集合,

即E=f<}}咐,M成功发送消息给v}。统计发送者和接收者之间的信息互动总数n,计算两者

之间的边权值W},从而获得两者之间的亲密度C。由此构建一个简单的QQ信息网络图,如

图4.5所示:

图4.5是以犯罪嫌疑人QQ账号昵称A为中心的信息互动网络图,从图中可以发现有三

种信息交流方式:A主动发送消息给E, A与B互相发送消息和D主动发送消息给A,即A

一>E, A<一>B和D->A。用户之间的连线上的数字代表两者之间亲密度的值C,从图中可

以发现A与I进行信息互动的亲密度最高,即C=16,由此可以看出A与I的关系是非常亲密

的。而D发送了一条消息给A后,便没有收到A的回应了,D与A的亲密度最小,其实可

以猜测D可能是垃圾信息发送者,发送了一条广告给A,当然这需要通过具体消息内容进行

断定。根据C值的大小,取证人员非常直观地观察到与犯罪嫌疑人有密切联系的用户群体,

因此可以为案件的判断做参考。

4.2.2基于手机信息网络的图自动布局算法

手机信息网络模型是对手机信息网络的一种形式化描述,具体的展现形式则需要利用社

会网络可视化技术进行实现。社会网络大多是基于节点的二维网络图形,一旦网络节点变多

时,便会造成网络中节点之间的连接线相互重合,因此网络布局的合理性会严重影响用户对

网络中包含的潜在信息的判断。即使是类似于手机中的信息互动所形成的这种小型网络,如

若网络布局不合理也会增加用户理解网络结构的困难性。因此,对手机信息网络布局时,应

遵照美学原则,让用户更加直接、深层次地理解网络结构和社会属性,快速挖掘用户想要获

取的信息。

由手机信息网络模型可知,手机中每一种相互通信而产生的网络数据集所构成的网络都

可以抽象成网络模型G(v,E),例如短信网络,通话记录网络,QQ聊天记录网络,手机电子

邮件网络等。其中V是节点的集合,代表每个相互通信的实体,例如发送者与接收者。E是

边的集合,代表实体之间的相互交流,例如发送者和接收者之间的通信行为。对于边eEE设

定一个权值w}e),权值为正整数,代表通信次数。边的集合【u;} u,+}」定义为从节点s到节点

t的路径,i=0,1,2, } } },1-1,其中uo=s, u}=1.路径的长度为该路径所有边的权值之和。节点s和t

的距离d(s,t)为在G网络中连接s和‘的任何路径的最小长度,节点s和‘的最短路径的集合

为二St,经过节点v的路径数记为二Stw).

网络G }V, E)的可视化是将平面的一点尸(、)表示节点、EV,节点尸(。)和尸(、)之间的直

线代表两者之间的边(u,v)EE,直线上的数值代表边权值w(e)。因此,网络布局算法可以被

应用于手机信息网络的可视化中,产生符合美学原则并且在特定区域显示的二维网络图。每

组坐标(二(、),,(、))代表一个节点,两坐标之间的有向线段表示发送者与接收者之间的通信行

为,考虑到有向图的美学原则:1、节点分布均匀;2、边交叉最小化;3、网络具有对称性。

简化原则:1、每个节点应与其他节点保存一定距离;2、相互有通信行为的节点间的距离应

该靠近。基于上述两条准则,布局问题可以简化为如下公式的最小值问题:

min f }G}V,E}}

(4.1)

这里,

其中,ri

f(G)一艺艺

i=1 j=i+1

L2

}P,一P;}

+艺

(vv,i )eE

Iri一p,}

L2

(4.2)

为节点:二V的位置,}、,一、,…是节点:与v,}的距离,

:一、n

(4.3)

L为节点vi与v,}的理想距离,。代表节点的数量,、代表屏幕的区域,k是协调参数。从

公式(4.2 )可以看出,减小节点与其他节点的距离会增大第一部分的值,增大有通信行为的

节点间的距离会增大第二部分的值,因此只要使得f}G)的值最小,便可以布局适合层次结

构清晰的手机取证网络。本文采用遗传算法求得f(G)的最优解,从而得到手机信息网络的

自动布局算法,使得手机信息网络布局合理,层次分明,便于取证人员直观地进行判断。

遗传算法是计算机科学人工智能领域用于解决最优化的一种搜索启发式算法,是进化算

法的一种。它借鉴了进化生物学的一些现象发展起来的,通常生成有用的解决方案来优化和

搜索问题。算法整个过程如图4.6所示:

C1>初始化:设置进化计数器t=0,最大进化代数为T,随机生成M个个体作为初始群

体P(0)。

C2)评价:计算机群体P(t)中个体的适应度。

C3)选择:从群体P(t)中选择满足一定适应度的个体用于繁殖下一代。

C4)交叉:对两个个体中的相同位置的基因互换产生新个体。

CS)变异:对群体中的个体串中的某些基因值做异向转化。

C6)终止:t=T时,将整个过程中产生的最大适应度的个体作为最优解输出,算法终止。

4.2.3算法设计与分析

手机信息网络的布局问题转换成利用遗传算法求公式(4.1)的最优解问题,由于在手机信

息网络中几乎不存在非中心点之外互相连通的节点社团,在布局方面不会采用将区域分割成

不同的部分进行布局,采用方格法进行布局。采取这种方法的好处,可以将同时连接在一个

节点但相互之间没有连通的节点进行均匀分布,连线不会存在交叉现象。此时,只需计算特

定距离的节点之间的斥力,超过一定距离的节点之间的斥力无需计算,进而计算f(G):

,同一} }}}LZ}、艺

i一,;一;+} gyp;一pi}(v,v)。

…:,一:,…2

L

(4.4)

s}n

1一2

一一

d

1,… p,一:,…<“

0,} p,一pi}全“

一一

可v; )表示节点v; E V在屏幕区域的映射,x; , y,代表p ( v;)在坐标轴中的映射值,因此,

网络G (V, E)所有节点可以映射在特定区域、中:

、一{(x,,)}。三、<_ b,。三,三“

(4.5)

公式(4.4)的最小化问题转换为:

min

(X.,})Es

f (x,,)

(4.6)

“中,.f (x} y,一牲1/厂六不+(只

(:一x,)zxi+(,,一,,)z

L

由于手机信息网络的核心人物对取证有着非常重要的价值,因此在网络布局过程中采用

聚类图的原则。首先计算每个节点的度,包括出度和入度,这里的度是指通信行为的次数,

将度值最高的节点布局在中心位置,假如这些节点之间互不连通,则将这些节点按照圆形布

局方式布局在中心位置。若所有的节点在各自社团中的度数最高,则不改变这些节点的布局

方式。给这些节点分配如下坐标:

‘1,1、

、尤。,,·)一}2}}2w夕

(4.7)

厂lleseeee、

厂lleseeee、

xr+,

yr+k=

_生l+Lcos

生w+L sin

2

·ar+,}n

hr+,}n

(4.8)

(4.9)

这里,i=1,2,...,n-r.L为公式(4.3 )中定义的节点间的理想距离,通过调整参数k对网

络布局进行优化,本文k值为生

2

0 nr+,为第(:+幻个社团的节点数,氏+,

一。;+,_1+ 2T}r+;}, 8r+r-> > r+}一。。

公式(C 4.6)的候选集(}x,,y,),}x2,y2),...,}xr,yr))作为遗传算法的染色体,评价每个个体

在网络中的适应度,那些低适应度地个体将被修改作为新的候选集。新的候选集被用于算法

的下一次迭代中。直到产生公式(4.6 )的最小值(或者一个近似解)才停止迭代。具体设计

如下:

(1)编码

为避免解码和减少执行时间,采用坐标的实数串(xl y1, .x2, y2, " . ., xr, yr)作为遗传算法的染

色体。

}2)设计适应度函数

为使目标函数获得最小值,定义正数Cmax ' Cmax } f( xl } y1 } x2 } y2 } " . . , xr , yr ),定义适应度

函数为F}x,,y,,x2,y2,...,xr,yr)一Cmax一J (xlylx2}y2}"..,xr}yr) 0

C3)策略选择

为避免过早收敛,使用Sigma比率转换技术将个体i的适应度f(i)转换成ExpVal }i),

ExpVal }i)一}{·(f(‘,一f(!)/。(Z)),6(

{1,口L

、>0

厂,.f (t)和二(r)分别表示第;代的适应度和标准

)<0

方差。对于ExpVal }i),采取基于适应度比值的选择策略,同时保留最大适应度的染色体。

C4)参数设定

P表示杂交的概率,月。表示变异概率。这两个参数影响时间消耗和迭代终止的可能性。

针对不同特质的网络设置不同的值,这里N=30只=0.7 } P,n =0.02 0

(5)遗传算子的设计

对于杂交算子,选择两个父体A一(a,, a2, . . ., a2Y)和B一伍,b2,...,b2Y),杂交位置为3则会

产生两个新个体A'一(a,,a2,a3,b4,...,b2Y)和B'一伍,b2,b3,a4,...,a2Y)。

对于变异算子,采用随机突变,具体思路如下:假设突变筛选的第k代成员中的父体为

A一(a,,a2,...,ak,...,a2小其Y坐标的值区间为【。,川。经过一次突变筛选后得到一个新个体:

A,一(a,,a2,...,ak,一:),其中a;一{

ak+△(t, d一ak),Random } 2 )-

ak+△(t, a、一c),Random } 2)-

这里,Random}2)满足△}t} y)一,(‘一Y(‘一t/T)5),O}t,y)E}O,y」且0 (t一T, y)一0时,其

值为0或1, t和T分别代表当前变异次数和最大变异次数。这表明在早期变异过程中会进行

大范围地搜索,在后期则进行局部调整。

(6)终止准则

根据预先规定的最大演化代数,经过几代突变满足条件时终止。

因此,基于手机信息网络的遗传算法的图自动布局算法伪代码如下:

Begin:

t=O,initialize(p(t));

Evaluate(P(t));

while t<T Do

begin

P1=Select(P(t));

P2=Crossover(P(1));

P(t+1)=Mutate(P2);

Evaluate(P(t+1));

t++;

end

Draw_ Graph(G,X,Y)函数执行过程中,节点的x和Y坐标轴便被布局在指定区域内,同时

节点之间的度值大小也被确定,根据度值的大小进行迭代,将相近的值布局在同心圆周中,

形成以中心节点为核心的聚类图布局网络。

本系统采用C#实现了基于手机信息网络的图自动布局算法,并根据实验数据绘制了如图

4.7所示图例。

从图例中可以看到,采用此种算法绘制的图,都布局在区域中心,并且非连通图之间在

往区域中心的同时保持一定的距离,每个节点之间的距离均衡,以核心节点为中心分布均匀,

结构层次清晰。另外,此算法方法简单,容易实现,便于修改,且易于并行化,可以直接用

来绘制非连通图。

4.3本章小结

本章主要介绍了手机信息网络的时间序列和社会网络分析的可视化方法,从取证角度出

发,通过时间维度和二维网络将手机信息关系网络进行可视化,便于取证人员挖掘一些潜在

信息。首先,利用时间属性构建时间维度,将时间属性值抽象化,接着统计用户之间的通信

行为频率,体现用户之间在时间维度的关系网络。其次,根据手机信息的特性,定义了单账

户星型网络和多账户复合网络这两种类型,再根据这两种类型对手机信息网络进行形式化定

义,构建手机信息网络模型和衡量用户行为特性的亲密度。最后,根据手机信息网络模型的

特点和节点分布,结合遗传算法的特点,提出了基于手机信息网络的图自动布局算法,并利

用此算法绘制了部分图例,进行测试。

第五章系统实现与分析

本章在前三章的研究基础上,设计并开发了Android手机取证系统,系统主要包括三个

模块功能,Android手机信息静态取证模块,Android应用程序信息动态取证模块,关键信

息时间序列与社会网络的可视化模块。此套手机取证系统能对目前市场上主流的Android手

机进行取证,能够实现基本信息和各种版本的四大类主流应用程序的静态与动态取证,再对

提取的手机信息进行时间序列分析和社会网络分析,阐述某类信息通信行为的时间线和人际

社会网络,并以图表的形式直观地呈现,方便调查人员进行调查,可以明确调查的方向。

5.1关键信息数据库设计

由于Android手机信息的提取与分析中除了含有时间、内容、联系人等关键信息,还含

有序列号、空值等冗余信息,而且许多应用程序的数据都存储在不同的表中,需要对这些表

中的字段进行关联解析。这不仅增加了解析时间,而且由于显示的信息中含有大量垃圾信息,

从而增加了取证人员的取证分析难度。因此本节对手机信息的数据库进行优化,删除冗余数

据,为静态解析与显示提供数据集,同时也作为时间序列和社会网络分析的数据基础,系统

直接对优化后的数据库进行操作,提高了系统运行速率。

由于Android手机信息主要包括基本信息和应用程序信息两大类,基本信息包含短信息、

联系人和通话记录,应用程序信息包含即时通讯、邮箱、浏览器和社交网络,如图5.1所示。

由于原始的Android手机短信息、联系人和通话记录分别存在每个应用程序包名下的数

据库中,并且每个数据库中含有大量的冗余数据表,在实际分析过程中这三类基本信息的关

键信息都只存储在一张或两张表中。对多部手机的提取过程可以发现,每部手机的基本信息

数据库都是一样的,因此可以将提取的关键信息存储在一个数据库中,每张表代表一类信息。

BasicInfo.db是存储基本信息的数据库,它包含message, calls和addressbook这三张表,其中

message存储着从短信息中提取的关键信息,calls存储着从通话记录中提取的关键信息,

addressbook存储着从联系人中提取的关键信息。

然而,从原始应用程序数据库信息的提取可以发现,每一类应用程序都包含很多应用程

序,例如邮箱类包含Gmail, Hotmail, QQ邮箱、Foxmail、网易邮箱等应用程序,随着移动

互联网的发展,将会有更多的邮箱类应用程序产生。而且,每个应用程序都包含大量的冗余

数据,且关键信息都存储在多个表中,需要关联多个表才能提取关键信息,因此考虑每类应

用程序的可扩展性以及数据的聚合度,将每一类应用程序关键信息存储在一个数据库中,这

类应用程序的关键信息存储在这个数据库的表中。例如邮箱类应用程序的关键信息存储在

MailBoxInfo.db中,它的表中存储着邮箱类应用程序的所有信息。每个应用程序都包含两张

表,一张表存储账号信息,另一张表存储邮件信息,例如Gmail_ accounts表存储着Gmail的

账号信息,Gmail_ message存储着Gmail的邮件往来信息。

关键信息数据库的结构设计包括逻辑结构设计和物理结构设计。对Android手机关键信

息的分析可以设计如下数据结构:

C1)短信息(索引号,联系人姓名,电话号码,短信内容,时间,短信类型)

C2) QQ账号(QQ号,昵称)

C3) QQ聊天记录(QQ号,昵称,聊天类型,发送者QQ,发送者昵称,接收者QQ

接收者昵称,时间,内容)

C4) QQ群信息(群账号,群昵称,群主,群签名,群内成员)

CS) QQ分组信息(好友账号,好友所在分组,昵称,备注,签名)

C 6 ) Gmail账号信息(账号,密码,类型)

C 7 ) Gmail邮件信息(发送者,接收者,主题,发送时间,接受时间,内容,附件)

C8) QQ浏览器历史记录(网站,网址,访问时间)

C9) QQ浏览器书签(网站,网址,标签时间)

C10)新浪微博主页(发布者,内容,发布时间)

C11)新浪微博账号信息(账号,密码,昵称)

C12)新浪微博好友(好友昵称,好友分组,分组名称)

从设计的数据项可以看出,每一类应用程序的数据结构都是按照其本身的结构进行优化

和设计的。例如,QQ包含账号,群,分组,聊天记录这四张表。结构和层次非常清晰,便

于取证人员进行取证分析。由于篇幅限制,以短信息库为例进行分析设计。逻辑结构设计如

下所示:

本系统的数据库都是S QLite数据库,因此调用SQLite的应用程序接口创建数据库与表。

短信信息的物理结构实现如下:

CREATE TABLE message

(id integer,

contact TEXT,

phonenumber TEXT,

body TEXT,

date TEXT,

type TEXT

5.2手机信息静态取证的实现与分析

由Android手机信息提取技术的研究可以发现存储在手机中的数据信息主要是基本信息

和应用程序信息,这些数据主要存储在以应用程序包命名的文件夹子目录中的SQLite数据库

中,这些数据本身存在这一定的关联性,主要关键信息有用户名、交流内容、时间等,除了

这些关键字段数据以外同时含有大量的冗余数据。

本节主要从取证角度出发,对数据进行有效、可靠、完整地提取,并且以可视化的证据

展现方式进行展示同时可将展示的数据以excel表格的形式进行保存,作为最后的法庭证物。

同时,在提取的过程中采用数据完整性检验方法对逻辑副本进行hash值计算,在分析的过程

中采用细分数据对象的原则,对每个数据对象采用hash函数进行检验,将初始的细分数据对

象与分析后的数据对象进行对比,以验证数据的完整性、有效性和可靠性。

由于应用程序不断更新、不断丰富,若主程序中包含每个应用程序的提取与分析代码,

则不仅显得程序冗余而且会对后期的维护带来困难。因此系统采用插件机制,将每个应用程

序封装成动态链接库(DLL,主程序调用每个程序的动态链接库。只需对后期更新和扩展的

应用程序进行封装,由主程序调用即可,避免了由于应用程序频繁地变化而不断改变主程序

的麻烦。通过插件机制,我们的应用程序可以最大化的获得可扩展性、适应性和稳定性,而

且便于软件的维护和升级。手机信息的提取原理如图3.35所示:

C1>定义getFileListInDir方法,遍历对应路径下的所有文件,匹配包含该应用程序关键

字的文件,并返回该文件的全路径。具体原理:实例化DirectoryInfo类,利用DirectoryInfo

类的GetFileSystemInfos方法返回该目录下所有文件名和子目录的一个数组,利用foreach,

FileSystemInfo类和DirectoryInfo类对返回的所有文件和子目录进行遍历,若为文件名与关键

字匹配,则返回此文件的全路径。若为目录,则迭代调用getFileListInDir方法,进入子目录

中,继续遍历和匹配,未找到匹配文件则返回NULL值。

C2)判定Path的值是否为空值,若为空值,则未含有应用程序数据,提取结束。否则

对得到的数据库文件采用MDS算法生成hash值。以往的计算机证据固定都是基于整个文件,

而手机与计算机的最大不同点是手机可以与运营商进行信息互动,尤其在对Android手机进

行临时提权后,必然会改变原始数据,假如仍然对整个备份文件生成hash值,则会与原始文

件镜像hash值不一致,导致整个数据会受到法庭的质疑。结合手机信息的特征,本文提出细

分数据对象检验方法,分别将短信、联系人、通话记录、QQ等应用程序的数据库作为一个

数据对象进行划分,对这些数据文件采用MDS算法生成hash值,对信息提取前后两次的hash

值进行对比。直接调用MDSCryptoServiceProvider类,使用ComputeHash方法,计算Stream

对象的哈希值。首先利用FileStream类对遍历后的数据库文件进行读取。然后创建MDS算

法,计算数据库文件的hash值,并返回字节数组。最后将字节数组转换为16进制的字符串

并显示。

(3)分别实例化TreeView和DataGridView类的子节点和列表,利用SelectedNode获取

选定的 TreeView子节点。此时通过SQLiteConnection建立连接对象,指定SqlConnection对

象的ConnectionString属性,打开此路径下的数据库文件。

(4)实例化SQLiteCommand类,创建SQL语句,读取数据。利用S QLiteD ataReader

的Reader方法遍历读取的数据,将数据添加到TreeView的子节点和DataGridView的对应列

中,显示。

(5)调用Microsoft.Office.Interop.Excel动态链接库,实例化一个Excel.Application对象,

新增加一个Workbook工作簿,利用for循环将DataGridView中的第一列属性值导入到Excel

的列头中,生成Excel列头名称。通过两层for循环语句,将DataGridView中的数据库导入

到Excel中,保存Workbook和Excel到用户指定的文件,结束Excel进程。

如图5.3所示为基本信息中的通话记录的线性关系界面展示,包含通话记录的5中关键

信息,这种线性关系的展示相对比较直观,取证人员可以根据案件进展情况,筛选在某个时

间段犯罪嫌疑人的通信行为信息,进一步缩小调查范围。当然,取证人员也将这些潜在的证

据保存到excel表格中,一方面利用excel的功能进行筛选查找,另一方面将这种证据呈现给

法庭,作为证据的一部分,图5.4为通话记录的excel表格形式。

根据取证原则和取证流程可以发现,若这些用户数据的原始性和完整性无法得到保证,

则其作为证据去说明或者反驳某件事件的法律效力会大大降低,因此根据手机信息证据特性

划分为两大类,基本信息和敏感信息。再对这两大类进行细分,每大类中的一种信息作为基

础数据元素进行细分。例如,基本信息可以细分为短信、联系人、通话记录。在整个静态信

息提取过程中对信息提取前后的数据对象进行完整性检验,采用MDS算法生成hash值,比

较前后两次的hash值的一致性来判定用户数据是否被篡改。本系统将生成的hash值对比关

系保存到excel中作为法庭证物,进而判定用户数据的原始性、完整性。

图5.5为信息提取前后的hash值对照关系图,从图中可以看出来,短信、联系人、QQ"

Gmail、新浪微博、UC浏览器等用户数据在信息提取前后的hash值是一致的,这说明在整个

静态取证过程中,这些数据没有发生篡改或者破坏,具有原始性和完整性,因此这些数据在

说明或者反驳某些事件中具有法律效力,可以被法庭接受。从图中可以发现系统设置的前后

两次的hash值不一致,这说明系统设置在提取过程中数据发生了改变,这是因为在信息提取

前需要将手机调成飞行模式,将USB调试模式打开等操作,此外手机若处于未root状态,需

利用临时root的方法对手机进行临时提权,这本身也改变了系统设置中的一些参数值。因此,

系统设置的数据发生了改变,导致了前后hash值的不一致。但,这并不影响用户数据的法律

效力。

5.3应用程序信息动态取证的实现与分析

应用程序信息动态取证模块主要利用Android SDK中仿真器的特性,结合应用程序的特

性,对四大类的应用程序进行动态取证,应用程序的本地信息可以直观地在仿真器上显示,

同时可以获得远程网络信息,为证据的收集与分析提供了补充。动态取证实现原理如图5.6

所示:

根据Android手机系统版本信息,调用”reat avd"命令创建与Android手机版本一致的仿

真器,再利用”mulator"命令启动创建的仿真器。根据市场上四大类各个版本的应用程序建立

xml格式的规则库,包括应用程序名和对应的应用程序包名,遍历”/data/app"路径下的应用程

序和”data/data"路径下的应用程序文件夹,将截取的软件名和软件应用程序文件夹名与规则

库中的应用程序名和应用程序包名进行匹配,匹配成功则分别返回应用程序的全路径和应用

程序文件夹的全路径,同时调用应用程序的属性值例如应用程序大小,应用程序名等。将应

用程序的相关信息在DataGridView和Label控件中显示。当触发安装软件时,调用”adb install"

命令和应用程序全路径,将选中的应用程序安装在模拟器中。此时触发仿真还原事件,调

用”db pull"和应用程序文件夹的全路径,将选中的应用程序信息仿真到安装的应用程序中。

调用“emulator“命令,重启模拟器,再次启动软件,此时取证人员便可以对此应用程序进行

动态取证。

动态取证模块使用的案例是作者的中兴U880的Android手机,以QQ2011为例进行动态

取证,如图5.7为动态取证界面图,从图中可以看到左边是用户软件安装列表,这代表了用

户在手机中安装过的并且存在的应用程序,此列表可以清楚地看到用户安装的四大类的各个

版本的软件,便于取证人员有针对性地进行动态取证。可仿真应用列表为规则库中匹配成功

的可仿真的应用程序文件信息,此列表默认选中匹配成功的应用程序信息。图5.7所示,当

用户点击安装软件时,便可以将QQ2011应用程序安装到仿真器中,此时,取证人员可以直

接对仿真器进行操作,启动软件。启动软件成功后,直接点击仿真还原,便可以将QQ2011

的应用程序信息还原到仿真器中,关闭模拟器,再次启动模拟器,然后启动软件,便可以直

接利用用户保存的密码进行登录,对其中的数据进行取证和分析,如图5.8所示。

从图5.8可以发现,第一幅片图中显示的是用户在某个时间点的聊天记录,此时取证人

员可以根据案情发展情况,有侧重地筛选某个时间段的聊天记录进行分析和取证。在仿真器

中的信息结构和手机的信息结构完全一样,信息的层级结构更加清晰,更加便于取证人员快

速地进行分析,查看好友、群信息、最近联系人等等。QQ信息的动态取证不仅可以分析其

本地信息,还可以获取QQ的远程网络信息,例如用户QQ空间的状态,网盘,日志等等。

第二幅片图显示的便是用户QQ空间的状态,通过对远程网络信息的分析和取证,取证人员

可以掌握犯罪嫌疑人在某个时间段的社交活动范围和行为倾向等,也有可能获取犯罪嫌疑人

的部分犯罪事实的证据,为案件的进一步发展提供有效地帮助。

5.4时间序列与社会网络可视化实现与分析

采用动态取证与静态取证的方法可以对具体的内容进行筛选,找到有案件有关的证据,

但这种人工分析工作量大,耗时,因此可以利用时间序列和社会网络可视化方法,将大量的

关联数据反映到时间维度和二维网络空间中,方便取证人员迅速找到用户之间的关联关系,

提高取证速度。时间序列和社会网络可视化主要利用GDI+的Graphics, Pen和Brush等类以

及第四章中的图自动布局算法进行实现。

5.4.1关键信息时间序列的实现与分析

将手机信息中的数据之间通信关系以时间进行排序,反应通信双方随着时间的迁移的通

信关系,以可视化的形式展现给取证人员,更加直观地展示证据之间的联系。本文采用第四

章的时间序列模型进行可视化展示,实现原理如图5.9所示:

定义结构体MobileInformation,遍历优化后的数据结构,将发送者、接收者和时间这三

个属性值存储到结构体中,利用for循环联系人和时间的数量。筛选出手机用户的账号,使

用System.Drawing命名空间,新建Graphic s类,利用show方法显示绘图窗体,实例化Pen

类,采用黑色、2像素的线条宽度画笔进行绘制,实例化Point方法,以用户账号(0,0为坐

标原点绘制坐标轴,以坐标原点为基准绘制Y轴,根据统计的联系人对Y轴进行平分,并依

次将联系人账号打印在Y轴坐标点上。再利用Point方法绘制X轴,根据统计的联系人通信

时间对X轴进行平分,将时间值依次打印到X轴坐标点上。遍历结构体中的联系人和时间,

与联系人的X轴和时间的Y轴显示值进行匹配,并将匹配的坐标点的X和Y值存储在动态

二维数组中。新建Brush基类,实例化DrawLine方法,遍历动态二维数组中的坐标值,调用

DrawLine方法将坐标原点与遍历的坐标点之间绘制黑色直线,完成整个时间序列图。

如图5.10所示为通话记录的时间序列图,从局部图中可以非常直观地看到犯罪嫌疑人(本

机)与联系人“m”之间在2012年4月28号中午进行了两次通话,在2012年4月28号晚

上与联系人“猴子”进行了一次通话,在2012年4月29号中午与联系人“李标”发生了一

次通话,在2012年4月29号晚上与联系人“星星”发生了两次通话。

通过整个时间序列图可以非常直观地看到犯罪嫌疑人与联系人“m”之间的通话频率和

通话开始时间,结合案件发生的时间段,可以对时间序列图中该时间段中犯罪嫌疑人与此联

系人之间的通话频率进行比较直观地把控,再结合该联系人在其他时间段与犯罪嫌疑人的通

信关系,推断此联系人与犯罪嫌疑人之间是否具有某种特殊关系,例如为犯罪嫌疑人的同伙

或受害者。当然也可以从图中可以看出联系人“m”与犯罪嫌疑人的通话规律,根据此规律

可以比较容易地掌握此联系人出现的异常行为,例如在某段时间内通话频率突然变得非常频

繁或者在某段时间内与犯罪嫌疑人无任何通话记录,再结合该联系人静态分析中此段时间内

的具体通话内容比如通话时长等信息作进一步判断。

时间序列图将联系人与犯罪嫌疑人之间的关联关系通过时间的发展顺序进行展示,可以

非常直观地观察某一个联系人与犯罪嫌疑人之间的整个事件发展过程中的通信行为,能够帮

助取证人员结合时间段做出快速判断。

5.4.2关键信息社会网络的实现与分析

以优化后的数据库数据为基础,采用第四章的手机信息网络模型和基于手机信息网络的

图自动布局算法对手机信息的人际关系网络进行绘制。以类聚图的方式直接展示犯罪嫌疑人

的人际关系网络,以一个或多个账户为类聚中心,与账户有通信行为关系的账户则用带箭头

线段进行连接,箭头表明通信方向,箭头上的数字表示通信频率,整个网络的布局均匀、对

称。实现原理如图5.11所示:

根据数据库中的关键信息属性值,统计通信关系双方的主动、被动联系次数与联系人数

目,根据账号表统计使用者用户账号的数目。实例化Graphics方法,绘制画图窗体,实例化

Point方法,以使用者用户账号为节点中心进行绘图,调用QuickGraph库中的

Random Graph_ Layout随机图生成方法生成初步网络关系图,计算画图窗体面积,根据k值、

窗体面积和节点数目计算理想距离L。采用for语句遍历节点,依次计算两节点之间的斥力和

引力,其中斥力则根据L进行判断,若斥力大于理想距离则忽略斥力,否则计算斥力。根据

斥力和引力重新计算节点之间的坐标值,参照第四章设定的N, P二和P计算每个节点的适应

度,不断迭代,调整节点的坐标位置,直到满足最大迭代次数时停止迭代,完成整个网络图。

图s.12为QQ2o 11聊天记录的社会网络关系图,从图中可以非常直观地发现此网络类型

为多账号的复合网络图,犯罪嫌疑人使用该手机登陆了两个账号,分别以郑冬亚(626228734)

和王超(188128683)为核心人物进行通信行为,产生人际关系网络图。以两个账号为整体进

行分析可以发现,两个账号之间也进行了通信,其中郑冬亚发了s条信息给王超,王超回复

了4条信息给郑冬亚。从图中可以发现两者之间共同的聊天账号包括王振宇、肖哥、邵泽慧

和朱小龙这四个人,其中朱小龙的亲密度最高,亲密度值达到s7和22,这四个人与这两个

账号都有互动,四个账号与犯罪嫌疑人本身具有比较密切的关系且以朱小龙的关系最密切,

取证人员可以结合静态取证和动态取证查看首先查看朱小龙的具体聊天记录,再查看其他三

个人的聊天记录,进行初步判断。以每个账号为核心进行分析可以发现,郑冬亚与13个人进

行了聊天,其中郑冬亚发送了一条信息给三菊却没有收到回复,而周伟伟、咖uj和猴子均发

送信息给郑冬亚却未收到回复,其他账号均与郑冬亚产生了互动,从以郑冬亚为核心的人际

关系网中可以发现朱小龙与郑冬亚之间的亲密度最高,其值为57,而三菊、周伟伟与郑冬亚

的亲密度最低,其值为1,因此取证人员对郑冬亚的聊天记录进行静态和动态取证时可以先

查看朱小龙的聊天记录,再查看联系比较少的其他账号,进行初步判断。从以王超为核心人

物的网络中可以发现,王超与17个人进行了聊天,其中互动的人有9人,主动发信息给王超

的有6人,王超主动发送信息的有2人,亲密度最高的是肖哥,亲密度最低的是牛年生人。

取证人员可以对肖哥的聊天记录进行静态和动态取证,查看肖哥的聊天记录,进行初步判断。

整个网络图的布局时以类聚图的方式进行展示的,采用基于遗传算法的图自动布局算法

进行布局,分别以核心账号为类聚中心,核心账号布局在网络的中心,与核心账号有通信关

系的节点布局在同心圆上,节点之间的距离均衡,层次清晰,不存在交叉线条,非常便于取

证人员结合案件对图中隐藏的潜在证据进行判断。

5.5本章小结

本章主要结合第三章和第四章的研究技术成果设计并开发了一个系统,详细介绍了主要

模块的实现原理,并结合实例对取证结果进行分析。首先介绍了系统的数据库设计,接着重

点介绍了静态取证、动态取证和证据可视化模块的实现原理与取证结果分析。由于文章篇幅

限制,三大模块只能以其中一种手机信息为例进行分析。其中静态取证模块和时间序列图以

通话记录信息为数据基础进行分析,动态取证模块和社会网络图则以即时通讯类的QQ聊天

记录信息为数据基础进行分析。

第六章总结与展望

6.1总结

随着智能手机的普及以及网络通信技术的发展,人们利用智能手机进行手机犯罪的现象

变得越来越普遍,智能手机取证与以往的传统手机取证又不尽相同,智能手机取证的研究已

经成为了电子取证领域的一个重要研究方面。如何有效、快速、合法地获取智能手机中的证

据是司法机关面临的困难。

本文以Android系统为研究平台,讨论了Android手机中的数据源类型,并对这些数据

进行提取和线性分析,利用仿真器实现了应用程序的动态仿真,最后以提取的数据为基础,

构建手机信息时间序列和社会网络模型,并通过社会网络可视化的方法将犯罪嫌疑人的关联

关系在时间维度和二维空间中进行展示,结构清晰,层次分明,便于取证人员快速、有效地

从大量的数据中找到与案件有关的潜在证据。

主要研究内容如下:

C1)阐述了智能手机取证的研究意义、国内外研究现状。

C2)介绍了Android系统结构及其特点,简单介绍了数据存储机制和安全机制。

C3)研究了当前手机取证原则,结合Android手机特性,提出了Android手机取证流程

模型。

C4)根据Android手机的安全机制,研究了其权限分配机制,并提出了一种临时root

权限提取方法

(5)研究了手机基本信息和应用程序信息的静态提取和线性分析方法,主要对短信息、

通话记录、联系人、QQ, Gmail、新浪微博等信息进行提取,并对这些信息的数据结构进行解析。

C6>针对静态解析中出现的问题,提出了一种动态取证方法,利用Android仿真器,将

应用程序信息仿真到仿真器中进行取证,该方法能够实时、动态地对这些信息进行分析。

C7)利用手机信息中存在的逻辑关系,构建时间序列模型和手机信息网络模型,并根据

模型特点提出了基于手机信息网络的图自动布局算法,将手机信息中存在的关联关系反应到

时间维度和二维网络空间中,使得取证人员能够更加直观、快速地判断手机信息网络中的潜

在信息,提高取证的效率。

C8)根据以上研究成果,设计了Android手机取证系统,并编程实现了此系统。首先对

整个手机的数据库进行了设计,过滤了冗余数据和无价值数据,以此作为分析的数据基础,

使得取证分析更加有效。系统主要分为静态取证模块、动态取证模块和证据可视化模块,其

中静态取证模块主要包括数据的提取和线性分析,动态取证模块包括应用程序的过滤、仿真

器的创建和应用程序仿真,证据可视化模块包括基本信息和应用程序信息的时间序列关系图

和社会网络关系图的可视化。最后利用实例对整个系统进行分析和评估。

6.2展望

本文首先对Android手机取证方法进行研究,最后通过Android手机取证系统进行实现

和分析,但由于时间和技术的限制,未来还需要在以下几个方面做进一步研究:

C1)本文只实现了Android手机2.2-4.03版本的临时root权限提取方法,随着Android

系统版本的持续更新,需要对以后的版本进行研究,实现对更多版本的权限提取。

C2)由于本文采用逻辑提取方法对手机中的数据进行提取,只能获取一部分数据,需要

研究通过物理提取方法实现对手机中的数据进行彻底的恢复方法。

C3)在动态取证过程中,由于数据是实时、动态地,不可避免地会造成数据的变化,如

何确保动态取证中的数据的合法性,这也需要做进一步研究。

C4)在证据可视化方法中,本文只是根据手机信息本身的逻辑关系通过时间维度和二维

网络空间进行了展示,随着手机数据量的日益增加,如何利用数据挖掘技术,自动分析数据

中存在的关联关系成为了进一步的研究内容。

特别声明

本文仅代表作者观点,不代表本站立场,本站仅提供信息存储服务。

分享:

扫一扫在手机阅读、分享本文