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