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