淺談智能手機取證—技術(shù)篇
隨著手機智能化程度越來越高,我們可以通過智能手機處理越來越多的生活需求。智能手機中的電子數(shù)據(jù)主要來源于用戶使用各類系統(tǒng)應用與第三方應用留下的痕跡,包括聊天記錄、出行記錄、地理位置、支付記錄、通話記錄和短信等信息,獲知此類信息可以幫助辦案人員更好的了解案情,必須及時做好手機的扣押及電子數(shù)據(jù)的提取與分析工作。
手機電子數(shù)據(jù)提取流程主要包括現(xiàn)場獲取、實驗室檢驗、檢出數(shù)據(jù)和檢驗記錄四個部分。在本文中,我們將主要針對實驗室檢驗與檢出數(shù)據(jù)環(huán)節(jié),從數(shù)據(jù)存儲情況、數(shù)據(jù)提取技術(shù)和取證分析技術(shù)三個方面,具體介紹主流的iOS和Android智能手機取證所涉及到的研究基礎和關(guān)鍵技術(shù)。
1.智能手機數(shù)據(jù)存儲技術(shù)
為了提取和分析移動設備存儲的數(shù)據(jù),首先必須知道在哪里可以找到這些數(shù)據(jù)。下面將根據(jù)設備系統(tǒng)類型不同對數(shù)據(jù)存儲方式進行介紹。
1.1 Android數(shù)據(jù)存儲技術(shù)
Android文件系統(tǒng)通常分為內(nèi)部存儲和外部存儲,內(nèi)部存儲即系統(tǒng)內(nèi)存,用于存儲Android操作系統(tǒng)以及應用程序的私有數(shù)據(jù)和緩存,外部存儲則類似于 SD卡,正常情況下用戶只能對該部分進行讀寫操作,外部存儲目前也普遍內(nèi)置到設備中。應用安裝后,系統(tǒng)會自動在內(nèi)部存儲和外部存儲分別建立應用的私有存儲區(qū)域,對于不同的Android設備來說,它們往往具有一些通用的標準存儲位置。圖1展示了Android存儲的層次化描述,最頂層紅色部分表示在取證過程中應重點關(guān)注的Android系統(tǒng)分區(qū),下層表示在這些分區(qū)中能夠定位的電子數(shù)據(jù)信息的存儲位置。
圖1 Android數(shù)據(jù)存儲區(qū)域
首先來看“data”分區(qū),這個分區(qū)包含所有的用戶數(shù)據(jù),是聯(lián)系人、短信、設置和應用程序等存放的地方,擦除這個分區(qū)就相當于執(zhí)行恢復出廠設置。在取證時“data”分區(qū)下應重點關(guān)注的數(shù)據(jù)存儲目錄見表1。
表1 “data”分區(qū)詳情
其次來看“sdcard”分區(qū),這個分區(qū)用作外部存儲區(qū)域,主要用來緩解系統(tǒng)存儲空間不足帶來的影響,該分區(qū)不受安全保護,任何人都可以訪問存儲在這里的數(shù)據(jù)。“sdcard”分區(qū)中的有用信息包括:相機應用程序拍攝的圖片/視頻、用戶自定義下載的文件以及應用程序公共存儲區(qū)存儲的數(shù)據(jù)。
最后來看“system”分區(qū),此分區(qū)用來存放除內(nèi)核和文件系統(tǒng)以外的系統(tǒng)相關(guān)配置,包括了用戶界面、手機預裝的軟件、應用程序運行日志等,這些數(shù)據(jù)提供了深入了解應用程序運行底層邏輯的可能。
不同的Android設備雖然可能有著不同的文件系統(tǒng)結(jié)構(gòu),但是它們所具有的這些通用的數(shù)據(jù)存儲位置給取證人員工作的開展指明了方向。
1.2 iOS數(shù)據(jù)存儲技術(shù)
iOS使用HFS+(Hierarchical File System Plus)文件系統(tǒng),如圖2所示,一個HFS+卷一般包含6個數(shù)據(jù)結(jié)構(gòu),分別是:
(1)卷頭文件(Volume Header):該文件定義卷的基本結(jié)構(gòu),如每個分配塊的大小、已用和空閑塊的數(shù)量,以及其他特殊文件的大小和位置。
(2)分配文件(Allocation File):此文件包括一個位圖,其中包含卷中已使用和未使用的塊。
(3)目錄文件(Catalog File):此文件定義文件系統(tǒng)中文件夾的結(jié)構(gòu),并用于標識特定文件或文件夾的位置擴展數(shù)據(jù)塊。
(4)擴展數(shù)據(jù)塊溢出文件(Extents Overflow File):此文件包含指向需要八個以上連續(xù)分配塊的文件的其他擴展數(shù)據(jù)塊的指針。
(5)屬性文件(Attribute File):此文件包含文件的可自定義屬性。
(6)啟動文件(Startup File):此文件包含系統(tǒng)啟動時所需的信息。
圖2 HFS+文件系統(tǒng)結(jié)構(gòu)
iOS設備一般分為兩部分——系統(tǒng)分區(qū)和數(shù)據(jù)分區(qū)。系統(tǒng)分區(qū)包含iOS操作系統(tǒng)和所有預裝應用,路徑一般是“/dev/disk0s1”或者“/dev/disk0s1s1”。由于系統(tǒng)部分不包含用戶安裝的應用程序且用戶通常無法訪問該分區(qū)且與調(diào)查相關(guān)的所有信息都在數(shù)據(jù)分區(qū)內(nèi),所以此部分很小且此分區(qū)通常不被關(guān)注。
數(shù)據(jù)分區(qū)占據(jù)了存儲空間的大部分,路徑一般是“/dev/disk0s2”或者“/dev/disk0s2s2”。該部分包含用戶數(shù)據(jù)以及用戶安裝的應用程序。關(guān)鍵存儲目錄描述如表2所示。
表2 iOS數(shù)據(jù)分區(qū)關(guān)鍵存儲目錄
#
2.智能手機數(shù)據(jù)提取技術(shù)
明確了數(shù)據(jù)的存儲位置,接下來要考慮如何從智能手機設備中將這些有用數(shù)據(jù)提取出來。本節(jié)主要介紹了四種技術(shù)來提取智能手機物理映像或邏輯映像數(shù)據(jù),其中前兩種Android和iOS設備可以共用,后兩種僅能針對Android設備。提取物理映像數(shù)據(jù)可以理解為對存儲設備或分區(qū)的逐位復制或數(shù)據(jù)轉(zhuǎn)儲,提取邏輯映像數(shù)據(jù)則可以理解為去拷貝設備存儲的文件和文件夾的副本。
2.1 基于Chip-Off(芯片摘?。┑臄?shù)據(jù)提取技術(shù)
這種數(shù)據(jù)提取方式用于提取智能設備物理映像,需要分析人員具備相關(guān)硬件技術(shù)知識,從設備的電路板上將NAND閃存芯片實際剝離出來,并通過焊接等技術(shù)將芯片的引腳直接與硬件分析工具進行連接,以便隨后分析工作的展開。只要閃存芯片完整,即使設備已經(jīng)損壞,Chip-Off技術(shù)也可以從中提取數(shù)據(jù),并且不需要提前了解設備解鎖憑據(jù)。該技術(shù)的缺點是拆解芯片時可能會造成無法還原的后果,耗時較長,風險較高,而且隨著全盤加密技術(shù)的普及,通過Chip-Off技術(shù)很難獲取到NAND中的明文數(shù)據(jù)。
2.2 基于備份的數(shù)據(jù)提取技術(shù)
該技術(shù)主要通過第三方備份應用軟件或備份應用編程接口來提取設備數(shù)據(jù)。早期Android沒有提供個人數(shù)據(jù)備份機制,因此應用商場中發(fā)布了很多第三方備份軟件,例如RerWare公司開發(fā)的My Backup Pro,這些軟件可以讓用戶或取證人員將終端設備數(shù)據(jù)備份到SD卡或云端上,如果具有root訪問權(quán)限,還可以將“/data/data”等重點存儲區(qū)域的文件進行備份。使用谷歌推出的備份應用程序接口進行備份會更加安全、可靠,并且對于所有設備上的應用程序來說具有備份一致性,這有利于備份的恢復工作。iOS設備則可以直接通過iTunes獲取手機備份。
2.3 基于JTAG (Joint Test Action Group)的數(shù)據(jù)提取技術(shù)
JTAG是一種國際標準測試協(xié)議,主要用于對各類芯片以及其外圍設備進行測試與調(diào)試。目前Android設備的CPU(central processing unit,CPU)硬件一般具備JTAG接口,可以采用JTAG技術(shù)手段提取設備的完整鏡像文件并進行深度的數(shù)據(jù)恢復操作,屬于物理映像數(shù)據(jù)提取技術(shù)。分析人員利用Android設備背后的JTAG測試接口,向設備CPU發(fā)送命令,通過JTAG命令將閃存中的所有數(shù)據(jù)發(fā)送給CPU,再從CPU上把閃存芯片的數(shù)據(jù)提取走。JTAG技術(shù)對CPU底層協(xié)議的操作是在設備不開機情況下進行的,不需要獲知設備類型、鎖屏密碼等信息,同時避免了對設備物理結(jié)構(gòu)的破壞,數(shù)據(jù)提取效果與Chip-Off技術(shù)完全一致。JTAG技術(shù)的缺點主要包括:不是所有設備都支持JTAG,JTAG測試接口很難定位,數(shù)據(jù)提取過程緩慢以及必須在CPU完好的情況下才能發(fā)揮作用。
2.4 基于ADB(Android Debug Bridge)的數(shù)據(jù)提取技術(shù)
ADB是取證人員針對Android設備取證經(jīng)常接觸到的一個命令行工具,屬于Android SDK,允許計算機和Android設備之間使用USB連接后建立通信。主要功能包括執(zhí)行服務器端Shell、上傳/下載文件、建立連接和映射以及安裝應用程序等。該工具包含三個套件:Client部分運行在計算機端,用于向Android設備發(fā)送命令;Daemon部分運行在設備端后臺,用于運行Client發(fā)送過來的命令;Server部分運行在計算機端后臺,用于管理Client和Daemon之間的通信。ADB中的常用命令如表3所示。
表3 ADB常用命令
默認情況下,Android設備的ADB功能是關(guān)閉的,需要手動開啟USB調(diào)試模式,且需要提前解鎖設備并獲得設備的root權(quán)限。
3.智能手機數(shù)據(jù)分析
從設備中提取出數(shù)據(jù)后,取證人員需要對數(shù)據(jù)含義進一步抽取和分析。本小節(jié)從時間序列分析、文件雕復和應用分析三個角度進行介紹,這些分析技術(shù)都是為了最大限度的對數(shù)據(jù)上下文進行關(guān)聯(lián),以便從中獲取取證所需的關(guān)鍵證據(jù)信息。
3.1 時間序列分析
時間序列分析是取證調(diào)查中的重要部分,通過分析操作事件發(fā)生的時間可以定位嫌疑人的可疑操作,相關(guān)時間戳也保證了電子證據(jù)固化的可信性和司法機構(gòu)的公信力。
在Android設備中,DropBoxManagerService服務工作路徑下以SystemBoot@[timestamp].[log|txt]形式命名的日志文件能反應設備啟動時間,而以event_data@[timestamp].txt形式命名的日志文件每30分鐘創(chuàng)建一次,可方便取證人員分析設備連續(xù)運行時間。除此之外,還有一些數(shù)據(jù)位置同樣包含有關(guān)時間和日期設置的相關(guān)信息,例如“/data/property/persist.sys.timezone”文件中包含當前正在使用的時區(qū)信息。為獲取文件系統(tǒng)中的時間序列信息,需要先將文件系統(tǒng)以只讀的方式掛載,然后可以借助log2timeline等工具分析文件創(chuàng)建、修改時間。
iOS設備的計時方式?jīng)]有采用經(jīng)典的UNIX時間戳,而是使用MAC絕對時間戳,即自2001年1月1日00:00:00以來經(jīng)過的秒數(shù)。Apple iTunes軟件允許用戶創(chuàng)建iOS設備備份,備份文件夾名稱的末尾會附加備份的時間戳。另外,iMessage、Dropbox、Google Drive等應用數(shù)據(jù)庫中也存儲了如通話記錄、短信記錄、文件上傳時間等應用自身提供服務的時間戳,同樣在取證過程中需重點關(guān)注。
通過運用專業(yè)知識,對提取到的時間信息進行分析,技術(shù)人員可以更有效的分辨各類操作背后與案件相關(guān)的證據(jù)信息。
3.2 文件雕復
文件雕復是指對具體文件進行查找和獲取的過程。這個過程中,文件的內(nèi)容被作為二進制數(shù)值對待,文件雕復的工作就是檢查二進制數(shù)據(jù),并利用已知文件頭來識別文件類型。若已知某文件有確定的文件尾,文件雕復技術(shù)將會從文件頭開始掃描,直到匹配到相應的文件尾,然后將頭尾之間的數(shù)據(jù)保存為文件,存儲到磁盤中用于后續(xù)審查。
傳統(tǒng)的文件雕復技術(shù)要求映像中是有序數(shù)據(jù),對于產(chǎn)生文件碎片的大文件很難恢復。新型文件雕復技術(shù)嘗試突破文件碎片修復的困局,考慮將一些常見文件系統(tǒng)的碎片特征配置化。Scalpel是一款著名的開源文件雕復工具,它通過讀取定義了文件頭尾特征的數(shù)據(jù)庫從文件系統(tǒng)的原始映像中提取文件,可工作在FAT、NTFS、HFS等常見移動設備原始分區(qū)格式之上。
雕復完成后,輸出以文件類型分類存儲。表4中展示了用Scalpel能夠恢復的部分標準文件類型以及可供取證人員參考的文件信息。
表4 Scalpal文件雕復結(jié)果
3.3 應用分析
本小節(jié)以Android和iOS設備中部分默認應用程序為例進行分析,從應用信息、重要目錄及文件、重要數(shù)據(jù)庫等方面介紹取證人員在分析時的重點關(guān)注對象。
3.4 Android設備
(1)短信與彩信
應用軟件名為Messaging,軟件包名為com.android.providers.telephony。分析“data”分區(qū)下該應用的數(shù)據(jù)目錄,能發(fā)現(xiàn)關(guān)鍵數(shù)據(jù)主要存儲在mmssms.db數(shù)據(jù)庫中,其中重要的數(shù)據(jù)庫表信息如表5所示。
表5 “Messaging”數(shù)據(jù)庫表信息
由上表可知,取證人員在分析該應用數(shù)據(jù)時應重點關(guān)注sms表中信息,另外應用目錄下還存在一個app_parts文件夾,其中存有的多媒體附件也是重點分析對象。手機短信可以作為證明案件事實的證據(jù),在進行手機短信內(nèi)容公證的時候,還要注意記錄下手機的品牌和型號。
(2)瀏覽器
應用軟件名為Internet,軟件包名為com.android.browser。該應用需重點分析的文件和數(shù)據(jù)庫表如下所示:
表6 “Internet”數(shù)據(jù)庫表信息
瀏覽器歷史記錄分析的主要目的在于檢查并分析計算機用戶通過網(wǎng)絡瀏覽器在互聯(lián)網(wǎng)上查看的內(nèi)容,一些關(guān)鍵證據(jù)可能會隱藏其中,尤其在涉及情色及信用卡詐騙等以瀏覽器為主要犯罪工具的案件中。
(3)聯(lián)系人
應用軟件名為Contacts,軟件包名為com.android.providers.contacts。該應用關(guān)鍵數(shù)據(jù)主要存儲在contacts2.db數(shù)據(jù)庫中,其中重要的數(shù)據(jù)庫表信息如表7所示。
表7 “Contacts”數(shù)據(jù)庫表信息
統(tǒng)計手機中所有聯(lián)系人分布情況,可以用于繪制手機持有者人物畫像,與手機中其他信息進行關(guān)聯(lián),可以挖掘出其中出現(xiàn)過的手機號、郵箱、身份證號、銀行卡號、車牌號、人名、地點等關(guān)鍵數(shù)據(jù)。
3.5 iOS設備
(1)短信與彩信
應用名稱“SMS/iMessage”,關(guān)鍵數(shù)據(jù)主要存儲在“/private/var/mobile/Library/SMS/sms.db”數(shù)據(jù)庫中。Message和msg_pieces是兩個需重點關(guān)注的表,message表包括了每一條短信發(fā)送者的電話號碼、消息發(fā)送時間、消息內(nèi)容等,msg_pieces表包含了隨著MMS消息發(fā)送的文本內(nèi)容。
(2)Safari瀏覽器
Safari是iOS預裝的一款瀏覽器,它的數(shù)據(jù)保存在“/private/var/mobile/Library/Safari/”和“/private/var/mobile/Containers/Data/application/C6254D15-92CE-4989-9427-26A589DFA8B7/”兩個路徑下。其中重要信息如下表所示:
表8 “Safari”數(shù)據(jù)庫表信息
(3)聯(lián)系人
聯(lián)系人信息存儲在“/private/var/mobile/Library/AddressBook/”文件夾下,其中兩個重要的數(shù)據(jù)庫是AddressBook.sqlitedb和AddressBookImages.sqlitedb。AddressBook.sqlitedb包含保存的聯(lián)系人的姓名、姓氏、電話、電子郵件地址等;AddressBookImages.sqlitedb存儲的是聯(lián)系人的頭像信息。
4.智能手機取證面臨的挑戰(zhàn)
智能手機設備電子數(shù)據(jù)取證的需求與日俱增,在取證過程中仍然面臨著一些挑戰(zhàn)。
首先,與智能移動設備的任何交互都會在某種程度上改變此設備的原始環(huán)境,例如對設備進行root操作將有可能破壞整個系統(tǒng)的完整性,導致關(guān)鍵證據(jù)的丟失。因此,取證人員應特別謹慎的運用不同的取證方案,當原始環(huán)境發(fā)生改變時應能清楚的說明改變產(chǎn)生的原因以及人員操作的必要性。
其次,目前市場上有大量不同類型、不同版本的智能手機終端設備及其應用,每一個終端設備與平臺相結(jié)合又有其獨特性,在數(shù)據(jù)提取和分析時,針對這些區(qū)別,取證人員需要進行大量的測試與驗證。
最后,取證過程中每個技術(shù)環(huán)節(jié)都應嚴格遵循相應的原則和工作標準,否則取證結(jié)果的合法性和客觀性將難以得到保證,取得的證據(jù)也將不足以被法庭質(zhì)證采信。
參考文獻
[1]. Andrew Hoog. Android取證實戰(zhàn):調(diào)查、分析與移動安全[M]. 北京:機械工業(yè)出版社,2013:166-312.
[2]. Andrew Hoog. iOS取證實戰(zhàn):調(diào)查、分析與移動安全[M]. 北京:機械工業(yè)出版社,2013:87-175.
[3]. Lin X, Lin X, Lagerstrom-Fife. Introductory Computer Forensics[M]. Springer International Publishing, 2018.
[4]. 蒲泓全, 郭艷芬, 衛(wèi)邦國. 電子取證應用研究綜述[J]. 計算機系統(tǒng)應用, 2019, 28(1): 10-16.http://www.c-s-a.org.cn/1003-3254/6707.html.
[5]. 金波, 吳松洋, 熊雄, 等. 新型智能終端取證技術(shù)研究[J]. 信息安全學報, 2016 (3): 37-51.
[6]. Gupta A. Learning Pentesting for Android Devices[M]. Packt Publishing Ltd, 2014.
[7]. Sylve J, Case A, Marziale L, et al. Acquisition and analysis of volatile memory from Android devices[J]. Digital Investigation, 2012, 8(3-4): 175-184.
[8]. Epifani M, Stirparo P. Learning iOS forensics[M]. Packt Publishing Ltd, 2016.
[9]. Kaart M, Laraghy S. Android forensics: Interpretation of timestamps[J]. Digital Investigation, 2014, 11(3): 234-248.