随着移动互联网的出现,智能手机早已普及,许多人将其作为生活和工作中的通讯工具。
日益丰富的移动应用改变了人们的生活方式。人们可以在手机上购物、聊天、发推文等
机器依然变成了移动端的小电脑。与此同时,一些犯罪分子利用手机实施高科技犯罪的现象也越来越普遍
手机中存储的犯罪证据越来越普遍,成为公安部门侦查案件的重要依据。手机密码
通话记录、短信、QQ聊天记录、邮件、上网记录等都可能记录犯罪分子的犯罪行为。因为
如何合法可靠地从手机中收集证据,获取犯罪分子的犯罪证据成为手机取证
作为
的重点研究内容,手机取证也成为现代法庭科学的分支之一。
智能手机包含丰富的应用程序,几乎可以实现电脑的所有功能,因此从诞生之日起就受到青睐
赢得了人们的喜爱。随着移动互联网的快速发展,智能手机的技术研究日益成熟,生产成本不断增加
减少,智能手机已成为市场主流。根据市场研究机构Kantar Worldpane1 2013年第四季度的统计
统计数据显示,中国智能手机市场份额达到97.3%,比去年增长4个百分点。其中Android系统继续
继续保持增长,达到78.8%}1}o
安卓手机巨大的市场份额,让其成为了很多不法分子犯罪的工具,也成为了手机
重要的取证对象。 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系统的物理取证问题,一个端到端的
Android手机针对yaffs 2系统的物理提取方法,并使用Linux环境提取得到的yaffs2系统的
用于分析的数据。
国外学者在智能手机取证流程标准化研究方面也取得了不少成果。林正贤
Chang-Woo Song 和 Kyung-Yong Chung 等人。 “m鉴于电子证据容易消失、篡改、污染等问题,
提出了智能手机取证流程,以确保获得的数据可以作为原始犯罪现场的证据。斯蒂芬·萨克,
Knut Kroger and Refiner Creutzburg}l2]分析Android系统结构并提出Android手机取证
根据
的规范,证据收集过程包括犯罪现场调查、识别、备份和恢复、证据呈现四个步骤。在数据提取中
过程包括SD卡分析、逻辑分析、技术分析、碎片分析四种方法,最后通过实例进行验证
文中提出的取证标准。
当然,也有学者对智能手机应用数据的取证进行了一些研究,包括社交网络
网络、即时通讯、地理位置数据等信息。 Stefan Maus、Hans Hofken 和 Marko Schuba}l3] 应用
对
程序中可能产生的地理位置数据信息进行取证分析,采用简单、综合的方法检测手机中的
。
对地理位置数据进行线性分析。该方法可以自动获取相关数据并以相关方式展示给证据收集者。努拉
A1 Mutawa、Ibrahim Baggili 和 Andrew Marrington}l4] 智能手机社交网站的潜在潜力
对证据进行法医分析。本文主要分析
中三大热门社交网站Facebook、Twitter和MySpace
B1ackBerry、iPhone、Android三种主流操作系统手机进行实验。首先,在每台设备上安装社交网络
网站并生成数据,然后获取取证规范下各设备的逻辑镜像,并对获取的逻辑镜像进行在线测试
性能分析,其目的是验证这些社交网站的用户数据是否存储在设备的内存中,实验表明通过
逻辑取证可以从iPhone和Android手机中的社交网站、B1ackBerry手上获取大量有价值的证据
由于机器上没有社交网站使用数据的痕迹,因此无法通过取证获得相关证据。阿迪亚·马哈詹,
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之间的关系。在此基础上提出了移动电话信息网络模型。根据手机信息网络模型的特点
Point提出了一种基于手机信息网络的自动图布局算法。实例证明该算法方法简单,易于实现,可以直接
连续绘制断开的图形。利用证据可视化可以直观地展示用户之间的关系,让收集证据变得更加容易
人员可以快速发现潜在证据,降低取证难度,加快案件侦破速度。
1.4 本文结构安排
根据研究内容,文章分为五章。具体安排如下:
第一章主要介绍了智能手机取证的研究背景和意义以及国内外智能手机取证的发展现状
研究现状。
第2章主要介绍Android手机取证的理论和前提。首先介绍Android系统结构和数据
数据存储机制和安全机制,然后介绍智能手机上证据采集的原理,最后结合Android手机的特点和采集
取证原则提出了Android手机取证流程模型。
第3章主要介绍Android手机信息的静态和动态取证方法。一、Android手机研究
权限分配机制,并根据分配机制产生的漏洞实现临时root权限提取方法。接下来介绍一下
开发了手机信息静态取证方法,包括基础信息静态取证和应用信息静态取证。最后介绍一下
介绍了应用信息动态取证的方法,包括动态取证的意义、准备阶段和模拟阶段。
第4章主要介绍时间序列和社交网络分析的可视化方法。首先简单介绍一下手机信息
时间序列,包括数据预处理和时间序列模型。然后介绍了手机信息网络的可视化方法,并
提出了手机信息网络模型,描述了基于手机信息网络的图自动布局算法。最后详细说明计算过程
分析和设计的过程。
第五章使用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 内核还充当硬件和软件之间的抽象层。它隐藏了具体的硬件细节,为上层提供了统一
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 进行通信
与设备通信并控制它。这里需要注意的是,使用Android必须开启USB调试模式
程序调试桥进行相应的操作。 Android 设备将在后台运行 adbd,并连接到 USB。 adbd就正常了
以用户身份运行,访问的数据受到限制。如果Android设备已root,则用户将拥有root权限
访问受身份限制。这时,开发者和取证人员就可以使用Android程序调试桥来检测终端设备中的
。
数据被操纵和访问。为取证调查和数据采集提供有效保障。
Android程序调试桥的使用涉及以下3个主要组件:
(1)adbd 在 Android 设备上运行;
(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) 共享优先
共享优先是轻量级的数据存储机制。开发者可以定义基本数据类型的变量,值为2
元组以轻量级 XML 格式存储。 SharedPreferences主要用于存储“键值对”格式
的数据只能存储基本数据类型,包括整数、布尔类型、浮点类型、字符串类型等。 SharedPreferences
主要通过键盘值对存储简单数据。我们可以通过SharedPreferences的put()方法来实现关键
数值数据的存储,我们还可以使用SharedPreferences的get()方法来获取键盘数值数据的内容。
我们存储的SharedPreferences会自动以XML文件的格式保存,通常存储在应用程序中
数据目录下的shared_pref文件夹中。由于许多应用程序都采用轻量级共享优先的存储方法
存储的变量定义了一个数字元组,它可能成为取证数据的丰富来源。当法医调查人员能够恢复过去或
这对于已删除的 XML 优先文件尤其明显。
C2) 内部存储
内部存储在Java中通过IO流来操作文件。然而,在Android系统中,文件就是一个应用程序
应用程序私有,一个应用程序无法读写其他应用程序的文件。运行应用程序创建的文件都是
保存在设备内存的路径“/data/data
/files”中。开发者可以
存储更复杂的数据结构,可以将文件存储在内存的多个不同位置。开发者拥有控制权
文件类型、名称和位置功能。默认情况下,这些文件只能被它们所属的应用程序读取,甚至
即使是终端设备持有者也不允许查看这些文件的内容,除非他们具有 root 访问权限。证据收集者可以
快速找到这些文件,通过排除取证。原则上,应用程序的 /data/data 子目录中的任何内容,
shared_prefs、lib、cache、database子目录下的文件都是内部存储文件。这些内在记忆
存储的数据可能会引起法医调查人员的兴趣。
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。具体来说,许可
权限机制可以限制应用程序的具体操作,“per-URI权限”机制可以控制应用程序的中间
生成数据的权限访问模式,例如将数据访问模式设置为只读、读写等。因此,应用程序
彼此独立,无法互相访问。不过权限安全机制为应用提供了一些功能
在程序之间使用安全访问。
C 1) Linux 内核层安全机制
Linux内核安全机制包括强制访问控制机制和自主访问控制机制。
提供的强制访问控制机制
实现了Linux安全模块,但LSM未编译到Android系统中。自主访问控制机制由用户和用户控制
用户组、其他用户以及读、写、执行组合来控制文件访问权限模式,包括允许、限制、
拒绝用户、用户组和其他用户的访问。具有“system”和“root”权限的用户可以访问文件系统
系统,应用程序可以申请相应的权限来访问相应的文件。
C 2)Android的“沙盒”机制
Android“沙盒”机制可以隔离应用程序和进程,使应用程序无法访问文件系统或其他
文件。每个应用程序和系统进程都被分配一个唯一的UID,它对应于内核进程。
中的每个应用程序
在自己的虚拟机中运行,具有独立的地址和资源。应用程序必须在其清单文件中声明权利
您必须拥有受限或共享的 UID 才能访问文件系统或其他文件。
C 3)Android的权限检查机制
Android是一个“权限分离”的系统。任何应用程序在使用 Android 受限资源之前都必须
。
必须提前以XML文件的形式向Android系统申请。只有系统授予应用权限才可以使用
使用适当的资源。
应用程序获得相应的权限后,就可以调用API应用层接口来实现相应的功能。可分为以下三种
(a) 调用Public库中的API应用层接口。
(b) 公共API应用层会调用RPC Stub,即API代理接口。
Cc)以IPC绑定的形式传递给系统服务,系统服务进程实现相应的功能。
权限检查包括应用安装时的静态检查和运行时的动态检查。动态检查指应用
运行时调用的系统服务或组件必须经过授权检查。
C 4)Android的数字签名机制
应用程序必须有一个数字来向应用程序标识用户的身份以及应用程序之间的信任关系
证书。安装应用程序时,Android系统会自动检查该应用程序是否包含数字证书及其权限。如果
如果权限级别为签名,则会检查应用程序使用的数字签名以及声明签名权限的应用程序
使用数字签名。仅当两个数字签名一致时才允许安装。如果应用程序的权限是
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闪存主控
存储大量的用户数据,例如:短信、通话记录、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("www.phixma.com",value,"");
if (strcmp(value,"1")==0)
secure=1
if (secure){
由Android的安全机制可知,adb默认不会被分配root权限,adb启动后,adbd会检测系
统的www.phixma.com属性,如果www.phixma.com属性值为1则将会把自己的用户权限降级成shell用户。
一般设备出厂时,都会在default.prop文件设置www.phixma.com属性值为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系统
属性的www.phixma.com值仍然为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/
/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/www.phixma.com/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. www.phixma.com/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。双向箭头代表
两者之间互相进行通信,例如AH表示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
定义2:手机信息网络中通信双方亲密度C一W,,其中W.,一艺‘,W,为用户账号1和用
户账号j之间的边权值,n表示用户1和用户j之间发送通信行为的交互总次数,W.,的值越大
说明用户之间的关系越亲密,交往越频繁。亲密度C的值可以用来衡量用户之间的关系亲密
定义1和定义2只是对手机信息网络进行形式化定义,以即时通讯类网络的QQ信息关
系网络为例进行说明。在QQ信息的解析中,可以发现QQ的关键信息主要有发送者号码、
发送者昵称备注、发送的信息内容、发送时间、接收者和接收者昵称备注。由于发送者昵称
更能直观地反应用户的真实信息,并且能唯一代表用户,因此统计发送者和接收者昵称备注
的属性值作为用户账号,即V={v;lv,代表昵称备注}}o E代表发送者和接收者的关系集合,
之间的边权值W},从而获得两者之间的亲密度C。由此构建一个简单的QQ信息网络图,如
图4.5所示:
图4.5是以犯罪嫌疑人QQ账号昵称A为中心的信息互动网络图,从图中可以发现有三
种信息交流方式:A主动发送消息给E, A与B互相发送消息和D主动发送消息给A,即A
一>E, AB和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
}P,一P;}
(vv,i )eE
Iri一p,}
(4.2)
为节点:二V的位置,}、,一、,…是节点:与v,}的距离,
(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
(4.4)
1,… p,一:,…
0,} p,一pi}全“
可v; )表示节点v; E V在屏幕区域的映射,x; , y,代表p ( v;)在坐标轴中的映射值,因此,
网络G (V, E)所有节点可以映射在特定区域、中:
、一{(x,,)}。三、<_ b="">
(4.5)
公式(4.4)的最小化问题转换为:
(X.,})Es
f (x,,)
(4.6)
“中,.f (x} y,一牲1/厂六不+(只
(:一x,)zxi+(,,一,,)z
由于手机信息网络的核心人物对取证有着非常重要的价值,因此在网络布局过程中采用
聚类图的原则。首先计算每个节点的度,包括出度和入度,这里的度是指通信行为的次数,
将度值最高的节点布局在中心位置,假如这些节点之间互不连通,则将这些节点按照圆形布
局方式布局在中心位置。若所有的节点在各自社团中的度数最高,则不改变这些节点的布局
方式。给这些节点分配如下坐标:
‘1,1、
、尤。,,·)一}2}}2w夕
(4.7)
厂lleseeee、
厂lleseeee、
yr+k=
_生l+Lcos
生w+L sin
·ar+,}n
hr+,}n
(4.8)
(4.9)
这里,i=1,2,...,n-r.L为公式(4.3 )中定义的节点间的理想距离,通过调整参数k对网
络布局进行优化,本文k值为生
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
厂,.f (t)和二(r)分别表示第;代的适应度和标准
方差。对于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
begin
P1=Select(P(t));
P2=Crossover(P(1));
P(t+1)=Mutate(P2);
Evaluate(P(t+1));
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)在证据可视化方法中,本文只是根据手机信息本身的逻辑关系通过时间维度和二维
网络空间进行了展示,随着手机数据量的日益增加,如何利用数据挖掘技术,自动分析数据
中存在的关联关系成为了进一步的研究内容。