周 鋒,謝 波,廖 赟
(南京拓界信息技術(shù)有限公司,江蘇 南京 210014)
近年來,網(wǎng)絡(luò)技術(shù)的進(jìn)步極大地促進(jìn)了短視頻類應(yīng)用的發(fā)展。據(jù)統(tǒng)計(jì),2019年國(guó)內(nèi)短視頻獨(dú)立用戶規(guī)模達(dá)6.4億,刷視頻已成為許多人必不可少的生活?yuàn)蕵贩绞?。如此龐大的用戶群體及活躍度使其附加的社交屬性被無限放大。但一項(xiàng)針對(duì)用戶使用習(xí)慣的研究表明,使用者均不同程度地表示不希望現(xiàn)實(shí)中的好友被自動(dòng)關(guān)聯(lián)到短視頻平臺(tái)上[1],這使得應(yīng)用平臺(tái)的交際圈有很強(qiáng)的獨(dú)立性。從取證角度來說,隨著短視頻類APP用戶的不斷增多,應(yīng)用中存儲(chǔ)的社交信息也變得越來越重要,在某些案件中,此類應(yīng)用內(nèi)甚至存在偵破案件的直接證據(jù)[2]。所以,如何取得該類應(yīng)用的使用數(shù)據(jù)是目前手機(jī)取證關(guān)注的重點(diǎn)問題。
Android設(shè)備使用Android安裝包(AndroidPackage,APK)文件來安裝應(yīng)用程序。程序被安裝到Android設(shè)備上后,都會(huì)運(yùn)行在一個(gè)獨(dú)立、安全的沙箱中,每個(gè)程序運(yùn)行所產(chǎn)生的數(shù)據(jù)也存儲(chǔ)于各自的文件夾中,互不干擾。
數(shù)據(jù)獲取是數(shù)據(jù)分析的前提,可以用安卓調(diào)試橋(Android Debug Bridge,ADB)工具獲取應(yīng)用數(shù)據(jù)包。
文章提到的視頻軟件應(yīng)用數(shù)據(jù),其備份命令為“adb backup -f xxx.ab(文件存放位置)com.ss.android.xxx.aweme(應(yīng)用程序包名)”,得到后綴名為.ab的備份文件。.ab文件解壓后的databases和shared_prefs文件夾下分別存放著數(shù)據(jù)庫(kù)文件和可擴(kuò)展標(biāo)記語言(Extensible Markup Language,XML)用戶配置文件。
短視頻APP內(nèi)與人物關(guān)系網(wǎng)相關(guān)的數(shù)據(jù)主要有個(gè)人信息、好友、粉絲、聊天記錄以及發(fā)布和看過的視頻等,有的存儲(chǔ)在本地,有的存儲(chǔ)在云服務(wù)器,需要先做一個(gè)判斷。經(jīng)測(cè)試,在網(wǎng)絡(luò)斷開的狀態(tài)下,打開該APP仍能看到好友名錄以及好友聊天記錄,但看不到粉絲信息,由此判定好友及聊天信息存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中,而粉絲信息存儲(chǔ)在云端,需要聯(lián)網(wǎng)才能獲得。分析數(shù)據(jù)包可發(fā)現(xiàn),個(gè)人信息、手機(jī)號(hào)碼、位置、聊天記錄、關(guān)注的好友以及發(fā)布作品等均可拿到明文數(shù)據(jù),其中,個(gè)人信息、手機(jī)號(hào)碼及位置信息路徑為.shared_prefs,聊天記錄、關(guān)注的好友存放路徑為.databases,發(fā)布的作品則保存于.cache目錄下。
LoginSharePreferences.xml文件內(nèi)保存著用戶登錄的手機(jī)號(hào)及登錄時(shí)間信息。ss_location.xml文件內(nèi)保存著用戶登錄時(shí)的位置信息,包括具體區(qū)域和經(jīng)緯度信息。xxxxx_im_db為數(shù)據(jù)庫(kù)文件,可以用SQLite數(shù)據(jù)庫(kù)查看工具打開,里面存放著用戶與好友的聊天記錄。在該數(shù)據(jù)庫(kù)文件中,sender字段為發(fā)送方UID,content字段為具體聊天內(nèi)容。
所關(guān)注好友的信息存放在db_im_xx中,同樣也是數(shù)據(jù)庫(kù)文件,包含了用戶身份證明(User Identification,UID)、昵稱、用戶個(gè)性簽名等重要信息。同時(shí),shared_prefs文件夾中存在名為imei的xml文件,記錄著Andriod設(shè)備的國(guó)際移動(dòng)設(shè)備識(shí)別碼(International Mobile Equipment Identity,IMEI),可有效提升取證數(shù)據(jù)的可靠性。
用戶在查詢粉絲數(shù)據(jù)時(shí)程序會(huì)自動(dòng)向服務(wù)器發(fā)送一個(gè)獲取粉絲數(shù)據(jù)的統(tǒng)一資源定位符(Uniform Resource Locator,URL)請(qǐng)求,服務(wù)器根據(jù)請(qǐng)求返回用戶需要的信息[3]。此時(shí),可以用Fiddler抓包工具以網(wǎng)絡(luò)代理的方式獲取到關(guān)于粉絲數(shù)據(jù)完整Get請(qǐng)求的URL鏈接,該URL中包含了user_id,APP版本號(hào)、每頁(yè)獲取粉絲數(shù)量、手機(jī)硬件、時(shí)間戳等信息。根據(jù)URL請(qǐng)求規(guī)則,要實(shí)現(xiàn)數(shù)據(jù)返還,還需要獲得程序的cookie信息以及名為X-Gorgon的簽名信息,其中,cookie信息可以由Fiddler抓包工具明文獲得[4]。
為保證數(shù)據(jù)安全,防止用戶信息泄露,大多數(shù)應(yīng)用向服務(wù)器發(fā)送URL請(qǐng)求時(shí)會(huì)采用簽名驗(yàn)證機(jī)制,分析發(fā)現(xiàn)該應(yīng)用的簽名信息為X-Gorgen字符串,如圖1所示。
使用jad x反編譯工具打開安裝程序的A PK,搜索“X-Gorgon”字符串查找簽名信息的生成過程,由圖1可知X-Gorgon值是由“a2”+“str2”+“str3”+“str4”計(jì)算生成的sb參數(shù),再調(diào)用com.ss.sys.ces.a類中的Leviathan方法計(jì)算出來的。其中,“a2”為URL的消息摘要算法第5版(Message Digest Algorithm,MD5)值;“str2”為X-SS-STUB字段值(在程序map容器中預(yù)定義),由于獲取粉絲的數(shù)據(jù)包中沒有X-SSSTUB字段,所以設(shè)置為32位全0;“str3”為cookie的MD5值;“str4”為session_id的MD5值,可從數(shù)據(jù)包shared_prefs文件夾中的cookie數(shù)據(jù)文件ttnetCookieStore.xml中提取得到,拼接這4個(gè)MD5值可得sb參數(shù)。
Leviathan方法的實(shí)現(xiàn)邏輯存放在名為libcms.so的動(dòng)態(tài)鏈接庫(kù)中,仔細(xì)審視源代碼Public static native byte[ ]Leviathan(int i, byte[ ] bAAr),發(fā)現(xiàn)Leviathan方法存在兩個(gè)參數(shù),一是當(dāng)前時(shí)間戳,二是k.a方法轉(zhuǎn)換sb字符串后的byte數(shù)組。所以,使用Leviathan方法對(duì)當(dāng)前時(shí)間戳及拼接后的sb參數(shù)進(jìn)行計(jì)算,返回byte[]數(shù)組轉(zhuǎn)String后即是簽名信息,可以使用unidbg工具庫(kù)模擬加載libcms.so調(diào)用Leviathan方法計(jì)算出X-Gorgen簽名信息。
經(jīng)過上面的研究,已經(jīng)得到獲取粉絲數(shù)據(jù)的所有條件,只需要寫一個(gè)簡(jiǎn)單的粉絲數(shù)據(jù)獲取程序即可,圖2為數(shù)據(jù)獲取程序的流程。
定義返回的數(shù)據(jù)自動(dòng)生成一個(gè).Json文件,單個(gè)請(qǐng)求默認(rèn)返回20條粉絲數(shù)據(jù),如果粉絲數(shù)量很多,就需要循環(huán)獲取,此時(shí)將上一個(gè).Json文件中獲取的min_time參數(shù)替換到程序URL請(qǐng)求中即可獲得下一頁(yè)數(shù)據(jù),如此循環(huán),直到返回?cái)?shù)據(jù)中的has_more參數(shù)值為false,即可獲得全部粉絲數(shù)據(jù)。
圖2 數(shù)據(jù)獲取程序流程
文章針對(duì)電子取證中軟件的多元化,在傳統(tǒng)手機(jī)數(shù)據(jù)獲取方法的基礎(chǔ)上,通過分析某視頻APP的安裝包及其應(yīng)用數(shù)據(jù),發(fā)現(xiàn)可使用APP逆向的方法獲取到手機(jī)短視頻應(yīng)用包括個(gè)人信息、好友、粉絲云數(shù)據(jù)在內(nèi)的重要信息。在一定程度上彌補(bǔ)了新形態(tài)的互聯(lián)網(wǎng)下傳統(tǒng)通信應(yīng)用中案件相關(guān)信息缺失的缺陷,豐富了目標(biāo)手機(jī)人物社交構(gòu)建模型,為傳統(tǒng)電子取證提供了新的思路。