一种基于底层数据分析的SQLite数据库取证方法论文

一种基于底层数据分析的SQLite数据库取证方法

龙 源,邢桂东*,康艳荣,郭丽莉,赵 露,张耀国,鲍梦湖

(公安部物证鉴定中心,北京 100038)

摘 要: 随着智能手机的日趋普及,智能手机数据提取问题成为目前电子取证领域中的重要课题。本文针对损坏SQLite数据库取证,提出了一种新的智能手机删除数据恢复方法。与传统基于SQLite数据库文件本身删除恢复操作方法不同,本方法是一种基于SQLite数据库底层数据存储结构的数据遍历方法。通过实际案例测试,此方法适用的对象并不局限于SQLite数据库,安卓机身镜像、损坏的数据库文件和分区碎片等都可以进行应用并得到完整的解析结果。本方法的提出是一种崭新的尝试与思路,将底层数据分析电子取证思想从计算机取证扩展到手机取证,为智能手机数据分析与删除数据恢复提供了新的思路与有效手段。

关键词: 电子物证;SQLite数据库;智能手机;数据恢复

1 问题提出和解决思路

智能手机中数据的提取及删除数据恢复是当前手机取证工作的重点工作之一,针对智能手机中删除数据恢复问题,尤其是各类应用程序产生的结构化数据恢复问题,目前采取的通用方法是:获取存储相关数据的SQLite 数据库文件,以数据库文件为基准进行数据分析,通过在数据库文件中的未分配空间搜索获取曾经删除的数据表内的残余数据完成数据恢复过程[1-3]。这种方法是以完整的数据库文件为基础,数据库在删除数据后没有立刻进行释放存储空间操作时,均能找到删除数据的痕迹并成功恢复。

本文针对SQLite 数据库删除恢复的需求,根据SQLite 数据库数据存储结构,提出了一种基于物理存储底层数据的分析方法,直接针对物理存储数据进行数据分析,不再受制于文件系统重建和SQLite数据库文件的提取,适用场景更加宽泛。尤其是针对损坏或中断的数据库文件,在无法使用SQLite数据库相关程序时,本方法是一种全新的解决思路。

中国小麦土壤氮素丰缺指标与适宜施氮量研究……………………………………… 孙洪仁,张吉萍,冮丽华,吕玉才,王应海(41)

2 基于底层数据的SQLite数据深度恢复

2.1 方法设计

如开篇所述,传统的SQLite数据库数据恢复要求恢复对象必须是SQLite数据库文件且数据库文件完整有效,能够被SQLite数据库程序正常识别访问。具体恢复过程如图1所示,在SQLite数据库文件完整的前提下,在数据库内部进行数据分析,得到无指针指向的曾经进行过删除数据操作的自由块或未分配空间,在其中进行数据挖掘[4-5]

染色体是遗传信息的载体,对生物繁殖和遗传信息的传递具有重要意义。核型体现了染色体水平的整体特征,通过对染色体核型进行分析,可确定与其他物种亲缘关系的远近,揭示遗传进化的过程和机制[1]。对蔬菜植物进行核型分析研究,不仅可获得大量的关于蔬菜作物染色体方面的基础信息,对蔬菜遗传育种有重要的指导意义;而且,染色体资料对染色体基因定位、原位杂交和DNA序列的研究等都将起到重要作用。本研究根据已有的文献报道,对国内蔬菜植物染色体核型的研究现状进行了概述,以期为今后的深入研究提供帮助。

图1 SQLite数据库删除操作示例
Fig.1 Example of SQLite database deletion operating

本文设计的搜索方法,是基于SQLite数据库存储特定数据的规范进行“遍历”查找,因此可以无需获取完整的SQLite数据文件,可以脱离SQLite数据库解析逻辑,直接在物理存储层次进行,也可以针对任意大小的二进制数据区域进行直接的数据挖掘分析,存储镜像文件、SQLite数据库碎片等都可以直接作为数据源进行数据恢复搜索操作。

下面章节将以安卓手机中系统保存的通话记录数据为例,针对安卓系统通话记录数据结构特点,分析并建立安卓系统通话记录数据模型,并根据模型实现搜索分析方法,最终测试验证其有效性。

2.2 方法实现

2.2.1 SQLite数据库中通话记录数据字段分析

安卓系统采用SQLite数据库来存放手机通话记录数据,存放数据的文件位置通常为:/data/data/com.android.providers.contacts/databases/contacts2.db(部分特殊手机厂家可能会有微调),针对删除部分手机通话记录,传统的数据恢复手段主要是在获取该文件后,直接进行关键数据表calls的数据结构分析(图 2)。

该条数据对应在contacts2.db文件十六进制视图中如图3所示,浅蓝色部分为ASCII编码方式的手机号码数据,黄色6个字节为十六进制存储下的通话时间(01 54 E1 FB A4 21),白色部分08为通话时长数据,紫色部分数据02为通话类型数据,绿色部分数据为相关国别字段,内容为CN,灰色部分数据为通话记录数据表中matched_number字段和normalized_number字段,用于电话号码电话簿匹配和数据清洗。

图2 contacts2.db中calls表部分结构样例
Fig.2 Partial structure of calls table in contacts 2.db

如图2所示,表calls中我们主要关心的四个字段为number、date、duration和type。字段含义如下:

1)number为手机号码字段,根据通话类型的不同记录相应的对方号码。

这些年来,想要让一张照片在网上获得广泛的传播,只是简简单单地在Camera Raw中校准画面白平衡和曝光远远不够。我们往往需要用不同的色彩效果,为画面注入更强烈的情感表达。只要我们的选择合理,就能给画面带来锦上添花的效果。

2.2.4 SQLite数据库中通话记录数据分析实例

4)type为通话类型字段,根据手机厂家定义,规则为:1呼入、2呼出、3未接、10未知。

综上,本研究将以同一偶像团体粉丝群体内部关系作为研究的出发点和落脚点,将运用科塞的社会冲突理论,研究同一偶像组合的粉丝群体内部分离出来的不同的粉丝属性之间冲突关系的形成,探究不同粉丝属性下冲突关系的正功能和负功能,以及如何维系关于冲突关系的建构,分析其建构背后的意义。

考虑到三峡水库蓄水后上游来沙减少的实际情况,应科学合理地控制长江中下游河道采砂的总量。根据沿程主要控制测站的输沙量变化以及区间各段的冲淤情况,分不同时段和不同河段合理调整已有规划。如前所述,三峡水库蓄水后前20年,冲刷主要集中在荆江河段,上游来沙减少对汉口以下河段的影响不大。因此,此时宜昌—武汉河段的年度采砂总量应考虑该段冲刷剧烈的实际情况适当酌减,而汉口以下河段的年度采砂控制总量可大致维持已有规划。同时,考虑到水文系列年自身的丰、中、枯的差异,可适当根据宜昌年下泄沙量的不同情况,对中下游各河段年度采砂控制总量进行动态调整。

2.2.3 SQLite数据库中通话记录数据提取方法设计

本章节针对安卓系统通话记录数据样例数据库文件contacts2.db文件中calls表进行底层数据存储分析,通过多条样例数据在文件中的查找,分析得到底层数据的存储模型。

采用的测试通话记录条目为:

手机号码:15910650275

通话时间:1464080245793(UNIX UTC时间,单位ms)

2.2.2 SQLite数据库中通话记录数据底层分析

通话时长:8

通话类型:2

城市水生态文明的最终实现离不开全社会生态文明意识的形成。建议通过教育、宣传,引导每一位城市居民认真学习领会习近平生态文明思想,树立“尊重自然、顺应自然、保护自然”的生态文明理念,增强水生态环境保护的责任感和使命感;引导居民规范节水护水、垃圾分类等生态环境行为,培养绿色低碳的生活和工作方式,努力成为城市水生态文明建设的倡导者、行动者、示范者;坚持绿色发展理念,营造政府、社会组织和公众多元主体共同参与水生态文明建设的格局,促进人与自然和谐共生。

图3 安卓系统通话记录底层十六进制数据存储样例
Fig.3 Sample of underlying hexadecimal data storage for Android call log

通过分析可以发现,安卓系统通话记录数据都是按照上面数据结构依次存储在底层的十六进制数据中。无论在存储设备的物理层面上还是文件系统的逻辑层面上,这种典型的安卓系统通话记录数据结构是保持不变的,这种通用数据结构为我们的基于底层数据的删除恢复方法的设计提供了理论基础。

2)date为通话时间字段,为国际时间UTC时间,单位为ms,一般为13位长整型数字。

总之,在移动支付快速发展的背景下,商业银行要想在市场中处于竞争优势就必须顺应市场变化和不断创新。通过与第三方支付机构合作,提高自身技术和实力,建立移动支付生态圈,把握好移动支付影响下的发展机遇,以积极开放的竞争姿态参与到市场竞争中,实现业务创新,达到立于市场不败之地的目的。

通过对安卓系统通话记录底层存储数据的存储分析,本文得到了关于安卓系统的通话记录数据在底层十六制数据存储中的数据模型,并根据这个模型设计实现对应安卓系统通话记录数据十六进制格式的专用删除恢复遍历分析方法,方法流程如图4所示。

3)duration为通话时长字段,为单位为s的整数数字。

测试案例:

OPPO A11手机一部(无法开机),通过芯片提取获取物理存储镜像并提取contacts2.db文件,数据库文件已损坏,多种SQLite数据库查看器打开失败。

如图3所示,中国和欧盟可再生能源专利在总专利数中的比例较小,均小于4%,总体变化趋势大体相似,都是先上升,然后分别于2011年和2012年开始呈下降的趋势。1999年前,中国和欧盟可再生能源专利在总专利数中的比例不存在显著差异,然而1999年之后,欧盟可再生能源专利所占比重明显高于中国,可见欧盟可再生能源技术进步对总体技术进步的贡献更大。2014年中国和欧盟可再生能源专利在总专利数中的比例分别为1.01%和2.00%。

针对这个真实案例,为了减小遍历搜索范围,提高分析效率,选择将该损坏的数据库文件作为数据源进行遍历搜索,未来数据源可以扩展为全芯片镜像数据来实现更大范围的遍历搜索,进而获取更多的删除恢复数据。如图5所示,通过本文提出的基于底层数据的安卓系统通话记录数据提取方法,搜索并定位的3条通话记录,其中蓝色部分为通话记录的电话号码部分,由于是真实案件数据,隐去电话号码最后四位;紧跟号码的黄色字段为通话时间数据,时间数据后面的一位字节为通话时长,第一条通话时长字节为空,表示0通话时长,即未接通;紫色部分为通话类型,这三条数据均为02 ,表示为呼出电话。紫色数据后面是代表国别的字段CN,这里在CN后面还跟有UTF-8编码的“中国”字段,对应为E4 B8 AD E5 9B BD 部分,在这灰色部分数据后面还有重复的一次电话号码字段作为数据库表中的冗余字段,至此3条通话记录数据分析完毕(表1)。

表1 3条通话记录数据分析结果
Table 1 Analytic results of 3 pieces of call log data

本数据通过与实际案件数据相比对,认定为真实数据。最终从该损坏文件中提取通话记录数据有效数据529条,经过比对验证,该结果真实有效,至此证明本技术方法是可行并有效的。

图4 安卓系统通话记录数据搜索遍历流程
Fig.4 Process of traversal searching for Android call-log data

图5 安卓系统通话记录十六进制数据搜索测试案例
Fig.5 Case test of searching into Android call-log hexadecimal data

3 总结

综上所述,本文提出了一个针对SQLite数据库底层数据的分析方法,通过对SQLite数据库中通话记录数据格式的底层数据存储格式分析来建立对应的数据存储模型,再对数据源实现针对性的遍历搜索实现,最终能够获取到常规取证手段无法取得的数据。最后,本文通过对实际案例中一个损坏的SQLite数据库文件进行分析,进一步验证了所提出的基于底层数据的SQLite数据库数据提取方法的有效性。

本文提出的SQLite数据库数据分析方法,能够实现直接分析底层存储数据,因而打破了传统手机取证中对SQLite数据分析必须要求原始SQLite数据库文件有效可用的限制,使得检验对象可以极大丰富,能够扩展到机身存储镜像、损坏的数据库文件等。本方法由于不依赖原始SQLite数据库文件,能够根据建立的数据模型在手机全存储空间内进行遍历搜索,可以实现最全面的删除恢复功能,尤其是针对大数据量重复删除操作部分,具备较好的恢复能力。但本搜索方法是基于对数据库中表结构的完整理解,对特定的数据结构进行底层搜索匹配,需要针对不同数据存储结构分析并建立对应的数据存储模型,这对检验人员也提出了更高的要求,如数据存储模型设置不够精细准确,重复数据和误报数据可能会增加,但可以通过人为甄别快速排除。

本方法的提出,为后续根据不同的数据格式建立更多样化的数据分析模型提供了可能,各类使用SQLite数据库存储的结构化数据,如通讯录、短信、即时通讯聊天记录等结构化数据都可以根据本文思路进行分析来寻找稳定数据特征,根据数据特征对目标数据进行定位提取。后续笔者将结合实际检验需要,对各类SQLite数据库中存储数据的挖掘分析开展进一步研究,以期为实战工作提供更多方法与工具。

参考文献

[1] 方冬蓉,张秋余,董瑞洪,等. Android系统删除数据恢复方法研究[J]. 计算机工程,2014,40(10):275-280.

[2] 杨闹春. Android手机取证系统研究[D]. 南京:南京邮电大学,2013.

[3] 王随刚,吴莎莎,李昂. 智能手机取证技术研究——基于SQLite3的Android手机数据恢复技术的研究[J]. 警察技术,2012(5):3-7.

[4] 马庆杰,李炳龙,位丽娜. 基于SQLite内容雕刻的恢复技术[J]. 计算机应用,2017,37(2):392-396.

[5] 杨卫军,张佩军,温万造. Android手机短信获取与恢复方法[J]. 警察技术,2013(3):42-45.

A SQLite Database Forensic Method Based on the Analysis of Underlying Data

LONG Yuan, XING Guidong*, KANG Yanrong, GUO Lili, ZHAO Lu, ZHANG Yaoguo, BAO Menghu
(Institute of Forensic Science, Ministry of Public Security, Beijing 100038, China)

ABSTRACT: With the popularity of smart phones, data extraction from smart phones has become an important issue for digital forensics. In this paper, a new data recovery method for smart phones is proposed to deal with one damaged SQLite database. Different from the traditional handling into the SQLite database file itself, the attempt here is an approach of data traversal based on the underlying>KEY WORDS: digital forensics; SQLite database; smart phone; data recovery

中图分类号: DF793.2

文献标识码: A

文章编号: 1008-3650(2019)04-0347-04

DOI: 10.16467/j.1008-3650.2019.04.014

基金项目: 中央级公益性科研院所基本科研业务专项资金项目(No.2018JB044)

第一作者简介: 龙源,男,江西永新人,硕士,助理研究员,研究方向为电子物证检验。E-mail:longyuan@cifs.gov.cn

* 通讯作者简介: 邢桂东,男,天津静海人,硕士,副研究员,研究方向为电子物证检验。E-mail:xingguidong@cifs.gov.cn

收稿日期: 2018-08-16;修回日期:2018-11-20

引用 本文格式:龙源,邢桂东,康艳荣,等. 一种基于底层数据分析的SQLite数据库取证方法[J]. 刑事技术,2019,44(4):347-350.

标签:;  ;  ;  ;  ;  

一种基于底层数据分析的SQLite数据库取证方法论文
下载Doc文档

猜你喜欢