Cellebrite 4PC Android
提取功能簡述

2019-6-25 高田數位鑑識

Android手機資料提取方式,與iOS相較而下,不管在程序,方式上都較為複雜。主要原因在於廠牌與型號眾多,OS版本更新速度不一。另外,Android手機處理器(CPU)就有四大品牌,Qualcomm、MTK、Exynos、Kirin,而每個品牌在不同規格的手機又有不同等級的CPU對應。總而言之,與Apple每年推出2~3款主流手機,CPU相對單一的比較下,在Android手機上要成功提取資料要考量的因素也較為繁雜。

  • 截至今年5月Android作業系統版本比例

0%
8.1 & 8.0 Oreo
0%
6.0 Marshmallow
0%
9.0 Pie
0%
7.0 Nougat

從StatCounter上的資料可看到,Android作業系統版本還是處於一個破碎的狀態,8.0以上較新的作業系統安裝比例還不到一半。與Apple相比,截至今年五月,iOS 12以上的安裝率將近8成。

  • 截至今年5月iOS作業系統版本比例

0%
iOS 12.2
0%
iOS 12.1
0%
iOS 11.4
0%
iOS 10.3

提取 – Extractions

Cellebrite 4PC提取資料可分為三大模式,每一種模式可提取之資料不盡相同,最完整的為物理提取。

表一、提取模式差異分別

  • Logical(邏輯): 透過API與手機作業系統溝通進而取得資料。

  • File System(檔案系統): 採用檔案備份方式提取手機所有檔案,包含隱藏檔。

  • Physical(物理): 可完整複製一份快閃記憶體的Binary映像檔。

    • 執行物理提取時,針對手機的每個快閃記憶體晶片建立一個十六進位Binary檔。
    • 未配置空間中(Unallocated Space)的已刪除資料也可提取。
    • 物理提取可繞過設備的作業系統,直接提取快閃記憶體中的資料。

這三種模式若以可提取之資料筆數來區分,Logical最少,除了基本的通聯紀錄與多媒體檔案外,基本上無法取得APP的資料,如Line、WeChat的聊天內容等。再來次多的是File System,這個模式是透過類似系統備份將手機上的檔案提取出來,但還是會有一些限制,如新版的WeChat聊天內容已被加密,提取出後因無相對應的解密金鑰則無法讀取聊天內容;再者,被刪除的檔案也是無法提取的。最完整的是Physical,透過這個模式可提取的內容最為完整,即使新的手機支援儲存加密,若為4PC支援的手機,也可解密後提取出所有資料。

圖三、不同模式可提取之資料筆數

邏輯提取 – Logical Extraction

邏輯提取在大多數情況下,是透過設備供應商提供的API(Application Programming Interface)執行資料提取。 因API允許第三方應用程式與Android作業系統進行溝通,所以提取出來的資料也符合鑑識科學方法。當與裝置連線時,提取的程式會將廠商公開的API載入,並透過API對手機進行read-only的要求。手機接收到合法的API需求後,再將內容回覆給提取程式,內容如:SMS,電話簿,照片等等。

圖四、成功的API提取

從技術的角度來看,API邏輯提取相對簡單,基本上就是取證軟體與手機間藉著類似問答模式,提取出易閱讀與好整理的資料。但這個方式有很大的侷限,可提取之資料僅限於各手機廠商所公開的API,能接觸到的資料通常是原生(native)APP。如果是透過美圖秀秀所拍的照片,就無法透過邏輯方式提取,因照片儲存位置與預設的不一樣,就無法藉由手機廠商提供的API去取得資料。

圖五、失敗的API提取

檔案系統提取 – File System Extraction

檔案系統提取算是進階版的邏輯提取,檔案系統採用另一個非API方式與手機裝置溝通,進而備份出手機上的檔案資料。邏輯和檔案系統提取之間的主要差別在於取證工具能夠直接讀取裝置上的檔案,而不必透過API為每種類型的資料進行問答傳輸。這個方式可以直接提取裝置上的大部分的檔案,包括,一般檔案,資料庫,隱藏檔和log檔案等。檔案系統提取對於調查裝置上的檔案結構,Web瀏覽記錄與APP使用記錄非常有用。

檔案系統提取中最重要的部分是可以取得裝置上的資料庫檔案(一般皆為SQLite DB)。一般APP(如iMessage,SMS,MMS,Calendar等)皆將資料儲存於資料庫內。當使用者刪除部分紀錄(如SMS對話紀錄)時,依資料庫作業模式,會將此筆紀錄標記為已刪除(deleted),並且不再對使用者呈現該筆資料。此刪除的資料還是存在於資料庫中,直到資料庫執行例行維護並刪除該筆紀錄後,該資料才無法不再出現。

再進一步探討前,先了解Android的檔案系統架構,一般Android都有以下六個分區:

  • /boot: 顧名思義,這是Android設備的啟動分區。 它包括Android的kernel和ramdisk。 沒有此分區,設備將無法啟動。

  • /system: 這個分區包含整個Android作業系統,而不是kernel和ramdisk。該分區有Android GUI和預設安裝在手機上的所有系統應用程式。刪除此分區將無法開機,但仍然可以Recovery或Boot Loader模式重新安裝新的ROM。

  • /recovery: 這是專為救援情況而設計。可以將Recovery分區視為備用啟動分區,使設備可以啟動到Recovery介面,以便對進行救援和維護操作。

  • /data: 此分區包含使用者的資料,如聯繫人,簡訊,設定與自行安裝的所有Android APPs程式與資料。當您在設備上進行Reset回復成出廠設置時,此分區將刪除,手機將處於第一次使用時的狀態。

  • /cache: Android將經常讀取的資料存放在快取分區。 刪除該分區不會影響使用,這些快取資料會隨著使用自動產生。

  • /misc: 此分區包含各種系統設定資料。如果該分區損壞或刪除,手機的某些功能將無法正常操作。

物理提取 – Physical Extraction

物理提取是Cellebrite 4PC最強的利器,藉由取得儲存空間(Internal Memory)完整控制權限,進而複製一份映像檔。但能否使用物理提取,取決於手機製造商採用的作業系統和修補程式版本(Security Patch),越新的版本代表在新的漏洞(exploit)未被取證廠商發現前,都可能無法執行物理提取。而Apple的iOS裝置,只要是64位元的裝置皆導入了Secure Enclave資料保護機制,且資料加密採FBE(File based encryption),因此從 iPhone 5S 之後就再也不支援物理提取。(不同於 FDE 僅有一支加密金鑰,FBE 每個檔案皆由不同的加密金鑰加密保護,即便可透過物理提取出整個儲存空間,也無時間與運算資源逐一暴力破解解開檔案。)

另外與檔案系統提取最大差別,是物理提取可找到甚至提取已刪除的檔案或資料。現有手機的儲存空間皆採用NAND Flash構成的SSD,因為快閃記憶體(NAND flash)有所謂的寫入平衡(Wear leveling)/垃圾回收(Garbage Collection)機制,與傳統硬碟處理刪除檔案有很大差異,手機被標記已刪除的檔案並不會當下立刻消失(Wipe),而是透過NAND Flash的控制晶片依演算法來決定什麼時候刪除(Wipe)檔案或資料。因為NAND Flash這個特性,當物理提取採用bit-by-bit拷貝時,可完整複製一份快閃記憶體的Binary映像檔,也包含尚未被控制晶片刪除的資料,而這些刪除的資料可能是破案的關鍵。

以上為三種提取模式的介紹,後續將會針對檔案系統(File System)物理(Physical)這兩種提取模式做進一步的說明。