張明遠,祁欣妤,宋宇波,顧榮榮,胡愛群,朱珍超
?
基于協議逆向的移動終端通信數據解析
張明遠1,祁欣妤2,宋宇波2,顧榮榮2,胡愛群2,朱珍超2
(1. 國家無線電監測中心檢測中心,北京 100041;2. 東南大學網絡空間安全學院,江蘇 南京 211189)
針對移動終端通信協議及通信數據的解析,其難點在于大部分移動終端應用程序并無相關公開的技術文檔,難以獲知其采取的通信協議類型。指令執行序列分析技術通過分析程序執行的指令序列逆向推斷出消息格式和狀態機。但有時序列信息采集不全,導致狀態機推斷不完備,從而無法獲取全部協議信息。針對上述問題,提出了一個新型的基于狀態機對比推斷分析的移動終端通信協議解析方案,可用于取證場景提高數據取證的準確性和完備性。該方案首先利用PIN動態二進制插樁,識別污點源并跟蹤污點軌跡分析出協議消息格式;然后根據格式信息對提取的協議消息進行聚類分析推斷出原始狀態機;最后利用最長公共子序列(LCS, longest common subsequence)算法與已知的協議狀態機進行對比,相似度最高者即為推斷出的通信協議類型。在Android平臺上基于兩類應用程序設計實驗對該方案進行測試和評估,實驗結果表明可準確提取應用程序的通信內容,實用價值強。
移動終端;數據取證;動態污點分析;協議逆向分析;相似性對比
移動終端已成為違法詐騙案件中最常利用的犯罪媒介之一,犯罪分子通過應用程序等方式竊取個人信息或制造惡意攻擊,達到犯罪目的。存儲在智能終端、智能終端附屬設備以及移動運營商數據庫中的聯系人、短信息、通話記錄、各種應用程序的數據信息等數據都可作為有效的證據信息,但對運營商數庫的調用涉及復雜的權限級別等問題,所需時間長,無法及時取證,因此如何快速有效地針對智能終端進行通信數據取證,有極為重要的意義。
隨著應用程序的爆發式增長,針對應用程序執行產生的數據信息取證逐漸成為研究熱點。然而,在應用程序執行過程中,程序以及用戶的初始化數據極易被覆蓋或抹去,或者被第三方加密,因此無法獲得完整的通信數據。為了證據采集的完整性,還應對應用程序執行過程中產生的網絡通信數據進行取證。網絡協議規定了網絡實體之間進行數據交換的通信機制和內容,對網絡通信數據的分析和理解有著至關重要的作用。因此,在智能終端取證前,要先對目標應用程序所采用的網絡協議進行逆向分析和推斷。網絡協議主要包括消息格式以及狀態機,因此想要逆向分析出采用的網絡協議,要推斷出消息格式以及狀態機。當前市場上的應用程序大多采用自定義的私有協議,并無公開范本,這給協議的推斷造成了難點。現有的協議逆向分析的方法,依據分析對象的不同大致分為3類:人工逆向分析、報文序列逆向分析和指令執行序列逆向分析。
文獻[1]對軟件實現逆向分析工程的各類方法和工具進行了總結,主要有2類實現方法:分析觀察到的信息交換和反匯編方法。第一種方法是最常用的協議逆向方法,還需使用總線分析器和數據包嗅探器,具體方法是:首先成功接入計算機總線或當前的網絡連接,然后截取通信數據,最后分析觀察到的總線或者網絡行為。Pan等[2]基于這種方法,通過安裝系統模擬器和嗅探器工具,提出了基于網絡協議反向分析的遠程控制木馬漏洞挖掘方案,為移動終端的遠程安全防御做出了貢獻。第二種反匯編方法使用反匯編器,將程序執行文件編譯成整數(往往為十六進制),從而找到突破口實現逆向工程,文獻[3-5]基于這種方法,提出運用二進制編輯器實現逆向的方案,從而完成協議漏洞檢測功能。就網絡協議逆向的一般方法而言,Blumbergs等[6]給出了大體框架結構,給相關研究工作者提供了清晰的思路:Sija等[7]提出了一種無記錄以太網和無線協議的協議逆向工程方法,Goo等[8]在此基礎上進一步針對精確協議給出了逆向協議分析工程的一般性框架。
遺憾的是,現有的協議逆向研究集中在協議消息格式的逆向分析上,忽略了狀態機推斷結果是否完整的問題,一個協議的狀態機有多種狀態和狀態轉化方式,在進行移動終端應用程序通信消息取證時提取的僅是協議消息的一個子集。因此,在此基礎上推導得出的僅是一個不完備狀態機,無法準確推斷其所采用的通信協議類型。針對上述問題,本文提出一種新型可用于智能終端通信數據取證的協議解析方案。該方案首先利用PIN動態二進制插樁,識別污點源并跟蹤污點軌跡,通過軌跡信息分析出協議消息格式;然后根據格式信息對提取的協議消息進行聚類分析推斷出原始狀態機;最后利用LCS算法與公開通信協議狀態機進行相似性對比,從而推斷出移動終端應用程序使用的通信協議類型,提高數據取證的準確性和完備性。
基于協議逆向的移動終端通信數據解析的核心思想是:利用協議逆向分析技術的指令執行序列分析方法,對移動終端中應用程序的通信協議進行完整推斷,從而基于協議內容實現對移動終端通信數據的主動獲取分析,找到關鍵“證據”數據。本文的主要研究工作集中在移動終端取證系統的建立上。根據取證的自發性與否,手機取證可以分為靜態取證和動態取證。
靜態取證又名事后取證,是指在犯罪行為發生后,關閉目標終端并獲取其存儲介質中的內容,如短信、通話、網頁記錄等,運用各種取證手段對獲得的數據進行分析,從而篩選出有效的電子證據,是一種被動的取證方式。靜態取證領域的研究成果已較為成熟:對于數據獲取的方法,Barmpatsalon等[9]歸納出手動獲取、物理取證技術和邏輯取證技術這3種方法。針對操作系統權限問題,Du[10]提出在取證前進行ADB操作的方法,使安卓手機權限提升至root級別,能更便捷地獲取信息。之后,文獻[11-12]提出了反對意見:權限的提升可能會導致獲得的信息證據效力降低的問題,指出了root的非必要性,并分別利用三星的Galaxy S2的應用程序Orwe和flasher box技術成功印證了觀點。針對刪除數據恢復的問題,文獻[13-14]提出了一種依據Android系統SQLite存儲格式和刪除存儲機制的恢復方法。
基于靜態取證實時性不強、缺乏周期性完整證據鏈的弊端,以及智能手機具有存儲量小和易于擦寫的特點,Grobler[15]指出應采用動態取證彌補靜態取證的缺陷,用對事件實時控制的方式取代對既定事件的處理。動態取證是在目標手機運行的過程中對數據進行采集和分析來獲得電子證據。針對智能終端存儲器數據易失性、難恢復性問題,Thing等[16]提出了一種數據動態獲取方法,調用Kernel內核的PTRACE功能實時追蹤進程,但只能獲得特定內存區域的軌跡數據。目前對手機動態取證的實驗研究較少,缺乏完整的知識架構。
圖1描述了主動取證系統的整體架構,它由3部分構成:1) 取證代理模塊集成了污點源識別與軌跡跟蹤記錄功能,利用動態污點分析技術,將動態識別到的網絡數據標記為污點源,追蹤污點源進入程序后的軌跡,并將這些軌跡信息存儲下來發送給下一個模塊;2) 證據分析模塊以收到的軌跡信息為基礎進行污點傳播分析,得到應用程序處理網絡數據的過程等相關信息,解析出應用程序的消息格式以及狀態機,在此模塊本文創造性地用字符串相似度算法對比推斷出的狀態機和已有的狀態機,從而獲得完整的協議狀態機;3) 證據存儲模塊將得到的結果進行存儲。3個部分順次進行、協調分工,形成一個動態的周期性證據鏈。

圖1 主動取證系統的整體架構
取證代理模塊包含3個部分:污點源動態識別子模塊、軌跡跟蹤子模塊以及軌跡存儲子模塊。作為整個主動取證系統的核心,取證代理模塊集成了污點源識別和軌跡跟蹤記錄功能,為之后的數據分析模塊提供了數據基礎。
證據分析模塊由4個部分組成:污點傳播分析子模塊、消息格式解析子模塊、狀態機推斷子模塊和狀態機對比子模塊。其中,消息格式解析子模塊是核心環節,實現了分隔符和關鍵詞提取、長度域和目標域確定等功能。消息格式解析完成后,將消息聚類并輸出給狀態機推斷子模塊。狀態機推斷子模塊包括增廣前綴樹(APTA)構造、狀態機標記、狀態機的化簡。作為主動取證系統的中間環節,證據分析模塊對整個系統的運行起到了承上啟下的作用。
證據存儲模塊是整個主動取證系統的最終環節,以MySQL數據庫系統為平臺,主要負責獲得的電子證據的存儲功能,配合時間戳、數字簽名、數字摘要等技術保證了電子證據的可靠性和有效性。
MySQL是一種開源的數據庫管理系統,可用于分類存儲電子證據。MySQL具有操作簡便的優點,只需登錄用戶界面即可查看電子證據。存儲的證據類型較齊全,包括指令軌跡信息、消息格式、狀態機以及推斷出的網絡協議。消息格式存儲結構如表1所示,狀態機中各個狀態存儲結構如表2所示。
表1 消息格式存儲結構

表2 狀態機中狀態存儲結構
PIN是Intel開發的一款動態二進制插樁工具,在不同的操作系統上支持不同的CPU架構。PIN的內外部程序是分開的,其固有框架的開發和升級維護由企業內部相關人員負責,但面向外部用戶,它提供了一個很大的服務中心——API函數群供用戶使用,可以完成性能分析、內存分配、資源管理、計算等工作。基于此,PIN除了計算機架構分析之外,被廣泛地應用于環境模擬、計算機安全以及計算。此外,Intel向用戶提供了一系列簡易的開發插件,這些插件統稱為Pintool。在取證代理模塊,本文提出了一種基于PIN的污點源動態識別技術和一種基于PIN的軌跡跟蹤存儲技術。
為了降低污點分析開銷,本文選擇在操作系統層面引入污點,應用程序獲取網絡報文需要調用相應的API函數,通過分析API函數的執行情況,可以得到目標應用程序接收到的消息序列的字節數和存儲位置。最后將這些報文所處的內存標記成污點源。具體流程如圖2所示。

圖2 污點源識別流程
軌跡信息是指指令的執行流程和指令的操作數、操作碼和地址。其中,指令的操作數在指令執行的過程中動態改變,因此需要借助額外代碼及時更新新的軌跡信息。具體做法為:PIN虛擬機載入應用程序,動態地插入分析代碼,同時將分析代碼緩存,及時編譯、執行插樁后的代碼以獲得程序運行時的數據,記錄軌跡信息。圖3為程序動態插樁示意。此次實驗調用了INS_AddInstrumentFunction函數,用以判斷指令操作數的類型并獲得操作數的內容。

圖3 程序動態插樁示意
在證據分析模塊,本文提出改進的協議逆向分析技術,與現有的協議逆向技術相比,增加了基于LCS算法的狀態機對比部分,以獲得應用程序通信協議的完整消息格式和狀態機文件。改進的好處是:可獲得通信協議的完整消息格式和狀態機,通過查看協議文檔存儲的關鍵詞具體含義,理解通信雙方的行為,判斷捕獲的數據信息能否作為證據信息。
LCS算法是一種字符串相似度算法,除此之外的字符串相似度算法有編輯距離算法和貪婪字符串對比算法,與后兩者相比,LCS算法時間復雜度較低,故本文選用LCS算法進行狀態機的對比。LCS算法的具體步驟如下。
1) 計算2個字符串的長度記為Len1(str1)和Len2(str2),如果其中任一個字符串的長度為0,則最長公共子序列長度為0。
2) 構造一個大小為(Len1+1)×(Len2+1)的矩陣,將矩陣的第一行與第一列均置零,即0,j=0,a,0=0,其中,0≤≤Len1,0≤≤Len2。
3) 計算矩陣的每一個元素a,j,則矩陣中最大元素的值為最大公共序列的長度,記為LCS。


表3 狀態序列示例

本文選擇智能移動終端操作系統Android作為系統測試平臺,針對目前關注度較高的2種應用程序類型:網頁瀏覽類和即時通信類,選擇相應的應用程序作為測試對象,實現了完整的主動取證分析系統。
針對網頁瀏覽類應用程序,本文選用ES文件瀏覽器為代表測試對象。首先打開ES文件瀏覽器的FTP功能,新建一個 FTP服務器,建立后對其訪問進行如下操作:在目錄下新建一個txt文件,并將手機上的文件001.pcap復制至該目錄,最后刪除新建立的txt文件。在進行上述操作的同時,對本文設計的主動取證系統按運行步驟相繼進行測試。
根據解析出的消息格式,利用狀態機推斷策略,推斷出ES文件瀏覽器的協議狀態轉換結果,如圖4所示。根據狀態機對比策略,將得到的13條狀態轉換信息與FTP和SMTP的狀態轉換信息進行對比,對比結果如表4所示。

圖4 狀態轉換信息解析結果
通過狀態對比可以確定ES文件瀏覽器使用了FTP處理上述通信數據,并將主動取證系統解析得到的ES文件瀏覽器通信數據存儲在數據庫中,如圖5所示。其中,1中的用戶名、3中的密碼和其余的操作信息等都是可以作為證據信息的數據。按時間順序排列存儲得到消息格式信息,可以直觀地看到目標對手機應用程序所執行的所有操作和操作相互之間的時序關系。
表4 狀態比對結果

針對即時通信類應用程序,本文將手機自帶的郵箱作為代表測試對象。過程如下:打開郵箱并添加賬號;在成功添加賬號后該應用程序會自動收取郵件;使用該賬號發送一封電子郵件。
在郵件收取階段,以通信數據消息格式的解析結果為基礎,結合狀態機推斷策略,得到狀態轉換結果,如圖6所示。根據狀態機對比策略,將所得的6條狀態轉換信息與POP3協議和IMAP進行對比,與POP3協議的相似度高達100%,由此可以確定該應用程序是使用POP3協議收取郵件的。

圖6 郵件收取階段狀態轉換信息解析結果
同樣地,在郵件發送階段,得到狀態轉換結果如圖7所示。將得到的9條狀態轉換信息與SMTP和FTP進行對比,與SMTP的相似度高達100%,由此可以確定該應用程序是使用SMTP發送郵件的。

圖7 郵件發送階段狀態轉換信息解析結果
將主動取證系統解析得到的郵件應用程序通信數據存儲在數據庫中,如圖8所示。可以看出,主動取證系統在郵件的收取階段和發送階段成功地獲取了郵箱用戶的用戶名、密碼、郵箱中郵件的數目和大小、郵件發送方和接收方、郵件主題等有效的證據信息。

圖8 郵件應用程序解析結果展示
本文提出了一種基于協議逆向分析的移動終端通信數據主動取證方案,由取證代理模塊、證據分析模塊和證據存儲模塊3個部分組成。與現有的基于協議逆向分析的移動終端通信數據取證技術相比,做了兩方面的改進:第一,在取證代理模塊,利用二進制插樁工具PIN實現了對污染源的動態識別和軌跡動態追蹤,保證了證據采集的及時;第二,在證據分析模塊,增加了基于LCS算法的狀態機對比部分,保證了證據追溯的完整。實驗結果表明,該取證系統兼具實時性和完整性,實用價值強。
[1] SIJA B D, GOO Y H, KYU S S, et al. Survey on network protocol reverse engineering approaches, methods and tools[C]// IEEE Network Operations and Management Symposium. 2017:271-274.
[2] PAN D, WANG Y, XUE Z. Remote control trojan vulnerability mining based on reverse analysis of network protocol[J]. Computer Engineering, 2016:124-140
[3] WEN S, MENG Q, FENG C, et al. Protocol vulnerability detection based on network traffic analysis and binary reverse engineering[J]. Plos One, 2017, 12(10): 186-188.
[4] LI W, AI M, JIN B. A network protocol reverse engineering method based on dynamic taint propagation similarity[M]. Intelligent Computing Theories and Application. Springer International Publishing, 2016:580-592.
[5] WEI X, LIU R, XU F. Reverse analysis of industrial control protocol based on static binary analysis[J]. Application of Electronic Technique, 2018: 366-372.
[6] BLUMBERGS B, VAARANDI R. BBUZZ: a bit-aware fuzzing framework for network protocol systematic reverse engineering and analysis[C]//IEEE Military Communications Conference. 2017: 707-712.
[7] SIJA B D, GOO Y H, SHIM K S, et al. Protocol reverse engineering methods for undocumented ethernet and wireless protocols; survey[C]//Symposium of the Korean Institute of Communications and Information Sciences. 2017:281-312.
[8] GOO Y H, SHIM K S, CHAE B M, et al. Framework for precise protocol reverse engineering based on network traces[C]// IEEE/IFIP Network Operations and Management Symposium. 2018: 1-4.
[9] BARMPATSALON K, DAMOPOULOS D, KAMBOURAKIS G, et al. A critical review of 7 years of mobile device forensics[J]. Digital Investigation, 2015, (10): 323-349.
[10] DU J. Android mobile forensics privilege promotion[J]. Silicon Valley. 2016, 14: 563-578.
[11] AL BARGHOUTHY N, MARRINGTON A. A comparison of forensic acquisition techniques for android devices: a case study investigation of or Web browsing sessions[C]//2014 6th International Conference on New Technologies Mobility and Security (NTMS). 2014: 1-4.
[12] JONKERS K. The forensic use of mobile phone flasher boxes[J]. Digital Investigation, 2015, (6): 168-178.
[13] JEON S, BANG J, BYUN K, et al. A recovery method of deleted record for SQLite database[J]. Personal and Ubiquitous Computing, 2017, 16(6): 707-715.
[14] YANG Y T, ZU Z Y, SUN G Z. Historical data recovery from android devices[M]//Future Information Technology. Berlin Heidelberg: Springer, 2016: 251-257.
[15] GROBLER C, LOUWRENS C, VON SOLMS S. A multi-component view of digital forensics: fifth international conference on availability, reliability, and security[C]//IEEE Piscataway. 2011: 647-652.
[16] THING V L L, NG K Y, CHANG E C. Live memory forensics of mobile phones[J]. Digital Investigation, 2015:74-82.
Analysis of communication data of mobile terminal based on protocol reversal
ZHANG Mingyuan1, QI Xinyu2, SONG Yubo2, GU Rongrong2, HU Aiqun2, ZHU Zhenchao2
1. The State Radio Monitoring Center Testing Center, Beijing 100041, China 2.School of Cyber Science and Engineering South East University, Nanjing 211189, China
The most problem in analysis of communication protocols and communication data for mobile terminals is that many mobile applications do not have the relevant public technical documents, and it is difficult to know the type of communication protocol it adopts. The instruction execution sequence analysis technique takes the instruction sequence executed by the program as a research object, and inversely infers the message format and the state machine to obtain the communication protocol. However, due to the incomplete collection of sequence information, the state machine infers that the inference is incomplete and cannot be effective. A novel protocol reverse scheme based on state machine comparison is proposed, which can be used for the forensics of mobile terminal communication data. The scheme first uses PIN for dynamical identification of the taint, and track it and analyzes the trajectory to obtain the message format. Secondly, the message clustering is performed on the basis of the message format to infer the protocol state machine. Finally, the LCS algorithm is used to compare the state machines to get a complete protocol state machine. This article tests and evaluates the scheme based on two types of application design experiments on the Android platform. The experimental results show that the results are both complete and real-time, and have practical value.
mobile terminal, data forensics, dynamic stain analysis, protocol reverse analysis, similarity comparison
TN915.08
A
10.11959/j.issn.2096-109x.2018099
2018-11-01;
2018-11-28
祁欣妤,220184390@seu.edu.cn
國家自然科學基金資助項目(No.61601113);中央高校基本科研業務費專項基金資助項目(No.2242017K40013)
The National Natural Science Foundation of China (No.61601113), The Fundamental Research Funds for the Central Universities of China (No.2242017K40013)
張明遠(1982-),男,內蒙古人,碩士,國家無線電監測中心檢測中心工程師,主要研究方向為新型無線電檢測技術。

祁欣妤(1995-),女,江蘇南京人,東南大學碩士生,主要研究方向為通信網絡安全。
宋宇波(1977-),男,江蘇無錫人,博士,東南大學副教授,主要研究方向為通信網絡安全及協議安全性分析。

顧榮榮(1990-),女,江蘇鹽城人,東南大學碩士生,主要研究方向為智能移動終端。
胡愛群(1952-),男,江蘇南通人,博士,東南大學教授、博士生導師,主要研究方向為通信網絡安全。

朱珍超(1982-),男,安徽霍邱人,博士,東南大學講師,主要研究方向為密碼學與網絡安全。