甘露 曹幫琴
摘 要:文章首先就Android惡意軟件的安裝和觸發(fā)特點進行分析,通過分析Android平臺中的惡意行為,制定了Android惡意代碼檢測方案。結(jié)合Android平臺的特點,分析了現(xiàn)有的惡意軟件檢測行為,并指出了現(xiàn)有Android惡意軟件檢測方法的不足和未來發(fā)展趨勢。
關(guān)鍵詞:Android;惡意軟件;檢測
當前惡意檢測方法主要包含靜態(tài)分析和動態(tài)檢測技術(shù),靜態(tài)分析主要是利用程序自身的靜態(tài)結(jié)構(gòu)、代碼來判斷其是否具有惡意性,其中涉及反編譯、靜態(tài)系統(tǒng)調(diào)用、逆向分析和模式匹配等相關(guān)技術(shù)。而動態(tài)檢測主要是通過手機監(jiān)視程序來對惡意行為進行檢測監(jiān)視。但是這兩種技術(shù)在判斷惡意軟件時,仍然存在一些缺陷,沒有充分結(jié)合實際應(yīng)用中惡意軟件變種、升級等問題?;贏ndroid惡意軟件的特征情況,本文提出了靜態(tài)的綜合檢測方法以及動態(tài)分析技術(shù),更好地解決Android系統(tǒng)的安全問題。
1 Android惡意軟件的基本特征
為深入了解Android惡意軟件的特征,文章從軟件的安裝方式、觸發(fā)方式以及惡意負載種類等幾個方面進行描述,同時為后文中檢測Android惡意軟件提供技術(shù)基礎(chǔ)。
1.1 安裝方式
Android惡意軟件通常在形式上比較吸引用戶注意,偽裝成一些實用軟件,進而讓手機用戶下載安裝,迅速蔓延傳播。惡意軟件在手機中的安裝傳播方式主要分為三種:重打包下載、更新包下載、偷渡軟件下載以及其他方式進入手機。
1.1.1 重打包下載
在一些流行的軟件中植入惡意代碼,然后進行重新編譯,提供給Android手機軟件官方市場,這種惡意軟件隱藏特征非常強,很難分辨出來,,它們掛上合法安全的命名,具有欺騙性,在軟件安裝時運用了代碼混淆技術(shù)和運行時解密技術(shù)。
1.1.2 更新包下載
在下載手機中已有的軟件更新包時,惡意軟件會在apk文件中植入惡意代碼,運行更新包時,通過運行動態(tài)獲取并下載安裝惡意代碼,一般運用靜態(tài)掃描無法檢測出更新包中的惡意負載。
1.1.3 偷渡軟件下載
利用未開發(fā)的軟件吸引用戶在不安全的小網(wǎng)站中下載安裝偷渡軟件,其實這些偷渡軟件就是偽裝后的惡意軟件,對手機Android系統(tǒng)存在很大的威脅。
1.1.4 其他方式
利用間諜軟件安裝入Android手機系統(tǒng)中,偽裝成手機常用軟件,但是沒有偽裝應(yīng)用的實際功能,山寨軟件,在軟件中隱藏軟件的惡意功能。
1.2 觸發(fā)方式
當惡意軟件進入Android手機系統(tǒng)中,一般通過這兩種方式進行觸發(fā):誘導用戶點擊、媒體系統(tǒng)。
1.2.1 誘導用戶點擊
當惡意代碼隱藏在重打包應(yīng)用進入手機中,會偽裝成某些重要功能誘導用戶點擊程序,進而觸發(fā)惡意軟件,導致惡意軟件自動運行。
1.2.2 媒體系統(tǒng)
媒體系統(tǒng)主要包括手機中自帶的廣播系統(tǒng)、短信軟件、音樂電影等軟件。惡意代碼可以隱藏在某段音頻視頻中,當用戶播放廣播、音樂或視頻時,就會觸發(fā)惡意軟件;還有一種方式是通過短信發(fā)送給手機用戶一段網(wǎng)址信息,用戶點擊網(wǎng)址時,就會自動跳轉(zhuǎn)到惡意軟件中,觸發(fā)運行惡意負載。
1.3 惡意負載種類
Android惡意軟件的惡意負載種類主要分為這樣幾類:提升特權(quán)、遠程操控、惡意吸取話費、盜取隱私信息以及自我保護。
1.3.1 提升特權(quán)
提升特權(quán)主要表現(xiàn)在惡意軟件可以自行突破手機的運行權(quán)限,惡意軟件利用各種不同的Root攻擊程序?qū)ndroid系統(tǒng)本身的Root權(quán)限進行攻擊、偷渡,從而提高Root權(quán)限,在攻擊的過程中使用了代碼混淆技術(shù)和代碼加密技術(shù),使Android系統(tǒng)靜態(tài)分析惡意代碼的難度提高了,有的惡意代碼還會混淆偽裝在手機自帶的軟件中。惡意軟件除了利用ROOT攻擊程序之外,還會利用Android系統(tǒng)本身的漏洞混淆安全清理嗎,提升Android系統(tǒng)特權(quán)。
1.3.2 遠程操控
當一些惡意軟件進入手機中后,可以利用遠程操控系統(tǒng)對手機進行遠程操控,更新系統(tǒng)中的惡意負載,把系統(tǒng)信息傳輸會惡意軟件總部。惡意軟件中最常用的遠程操控模式是利用http網(wǎng)絡(luò)接收服務(wù)器控制指令,因此可以發(fā)現(xiàn)惡意軟件只有在有網(wǎng)絡(luò)的時候才能實現(xiàn)遠程操控,可以增加網(wǎng)絡(luò)服務(wù)器的隱蔽性,實行加密,從而抵擋惡意軟件的遠程操控。
1.3.3 惡意吸取話費
惡意軟件提前在手機中植入花費吸取代碼,然后利用SP服務(wù)強行吸取手機用戶的話費,同時惡意軟件還可以隱藏掉服務(wù)商的通信短信,秘密扣除掉手機中的話費。利用遠程操控可以增值號碼中的一些無用服務(wù),提高話費使用數(shù)額。
1.3.4 盜取隱私信息
通過盜取隱私模塊對手機中的通訊錄、短信、錄音、音頻視頻信息和一些隱私數(shù)據(jù)進行盜取,通過盜取這些隱私信息實現(xiàn)進一步價值。例如:在盜取到手機用戶的通訊錄后,可以利用朋友間的信任騙取大量錢財。在滲透入手機系統(tǒng)后,可以進一步篡改Android系統(tǒng)漏洞,實現(xiàn)APT的持續(xù)攻擊,。因此,竊取手機信息對惡意軟件來說非常重要。在實際應(yīng)用中,一定要注意保密,對一些重要信息資料進行加密處理,一旦發(fā)生惡意軟件入侵,及時清除掉手機信息。
1.3.5 自我保護
目前,很多Android惡意軟件利用商業(yè)級代碼保護技術(shù)實現(xiàn)自我保護,加大了Android平臺靜態(tài)分析的難度,把符號信息和Android代碼文件混淆在一起,惡意軟件利用木馬工具實現(xiàn)了動態(tài)代碼解密,同時加固本身的代碼信息,惡意軟件還會利用Android平臺的在線服務(wù)和預裝應(yīng)用中的漏洞,對自身進行保護。
通過對惡意軟件的特征進行分析得知,各種惡意軟件技術(shù)在不斷更新?lián)Q代,Android平臺也在高速發(fā)展,隨著Android平臺的進化特征,惡意軟件也能不斷進化自身保護能力,惡意軟件攻擊者會利用各種混淆測試技術(shù)和反監(jiān)控技術(shù)對Android平臺的惡意軟件檢測進行自我保護。
2 Android惡意軟件檢測方法
2.1 字節(jié)碼靜態(tài)檢測技術(shù)
這種靜態(tài)檢測技術(shù)主要是通ASM字節(jié)碼處理框架進行解析,可以追蹤到惡意程序中的靜態(tài)動作,并對行為標注出來。實施這種技術(shù)的主要步驟有:(1)手機用戶對APK文件的MD5值進行計算,和已分析的程序庫進行對比,如果APK文件的MD5值存在于已分析的程序庫中,證明檢測通過了,進行下一步。(2)解壓APK分組文件,得到classes.dex文件和AndroidManifest.Xml數(shù)據(jù)文件。(3)利用dex2jar工具把classes.dex文件轉(zhuǎn)化為jar分組文件,利用AXMLPrinter2工具把AndroidManifest.xml文件進行反編譯。(4)對jar分組文件和反編譯后的AndroidManifest.xml文件進行分析,排除其中的危險權(quán)限,然后進行下一步。(5)檢測反編譯后的Java文件,如果檢測出來惡意文件,提示手機用戶選擇性處理惡意文件,可以刪除或者隔離惡意文件。(6)導出檢測結(jié)果到已分析程序庫中,完成靜態(tài)檢測分析。
2.2 動態(tài)檢測技術(shù)
動態(tài)分析檢測過程一般比較復雜,周期比較長,它需要進行一系列的準備工作,而且運行效率不明顯。在這里提到的動態(tài)檢測技術(shù)主要是利用是trace工具記錄系統(tǒng),把調(diào)用行為記錄在日志文件中,同時對wireshark網(wǎng)絡(luò)數(shù)據(jù)分組文件進行跟蹤分析,最終對兩組文件結(jié)合分析。其具體步驟有這樣幾點:(1)準備工作。首先啟動手機桌面上的模擬器,當軟件在模擬器上運行時,可以調(diào)試網(wǎng)絡(luò)、音頻、視頻等功能,對存儲的文件翻閱一遍。(2)在手機上安裝下載trace和wireshark工具;監(jiān)控應(yīng)用在運行過程中的動態(tài)行為,包括發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)和系統(tǒng)API。利用trace記錄工具,把調(diào)用行為記錄在日志文件上。(3)安裝下載應(yīng)用并且啟動mokeyrunner工具。當應(yīng)用在運行時,mokeyrunner工具可以自行運行并模擬手機用戶的運行動作。(4)收集日志文件記錄和網(wǎng)絡(luò)數(shù)據(jù)分組文件記錄。當mokeyrunner工具運行完成之后,就會把運行數(shù)據(jù)存儲在文件記錄中,當網(wǎng)絡(luò)開啟后,也會wireshark網(wǎng)絡(luò)數(shù)據(jù)分組文件記錄下來,對這些文件記錄進行分析,確定惡意軟件的行為,并對惡意軟件進行清除。
3 惡意軟件檢測行為
3.1 權(quán)限分析
對系統(tǒng)中敏感行為的危險權(quán)限進行分析,對比出惡意軟件和正常軟件的權(quán)限特點,對帶有危險權(quán)限的軟件進行掃描分析,篩選出其中的惡意行為和潛在威脅,然后進行下一步分析檢測。對不存在危險權(quán)限的應(yīng)用程序不需要進行掃描分析,直接視為正常程序。但是在檢測中仍然存在缺陷,惡意軟件可以自行提升特權(quán),不需要受到權(quán)限限制,不用申請權(quán)限,漏過檢測。
3.2 動態(tài)行為分析
動態(tài)行為分析為了不受惡意代碼的混淆,主要對惡意軟件的動態(tài)、行為和實施方式進行檢測。classes.dex文件是應(yīng)用程序的主要代碼,所以可以對其進行反編譯,然后在總結(jié)分析Java文件。惡意行為主要包括竊取隱私行為、遠程操控行為和吸取花費的行為,針對這些惡意行為,可以采取語意分析行為和污點跟蹤行為。對用戶意圖和行為語義進行抽取,在設(shè)計Android平臺時,可以采用交互密集型設(shè)計方法,把用戶的行為意圖和自動化可度量的程序結(jié)合分析,從而識別惡意行為。污點跟蹤主要是利用污點源跟蹤污點,捕獲污點輸出信息。
3.3 靜態(tài)分析
在應(yīng)用不允許代碼時運用靜態(tài)分析,通過使用控制流分析、語義分析以及數(shù)據(jù)流分析技術(shù)對Android系統(tǒng)文件進行分析檢測,這種分析技術(shù)在運行起來更加快速,效率比較高,結(jié)果準確,但是針對惡意軟件的代碼混淆技術(shù)和代碼加密技術(shù),很難識別惡意代碼,從而產(chǎn)生技術(shù)漏洞。
4 Android惡意軟件檢測方法的不足之處和發(fā)展趨勢
雖然目前Android惡意軟件檢測在實際運用中取得一些實踐成果,但是在在運行時仍然存在一些不足。主要體現(xiàn)在這些方面:(1)檢測惡意軟件缺少標準。(2)動態(tài)檢測方法不夠智能化,需要人為判斷;(3)惡意軟件的代碼混淆和加密技術(shù)逐漸成熟,導致靜態(tài)分析中的反編譯難度加大,難以識別各種惡意代碼。隨著科學技術(shù)的發(fā)展進步,未來的Android惡意軟件檢測方法會逐漸完善,制定完善的惡意軟件標準,動態(tài)檢測和靜態(tài)檢測方法更加自動化、智能化。
[參考文獻]
[1]馮博,戴航,慕德俊.Android惡意軟件檢測方法研究[J].計算機技術(shù)與發(fā)展,2014(2):149-152.
[2]文偉平,梅瑞,寧戈,等.Android惡意軟件檢測技術(shù)分析和應(yīng)用研究[J].通信學報,2014(8):78-85,94.
[3]彭國軍,李晶雯,孫潤康,等.Android惡意軟件檢測研究與進展[J].武漢大學學報:理學版,2015(1):21-33.
Analysis on AndroidMalware Detection Method
Gan Lu, Cao Bangqin
(Xinyang Vocational and Technical College, Xinyang 464000, China)
Abstract: The article first Androidmalware installed and trigger characteristics were analyzed, and the analysis of the Androidplatform that malicious behavior, made the Androidmalicious code detection scheme. According to the characteristics of the Androidplatform, this paper analyzes the existing malware detection behavior, and points out the shortages of the existing Androidmalware detection method and the future development trend.
Key words: Android; malicious software; detection