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