案例
隨筆
知識
聲音
其他
編者按
即便對于最具安全意識的群體,有時也不得不開通手機GPS。App自動記錄個人活動,GPS數(shù)據(jù)凡走過必留下痕跡。本文通過實驗,向大家展示利用可視化地圖,還原定位記錄,重現(xiàn)使用者的移動軌跡。
文章來源:“中央警察大學(xué)”資訊密碼暨建構(gòu)實驗室(臺灣)。
用來記錄個人運動狀態(tài)的應(yīng)用程序,確實會留存詳細(xì)的GPS資料,若搭配相關(guān)軟件,即可找出他人的活動狀態(tài)。對此,本文將從Android智能手機中備份出應(yīng)用程序內(nèi)的GPS資料,并將其軌跡重現(xiàn)在地圖上,進(jìn)而判斷是否有異?,F(xiàn)象,以協(xié)助犯罪調(diào)查。
近年來,因為智能手機的功能與方便性迅速發(fā)展,而受到許多民眾的青睞,使得許多原本僅局限于電腦的網(wǎng)絡(luò)和電子服務(wù),可在智能手機上順暢運行,也因此智能手機或多或少存有公眾的個人或機密資料,使其遭受到網(wǎng)絡(luò)犯罪或網(wǎng)絡(luò)詐欺的風(fēng)險對比其他信息設(shè)備要高出許多。
若從犯罪調(diào)查的角度去思考,操作者也可能會在使用智能手機時,不經(jīng)意地留存有利日后調(diào)查的存留資料(電子證據(jù)),例如通聯(lián)對象的電話記錄、通訊軟件的對話記錄、私密照片或全球定位系統(tǒng)(Global Positioning System,GPS)資料等。如何針對智能手機進(jìn)行電子證據(jù)提取和分析,以取得有助于破案的關(guān)鍵電子證據(jù),尤為重要。本文將以Android系統(tǒng)為主,說明如何提取Android智能手機的GPS定位數(shù)據(jù)。
相關(guān)背景知識說明
在開始說明之前,先簡單介紹Android操作系統(tǒng)、全球定位系統(tǒng)(GPS)、說明何謂手機取證,簡單介紹Google“我的地圖”(My Maps)功能,以及會使用到那些取證工具軟件。
Android操作系統(tǒng)
Android是開放源碼的移動設(shè)備操作系統(tǒng),以Linux為基礎(chǔ)核心進(jìn)行修改及新增功能,其可安裝于智能手機、平板電腦、穿戴設(shè)備等行動設(shè)備,由Google主導(dǎo)的Open Handset Alliance持續(xù)開發(fā)并更新。
全球定位系統(tǒng)GPS
全球定位系統(tǒng)是由美國國防部(Department of Defense)所開發(fā)的,1994年正式提供服務(wù),它使用24顆人造衛(wèi)星,可以提供地球表面98%地區(qū)的定位、測速及標(biāo)準(zhǔn)時間。使用者只要持有GPS接收設(shè)備,且能接收到的衛(wèi)星訊號,即可使用該服務(wù),且無須付費。
而Android GPS是Google Play的其中一個服務(wù),可以用來記錄Android設(shè)備使用者的軌跡、所在地點。
手機取證
電子數(shù)據(jù)取證可分為電腦取證、手機取證、網(wǎng)絡(luò)取證、資料庫取證、多媒體取證、屬于新興科技之云端取證及物聯(lián)網(wǎng)(Internet of Thing,IoT)取證等領(lǐng)域,且根據(jù)國際標(biāo)準(zhǔn)化組織(ISO)與國際電氣技術(shù)委員會(IEC)共同提出的ISO/IEC 27037標(biāo)準(zhǔn),電子數(shù)據(jù)取證流程又可分為電子數(shù)據(jù)證據(jù)的識別(Identification)、收集(Collection)、獲?。ˋcquisition)以及保存(Preservation)等階段,如圖1所示。
▲圖1 電子數(shù)據(jù)取證流程
手機取證流程雖因各品牌手機操作系統(tǒng)、傳輸介面等規(guī)格不盡相同,在獲取電子數(shù)據(jù)證據(jù)階段略有差異,但仍可以取得資料的種類,簡單分為物理獲?。≒hysical Acquisition)與邏輯獲?。↙ogical Acquisition)。
所謂的物理獲取,是通過專業(yè)電子數(shù)據(jù)取證設(shè)備與軟件,以比特流復(fù)制方式對目標(biāo)手機制作電子數(shù)據(jù)證據(jù)鏡像,此方式的主要優(yōu)點是可以完整復(fù)制手機內(nèi)容,并且有機會恢復(fù)刪除的資料或檢查隱藏的檔案。缺點是需要root(系統(tǒng)管理者)權(quán)限與較長的制作鏡像時間。而邏輯獲取,則使用適合的連線機制,將手機連接至取證分析主機或手機取證設(shè)備,再針對目標(biāo)手機執(zhí)行資料備份動作,即可取得邏輯性的文件資料。優(yōu)點是處理過程速度較快且手機取證軟硬件規(guī)格要求較低,缺點是無法還原已遭刪除的檔案(有些邏輯提取行為,也可以恢復(fù)部分刪除的數(shù)據(jù):編者注)。
Google地圖之“我的地圖”(My Maps)功能
Google地圖可以讓使用者進(jìn)行地址、商家、景點等等的地點搜尋、通過街景畫面查看實況或路線規(guī)劃導(dǎo)航等功能。本文使用Google地圖中的My Maps功能,可讓使用者自行定義目的地及順序,或?qū)PS定位點記錄導(dǎo)入到My Maps內(nèi),結(jié)合每筆記錄的時間信息,以地圖方式描繪出GPS設(shè)備移動歷程軌跡。取證分析人員可借此以更直觀的方式輔助分析GPS記錄是否有異常之處。
軟件工具
這里將介紹ADB(Android Debug Bridge)和ABE(Android Backup Extractor)這兩種軟件工具。ADB是Android軟件開發(fā)者工具套件(SDK)中的一個調(diào)試工具,使用者可通過指令介面以Linux Shell方式操作Android系統(tǒng),進(jìn)行資料備份、修改設(shè)定或查詢設(shè)備狀態(tài)信息等動作。以手機取證角度來說,ADB可直接存取Android系統(tǒng)底層資料,避免關(guān)鍵電子數(shù)據(jù)證據(jù)于使用者介面下為隱藏狀態(tài)而被忽略。但預(yù)設(shè)的ADB執(zhí)行權(quán)限并非root,若執(zhí)行的指令或欲蒐集的資料需要root權(quán)限,則必須先進(jìn)行權(quán)限提升才能執(zhí)行。
而ABE是一個以Java語言編寫的開源解壓縮工具,適用于Windows、Linux及OS X等系統(tǒng),可解開擴(kuò)展名為ab的未加密文件。假設(shè)有一個沒有密碼保護(hù)的文件“evidence.ab”,在Windows操作系統(tǒng)環(huán)境下需要被解壓縮成為tar文件,則應(yīng)執(zhí)行“java.exe –jar abe.jar unpack evidence.ab evidence.tar”這樣的指令。
進(jìn)行實際測試
接下來,將以實際測試的方式來說明整個操作過程。首先說明目的和做法,然后介紹實測環(huán)境,并示范解說實作過程。
實作目的及做法
本文將實操從Android智能手機中提取出App的GPS數(shù)據(jù),并將其軌跡重現(xiàn)在地圖上,提供取證分析人員取得可視化的電子數(shù)據(jù)證據(jù)的實務(wù)做法。
首先,步驟一:準(zhǔn)備有GPS功能的Android智能手機,以及可用于記錄運動狀態(tài)的App,并測試是否可通過ADB存取App的記錄檔案。步驟二:實際移動并確認(rèn)完成GPS軌跡記錄后,再使用ADB獲取手機邏輯檔案。
步驟三:通過解壓縮工具ABE將獲取的邏輯文件(擴(kuò)展名為ab)提?。‥xtract)成可讓取證分析人員解讀內(nèi)容的文件,再從其中找出App里儲存GPS定位資料的文件位置。
最后,導(dǎo)入My Maps – Google中,重現(xiàn)使用者在地圖上的運動軌跡,借由圖形可直覺判斷是否有異?,F(xiàn)象,全部實驗流程如圖2所示。
▲圖2 實驗流程示意圖
實測環(huán)境與限制
可用于記錄運動狀態(tài)的App種類繁多,本文選擇“Nike+ Run Club”、“RunKeeper”及“Endomondo”等三款較為熱門的App,作為前述實驗流程中測試是否可用ADB獲取資料的目標(biāo)。判斷方式為檢查App程序安裝文件(Android Package,APK)中的AndroidManifest.xml設(shè)定值內(nèi)容,該設(shè)定值文件為應(yīng)用程序的安裝相關(guān)參數(shù),于此文件中可以找出android:allowBackup,此設(shè)定值若為0,表示無法用ADB進(jìn)行備份。
以Endomondo運動App進(jìn)行APK設(shè)定文件檢查為例,首先從網(wǎng)絡(luò)上下載Endomondo App的APK文件以及AAPT(Android Asset Packaging Tool)軟件工具。
使用AAPT時,在命令提示符界面下可將APK文件中的AndroidManifest.xml文件取出并重新編碼成文本文件,其指令及語法如圖3所示,輸出的文件為demo.txt。
▲圖3 使用AAPT軟件工具取出AndroidManifest.xml文件
然后,查看android:allowBackup的設(shè)定值,以確認(rèn)是否能用ADB進(jìn)行備份工作,圖4是demo.txt內(nèi)容,可以發(fā)現(xiàn)android:allowBackup的數(shù)值為0,表示無法利用ADB復(fù)制。
▲圖4 查詢android:allowBackup數(shù)值
用前述檢查方法分析本文選擇的三款熱門運動App后,整理其結(jié)果如表1所示,由此得知RunKeeper App可以進(jìn)行邏輯備份,因此選擇RunKeeper App做為本文實操對象。
表1 運動App可否用ADB復(fù)制的檢查結(jié)果
執(zhí)行本文實驗所使用的軟件與硬件環(huán)境,分別列于表2與表3。軟件工具部分,除了RunKeeper App外,其余皆安裝于筆記本電腦中。
表2 軟件工具版本及功能說明
表3 實驗的硬件環(huán)境
執(zhí)行ADB之前,手機必須開啟USB調(diào)試(USB Debugging),并且需要安裝手機驅(qū)動程序,以本文選用的ASUS Zenfone 2為例,應(yīng)下載并安裝ASUS Android ADB Interface,才能使ADB正確運作。
實操過程與結(jié)果
首先,使用ADB進(jìn)行手機的邏輯提取。負(fù)責(zé)邏輯提取手機資料的筆記本電腦須先下載并解壓縮SDK Platform-Tools for Windows,并于解壓縮完成后的文件夾中,按住鍵盤〔Shift〕鍵再按下滑鼠右鍵,然后點選快速選單中的【在此處開啟命令行窗口】。
開啟Android智能手機中的USB調(diào)試,步驟依序為:設(shè)定→開發(fā)人員選項→開啟USB調(diào)試,如圖5所示,然后使用USB接線將Android智能手機與電腦連接。
▲圖5 開啟Android智能手機中的USB調(diào)試功能
在原先開啟的命令行窗口中輸入“adb shell pm list packages”,以便確認(rèn)要備份的RunKeeper App其package名稱為“com.fitnesskeeper.runkeeper.pro”,如圖6所示,確認(rèn)此名稱的目的是為了只從Android智能手機中備份此一App的資料。
▲圖6 執(zhí)行“adb shell pm list packages”指令
在命令行窗口中輸入“adb devices”,可以確認(rèn)手機與電腦是否正確連接。再來要進(jìn)行RunKeeper App的備份,將備份文件命名為“runkeeper.ab”并且存到“c:\”目錄底下,其指令為“adb backup –apk –f c:\runkeeper.ab com.fitnesskeeper.runkeeper.pro”,如圖7所示。此時,Android智能手機會出現(xiàn)如圖8所示的畫面,不輸入密碼且按下手機中的“備份我的資料”,手機就會開始備份指定App資料。
▲圖7 進(jìn)行RunKeeper App的備份
▲圖8 按下“備份我的資料”開始備份
接著,通過ABE將檔案輸出為可檢查的文件。由于ABE工具是使用Java環(huán)境所開發(fā)的,為了執(zhí)行ABE必須先安裝JDK,本文下載安裝的版本是Java SE Development Kit 8u131 (Windows x86)。
安裝完成JDK之后,再執(zhí)行ABE進(jìn)行解壓縮,然后于ABE解壓縮的文件夾底下執(zhí)行命令行窗口,輸入“”C:\Program Files (x86)\Java\jdk1.8.0_131\bin\Java.exe” -jar abe.jar unpack runkeeper.ab runkeeper.tar”,此指令可以將RunKeeper App的備份檔runkeeper.ab提取成runkeeper.tar壓縮檔。
然后,從可檢查的文件中找出RunKeeper App里記錄GPS軌跡的數(shù)據(jù),將runkeeper.tar壓縮檔進(jìn)行解壓縮后,即可瀏覽RunKeeper App的數(shù)據(jù),從文件夾路徑中“…\runkeeper\apps\com.fitnesskeeper.runkeeper.pro\db”可以找到存有GPS運動軌跡的RunKeeper.sqlite數(shù)據(jù)文件。
使用DB Browser for SQLite程序開啟RunKeeper.sqlite數(shù)據(jù)文件,如圖9所示,在points數(shù)據(jù)表中發(fā)現(xiàn)GPS運動軌跡的經(jīng)緯度數(shù)據(jù),而trips數(shù)據(jù)表中可以找到運動的開始時間以及距離(216公尺),其時間是以UNIX格式的時間數(shù)值記錄的,可以通過轉(zhuǎn)換工具得到通用的時間格式。將圖10內(nèi)的trips數(shù)據(jù)表中的start_date字段數(shù)值,進(jìn)行轉(zhuǎn)換,可以得到運動時間,如圖11所示。
▲圖9 在points數(shù)據(jù)表中發(fā)現(xiàn)GPS運動軌跡的經(jīng)緯度數(shù)據(jù)
▲圖10 從trips數(shù)據(jù)表中找到運動的開始時間和距離
▲圖11 將start_date字段數(shù)值輸入至網(wǎng)頁中轉(zhuǎn)換,得到運動時間
最后使用My Maps – Google將GPS的定位數(shù)據(jù)導(dǎo)入,重現(xiàn)使用者在地圖上的運動軌跡。將圖9內(nèi)points數(shù)據(jù)表中發(fā)現(xiàn)的GPS運動軌跡經(jīng)緯度數(shù)據(jù)導(dǎo)出,另存成Excel文件,再開啟瀏覽器連結(jié)至My Maps – Google(Google Maps)網(wǎng)頁,將Excel文件導(dǎo)入并選取要顯示的經(jīng)緯度字段,設(shè)定采用數(shù)字序列的方式顯示,如圖12所示,即為使用者使用RunKeeper App所記錄的GPS運動軌跡,由于采用數(shù)字序列的方式顯示,可以清楚地了解使用者的運動軌跡是由1號、2號、3號位置,依序移動到22號的位置。
▲圖12 使用者使用RunKeeper App所記錄的GPS運動軌跡
案例實踐說明
以下舉例來說明實務(wù)上的操作過程,話說經(jīng)由執(zhí)法機關(guān)的合法監(jiān)聽,發(fā)現(xiàn)A君是中部的毒品販賣者,平時多隱身于校園環(huán)境中販賣毒品,其偽裝的方式是在學(xué)校操場慢跑,假裝自己只是來學(xué)校運動,為了證明自己有運動的習(xí)慣還會使用手機App來記錄GPS運動軌跡,但實際上是為了偷偷交易毒品。
經(jīng)過調(diào)查人員的多日追查,確認(rèn)A君將于近日校園內(nèi)進(jìn)行青少年毒品交易,遂于當(dāng)日進(jìn)行埋伏并順利逮捕A君,扣押了交易過程中的毒品、交易金錢以及所使用的Android智能手機。
為了協(xié)助調(diào)查毒品交易的范圍,調(diào)查人員請取證分析人員對所扣押的Android智能手機進(jìn)行GPS數(shù)據(jù)的提取,并在地圖上重現(xiàn)GPS運動軌跡,相關(guān)步驟流程如圖13所示。
▲圖13 對所扣押的Android智能手機進(jìn)行GPS數(shù)據(jù)處理的步驟流程
調(diào)查人員根據(jù)A君的GPS運動軌跡發(fā)現(xiàn)可疑之處,如圖14所示,其GPS運動軌跡顯示當(dāng)A君在校園跑步時,會在特定時間里離開操場走向校園偏僻角落。
▲圖14 在GPS運動軌跡中發(fā)現(xiàn)可疑之處
根據(jù)此疑點當(dāng)面訊問人犯A君,經(jīng)過訊問后A君承認(rèn)是在校園偏僻角落進(jìn)行毒品交易,說明他確實在校園里犯案。
結(jié)語
本文通過實際提取手機App中的GPS記錄,配合可視化地圖,重現(xiàn)使用者移動軌跡歷程。若使用者有使用GPS定位功能的App之習(xí)慣,可能會在不知不覺中留下行為記錄,在調(diào)查人員處理事件的過程中便可以針對當(dāng)事人的手機進(jìn)行GPS的數(shù)據(jù)調(diào)查,以分析非法事件的相關(guān)地點及可能范圍,進(jìn)而查明真相。
【編者注】取證技術(shù)應(yīng)當(dāng)被合法使用,包括合法的目的、合法的程序,亦可用于技術(shù)愛好者研究方面,但不可實施于其他非法目的。本號亦不承擔(dān)教唆或者傳播違規(guī)違法使用的責(zé)任。