徐紅
(四川警察學(xué)院,四川 瀘州 646000)
隨著通信技術(shù)和計(jì)算機(jī)技術(shù)的高速發(fā)展,智能手機(jī)應(yīng)運(yùn)而生?,F(xiàn)今的智能手機(jī)已不只是一個(gè)通話工具,已經(jīng)發(fā)展成為一個(gè)功能強(qiáng)大的便攜電腦,它正在不斷融入人們工作與生活的各個(gè)方面。人們的工作和生活方式也因智能手機(jī)的使用而發(fā)生巨大的改變。與此同時(shí),一些不法分子將他人的智能手機(jī)作為作案目標(biāo),或者借助智能手機(jī)實(shí)施犯罪行為。這些犯罪活動(dòng)會(huì)在智能手機(jī)中留下相應(yīng)的數(shù)據(jù)記錄。通過手機(jī)取證,提取這些數(shù)據(jù)記錄,形成電子證據(jù)對(duì)于打擊犯罪,保障網(wǎng)絡(luò)信息安全,保護(hù)人民權(quán)益具有重要意義。
手機(jī)取證是指對(duì)保存在手機(jī)中和案件相關(guān)的信息進(jìn)行提取,獲得具有法律效力的證據(jù)。智能手機(jī)中產(chǎn)生和存儲(chǔ)的數(shù)據(jù)種類多、容量大、涉及面廣,而智能手機(jī)數(shù)據(jù)直接關(guān)系到電子證據(jù)的生成,所以有必要對(duì)智能手機(jī)數(shù)據(jù)提取進(jìn)行研究。
本文對(duì)手機(jī)取證進(jìn)行簡(jiǎn)要介紹,重點(diǎn)分析了Android手機(jī)數(shù)據(jù)的組成架構(gòu)和提取方法。
手機(jī)取證必須在法律許可的條件下進(jìn)行,取證過程必須恪守以下原則:
(1)合法取證原則。對(duì)手機(jī)的取證權(quán)必須得到法律的允許;手機(jī)取證所使用的取證技術(shù)必須合法,不得改變手機(jī)原來的數(shù)據(jù);取證程序必須嚴(yán)格按照法律規(guī)定執(zhí)行。
(2)及時(shí)取證原則。只要手機(jī)通電運(yùn)行,就可能產(chǎn)生新的數(shù)據(jù),從而覆蓋原來的數(shù)據(jù),無法反映真實(shí)的原始狀況,所以取證應(yīng)及時(shí)進(jìn)行。
(3)全面取證原則。盡可能保證取證的數(shù)據(jù)是完整的,特別是確保重要數(shù)據(jù)的完整性。
(4)無損取證原則。取證過程要防止破壞原始數(shù)據(jù),要保證手機(jī)信息完整。
手機(jī)取證流程按美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)的要求可以分為下列幾個(gè)階段:
(1)證據(jù)保全
該階段工作的目的是保護(hù)手機(jī)中的數(shù)據(jù)。具體操作步驟是:記錄現(xiàn)場(chǎng)——記錄當(dāng)前手機(jī)的狀態(tài),如系統(tǒng)時(shí)間、圖標(biāo)、電量狀況等;網(wǎng)絡(luò)隔離——將手機(jī)與外部通信完全隔離,可通過將手機(jī)放入屏蔽容器等方法實(shí)現(xiàn)。
(2)證據(jù)獲取
該階段利用物理獲取、邏輯獲取和手工獲取的方法來獲得手機(jī)中的數(shù)據(jù)。物理獲取通過與手機(jī)芯片直接交互提取數(shù)據(jù);邏輯獲取將手機(jī)與計(jì)算機(jī)建立連接,通過軟件工具提取數(shù)據(jù);手工獲取通過人工操作手機(jī)原有的APP提取數(shù)據(jù)。其中,物理獲取優(yōu)于邏輯獲取,而邏輯獲取又優(yōu)于人工獲取。
(3)證據(jù)分析
該階段的主要工作是對(duì)提取得到的數(shù)據(jù)進(jìn)行分析,以獲得有力的證據(jù)。
(4)生成報(bào)告
該階段將取證過程中的全部操作和結(jié)論進(jìn)行總結(jié)并形成報(bào)告,它代表手機(jī)取證過程的完結(jié)。
據(jù)獨(dú)立咨詢公司Gartner統(tǒng)計(jì),2018年Android手機(jī)在市場(chǎng)上的占比達(dá)到了86%,可見Android手機(jī)在全球的智能手機(jī)中占據(jù)了統(tǒng)治地位。有鑒于此,本文以Android手機(jī)為分析對(duì)象,探討其數(shù)據(jù)提取方法。
Android系統(tǒng)基于Linux內(nèi)核,采用分層的方式進(jìn)行構(gòu)建。Android系統(tǒng)自上而下分為四層,分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。
應(yīng)用程序?qū)佑葾ndroid手機(jī)中的所有應(yīng)用組成,包括Android的系統(tǒng)應(yīng)用以及第三方應(yīng)用程序。
應(yīng)用程序框架層由活動(dòng)管理器、窗口管理器、資源管理器、電話管理器和視圖系統(tǒng)等部分構(gòu)成。該層對(duì)外提供了API,方便開發(fā)人員開發(fā)應(yīng)用程序。
系統(tǒng)運(yùn)行庫層包括系統(tǒng)庫和Android運(yùn)行庫。Android運(yùn)行庫主要提供圖像顯示、瀏覽器和數(shù)據(jù)庫的底層支持,其包含的庫主要有:OpenGL|ES、Webkit、SGL、SSL、SQLite。
Linux內(nèi)核層,Linux內(nèi)核的優(yōu)點(diǎn)是具備良好的內(nèi)存管理和進(jìn)程管理方法,可移植性強(qiáng),擁有豐富的軟硬件支持等。Android在Linux內(nèi)核的基礎(chǔ)上進(jìn)行了適應(yīng)性改進(jìn),以滿足嵌入式設(shè)備的使用要求。
Android共有五種數(shù)據(jù)存儲(chǔ)方式:SQLite數(shù)據(jù)庫存儲(chǔ)、SharedPreferences存儲(chǔ)、文件存儲(chǔ)、網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)、Content-Provide存儲(chǔ)。
SQLite數(shù)據(jù)庫主要存儲(chǔ)結(jié)構(gòu)化的數(shù)據(jù),是手機(jī)取證的重要數(shù)據(jù)來源;SharedPreferences主要存儲(chǔ)應(yīng)用的配置信息;文件存儲(chǔ)主要用于存儲(chǔ)容量較大的數(shù)據(jù);網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)是通過網(wǎng)絡(luò)來進(jìn)行數(shù)據(jù)存儲(chǔ);ContentProvide用于應(yīng)用程序之間共享數(shù)據(jù)。
手機(jī)取證中重點(diǎn)關(guān)注的對(duì)象有:通訊錄、通話記錄、短信息、瀏覽器、郵件、QQ等,它們的信息在Android系統(tǒng)的存儲(chǔ)方式如下:
(1)通訊錄
通訊錄存儲(chǔ)在contact2.db數(shù)據(jù)庫中,其中與通訊錄有關(guān)系的表是contacts、data、mimetypes和raw_contacts。raw_contacts存儲(chǔ)所有聯(lián)系人的信息;contacts存儲(chǔ)聯(lián)系人的識(shí)別碼等信息;data存儲(chǔ)所有聯(lián)系人的詳盡信息;mimetypes存儲(chǔ)了表征聯(lián)系人信息各字段的標(biāo)識(shí)。
(2)通話記錄
通話記錄存儲(chǔ)在contact2.db的calls表中,該表中number字段表示聯(lián)系人電話,date字段表示通話開始時(shí)間,duration字段表示通話時(shí)長(zhǎng),name字段表示聯(lián)系人姓名,type字段表示通話的類型。
(3)短信息
短信息存儲(chǔ)在mmssms.db數(shù)據(jù)庫的sms表中,該表中address字段表示發(fā)送人號(hào)碼,date字段表示短信發(fā)出時(shí)間,status字段表示短信的發(fā)送狀態(tài),protocol字段表示發(fā)送短信類型協(xié)議,body字段表示短信的內(nèi)容。
(4)瀏覽器
手機(jī)自帶瀏覽器的歷史記錄存儲(chǔ)在browers.db數(shù)據(jù)庫的history表中,該表中title字段表示網(wǎng)站的名稱,url字段表示網(wǎng)站地址,date字段表示訪問時(shí)間,visits字段表示訪問的次數(shù)。
(5)郵件
郵件信息主要存儲(chǔ)在EmailProvider.db數(shù)據(jù)庫的message表中,該表中timeStamp字段表示接收郵件的時(shí)間戳,subject字段表示郵件主題,flagAttachment字段表示郵件是否有附件,snippet字段表示郵件內(nèi)容。
(6)QQ
QQ的數(shù)據(jù)文件在QQ_database文件夾下,QQ賬戶數(shù)據(jù)存儲(chǔ)在qq_accounts表中,賬號(hào)信息存儲(chǔ)在qq_selfInfo表中,好友信息存儲(chǔ)在qq_buddy_list_detail表中,聊天記錄存儲(chǔ)在qq_msgHistory表中,該表中,selfUin字段表示登陸的QQ號(hào)碼,uin字段表示參與聊天的QQ號(hào)碼,msgBbody字段表示聊天內(nèi)容。
為避免數(shù)據(jù)提取過程毀壞原始數(shù)據(jù),需要首先將手機(jī)的數(shù)據(jù)進(jìn)行鏡像備份。操作的主要步驟是:
(1)將Android手機(jī)與計(jì)算機(jī)相連;
(2)利用工具軟件獲得手機(jī)的ROOT權(quán)限;
(3)利用Android SDK和EnCase將手機(jī)存儲(chǔ)器備份成鏡像。
接下來對(duì)備份鏡像進(jìn)行邏輯分析,通過adb shell命令就可以查找到存儲(chǔ)上述數(shù)據(jù)的數(shù)據(jù)庫文件,然后用SQLite數(shù)據(jù)庫查看器就能提取到所需的數(shù)據(jù)。
近年來,利用手機(jī)犯罪呈現(xiàn)逐年高發(fā)的態(tài)勢(shì),而手機(jī)取證是打擊手機(jī)犯罪的關(guān)鍵技術(shù)。本文以手機(jī)取證為對(duì)象進(jìn)行研究,介紹了手機(jī)取證的基本原則和工作流程,重點(diǎn)探討了Android手機(jī)數(shù)據(jù)的存儲(chǔ)架構(gòu)以及手機(jī)取證重點(diǎn)關(guān)注對(duì)象在Android系統(tǒng)中的存儲(chǔ)方式,并對(duì)數(shù)據(jù)的提取方法進(jìn)行了介紹。當(dāng)前的手機(jī)取證技術(shù)還有較大的進(jìn)步空間,在今后的工作中,我們應(yīng)基于公安執(zhí)法的現(xiàn)實(shí)需要,研究取證效果更好的手機(jī)取證工具和取證方法。