一种获取Android应用程序密码的方法
2014-06-23丁锰康艳荣黄冬
丁锰,康艳荣,黄冬
(1.中国人民公安大学刑事技术学院,北京 100038;2.公安部物证鉴定中心,北京 100038; 3.中国人民公安大学犯罪学学院,北京 100038)
一种获取Android应用程序密码的方法
丁锰1,康艳荣2,黄冬3
(1.中国人民公安大学刑事技术学院,北京 100038;2.公安部物证鉴定中心,北京 100038; 3.中国人民公安大学犯罪学学院,北京 100038)
目前Android是移动设备的主流操作系统,与此同时,Android上的应用数量也日益增多。在这种情况下,如何对其中的数据进行提取、处理和分析成为一个重要的研究方向,并且对公安工作具有重要的意义。通过实验研究如何使用免费工具在手机的RAM中提取数据并进行分析,进而得到Android系统上常见应用程序QQ的密码等信息。
Android;电子数据;DDMS
0 引言
在移动设备中存在大量与用户相关的数据,这些数据目前已经成为调查取证人员关注的重点。根据数据在设备断电后是否消失可以将其分为两类:一类是易失性的,断电后就会消失。另一类是非易失性的,断电后不会消失。按照以上的分类方法,设备的RAM中存储的是易失性数据,在这些数据中通常都包含一些非常重要的信息,如应用程序的密码和用户名,认证证书,等等。Android是一种在移动设备上常见的操作系统,如何获取Android设备RAM中的数据并分析其中的重要信息对调查取证工作具有重要意义。
1 国内外研究进展
目前国内外的专家在如何获取非易失性数据方面做了大量的工作,也开发了很多比较好的取证软件,而在如何获取易失性数据方面则较少研究,针对Android设备RAM中数据的研究就更少。
2010年8月,Thomas Cannon在博客中介绍了一种获取Android应用程序内存中数据的方法[2],即通过向应用程序发送一个信号(SIGUSRI)将该程序所用内存中的数据转存。
2012年8月,Joe Sylve和Andrew Case等人发表文章[3],提供了一种完全获取Android设备内存中易失性数据的方法,并发布了一个名为DMD的取证工具。
2013年,希腊比雷埃夫斯大学的Dimitris等人发表了一篇文章,其主要内容是提取Android内存中的认证证书[4]。
2 实验
2.1 实验工具
在本实验中使用的是电子数据分析常用工具WinHex以及Android软件开发工具包(SDK)中的DDMS(Dalvik Debug Monitor Service)工具。DDMS是Android开发环境中的Dalvik虚拟机调试监控服务,它可以针对特定的进程查看正在运行的线程以及堆信息。在本实验中主要将其用于提取应用程序存储在RAM中的数据。
在使用DDMS工具前需要确定实验设备上的Android是否为ENG版(工程版),如果不是ENG版,而是USER版(用户版),则DDMS工具就无法发挥其应有的作用。可以通过adb shell getprop ro.build.type命令的返回值确定Android是否为工程版,如果返回值是ENG即是工程版,返回值是USER则是用户版。
2.2 实验步骤
本实验使用的操作系统是在virtual box虚拟机中全新安装的ubuntu,具体的实验步骤如下:
首先在virtual box中新建一台虚拟机并安装ubuntu操作系统,然后安装jdk,最后安装Android软件开发工具包(SDK)。
连接设备,并使用adb devices命令检测设备是否已经连接。
在DDMS中查看正在运行的进程,如图1。
实验针对的应用程序是被广泛使用的QQ。将进程com.tencent.qq的数据转存至文件,文件的名称默认为:com.tencent.qq.hprof。
图1 正在运行的进程
2.3 实验结果
在相同条件下反复进行10次实验,用WinHex打开实验过程中转存的10个文件,依次在这些文件中寻找用户名和密码(如图2),结果发现QQ的用户名(号码)10次、密码9次。
图2 用WinHex查看转存文件
在查找用户名和密码的过程中,笔者发现在用户名和密码前都会出现一段同样的数据“40 12 AB B0 40 0F AE 18 40”,图3和图4分别是登陆不同的QQ号码进行实验后找到的用户名和密码。
由此可见,使用本实验的方法可以发现某些Android应用程序的重要信息。更重要的是,实验说明如果在案件现场出现了手机等电子设备,则需要特别注意设备的运行情况,如果设备正在运行,则有可能提取到RAM中的数据,并分析得到重要的信息。由于目前很多用户习惯在不同的应用程序中使用同一密码,因此获取一个应用程序的密码就有可能得到很多应用程序的重要信息。
图3 登录不同QQ号码后找到的用户名
图4 登陆不同QQ号码后找到的密码
3 结语
通过实验可知,在RAM中有可能提取到某些Android应用程序的重要信息比如密码和用户名,而且提取工作通过一些免费的工具就可以进行。因此在调查取证的过程中,如果有正在运行的Android设备,则应特别注意RAM中的数据。
除本实验研究的问题以外,还有其他一些需要深入研究的问题,如对于USER模式的手机如何获取其RAM中的数据?在RAM中还包括什么其他的重要信息?这些都是对公安工作非常有价值的问题,值得进一步通过实验开展研究。
[1]HOOG A.Android forensics:investigation,analysis and mobile security for Google Android[M].ELSEVIER,2011.
[2]Cannon,Thomas:Android Reverse Engineering,Accessed:04/19/2012.[Online]:http:∥thomascannon.net/ projects/Android-reversing/.
[3]SYLVE J,CASE A,MARZIALE L,et al.Acquisition and analysis of volatile memory from Android devices[J].Digital Investigation,2012,8(3):175-184.
[4]Dimitris A,Giannis M,Christororos N.Christos X:Discovering authentication credentials in volatile memory of Android mobile devices Univesity of Piraeus.
[5]HERIYANTO A P.Procedures And Tools For Acquisition And Analysis Of Volatile Memory On Android Smartphones[J].2013.
(责任编辑 陈小明)
TP316
丁锰(1980—),男,北京人,硕士,讲师。