丁錳,康艷榮,黃冬
(1.中國人民公安大學(xué)刑事技術(shù)學(xué)院,北京 100038;2.公安部物證鑒定中心,北京 100038; 3.中國人民公安大學(xué)犯罪學(xué)學(xué)院,北京 100038)
一種獲取Android應(yīng)用程序密碼的方法
丁錳1,康艷榮2,黃冬3
(1.中國人民公安大學(xué)刑事技術(shù)學(xué)院,北京 100038;2.公安部物證鑒定中心,北京 100038; 3.中國人民公安大學(xué)犯罪學(xué)學(xué)院,北京 100038)
目前Android是移動設(shè)備的主流操作系統(tǒng),與此同時,Android上的應(yīng)用數(shù)量也日益增多。在這種情況下,如何對其中的數(shù)據(jù)進(jìn)行提取、處理和分析成為一個重要的研究方向,并且對公安工作具有重要的意義。通過實(shí)驗(yàn)研究如何使用免費(fèi)工具在手機(jī)的RAM中提取數(shù)據(jù)并進(jìn)行分析,進(jìn)而得到Android系統(tǒng)上常見應(yīng)用程序QQ的密碼等信息。
Android;電子數(shù)據(jù);DDMS
在移動設(shè)備中存在大量與用戶相關(guān)的數(shù)據(jù),這些數(shù)據(jù)目前已經(jīng)成為調(diào)查取證人員關(guān)注的重點(diǎn)。根據(jù)數(shù)據(jù)在設(shè)備斷電后是否消失可以將其分為兩類:一類是易失性的,斷電后就會消失。另一類是非易失性的,斷電后不會消失。按照以上的分類方法,設(shè)備的RAM中存儲的是易失性數(shù)據(jù),在這些數(shù)據(jù)中通常都包含一些非常重要的信息,如應(yīng)用程序的密碼和用戶名,認(rèn)證證書,等等。Android是一種在移動設(shè)備上常見的操作系統(tǒng),如何獲取Android設(shè)備RAM中的數(shù)據(jù)并分析其中的重要信息對調(diào)查取證工作具有重要意義。
目前國內(nèi)外的專家在如何獲取非易失性數(shù)據(jù)方面做了大量的工作,也開發(fā)了很多比較好的取證軟件,而在如何獲取易失性數(shù)據(jù)方面則較少研究,針對Android設(shè)備RAM中數(shù)據(jù)的研究就更少。
2010年8月,Thomas Cannon在博客中介紹了一種獲取Android應(yīng)用程序內(nèi)存中數(shù)據(jù)的方法[2],即通過向應(yīng)用程序發(fā)送一個信號(SIGUSRI)將該程序所用內(nèi)存中的數(shù)據(jù)轉(zhuǎn)存。
2012年8月,Joe Sylve和Andrew Case等人發(fā)表文章[3],提供了一種完全獲取Android設(shè)備內(nèi)存中易失性數(shù)據(jù)的方法,并發(fā)布了一個名為DMD的取證工具。
2013年,希臘比雷埃夫斯大學(xué)的Dimitris等人發(fā)表了一篇文章,其主要內(nèi)容是提取Android內(nèi)存中的認(rèn)證證書[4]。
2.1 實(shí)驗(yàn)工具
在本實(shí)驗(yàn)中使用的是電子數(shù)據(jù)分析常用工具WinHex以及Android軟件開發(fā)工具包(SDK)中的DDMS(Dalvik Debug Monitor Service)工具。DDMS是Android開發(fā)環(huán)境中的Dalvik虛擬機(jī)調(diào)試監(jiān)控服務(wù),它可以針對特定的進(jìn)程查看正在運(yùn)行的線程以及堆信息。在本實(shí)驗(yàn)中主要將其用于提取應(yīng)用程序存儲在RAM中的數(shù)據(jù)。
在使用DDMS工具前需要確定實(shí)驗(yàn)設(shè)備上的Android是否為ENG版(工程版),如果不是ENG版,而是USER版(用戶版),則DDMS工具就無法發(fā)揮其應(yīng)有的作用。可以通過adb shell getprop ro.build.type命令的返回值確定Android是否為工程版,如果返回值是ENG即是工程版,返回值是USER則是用戶版。
2.2 實(shí)驗(yàn)步驟
本實(shí)驗(yàn)使用的操作系統(tǒng)是在virtual box虛擬機(jī)中全新安裝的ubuntu,具體的實(shí)驗(yàn)步驟如下:
首先在virtual box中新建一臺虛擬機(jī)并安裝ubuntu操作系統(tǒng),然后安裝jdk,最后安裝Android軟件開發(fā)工具包(SDK)。
連接設(shè)備,并使用adb devices命令檢測設(shè)備是否已經(jīng)連接。
在DDMS中查看正在運(yùn)行的進(jìn)程,如圖1。
實(shí)驗(yàn)針對的應(yīng)用程序是被廣泛使用的QQ。將進(jìn)程com.tencent.qq的數(shù)據(jù)轉(zhuǎn)存至文件,文件的名稱默認(rèn)為:com.tencent.qq.hprof。
圖1 正在運(yùn)行的進(jìn)程
2.3 實(shí)驗(yàn)結(jié)果
在相同條件下反復(fù)進(jìn)行10次實(shí)驗(yàn),用WinHex打開實(shí)驗(yàn)過程中轉(zhuǎn)存的10個文件,依次在這些文件中尋找用戶名和密碼(如圖2),結(jié)果發(fā)現(xiàn)QQ的用戶名(號碼)10次、密碼9次。
圖2 用WinHex查看轉(zhuǎn)存文件
在查找用戶名和密碼的過程中,筆者發(fā)現(xiàn)在用戶名和密碼前都會出現(xiàn)一段同樣的數(shù)據(jù)“40 12 AB B0 40 0F AE 18 40”,圖3和圖4分別是登陸不同的QQ號碼進(jìn)行實(shí)驗(yàn)后找到的用戶名和密碼。
由此可見,使用本實(shí)驗(yàn)的方法可以發(fā)現(xiàn)某些Android應(yīng)用程序的重要信息。更重要的是,實(shí)驗(yàn)說明如果在案件現(xiàn)場出現(xiàn)了手機(jī)等電子設(shè)備,則需要特別注意設(shè)備的運(yùn)行情況,如果設(shè)備正在運(yùn)行,則有可能提取到RAM中的數(shù)據(jù),并分析得到重要的信息。由于目前很多用戶習(xí)慣在不同的應(yīng)用程序中使用同一密碼,因此獲取一個應(yīng)用程序的密碼就有可能得到很多應(yīng)用程序的重要信息。
圖3 登錄不同QQ號碼后找到的用戶名
圖4 登陸不同QQ號碼后找到的密碼
通過實(shí)驗(yàn)可知,在RAM中有可能提取到某些Android應(yīng)用程序的重要信息比如密碼和用戶名,而且提取工作通過一些免費(fèi)的工具就可以進(jìn)行。因此在調(diào)查取證的過程中,如果有正在運(yùn)行的Android設(shè)備,則應(yīng)特別注意RAM中的數(shù)據(jù)。
除本實(shí)驗(yàn)研究的問題以外,還有其他一些需要深入研究的問題,如對于USER模式的手機(jī)如何獲取其RAM中的數(shù)據(jù)?在RAM中還包括什么其他的重要信息?這些都是對公安工作非常有價值的問題,值得進(jìn)一步通過實(shí)驗(yàn)開展研究。
[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.
(責(zé)任編輯 陳小明)
TP316
丁錳(1980—),男,北京人,碩士,講師。