针对安卓移动终端设备的数据取证技术分析

2014-04-16 14:32赵斌何泾沙万雪姣张玉强刘公政北京工业大学
警察技术 2014年3期
关键词:终端设备安卓芯片

赵斌 何泾沙 万雪姣 张玉强 刘公政 北京工业大学

针对安卓移动终端设备的数据取证技术分析

赵斌 何泾沙 万雪姣 张玉强 刘公政 北京工业大学

从技术层面介绍了安卓系统移动终端数据恢复的逻辑技术和物理技术,并提出了时间序列、文件系统、字符串匹配等相关的数据分析技术。

安卓 取证 数据恢复 数据分析

一、引言

随着安卓操作系统在移动终端中的应用越来越广泛,针对安卓版本的移动终端设备数据取证成为当前的研究重点之一。在取证过程中,电子数据信息是用二进制数据表示的,以数字信号的方式存在,而数字信号是非连续性的,故意或由于其他差错对数字证据进行的变更、删除、删减、剪接、截收和监听等,都会导致对数据的篡改。因此,应融合磁盘及内存数据恢复、数据挖掘、加密、反向工程、解决技术等其它理论和技术,对证据给予充分的安全保障。

本文针对司法鉴定中所涉及的安卓版本移动终端设备的数字取证问题,从技术层面阐述了数据恢复和分析的相关技术。

二、数据恢复技术

针对安卓系统的取证技术,从本质上分为逻辑技术和物理技术两类,即逻辑数据恢复技术和物理数据恢复技术。

逻辑技术通过访问文件系统的手段来实现对所分配的数据进行挖掘;所分配的数据是指那些没有被删除的数据,可以通过访问文件系统获得。针对安卓系统的逻辑数据恢复技术一般指从当前的文件目录下获取数据文件,并进行逻辑分析的技术。当前对于使用安卓操作系统的移动终端设备来说,所有与应用程序相关的数据和信息都存放在data/data/目录下,每种不同的应用程序在该目录下用可区分的不同子目录存放本程序的数据文件,例如:手机彩信相关文件所在目录为data/data/com.Android.mms、联系人相关文件所在目录为data/data/com.Android. Contacts等。上述的每个目录下都会有一个databases目录,这个目录中所存储的是一些对应于该应用程序的SQLite数据库文件(SQLite是安卓操作系统所采用的数据库程序)。通过Google官方提供的调试工具adb,可以查

(一)逻辑数据恢复技术

看所有目录中存储的文件,并可以方便地将需要用于逻辑分析的SQLite数据库文件提取到运行adb工具的PC机上,然后就可以使用某种数据库文件查看器(如SQLite expert)对提取到的数据库文件进行查看和分析。

这种数据获取和分析方式操作简单、易于实现,可以从SQLite数据库文件中获取大量信息,例如浏览器浏览记录、联系人、短信/彩信记录等。但是这种方式的缺陷也很明显,用该方法进行数据取证的唯一来源就是各种应用程序正在使用的SQLite数据库文件当前内容,一旦某些应用程序已经卸载而致使该类型数据库文件不再存在,或者应用程序对数据库中的某些内容已经作过删除处理,这些信息就无法从数据库文件中获取。另外,SQLite 数据库的某些文件中数据库记录一旦被删除,也将不能显示。

与传统的逻辑技术相比较,在安卓取证中采用一些特殊的工具与技术,依赖于内容提供商内置在安卓平台或软件开发套件(SDK)技术,从所获取的逻辑数据中恢复被删除的数据库数据。

物理技术直接将存储数据的物理介质作为目标,而不是依赖于文件系统来实现对数据的访问。物理技术最重要的优点在于可以访问到大量被删除的数据。

针对安卓系统的物理数据恢复技术指通过某种手段直接对安卓设备的硬件存储区域直接进行镜像,生成数据镜像文件并进一步分析的技术。获取目标数据存储的物理映像取证技术通常能够绕过口令的保护,获得被修复的数据按照指数数量级增加;不仅能够访问到已经被删除的数据,而且还能够访问到系统认为不再需要而丢弃的数据。从结构上说,物理数据恢复在逻辑数据恢复的下层,是逻辑数据恢复的基础。依据获取镜像手段的不同,可以分为基于硬件的物理数据恢复技术以及基于软件的物理数据恢复技术二大类:

(1)基于硬件的技术:将硬件与终端设备实现连接的方法,或者是物理上实际获取终端设备部件的方法;

(2)基于软件的技术:将终端设备中的软件在具有root 访问权限条件下运行的技术,以获得数据分区完整的物理映像。

基于硬件的方法需要专门并且通常很昂贵的仪器以及对取证人员培训,但是对于无法获得 root 访问权限的终端设备非常有效。基于软件的物理技术是一个更加直接的数据获取途径,因而通常也是最好的开始点。当然,必须首先获得终端设备上的 root 访问权限,基于软件的技术

(二)物理数据恢复技术

才成为可行。

1. 基于硬件的物理技术

(1)JTAG技术

JTAG 技术于上世纪80年代提出,目的是为印刷电路板布线和相互连接的测试制订一个标准。到1990年,此标准完成了制订,正式成为电机与电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)的标准,具体来说就是 IEEE 1149.1-1990(IEEE SA, n.d.),随后又在2001年进行了更新,标准也变为IEEE 1149.1-2001。此标准得到广泛接受,目前,大多数印刷电路板都有JTAG 测试访问接口(JTAG Test Access Ports,TAPs),支持对中央处理器(CPU)进行访问。

每一个JTAG 测试访问接口都会向外呈现不同的信号,大多数的移动终端设备都拥有以下接口:

·TDI Test Data In(测试数据入)

·TDO Test Data Out(测试数据出)

·TCK Test Clock(测试时钟)

·TMS Test Mode Select(测试模式选择)

·TRST Test Reset(测试初始重置)

·RTCK Return Test Clock(返回测试时钟)

虽然JTAG 是从安卓终端设备的 NAND 闪存中抽取数据的一种途径,但因其操作复杂性和困难度较大,在处理 JTAG焊接点过程出现任何差错,或者是给电路板供应错误的电压,不但会造成JTAG无法再使用,而且会对终端设备造成严重的损坏,因此只能由接受过足够的培训以及具有处理微印刷电路板焊接点经验的人员胜任,故JTAG通常不是物理获取安卓终端设备取证映像的首选。

(2)芯片摘取(Chip-off)

芯片摘取技术实际上就是将 NAND 闪存从终端设备中取出,在外部对其进行检查、分析,获得存储在 NAND闪存芯片中数据的物理映像的技术。此技术不但可以用于修复已经遭到毁坏的终端设备中的数据,也可以有效地分析使用口令保护的终端设备,获得取证数据。

芯片摘取技术涉及到以下三个主要环节:

第一步,将NAND闪存从终端设备中实际地取出。可以通过断开焊接点或者使用特殊仪器设备,通过喷出热气及吸取的方式将芯片取出;还可以将芯片加热到特定温度后,将 NAND 闪存从终端设备中取出。在这个过程中,NAND闪存很容易遭到损坏,但是通过特殊硬件,配以控制软件,可以将NAND闪存从终端设备中实际地取出。

第二步,重建导电球。修复芯片底部的导电球的过程被称为重建导电球,在修复之前芯片必须首先经过清洗,然后再进行修复,这是因为取出芯片过程常常会损坏芯片底部的连接头。

第三步,将取出的芯片插入到配有NAND 闪存设置程序的特殊硬件设备中,以对芯片进行读取,获得存储在NAND闪存芯片中数据的物理映像。应该注意的是:这些特殊硬件设备必须能够为具体的NAND闪存通过程序进行设置,并且能够支持若干很流行的芯片。

虽然芯片摘取技术在数据恢复过程中非常有效,是执法机构认可、且非常有用的取证技术之一,但是将NAND闪存取出的过程将是毁灭性的,将NAND闪存重新粘连到印刷电路板上并使其正常运行是非常困难的;不仅要求取证检查师具有非常专业化的训练和技能,还需要拥有干净并受到电磁场辐射保护的操作环境。

2. 基于软件的物理技术

基于软件的物理技术与基于硬件的物理技术相比较具有很多优势。基于软件的技术更容易执行,因为通常直接对文件系统进行访问,能够完整地拷贝出所有的逻辑文件(简化某些分析),几乎没有损坏终端设备或丢失数据的风险。

要使用基于软件的物理技术,首先必须获得root访问权限,然后才能运行数据获取程序。安卓终端设备上的root访问权限并不能够默认地获得;如果在某些特定情况下想要获得 root 访问权限,通常只对完整的、可持续的root 访问权限进行跟踪。然而,从取证分析的角度来看,则更加希望获得临时的root访问权限或者是通过特定的修复模式而获得的root访问权限。获得root访问权限需要注意以下问题:

(1)在很多情况下,获得root访问权限会改变终端设备。

(2)root访问权限技术不但随着制造商以及终端设备的不同而不同,而且还随着不同版本的安卓系统,甚至随着系统所使用的Linux核的不同而不同。

(3)获得root访问权限的多数技术并不理想,权限数据常包含不准确的信息。

root访问权限一般分为以下三种类型:

·利用相关技术获得临时的root访问权限:这种root访问权限通常在系统重启后就不再有效。在这种情况下,adb后台进程通常在没有root访问权限的条件下运行。

·通过定制的只读内存(ROM)而获得的root 访问权限:定制的只读内存(ROM)通常将 adb 后台进程在具有 root 访问权限的条件下运行。

·修复模式 root访问权限:通过闪建一个特定的修复分区,或闪建定制的只读内存(ROM)的部分内容而获得的修复模式 root访问权限。定制的只读内存(ROM)通常将adb后台进程运行在具有 root访问权限的条件下,大多数被修改过的修复分区也如此。

获得一个新的终端设备或者是一个新版本的root访问权限,必须要有一个独立的终端设备用于测试,在保证整个测试过程运行正常、数据没有丢失的情况下,通过测试技术来确定root访问权限。在此情况下,虽然测试工作非常耗费时间,但测试是一个非常重要的步骤。

三、数据分析技术

(一)时间序列分析技术

时间序列分析是定量的预测方法之一,是任何取证调查中的关键,是利用按时间顺序排列的一组数据序列,应用数理统计方法加以处理,以预测未来事物的发展。因为任何事件的发生时间都是取证过程中的参考指标,在数据分析过程中构造出正确无误的取证时间序列极其重要。

时间序列信息主要来源于文件系统的元数据,包括修改(文件元数据)、访问、变化(文件内容)及创建等时间戳信息。文件系统跟踪不同的时间戳,在取证分析的过程中计算延迟和精确度,得出细微的时间差别。如果人工分析时间序列,将耗费巨大的工作量。目前,对于支持的文件系统(如SD卡以及嵌入式多媒体卡上的FAT16/FAT32文件系统),已经存在有数种可以用于构建时间序列的算法。然而,目前没有任何分析工具支持YAFFS2文件系统,对于不同的安卓终端设备以及不同的安卓版本,相关的文件系统都会有所不同。因而在现有基于Apriori性质的时间序列分析算法的基础上,需构建、设计新的自适应时间序列算法来应对安卓操作系统的更新变化。

新的自适应时间序列算法通过分析来自程序调试日志、stat命令以及模拟NAND闪存设备中nanddump的相互对立数据,为在NAND闪存上的每一个文件和目录都生成相应的MAC时间点,根据时间点,从NAND闪存或ObjectHeaders(从系统提供但是不存在的块中的垃圾回收站中找到的)中所收集的完整元数据信息中得到完整的时间信息。新的自适应时间序列算法将是对YAFFS2文件系统开展取证研究的基础。

(二)文件系统分析技术

安卓系统是基于Linux内核的开源手机操作系统,与其他操作系统一样,采用了分层的架构。从高层到低层分成应用程序层、应用程序框架层、中间件层和Linux核心层四个层。

文件系统分析算法通过创建一定容量的nandsim终端设备,容纳下Droid中的“/data”分区。使用nandwrite命令将数据和OOB区域拷贝到模拟的NAND闪存中去。对于从Droid 上获得的完整的“/data”文件系统,从工作站上可以进行访问,匹配适应的数据分析技术(SQLite数据库查看器)就可以对相关数据进行分析鉴定。

(三)文件分割技术

文件分割技术是指对具体的文件类型进行查找与获取的技术,它的基本理论是将目标文件以二进制形式进行读写,并分割成一定大小的多个二进制文件,传送到目的地后得到的是整个磁盘或分区的取证映像。文件分割的工作原理是基于已知的文件头信息,通过检查二进制数据对文件进行识别。如果从文件的格式定义中知晓文件尾,文件分割将从文件头开始扫描,直至找到文件尾(或者是在配置文件中设置的文件最大长度),然后将分割的文件保存在磁盘上,以备随后对其进行取证检查。

传统的文件分割技术要求映像中的数据按照顺序进行存储,因此在文件分段存储的情况无法获得整个文件。将文件分段存储的原因是由于文件分割随着文件系统类型的不同而变化,而且根据内存的不同而不同,如 NAND 闪存中非常大的文件(如视频文件)很难被恢复。

针对碎片文件的制约问题,设计独立于任何文件系统的文件分割算法,从配置文件中读取满足要求的文件头和文件尾定义,使它能够从原始映像中抽取出文件,用于恢复文件系统中的重要元素,对于取证分析来说是一个非常有价值的工具。

(四)字符串匹配技术

串匹配问题是计算机科学中的一个基本问题,也是复杂性理论中研究得最广泛的问题之一。它在文字编辑处理、图像处理、文献检索、自然语言识别、入侵检测等领域有着广泛的应用。串匹配问题实际上就是一种模式匹配问题,即在给定的文本串中找出与模式串匹配的子串的起始位置。字符串匹配技术在数字取证时,根据已知信息对二进制信息进行快速查找,即通过关键字搜索获得准确信息。字符串匹配的实现可以有多种算法,如BF算法、KMP算法、BM算法等。

由于谷歌地图服务已经紧密地集成在安卓操作系统中,使安卓终端设备存在着大量的位置信息,设计运行于Ubuntu虚拟机中、支持功能强大以及正项表达式的复杂模式匹配算法是必要的。

(五)其它技术

在很多取证过程中,基于物理获取数据之后的逻辑获取、分析通常可以得到足够的案件信息。然而,某些案件还是需要更深入的分析,以找到已经被删除的文件或未知的文件结构之间内在的联系,这就会涉及到更多的相关技术,如数据库技术和数据挖掘技术,XML解析技术,这些成为安卓取证中必不可少的技术;如十六进制编辑器可以帮助办案人员准确地看到存储的是什么数据。寻找其模式,或将可以识别被删除的或从前见过的数据结构。

本文介绍了针对基于安卓系统的移动终端数据恢复的逻辑技术和物理技术及数据分析技术,有助于公安办案人员获取涉案人员在所使用的智能手机或其他移动终端设备中存有的通讯录、通话记录、来往信息、数码照片、各类文件等用户信息和数据,并尽可能对已经被删除的以上信息和数据进行恢复,以满足案件侦查的需要。另外,能够增强人们对相关信息和数据的保护意识,并利用更加有效的手段来保护这些信息和数据的安全。

四、总结

[1] 周敏,龚箭. 分布式计算机取证模型研究[J]. 微电子学与计算机,2012,2(29):40-43.

[2] 王雪玉. 云计算取证的5项基本技能[J]. 金融科技时代, 2012,(01):45-46.

[3] 武鲁,王连海,顾卫东. 基于云的计算机取证系统研究[J]. 计算机科学,2012,5(39):83-85.

[4]陈丹. 计算机取证技术探讨[J].福建电脑,2013(01):78-79.

[5] 郭陈阳,杨龙. 计算机取证技术在打击犯罪中的应用[J].计算机光盘软件与应用,2012(09):82-83.

[6] 吴绍兵. 云计算环境下的电子证据取证关键技术研究[J]. 计算机科学,2012,11(39):139-142.

[7] 张俊,麦永浩. 云计算环境下仿真计算机取证研究[J].信息网络安全,2011(10):7-9,12.

[8] 杨卫军,张佩军,温万造.Android手机短信获取与恢复方法.警察技术,2013(03).

[9] 王雪玉. 云计算取证的5项基本技能[J].金融科技时代,2012(01): 45-46.

猜你喜欢
终端设备安卓芯片
芯片会议
iPhone不卡的秘密曝光:安卓也能享受
视频监视系统新型终端设备接入方案
文物表情包
配电自动化终端设备在电力配网自动化的应用
一种基于安卓系统的手机侧抓包分析方法
车站信号系统终端设备整合及解决方案
多通道采样芯片ADS8556在光伏并网中的应用
安卓L未至安卓M来了!安卓首泄漏M系统
74HC164芯片的应用