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