高瑞華
(陜西省理工學校 陜西 西安 710054)
基于APK文件抓取系統(tǒng)的匹配模塊設計
高瑞華
(陜西省理工學校 陜西 西安710054)
文中提出了一個APK抓取系統(tǒng)的設計思路,首先設計了該系統(tǒng)的整體框架,使用Mysql5.5實現(xiàn)系統(tǒng)的數(shù)據(jù)庫,基于開源python網(wǎng)絡爬蟲框架Scrapy,結(jié)合應用市場及APK的特性,聯(lián)合使用VirusTotal和特征匹配檢測的方法,重點設計了該APK文件抓取系統(tǒng)下基于模糊哈希算法的指紋匹配模塊。為降低APK的惡意性,詳細論述了匹配模塊的功能、匹配算法、主要解決了“如何快速有效的檢測惡意軟件”的等問題,達到了設計要求。為后續(xù)研究提供了有力支撐。
APK抓取;特征匹配;匹配度;模糊哈希算法
當前安卓應用市場魚龍混雜,各個應用市場中存在較大比例的惡意應用程序,其原因是各個應用市場對發(fā)布的APK的檢測方法存在差異和缺陷,因此面對眾多應用市場,如何給用戶提供更安全可靠的APK,減小用戶下載惡意APK的可能性,具有很高的研究和市場應用價值。
無線通信技術、3G及4G網(wǎng)絡的發(fā)展深刻的改變著所有人的生活,搭載移動操作系統(tǒng)的智能手機的用戶越來越多,其功能也日趨豐富和多元化。由于眾多的開發(fā)人員開發(fā)出大量的Android應用程序,給Android用戶帶了很大的便利,但是同時也給用戶帶來很多的安全隱患,其中惡意應用程序的泛濫等問題嚴重威脅著Android用戶的安全[1-2]。
針對目前市場惡意檢測方案的缺陷,必須設置可靠性更高的檢測模式,對應用市場中的應用程序進行抓取下載,進行惡意性分析后分別存儲,以便下載用戶的選擇。該設計方案中包括搜索模塊、跟蹤模塊、信息抓取模塊、APK下載模塊、APK解析模塊、APK特征信息提取模塊、特征匹配模塊、VirusTotal檢測模塊和數(shù)據(jù)庫存儲模塊,其中數(shù)據(jù)庫存儲模塊包括市場元數(shù)據(jù)庫、APK元數(shù)據(jù)庫、惡意APK庫和非惡意APK庫。
通過分析各個應用市場中惡意應用程序的安全現(xiàn)狀,針對目前市場惡意檢測方案的缺陷,設計方案如圖1所示。
圖1 系統(tǒng)總體框架圖Fig.1 The overall framework of the system
各個模塊的功能如下:
1)搜索模塊
該模塊的作用是搜索新的APK文件,搜索各個應用市場中的APK,并與已下載的APK對比,如果已經(jīng)下載過,則不予處理,否則,交給后面的模塊處理。
2)跟蹤模塊
該模塊的作用是更新已下載的APK,將已下載過的APK與應用市場上的對應的APK對比,如果已更新,則交給后面模塊繼續(xù)處理,否則不予處理。
3)信息抓取模塊
該模塊的作用是抓取符合條件的APK相關信息,并交給后續(xù)模塊處理。
4)下載模塊
該模塊的作用是下載前面符合條件的APK,并提供給后續(xù)模塊分析處理。
5)VirusTotal檢測模塊
該模塊的作用是檢測下載的APK文件的惡意性。通過調(diào)用病毒檢測工具VirusTotal,對APK進行分類存儲。
6)APK解析模塊
該模塊的作用是解析下載的APK文件,模塊介紹了怎樣解壓縮應用程序安裝包APK,然后遍歷判斷文件的類型,對不同的文件采用不同的方式進行解析,最終得到配置文件、簽名文件及Java源代碼交給后面模塊。
7)特征提取模塊
該模塊的作用是從解析模塊解析的配置文件和簽名文件中提取APK文件的特征屬性,提供給后續(xù)模塊。
8)特征匹配模塊
文中探討的模塊,作用是對Java源代碼指令序列用模糊哈希算法,生成指紋,并與惡意代碼特征庫匹配,通過檢測應用程序的源代碼和惡意代碼的相似度,判定應用程序的惡意性。
9)數(shù)據(jù)庫存儲模塊
此框架設計了4個數(shù)據(jù)庫,分別為市場元數(shù)據(jù)庫、APK元數(shù)據(jù)庫、惡意APK庫和非惡意APK庫。分別存儲APK市場信息、APK文件信息、惡意APK文件和非惡意APK文件。
文中研究的對象是特征匹配模塊,下面具體闡述這一模塊的設計過程。
匹配模塊對Java源代碼指令序列用模糊哈希算法,生成指紋,并與惡意代碼特征庫匹配,通過檢測應用程序的源代碼和惡意代碼的相似度,判定應用程序的惡意性。
初始時,AndRadar需要一系列已知的應用軟件樣本,這些樣本可以是惡意的軟件或者其他良性軟件,并把這些樣本軟件稱為種子。由于AndRadar的動態(tài)性,實時在線的特點,使得AndRadar相對于靜態(tài)分析有持續(xù)不斷的分析軟件的行為特點。軟件種子可以來自于最新的被標記為惡意軟件的軟件庫,可以是殺毒軟件掃描的惡意軟件,也可以是良性的軟件[3-4]。這些軟件樣本將被用來和應用市場上的軟件進行匹配,按匹配度進行相關處理。
種子應用程序和應用市場中的APK進行匹配時,有4種方式對兩個軟件進行相關度匹配,4種不同的標識符分別為包名、指紋鑒別法、方法簽名和哈希值[5-6]。并根據(jù)匹配組合分為4個匹配等級,如表1所示。
表1 基于4種標識符的不同的匹配度Tab.1 The different matching degree based on four identifier
對應用市場而言,如官方市場 Google Play、Appchina、Anzhi、Wandoujia或者Coolapk,均使用包名作為市場內(nèi)部的參考,在查詢時也是非常直觀的,這是因為包名會作為搜索該應用程序的一部分出現(xiàn)在應用程序的URL中。其他應用市場使用不同的內(nèi)部識別標識符,而是使用更加細致的搜索程序,因此,在搜索頁面按分隔符分離出包名,丟棄常見的部分如“.com”。一旦包名出現(xiàn)在搜索頁面,一次搜索將被視為結(jié)束,否則會繼續(xù)搜索各個應用市場并返回搜索結(jié)果。
最終,根據(jù)軟件發(fā)布者的習慣,應用程序可能在被發(fā)布到其他檢測的應用市場之前就已經(jīng)出現(xiàn)在種子中了,因此,搜索模塊將定期訪問所有的應用市場搜索目標應用程序,不管這些應用程序是否已經(jīng)在種子樣本程序中。
惡意Android應用程序檢測是本文的重要內(nèi)容,如何快速有效的檢測惡意軟件是研究的重點。傳統(tǒng)的惡意檢測一般采用字符串逐個對比的匹配法[7],這種方法效率低下,文中擬將APK的classes.dex文件的源碼生成指紋,再將指紋和已知的惡意源碼指紋進行比對。指紋生成即數(shù)據(jù)壓縮,利用算法函數(shù)把大容量文件壓縮成一個字符串,計算字符串的相似性。當前,通常采用哈希算法生成指紋,但是哈希算法對輸入很敏感,一旦檢測對象的惡意代碼有微小的改動,哈希算法就失效了,另外惡意應用程序的源碼是不斷變化的,這時用傳統(tǒng)的哈希算法生成指紋檢測同樣失效。文中采用模糊哈希算法來解決這些問題。
分析 classes.dex文件后,文件包含可執(zhí)行的字節(jié)碼Dalvik,將其反編譯后就得到java源碼,惡意應用程序會在源碼中添加相應的命令序列,匹配模塊將待檢測應用程序的文件classes.dex同惡意代碼特征庫進行對比,以判斷程序的安全性。本模塊采用模糊哈希算法(fuzzy hashing),將待檢測應用程序源碼同惡意源碼進行指紋匹配,利用相似度判斷應用程序的惡意性。模塊流程圖如圖2所示。
圖2 匹配模塊流程圖Fig.2 Matching module flow chart
在文中采用模糊哈希生成指紋的算法中,先將文件分成許多的小片段,分別對這些片段映射成哈希值,然后整合這些哈希值,最終生成指紋信息。首先選取合適的觸發(fā)值:
式中:S為哈希串最大的長度;n為文本長度;bmin為最小觸發(fā)值。
再校驗觸發(fā)條件:
式中:rolling_value——滾動哈希值;binit為觸發(fā)值。
將用Alder-32算法計算出的滾動哈希值rolling_value與前面計算出的觸發(fā)值binit比較,直到滿足上面等式。同理根據(jù)等式,計算出觸發(fā)值2binit,確定了觸發(fā)值后,通過FNV算法計算出哈希值。并取哈希值的6個低有效位的一個base64碼。最終得到指紋的兩部分:一部分是基于觸發(fā)值binit的base64碼,一部分是基于觸發(fā)值2binit的base64碼。
在得到指紋信息后,通過比較相似度的方法判斷兩個APK是否相似,文中采用加權(quán)編輯距離判斷相似性。有以下計算公式:
式中:S1為指紋1;S2為指紋2;ed(S1,S2)為S1與S2之間的編輯距離;i為插入操作的次數(shù);d為刪除操作次數(shù);c為替換的次數(shù);w為交換的次數(shù);min(l1,l2)為l1和l2的最小值;l1為指紋S1的長度;l2為指紋S2的長度;M為匹配指數(shù)。
先判斷S1到S2需要的最少次數(shù),對不同操作給出一個權(quán)值,將結(jié)果相加,得到加權(quán)編輯距離。在算匹配指數(shù)時,將加權(quán)編輯距離除以S1、S2的長度和,再映射到0到100之間的一個整數(shù)值之間。其中,S是指紋最大長度默認值是64,M是匹配指數(shù)。如果M值越接近100,則兩個文本的相似度越高。
文中主要對APK文件抓取系統(tǒng)中匹配模塊進行了詳細的設計,首先給出了APK文件抓取系統(tǒng)總體框架,之后詳細描述了匹配模塊功能,APK匹配算法,并采用模糊哈希算法實現(xiàn)對匹配模塊的設計,極大的提高了APK抓取系統(tǒng)的可靠性。
[1]Racic R,Ma D,Chen H.Exploiting mms vulnerabilities to stealthily exhaust mobile phone's battery[C]//Securecomm and Workshops,2006:1-10.
[2]劉澤衡.基于Android智能手機的安全檢測系統(tǒng)的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2011.
[3]Inoue D,Eto M,Yoshioka K,et al.nicter:An incident analysis system toward binding network monitoring with malware analysis[C]//Information Security Threats Data Collection and Sharing,2008.WISTDCS'08.WOMBAT Workshop on.IEEE,2008:58-66.
[4]Inoue D,Yoshioka K,Eto M,et al.Malware behavior analysis in isolated miniature network for revealing malware's network activity[C]//Communications,2008.ICC'08.IEEE International Conference on.IEEE,2008:1715-1721.
[5]Bayer U,Habibi I,Balzarotti D,et al.A view on current malware behaviors[C]//USENIX workshop on large-scale exploits and emergent threats(LEET).2009.
[6]Bayer U,Moser A,Kruegel C,et al.Dynamic analysis of malicious code[J].Journal in Computer Virology,2006,2(1):67-77.
[7]Van Randwyk J,Chiang K,Lloyd L,et al.Farm:An automated malware analysis environment[C]//Security Technology,2008.ICCST 2008.42nd Annual IEEE International Carnahan Conference on.IEEE,2008:321-325.
Design of matching model based on APK file grabbing system
GAO Rui-hua
(Shaanxi Technological School,Xi’an 710054,China)
This paper proposed a new design method for the APK capture system.The First designed the overall framework of the system using Mysql5.5 to setup the system's database.Based on open source Python web crawler framework Scrapy as well as the characteristics of the market and application of APK,It accomplished the design of fingerprint matching module using Fuzzy Hashing algorithm.uring the design process,VirusTotal and feature matching method were also combined.It discussed function of the matching module and matching algorithm in detail,greatly improved the efficiency of malicious software detection.The new method meet the design requirement and provide a strong support for the future research.
APK capture;feature matching;compatibility;fuzzy hash algorithm
TP393.01
A
1674-6236(2016)03-0047-03
2015-04-07稿件編號:201504057
高瑞華(1980—),女,陜西米脂人,碩士,講師。研究方向:網(wǎng)絡與安全、信息控制。