趙斌 何涇沙 萬雪姣 張玉強 劉公政 北京工業大學
針對安卓移動終端設備的數據取證技術分析
趙斌 何涇沙 萬雪姣 張玉強 劉公政 北京工業大學
從技術層面介紹了安卓系統移動終端數據恢復的邏輯技術和物理技術,并提出了時間序列、文件系統、字符串匹配等相關的數據分析技術。
安卓 取證 數據恢復 數據分析
隨著安卓操作系統在移動終端中的應用越來越廣泛,針對安卓版本的移動終端設備數據取證成為當前的研究重點之一。在取證過程中,電子數據信息是用二進制數據表示的,以數字信號的方式存在,而數字信號是非連續性的,故意或由于其他差錯對數字證據進行的變更、刪除、刪減、剪接、截收和監聽等,都會導致對數據的篡改。因此,應融合磁盤及內存數據恢復、數據挖掘、加密、反向工程、解決技術等其它理論和技術,對證據給予充分的安全保障。
本文針對司法鑒定中所涉及的安卓版本移動終端設備的數字取證問題,從技術層面闡述了數據恢復和分析的相關技術。
針對安卓系統的取證技術,從本質上分為邏輯技術和物理技術兩類,即邏輯數據恢復技術和物理數據恢復技術。
邏輯技術通過訪問文件系統的手段來實現對所分配的數據進行挖掘;所分配的數據是指那些沒有被刪除的數據,可以通過訪問文件系統獲得。針對安卓系統的邏輯數據恢復技術一般指從當前的文件目錄下獲取數據文件,并進行邏輯分析的技術。當前對于使用安卓操作系統的移動終端設備來說,所有與應用程序相關的數據和信息都存放在data/data/目錄下,每種不同的應用程序在該目錄下用可區分的不同子目錄存放本程序的數據文件,例如:手機彩信相關文件所在目錄為data/data/com.Android.mms、聯系人相關文件所在目錄為data/data/com.Android. Contacts等。上述的每個目錄下都會有一個databases目錄,這個目錄中所存儲的是一些對應于該應用程序的SQLite數據庫文件(SQLite是安卓操作系統所采用的數據庫程序)。通過Google官方提供的調試工具adb,可以查
看所有目錄中存儲的文件,并可以方便地將需要用于邏輯分析的SQLite數據庫文件提取到運行adb工具的PC機上,然后就可以使用某種數據庫文件查看器(如SQLite expert)對提取到的數據庫文件進行查看和分析。
這種數據獲取和分析方式操作簡單、易于實現,可以從SQLite數據庫文件中獲取大量信息,例如瀏覽器瀏覽記錄、聯系人、短信/彩信記錄等。但是這種方式的缺陷也很明顯,用該方法進行數據取證的唯一來源就是各種應用程序正在使用的SQLite數據庫文件當前內容,一旦某些應用程序已經卸載而致使該類型數據庫文件不再存在,或者應用程序對數據庫中的某些內容已經作過刪除處理,這些信息就無法從數據庫文件中獲取。另外,SQLite 數據庫的某些文件中數據庫記錄一旦被刪除,也將不能顯示。
與傳統的邏輯技術相比較,在安卓取證中采用一些特殊的工具與技術,依賴于內容提供商內置在安卓平臺或軟件開發套件(SDK)技術,從所獲取的邏輯數據中恢復被刪除的數據庫數據。
物理技術直接將存儲數據的物理介質作為目標,而不是依賴于文件系統來實現對數據的訪問。物理技術最重要的優點在于可以訪問到大量被刪除的數據。
針對安卓系統的物理數據恢復技術指通過某種手段直接對安卓設備的硬件存儲區域直接進行鏡像,生成數據鏡像文件并進一步分析的技術。獲取目標數據存儲的物理映像取證技術通常能夠繞過口令的保護,獲得被修復的數據按照指數數量級增加;不僅能夠訪問到已經被刪除的數據,而且還能夠訪問到系統認為不再需要而丟棄的數據。從結構上說,物理數據恢復在邏輯數據恢復的下層,是邏輯數據恢復的基礎。依據獲取鏡像手段的不同,可以分為基于硬件的物理數據恢復技術以及基于軟件的物理數據恢復技術二大類:
(1)基于硬件的技術:將硬件與終端設備實現連接的方法,或者是物理上實際獲取終端設備部件的方法;
(2)基于軟件的技術:將終端設備中的軟件在具有root 訪問權限條件下運行的技術,以獲得數據分區完整的物理映像。
基于硬件的方法需要專門并且通常很昂貴的儀器以及對取證人員培訓,但是對于無法獲得 root 訪問權限的終端設備非常有效。基于軟件的物理技術是一個更加直接的數據獲取途徑,因而通常也是最好的開始點。當然,必須首先獲得終端設備上的 root 訪問權限,基于軟件的技術
才成為可行。
1. 基于硬件的物理技術
(1)JTAG技術
JTAG 技術于上世紀80年代提出,目的是為印刷電路板布線和相互連接的測試制訂一個標準。到1990年,此標準完成了制訂,正式成為電機與電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)的標準,具體來說就是 IEEE 1149.1-1990(IEEE SA, n.d.),隨后又在2001年進行了更新,標準也變為IEEE 1149.1-2001。此標準得到廣泛接受,目前,大多數印刷電路板都有JTAG 測試訪問接口(JTAG Test Access Ports,TAPs),支持對中央處理器(CPU)進行訪問。
每一個JTAG 測試訪問接口都會向外呈現不同的信號,大多數的移動終端設備都擁有以下接口:
·TDI Test Data In(測試數據入)
·TDO Test Data Out(測試數據出)
·TCK Test Clock(測試時鐘)
·TMS Test Mode Select(測試模式選擇)
·TRST Test Reset(測試初始重置)
·RTCK Return Test Clock(返回測試時鐘)
雖然JTAG 是從安卓終端設備的 NAND 閃存中抽取數據的一種途徑,但因其操作復雜性和困難度較大,在處理 JTAG焊接點過程出現任何差錯,或者是給電路板供應錯誤的電壓,不但會造成JTAG無法再使用,而且會對終端設備造成嚴重的損壞,因此只能由接受過足夠的培訓以及具有處理微印刷電路板焊接點經驗的人員勝任,故JTAG通常不是物理獲取安卓終端設備取證映像的首選。
(2)芯片摘取(Chip-off)
芯片摘取技術實際上就是將 NAND 閃存從終端設備中取出,在外部對其進行檢查、分析,獲得存儲在 NAND閃存芯片中數據的物理映像的技術。此技術不但可以用于修復已經遭到毀壞的終端設備中的數據,也可以有效地分析使用口令保護的終端設備,獲得取證數據。
芯片摘取技術涉及到以下三個主要環節:
第一步,將NAND閃存從終端設備中實際地取出。可以通過斷開焊接點或者使用特殊儀器設備,通過噴出熱氣及吸取的方式將芯片取出;還可以將芯片加熱到特定溫度后,將 NAND 閃存從終端設備中取出。在這個過程中,NAND閃存很容易遭到損壞,但是通過特殊硬件,配以控制軟件,可以將NAND閃存從終端設備中實際地取出。
第二步,重建導電球。修復芯片底部的導電球的過程被稱為重建導電球,在修復之前芯片必須首先經過清洗,然后再進行修復,這是因為取出芯片過程常常會損壞芯片底部的連接頭。
第三步,將取出的芯片插入到配有NAND 閃存設置程序的特殊硬件設備中,以對芯片進行讀取,獲得存儲在NAND閃存芯片中數據的物理映像。應該注意的是:這些特殊硬件設備必須能夠為具體的NAND閃存通過程序進行設置,并且能夠支持若干很流行的芯片。
雖然芯片摘取技術在數據恢復過程中非常有效,是執法機構認可、且非常有用的取證技術之一,但是將NAND閃存取出的過程將是毀滅性的,將NAND閃存重新粘連到印刷電路板上并使其正常運行是非常困難的;不僅要求取證檢查師具有非常專業化的訓練和技能,還需要擁有干凈并受到電磁場輻射保護的操作環境。
2. 基于軟件的物理技術
基于軟件的物理技術與基于硬件的物理技術相比較具有很多優勢。基于軟件的技術更容易執行,因為通常直接對文件系統進行訪問,能夠完整地拷貝出所有的邏輯文件(簡化某些分析),幾乎沒有損壞終端設備或丟失數據的風險。
要使用基于軟件的物理技術,首先必須獲得root訪問權限,然后才能運行數據獲取程序。安卓終端設備上的root訪問權限并不能夠默認地獲得;如果在某些特定情況下想要獲得 root 訪問權限,通常只對完整的、可持續的root 訪問權限進行跟蹤。然而,從取證分析的角度來看,則更加希望獲得臨時的root訪問權限或者是通過特定的修復模式而獲得的root訪問權限。獲得root訪問權限需要注意以下問題:
(1)在很多情況下,獲得root訪問權限會改變終端設備。
(2)root訪問權限技術不但隨著制造商以及終端設備的不同而不同,而且還隨著不同版本的安卓系統,甚至隨著系統所使用的Linux核的不同而不同。
(3)獲得root訪問權限的多數技術并不理想,權限數據常包含不準確的信息。
root訪問權限一般分為以下三種類型:
·利用相關技術獲得臨時的root訪問權限:這種root訪問權限通常在系統重啟后就不再有效。在這種情況下,adb后臺進程通常在沒有root訪問權限的條件下運行。
·通過定制的只讀內存(ROM)而獲得的root 訪問權限:定制的只讀內存(ROM)通常將 adb 后臺進程在具有 root 訪問權限的條件下運行。
·修復模式 root訪問權限:通過閃建一個特定的修復分區,或閃建定制的只讀內存(ROM)的部分內容而獲得的修復模式 root訪問權限。定制的只讀內存(ROM)通常將adb后臺進程運行在具有 root訪問權限的條件下,大多數被修改過的修復分區也如此。
獲得一個新的終端設備或者是一個新版本的root訪問權限,必須要有一個獨立的終端設備用于測試,在保證整個測試過程運行正常、數據沒有丟失的情況下,通過測試技術來確定root訪問權限。在此情況下,雖然測試工作非常耗費時間,但測試是一個非常重要的步驟。
時間序列分析是定量的預測方法之一,是任何取證調查中的關鍵,是利用按時間順序排列的一組數據序列,應用數理統計方法加以處理,以預測未來事物的發展。因為任何事件的發生時間都是取證過程中的參考指標,在數據分析過程中構造出正確無誤的取證時間序列極其重要。
時間序列信息主要來源于文件系統的元數據,包括修改(文件元數據)、訪問、變化(文件內容)及創建等時間戳信息。文件系統跟蹤不同的時間戳,在取證分析的過程中計算延遲和精確度,得出細微的時間差別。如果人工分析時間序列,將耗費巨大的工作量。目前,對于支持的文件系統(如SD卡以及嵌入式多媒體卡上的FAT16/FAT32文件系統),已經存在有數種可以用于構建時間序列的算法。然而,目前沒有任何分析工具支持YAFFS2文件系統,對于不同的安卓終端設備以及不同的安卓版本,相關的文件系統都會有所不同。因而在現有基于Apriori性質的時間序列分析算法的基礎上,需構建、設計新的自適應時間序列算法來應對安卓操作系統的更新變化。
新的自適應時間序列算法通過分析來自程序調試日志、stat命令以及模擬NAND閃存設備中nanddump的相互對立數據,為在NAND閃存上的每一個文件和目錄都生成相應的MAC時間點,根據時間點,從NAND閃存或ObjectHeaders(從系統提供但是不存在的塊中的垃圾回收站中找到的)中所收集的完整元數據信息中得到完整的時間信息。新的自適應時間序列算法將是對YAFFS2文件系統開展取證研究的基礎。
安卓系統是基于Linux內核的開源手機操作系統,與其他操作系統一樣,采用了分層的架構。從高層到低層分成應用程序層、應用程序框架層、中間件層和Linux核心層四個層。
文件系統分析算法通過創建一定容量的nandsim終端設備,容納下Droid中的“/data”分區。使用nandwrite命令將數據和OOB區域拷貝到模擬的NAND閃存中去。對于從Droid 上獲得的完整的“/data”文件系統,從工作站上可以進行訪問,匹配適應的數據分析技術(SQLite數據庫查看器)就可以對相關數據進行分析鑒定。
文件分割技術是指對具體的文件類型進行查找與獲取的技術,它的基本理論是將目標文件以二進制形式進行讀寫,并分割成一定大小的多個二進制文件,傳送到目的地后得到的是整個磁盤或分區的取證映像。文件分割的工作原理是基于已知的文件頭信息,通過檢查二進制數據對文件進行識別。如果從文件的格式定義中知曉文件尾,文件分割將從文件頭開始掃描,直至找到文件尾(或者是在配置文件中設置的文件最大長度),然后將分割的文件保存在磁盤上,以備隨后對其進行取證檢查。
傳統的文件分割技術要求映像中的數據按照順序進行存儲,因此在文件分段存儲的情況無法獲得整個文件。將文件分段存儲的原因是由于文件分割隨著文件系統類型的不同而變化,而且根據內存的不同而不同,如 NAND 閃存中非常大的文件(如視頻文件)很難被恢復。
針對碎片文件的制約問題,設計獨立于任何文件系統的文件分割算法,從配置文件中讀取滿足要求的文件頭和文件尾定義,使它能夠從原始映像中抽取出文件,用于恢復文件系統中的重要元素,對于取證分析來說是一個非常有價值的工具。
串匹配問題是計算機科學中的一個基本問題,也是復雜性理論中研究得最廣泛的問題之一。它在文字編輯處理、圖像處理、文獻檢索、自然語言識別、入侵檢測等領域有著廣泛的應用。串匹配問題實際上就是一種模式匹配問題,即在給定的文本串中找出與模式串匹配的子串的起始位置。字符串匹配技術在數字取證時,根據已知信息對二進制信息進行快速查找,即通過關鍵字搜索獲得準確信息。字符串匹配的實現可以有多種算法,如BF算法、KMP算法、BM算法等。
由于谷歌地圖服務已經緊密地集成在安卓操作系統中,使安卓終端設備存在著大量的位置信息,設計運行于Ubuntu虛擬機中、支持功能強大以及正項表達式的復雜模式匹配算法是必要的。
在很多取證過程中,基于物理獲取數據之后的邏輯獲取、分析通常可以得到足夠的案件信息。然而,某些案件還是需要更深入的分析,以找到已經被刪除的文件或未知的文件結構之間內在的聯系,這就會涉及到更多的相關技術,如數據庫技術和數據挖掘技術,XML解析技術,這些成為安卓取證中必不可少的技術;如十六進制編輯器可以幫助辦案人員準確地看到存儲的是什么數據。尋找其模式,或將可以識別被刪除的或從前見過的數據結構。
本文介紹了針對基于安卓系統的移動終端數據恢復的邏輯技術和物理技術及數據分析技術,有助于公安辦案人員獲取涉案人員在所使用的智能手機或其他移動終端設備中存有的通訊錄、通話記錄、來往信息、數碼照片、各類文件等用戶信息和數據,并盡可能對已經被刪除的以上信息和數據進行恢復,以滿足案件偵查的需要。另外,能夠增強人們對相關信息和數據的保護意識,并利用更加有效的手段來保護這些信息和數據的安全。
[1] 周敏,龔箭. 分布式計算機取證模型研究[J]. 微電子學與計算機,2012,2(29):40-43.
[2] 王雪玉. 云計算取證的5項基本技能[J]. 金融科技時代, 2012,(01):45-46.
[3] 武魯,王連海,顧衛東. 基于云的計算機取證系統研究[J]. 計算機科學,2012,5(39):83-85.
[4]陳丹. 計算機取證技術探討[J].福建電腦,2013(01):78-79.
[5] 郭陳陽,楊龍. 計算機取證技術在打擊犯罪中的應用[J].計算機光盤軟件與應用,2012(09):82-83.
[6] 吳紹兵. 云計算環境下的電子證據取證關鍵技術研究[J]. 計算機科學,2012,11(39):139-142.
[7] 張俊,麥永浩. 云計算環境下仿真計算機取證研究[J].信息網絡安全,2011(10):7-9,12.
[8] 楊衛軍,張佩軍,溫萬造.Android手機短信獲取與恢復方法.警察技術,2013(03).
[9] 王雪玉. 云計算取證的5項基本技能[J].金融科技時代,2012(01): 45-46.