Android手机数据恢复方法研究综述 计算机论文

杨阳

摘 要: 如何从已删除或损坏的数据中提取与恢复数据是手机取证的重要课题之一。研究了Android手机的SQLite数据存储结构和寻址Btree页的树形结构,通过遍历叶子页的方法来恢复已删除数据;介绍了国内外数据恢复方法研究现状,为进一步研究Android手机数据恢复提供参考。

关键词: 手机取证; Android手机; 数据存储; 数据恢复

中图分类号:TP309 文献标志码:A 文章编号:1006-8228(2017)04-29-03

Abstract: How to extract and recover data from deleted or corrupted data is one of the most important issues in mobile phone forensics. This paper studies the SQLite data storage structure and the addressing of the Btree page tree structure of Android mobile phone, to recovery the deleted data by traversing the leaf pages. The research status of domestic and foreign data recovery methods are introduced, which provide the reference for the further research of Android mobile phone data recovery.

Key words: mobile phone forensic; Android mobile phone; data storage; data recovery

0 引言

随着移动通信技术的发展和智能手机的普及,手机犯罪呈高发态势。据Gartner的数据显示[1],2015年Android手机市场占有率高达80%,所以Android手机已经成为主要的数据取证源之一。如何从Android手机中提取和恢复数据,成为司法取证的一个课题。本文主要基于Android系统,归纳主流的手机数据恢复技术,概括国内外研究成果与现状,并对Android手机数据恢复技术发展作了总结与展望。

1 手机数据存储分类

根据Android手机内部存储机制,手机数据存储方式主要分为内部存储和外部存储两种。其中内部存储主要有SIM卡和手机机身内存,外部存储主要有手机外部存储卡。此外,短信服务提供商和移动网络运营商也包含相对应的有效信息。

⑴ SIM卡即手机卡。也称客户识别模块卡,主要用来鉴别网络用户身份信息,存储客户信息等。卡上所有的数据都是以文件的形式存储在卡上相应的数据存储区域,其中SIM卡里存储的数据由四部分组成。第一部分是固定存放的数据。该类数据信息在移动设备被出售之前由SIM卡中心提前写入。包含国际移动用户识别号、鉴权密钥、加密算法等一些固定不变的信息。第二部分是暂时存放的相关网络数据。如LAI(位置区域识别码)、TMSI(移动用户暂时识别码)、禁止接入的公共电话网代码等。第三部分是与业务相关的代码,如PIN(个人识别码)、PUK(解锁码)、计费费率等。第四部分是用户存储的电话号码簿信息。比如手机用户随时输入的电话号码等。

⑵ 手机内存。手机内存分为两块:RAM(动态存储区)和ROM(静态存储区)。其中,动态存储区又称随机存储区,用来临时保存数据,突然断电时会丢失存放的数据信息;静态存储区又称只读存储区,用来存放用户数据文件,对突然出现断电的情况也不受影响,起到保护的作用。

⑶ 手机扩展存储卡。手机扩展存储卡通常使用FAT文件系统,常用的外置存储卡有TF卡、CF卡等,属于闪存卡。手机扩展存储卡是为了扩大手机内存容量,减少手机自身内存占用,一般用来存放大量的音频、视频、图片等文件,如果对这些信息进行恢复,往往也能获得有价值的线索。

2 基于SQLite的数据恢复方法

SQLite数据库在Android手机中应用广泛,具有量级轻、资源占用率低、易移植等优点。在Android系统中,大部分数据存放在SQLite数据库中,比如短消息、通讯录和通话录等,这些数据有较多价值。所以本文以SQLite数据库为研究对象,描述SQLite数据库的存储原理及数据恢复方法。

2.1 SQLite存储原理

从SQLite存储机制来看,页是SQLite数据库的最基本存储单元。SQLite文件主要由一个或几个固定大小的页所构成。页由空闲页、溢出页及Btree页构成。由于SQLite数据库主要采用Btree树形结构,所以SQLite数据库文件主要由多个Btree文件所构成。数据库中第一个页(page 1)永远是Btree页。第一页的前100个字节作为“文件头”,描述数据库文件的版本、格式的版本、页大小、编码等所有创建数据库时设置的永久性参数信息。SQLite數据库文件头结构如表1所示。

其中恢复删除的一个重要前提就是定位删除数据的位置。通常的方法是根据Btree叶内部存储机制和树形逻辑结构,定位出存放在SQLite的底层数据信息。根据Btree页的树状逻辑形状可知,Btree页从上至下由根页、内部页、叶子页组成。Btree页的根页和内部页仅作为数据结构的路径导航,并不存储数据信息。包含关键字的数据区域指针指向下一个树形路径的页。在叶子页,记录和页按键值顺序排列,以便数据遍历结果,同时根页和内部页均指向下一层路径的页。所以,对被删除数据进行数据恢复的一般方法是:首先找到删除数据所在的根页,然后根据内部页的地址,搜索到叶子页的地址,因为被删除数据的信息是存储在叶子页上面的,最后通过遍历叶子页的方法提取到已删除的数据信息。Btree页的树形结构如图1所示。

2.2 SQLite数据恢复方法

依据SQLite数据库文件中数据的存储原理,可通过已删除数据存储的逻辑结构,层层推导,从SQLite文件数据存储中查找到已删除数据地址从而进行提取和恢复。SQLite数据恢复步骤如下:

⑴ 查询删除数据的表名。根据Android系统开源的特性,按照数据文件存储特性来定位所在的表名,可以很方便根据数据库一级级目录或者通过数据库操作指令找到删除数据的表名。

⑵ 查找该表所对应的根页。数据库中的表不尽相同,要想准确定位表的信息,需要找到该表的起始地址和结束地址。根据Btree页的存储结构,这就要查找该表所对应的根页地址。

⑶ 查找树的结点页和叶子结点。根据Btree页的树形逻辑结构,树形路径中的页均由上一层页中的数据域指针所指引,Btree页的内部页和根页仅为数据结构提供指向作用,这些通过遍历的方法一直查找到已删除数据叶子页的地址,然后推导出上一级内部页所对应的叶子页的初始地址和结束地址。

⑷ 查找freeblock块提取信息。当数据被删除后,根据SQLite数据库的内部存储原理,实际上并没有完全清空,而是形成了freeblock块。根据查找到的叶子页的地址信息,通过叶子页的起始地址和结束地址就可以找到freeblock块从而恢复出被删除信息,或者在未分配区域中恢复被删除信息。

3 国内外研究现状

国际上的数据恢复技术起步较早,成熟度较高。2005年,McCarthy Paul[2]重点研究在得不到ROOT权限的前提下,通过逻辑方法在当前权限范围内提取相关的数据信息。与“逻辑提取”相对应的是“物理提取”,即运用相应技术手段从底层数据存储文件或者原始镜像文件中提取并恢复已删除的数据。2006年Willassen[3]以及2007年Breeuwsma[4]等,分别提出直接从手机芯片读取原始信息,优点是在数据覆盖前提取,保证了数据的原始性和有效性。此方法的困难是技术系数较高,需要复杂的数据环境和非常专业的技术人员。2012年Sangjun Jeon[5]针对电子证据中最有价值的短消息数据,重点定位短信息的数据单元,通过寻址已删除短信息区域,通过“暴力估算”方法对未被覆盖的单元已删除数据进行恢复。

国内方面,王随刚[6]等通过对SQLite3数据库内部存储结构的综合分析,寻址到删除的历史记录,完成目标区域数据的提取;兰州理工大学的方东蓉[7]等人提出“尽最大努力恢复”这一新型恢复方法,通过粒度细化来检验恢复数据的完整性。武贝贝[8]等人基于存储介质NAND恢复用户历史信息,构建行为事件轴来模拟真实环境,从而有效地提取删除信息。刘思思[9]等人提出了一个基于Android系统的手机取证系统的模型,并对短信、通讯薄、日历、地理位置等手机信息进行提取与恢复。叶亦陶[10]等人用EASYRECOVERY软件作为恢复工具,对主流手机操作系统进行数据提取与恢复。总之国内的数据恢复技术虽然起步较晚,但是发展迅速。如厦门美亚柏科、杭州安恒信息、北京华恒信安等,这些公司已有许多恢复手机数据的成熟产品上市。

4 结束语

近年来,随着电子证据作为法律重要证据之一,手机取证技术越来越成熟,越来越规范。面对复杂的手机信息环境,Android手机数据恢复技术不仅要严格按照法律程序,向规范化、标准化迈进,避免出现因程序不规范而失去法律效力的情况,同时要求数据恢复技术更有效、更准确、更快捷。本文针对市场占有率高的Android手机,详细论述了基于SQLite数据库的数据恢复方法,具有普遍性和易操作性。下一步研究的内容是如何在复杂的存储环境中提高恢复率和提取率,如何利用系统漏洞突破技术壁垒。

参考文献(References):

[1] 百度文库. 2015年全球智能手机销售据.[DB/OL].http://wenku.baidu.com/view/cb2288c3a8114431b80dd80d.html,2016-02-23.

[2] McCarthy Paul. Forensic Analysis of Mobile Phone[D].University of South Australia,2005.

[3] Willassen Svein. Forensic Analysis of Mobile PhoneInternal Memory[J]. Advances in Digital Forensics,2005.194:191-204

[4] Breeuwsma Marcel, de Jongh Martien, Klaver Coert.Forensic Data Recovery from Flash Memory[J].Small Scale Digital Device Forensics Journal,2007.1:1-17

[5] Sangjun Jeon,Jewan Bang,Keunduck Byun. A Recovery Method of Deleted Record for SQLite Database[J].Pers Ubiquit Comput,2012.16(6):707-715

[6] 王隨刚,吴莎莎,李昂.基于SQLite3的Android手机数据恢复技术的研究[J].警察技术,2012.5:4-7

[7] 方冬蓉.基于Android手机的数据恢复方法研究及应用[D].兰州理工大学,2014.

[8] 武贝贝.面向NAND闪存的SQLite 数据恢复技术研究与应用[D].杭州电子科技大学,2013.

[9] 刘思思.基于Android系统的手机信息提取与恢复研究[D].武汉邮电科学研究院,2014.

[10] 叶亦陶,斯进.手机数据存储和恢复方法研究[J].信息网络安全,2012.3:35-37

分享: