徐红
(四川警察学院,四川 泸州 646000)
随着通信技术和计算机技术的高速发展,智能手机应运而生。现今的智能手机已不只是一个通话工具,已经发展成为一个功能强大的便携电脑,它正在不断融入人们工作与生活的各个方面。人们的工作和生活方式也因智能手机的使用而发生巨大的改变。与此同时,一些不法分子将他人的智能手机作为作案目标,或者借助智能手机实施犯罪行为。这些犯罪活动会在智能手机中留下相应的数据记录。通过手机取证,提取这些数据记录,形成电子证据对于打击犯罪,保障网络信息安全,保护人民权益具有重要意义。
手机取证是指对保存在手机中和案件相关的信息进行提取,获得具有法律效力的证据。智能手机中产生和存储的数据种类多、容量大、涉及面广,而智能手机数据直接关系到电子证据的生成,所以有必要对智能手机数据提取进行研究。
本文对手机取证进行简要介绍,重点分析了Android手机数据的组成架构和提取方法。
手机取证必须在法律许可的条件下进行,取证过程必须恪守以下原则:
(1)合法取证原则。对手机的取证权必须得到法律的允许;手机取证所使用的取证技术必须合法,不得改变手机原来的数据;取证程序必须严格按照法律规定执行。
(2)及时取证原则。只要手机通电运行,就可能产生新的数据,从而覆盖原来的数据,无法反映真实的原始状况,所以取证应及时进行。
(3)全面取证原则。尽可能保证取证的数据是完整的,特别是确保重要数据的完整性。
(4)无损取证原则。取证过程要防止破坏原始数据,要保证手机信息完整。
手机取证流程按美国国家标准与技术研究院(NIST)的要求可以分为下列几个阶段:
(1)证据保全
该阶段工作的目的是保护手机中的数据。具体操作步骤是:记录现场——记录当前手机的状态,如系统时间、图标、电量状况等;网络隔离——将手机与外部通信完全隔离,可通过将手机放入屏蔽容器等方法实现。
(2)证据获取
该阶段利用物理获取、逻辑获取和手工获取的方法来获得手机中的数据。物理获取通过与手机芯片直接交互提取数据;逻辑获取将手机与计算机建立连接,通过软件工具提取数据;手工获取通过人工操作手机原有的APP提取数据。其中,物理获取优于逻辑获取,而逻辑获取又优于人工获取。
(3)证据分析
该阶段的主要工作是对提取得到的数据进行分析,以获得有力的证据。
(4)生成报告
该阶段将取证过程中的全部操作和结论进行总结并形成报告,它代表手机取证过程的完结。
据独立咨询公司Gartner统计,2018年Android手机在市场上的占比达到了86%,可见Android手机在全球的智能手机中占据了统治地位。有鉴于此,本文以Android手机为分析对象,探讨其数据提取方法。
Android系统基于Linux内核,采用分层的方式进行构建。Android系统自上而下分为四层,分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
应用程序层由Android手机中的所有应用组成,包括Android的系统应用以及第三方应用程序。
应用程序框架层由活动管理器、窗口管理器、资源管理器、电话管理器和视图系统等部分构成。该层对外提供了API,方便开发人员开发应用程序。
系统运行库层包括系统库和Android运行库。Android运行库主要提供图像显示、浏览器和数据库的底层支持,其包含的库主要有:OpenGL|ES、Webkit、SGL、SSL、SQLite。
Linux内核层,Linux内核的优点是具备良好的内存管理和进程管理方法,可移植性强,拥有丰富的软硬件支持等。Android在Linux内核的基础上进行了适应性改进,以满足嵌入式设备的使用要求。
Android共有五种数据存储方式:SQLite数据库存储、SharedPreferences存储、文件存储、网络数据存储、Content-Provide存储。
SQLite数据库主要存储结构化的数据,是手机取证的重要数据来源;SharedPreferences主要存储应用的配置信息;文件存储主要用于存储容量较大的数据;网络数据存储是通过网络来进行数据存储;ContentProvide用于应用程序之间共享数据。
手机取证中重点关注的对象有:通讯录、通话记录、短信息、浏览器、邮件、QQ等,它们的信息在Android系统的存储方式如下:
(1)通讯录
通讯录存储在contact2.db数据库中,其中与通讯录有关系的表是contacts、data、mimetypes和raw_contacts。raw_contacts存储所有联系人的信息;contacts存储联系人的识别码等信息;data存储所有联系人的详尽信息;mimetypes存储了表征联系人信息各字段的标识。
(2)通话记录
通话记录存储在contact2.db的calls表中,该表中number字段表示联系人电话,date字段表示通话开始时间,duration字段表示通话时长,name字段表示联系人姓名,type字段表示通话的类型。
(3)短信息
短信息存储在mmssms.db数据库的sms表中,该表中address字段表示发送人号码,date字段表示短信发出时间,status字段表示短信的发送状态,protocol字段表示发送短信类型协议,body字段表示短信的内容。
(4)浏览器
手机自带浏览器的历史记录存储在browers.db数据库的history表中,该表中title字段表示网站的名称,url字段表示网站地址,date字段表示访问时间,visits字段表示访问的次数。
(5)邮件
邮件信息主要存储在EmailProvider.db数据库的message表中,该表中timeStamp字段表示接收邮件的时间戳,subject字段表示邮件主题,flagAttachment字段表示邮件是否有附件,snippet字段表示邮件内容。
(6)QQ
QQ的数据文件在QQ_database文件夹下,QQ账户数据存储在qq_accounts表中,账号信息存储在qq_selfInfo表中,好友信息存储在qq_buddy_list_detail表中,聊天记录存储在qq_msgHistory表中,该表中,selfUin字段表示登陆的QQ号码,uin字段表示参与聊天的QQ号码,msgBbody字段表示聊天内容。
为避免数据提取过程毁坏原始数据,需要首先将手机的数据进行镜像备份。操作的主要步骤是:
(1)将Android手机与计算机相连;
(2)利用工具软件获得手机的ROOT权限;
(3)利用Android SDK和EnCase将手机存储器备份成镜像。
接下来对备份镜像进行逻辑分析,通过adb shell命令就可以查找到存储上述数据的数据库文件,然后用SQLite数据库查看器就能提取到所需的数据。
近年来,利用手机犯罪呈现逐年高发的态势,而手机取证是打击手机犯罪的关键技术。本文以手机取证为对象进行研究,介绍了手机取证的基本原则和工作流程,重点探讨了Android手机数据的存储架构以及手机取证重点关注对象在Android系统中的存储方式,并对数据的提取方法进行了介绍。当前的手机取证技术还有较大的进步空间,在今后的工作中,我们应基于公安执法的现实需要,研究取证效果更好的手机取证工具和取证方法。