胡建偉,張 玉,崔艷鵬
(西安電子科技大學(xué)網(wǎng)絡(luò)與信息安全學(xué)院,陜西 西安 710075)
勒索軟件是一種非常典型的惡意軟件,它通過將用戶設(shè)備鎖住或?qū)⒃O(shè)備中的數(shù)據(jù)以及資源加密來向用戶索要贖金進行牟利。由于勒索軟件一般采用強加密手段加密用戶數(shù)據(jù),因此其造成的后果幾乎是不可逆轉(zhuǎn)的,由此給用戶和企業(yè)帶來了極大的隱私和安全威脅。最早的勒索軟件可以追溯到20世紀(jì)80年代末[1],但是直到近幾年才開始大規(guī)模爆發(fā)。據(jù)統(tǒng)計,2013年勒索軟件的數(shù)量同比增長超過500%,逐漸成為最引人注目的惡意軟件威脅之一[2]。2016年勒索軟件數(shù)量激增至170萬,被稱為“勒索軟件之年”。根據(jù)Symantec的數(shù)據(jù)報告[3],2017年勒索軟件變種的數(shù)量增加了46%,爆發(fā)范圍波及到全球。2018年,雖然勒索軟件活躍度總體降低,但是勒索軟件目標(biāo)開始轉(zhuǎn)向企業(yè),企業(yè)感染數(shù)量上升了12%,造成的危害仍然不容小覷[4]。勒索軟件最初只針對PC(Personal Computer)端使用率最大的Windows平臺,但隨著Android智能手機的快速發(fā)展,其越來越開放的應(yīng)用市場和相對寬松的審查機制給了勒索軟件可趁之機。Kaspersky labs在2015年第一季度發(fā)現(xiàn)了1 113個針對Android設(shè)備的勒索軟件樣本。2016年手機勒索軟件再次激增,是2015年的4倍,360手機衛(wèi)士共截獲Android平臺勒索軟件新增樣本17萬個。Symantec發(fā)布的2019年《互聯(lián)網(wǎng)安全威脅報告》[4]顯示,2018年移動設(shè)備上的勒索軟件的感染比例比2017年高出1/3,手機感染勒索軟件的事件呈急速上升趨勢。
由于手機勒索軟件越來越猖獗,Android平臺勒索軟件的預(yù)防與檢測得到人們越來越多的重視,研究人員提出了很多相關(guān)研究成果。但是,目前尚沒有系統(tǒng)地對Android平臺勒索軟件預(yù)防和檢測技術(shù)進行研究綜述,比較相關(guān)的是Monika等[5]和Bander等[6]的研究。前者只對Android平臺勒索軟件的發(fā)展和演變作了系統(tǒng)的描述,并未對Android平臺勒索軟件的預(yù)防和檢測技術(shù)做調(diào)研。后者對所有平臺的勒索軟件預(yù)防與檢測技術(shù)進行了綜述,但是針對Android平臺的調(diào)研只有3篇相關(guān)文獻?,F(xiàn)在針對Android平臺勒索軟件的預(yù)防與檢測技術(shù)已取得較多的進展,需要重新歸納總結(jié)。因此,本文搜索了IEEE Explorer、ACM數(shù)據(jù)庫、Springer數(shù)據(jù)庫和Elsevier數(shù)據(jù)庫中目前為止所有針對Android平臺勒索軟件的防護技術(shù),全面分析比較了不同技術(shù)的優(yōu)缺點,并對未來的研究方向進行了探討。
勒索軟件是一種惡意軟件,其根本目的是迫使用戶交付贖金以重新獲取系統(tǒng)的訪問權(quán)。勒索軟件可分為2類:鎖屏勒索軟件與加密勒索軟件。鎖屏勒索軟件顧名思義,是指能將用戶設(shè)備鎖定,然后在屏幕上顯示一條付款消息。加密勒索軟件則是對設(shè)備中的數(shù)據(jù)資源進行加密,使用戶無法訪問。
2017年,臭名昭著的WannaCry勒索軟件在全球范圍內(nèi)大爆發(fā),主要針對用戶量大的Windows平臺。受其影響,WannaLocker勒索軟件以類似的方式攻擊Android平臺,它偽裝成游戲插件,誘騙用戶下載啟動。這個偽插件會對外部存儲中的數(shù)據(jù)進行編碼并使用對稱加密算法AES(Advanced Encryption Standard)加密這些文件。完成加密后,在屏幕上將顯示一條勒索信息。
2017年,另一個臭名昭著的勒索軟件是DoubleLocker,DoubleLocker通過對受攻擊的網(wǎng)站以冒充Adobe Flash更新的形式傳播,它是第一個濫用Android可訪問性的勒索軟件,而這通常是Android銀行木馬用來竊取銀行憑證的手段。
另一種特別的勒索軟件名為LeakerLocker,LeakerLocker不像通常的勒索軟件對文件進行加密,而是威脅用戶手機中保存的個人數(shù)據(jù)。侵入設(shè)備后,LeakerLocker會收集盡可能多的私人信息,然后顯示一份贖金通知,說明所有的個人數(shù)據(jù)都已被復(fù)制到攻擊者的云端,并且表示除非支付贖金,否則這些信息都將發(fā)給所有受害人的聯(lián)系人。
(1)鎖屏。
鎖屏勒索軟件通過獲得管理權(quán)限鎖定智能手機屏幕。鎖屏勒索軟件主要有2種方式,一種是利用WindowManager.LayoutParams通過控制flags屬性設(shè)置一個特殊的全屏窗口并置頂;另一種則是通過激活設(shè)備管理器的方式,設(shè)置系統(tǒng)的鎖屏密碼,導(dǎo)致無法進入系統(tǒng)操作界面[7,8]。該類型的勒索軟件目標(biāo)明確,通常針對特定的設(shè)計漏洞。鎖屏勒索軟件實現(xiàn)流程如圖1所示。
Figure 1 Implementation process of lock ransomware圖1 鎖屏勒索軟件實現(xiàn)流程
(2)文件加密。
加密勒索軟件通常采用對稱加密算法AES進行加密,但也有勒索軟件采用對稱加密和非對稱加密混合加密的強加密方式,因此文件一旦被加密幾乎很難在沒有密鑰的情況下恢復(fù)。加密使用的加密密鑰通常在二進制文件中以純文本的形式進行硬編碼或者通過與命令與控制C&C(Command & Control)服務(wù)器交互獲得。加密勒索軟件的實現(xiàn)流程如圖2所示。
Figure 2 Implementation process of encrypted ransomware圖2 加密勒索軟件實現(xiàn)流程
(3)C&C服務(wù)器通信。
安裝成功后,大多數(shù)Android勒索軟件會向C&C服務(wù)器發(fā)送報告,現(xiàn)代勒索軟件主要通過C&C服務(wù)器獲取密鑰。勒索軟件會與C&C服務(wù)器建立一個永久的C&C通信通道,用來一直監(jiān)聽并執(zhí)行來自勒索軟件攻擊者發(fā)送的命令,這樣就建成了由攻擊者控制的受感染Android設(shè)備的網(wǎng)絡(luò)。這些命令除了顯示索要贖金的警告信息,還包括向所有設(shè)備中的聯(lián)系人發(fā)送郵件、訪問消息、關(guān)閉WiFi、關(guān)閉移動數(shù)據(jù)、跟蹤用戶的全球定位系統(tǒng)信息等等。
(4)權(quán)限許可。
與其他惡意軟件相比,勒索軟件沒有明顯的惡意行為,相反,勒索軟件在打開彈出窗口、文件加密等方面與良性軟件十分相似。ACCESS_NETWORK_STATE、READ_PHONE_STATE和INTERNET是勒索軟件和惡意軟件普遍要求的權(quán)限,因此這些權(quán)限與服務(wù)器進行網(wǎng)絡(luò)通信是必須的。而考慮到勒索軟件特有的行為,其更加傾向于與設(shè)備請求相關(guān)的權(quán)限,如WALK_LOCK、DISABLE_KEYGUARD、SYSTEM_ALERT_WINDOW、KILL_BACKGROUND_PROCESS、GET_TASK等。勒索軟件會在智能手機重啟后顯示警告勒索信息。劫持活動是鎖定手機的主要任務(wù)。
(5)勒索警告信息。
勒索就需要向用戶顯示警告信息,用來顯示贖金的金額、支付方式、地址以及期限等。大多數(shù)勒索軟件要求通過比特幣等加密貨幣的方式支付贖金,達到隱藏攻擊者身份的目的。除此之外,有的勒索軟件顯示的警告信息包含恐嚇內(nèi)容,如Locker勒索軟件,它聲稱在用戶的設(shè)備發(fā)現(xiàn)了色情圖片必須要交罰金,否則將向FBI報告的警告信息。
Android平臺勒索軟件預(yù)防與檢測的研究成果非常多,本文按照檢測方法的差異將其歸納為基于程序分析方法、形式化方法、機器學(xué)習(xí)方法、用戶意圖、數(shù)據(jù)備份和結(jié)構(gòu)熵6大類。
程序分析方法一般分為靜態(tài)分析、動態(tài)分析和混合分析。靜態(tài)分析是在程序不運行的情況下,利用自動化靜態(tài)分析工具(如IDA Pro)對程序源碼進行分析的技術(shù)。在分析Android可執(zhí)行文件時,需要首先對可執(zhí)行程序進行逆向工程,并通過分析逆向工程得到的文件查找惡意代碼和資源,常見的有:可疑字符串、可疑圖像、可疑操作碼序列等靜態(tài)資源。動態(tài)分析則是在程序運行的狀態(tài)下,通過監(jiān)控程序的運行,找到與惡意程序相似的模式或行為?;旌戏治鰟t是靜態(tài)分析與動態(tài)分析的結(jié)合,檢測精度更高。3種方法的比較如表1所示。
Table 1 Comparison of three program analysis methods表1 3種程序分析方法的比較
3.1.1 基于靜態(tài)分析方法
文獻[9]基于靜態(tài)分析方法提出了實時檢測方法RansomGuard,該方法從大量樣本中提取出勒索軟件的典型特征,如權(quán)限、威脅文本等,然后利用模塊化規(guī)則歸納學(xué)習(xí)算法得到分類規(guī)則。文獻[9]的作者采用2 721個勒索軟件和5 396個良性樣本作為數(shù)據(jù)集,準(zhǔn)確率最高可達95.3%且誤報率僅為0.6%。此外,針對性能測試,發(fā)現(xiàn)系統(tǒng)平均花費5 s就能彈出警告。但是,由于RansomGuard是建立在靜態(tài)分析的基礎(chǔ)上,因此使用代碼加密、反射等混淆技術(shù)會使得某些特征無法提取,導(dǎo)致準(zhǔn)確率降低。
Maiorca等[10]利用靜態(tài)方法提取API包構(gòu)建了模型R-PackDroid,對Android勒索軟件進行檢測。該模型不依賴于勒索軟件加密的先驗知識,只依賴于應(yīng)用程序中API包及其調(diào)用頻率,檢測精度比HelDroid高,但是其抗混淆能力較差,因此誤報率較高。
由于只用靜態(tài)分析方法檢測勒索軟件準(zhǔn)確率無法滿足用戶需求,Kanwal等[11]將靜態(tài)分析方法進行了拓展,除了使用靜態(tài)分析方法從文本和圖像中檢測勒索軟件威脅信息外,還提供了硬件交互,在用戶遭受鎖屏勒索軟件侵害的情況下,通過使用廣播接收器多次按下電源按鈕取得屏幕的控制權(quán)。此外,該應(yīng)用程序提供了一個功能—將重要文件上傳到在線服務(wù)器,以避免文件被加密型勒索軟件加密無法恢復(fù)的情況。但是,作者只用了一個特定的應(yīng)用程序進行實驗,因此其通用性和性能有待測試。
3.1.2 基于動態(tài)分析方法
文獻[12]提出了一種動態(tài)分析方法。該方法包含3個模塊:配置模塊、監(jiān)控模塊和處理模塊。配置模塊負責(zé)將重要文件所在區(qū)域注冊到監(jiān)控模塊的監(jiān)視列表,將監(jiān)控模塊檢測到的用戶處理注冊到數(shù)據(jù)庫;監(jiān)控模塊負責(zé)監(jiān)控進程對CPU(Central Processing Unit)、內(nèi)存、I/O(Input/Output)和文件的操作;一旦檢測到可疑進程就將信息發(fā)送到處理模塊,強制停止該進程并向用戶詢問對該進程的處理。由于該方法可以在Android源代碼中實現(xiàn),因此檢測速度可以非??欤菬o法檢測到帶有威脅文本和鎖型勒索的軟件。此外,因為此方法只檢測CPU和I/O使用中的異常行為,模擬攻擊可以避開這種檢測。
文獻[13]提出了一種能保護隱私和檢測勒索軟件的應(yīng)用程序—Sdguard。該應(yīng)用程序基于Linux DAC機制細粒度的權(quán)限控制檢測加密型和鎖型勒索軟件。當(dāng)一個外部應(yīng)用程序?qū)ξ募M行操作時,Sdguard首先根據(jù)訪問控制列表檢查其權(quán)限,并將所有的I/O操作轉(zhuǎn)存到日志文件,通過分析日志文件檢測惡意行為;同時,Sdguard檢測Android系統(tǒng)的活動堆棧,如果發(fā)現(xiàn)存在應(yīng)用程序長時間處于頂層堆棧,則將其視為鎖型勒索軟件并殺死相應(yīng)的進程,不過遺憾的是該技術(shù)尚未經(jīng)過實踐檢驗。
3.1.3 基于混合分析方法
2015年,第1個用于Android勒索軟件檢測的混合分析方法—HelDroid被提出[14]。該工具包括基于自然語言處理NLP(Natural Language Processing)監(jiān)督分類器的威脅文本檢測器、使用靜態(tài)污點分析跟蹤文件加密流的加密檢測器和基于輕量級仿真技術(shù)的啟發(fā)式鎖定檢測器3個組件。該工具的主要弱點是依賴于文本檢測器,因此通過字符串加密和混淆等技術(shù)可輕易繞過。此外,由于此工具很大程度上依賴于語言詞典,因此需要考慮不同語言。從性能來說,該工具在443個樣本中識別出375個勒索軟件,由于語言問題而未檢測出11個,在12 842個樣本中誤報了9個,即誤報率約為0.07%。
2017年,Zheng等[15]進一步拓展了HelDroid,并命名為GreatEatlon。該工具改進了加密檢測器和文本檢測器,增加了設(shè)備管理API濫用的檢測,能檢測勒索軟件通過圖像傳達的威脅文本,在一定程度上反字符串混淆。此外,該工具還采用監(jiān)督學(xué)習(xí)分類算法進行輕量級的預(yù)過濾,以區(qū)分良性軟件和可疑軟件。但是,該工具仍未克服過度依賴文本檢測器的弱點,此外如果勒索軟件將威脅文本分割存儲在多個圖像中,則圖像探測器將失效。
文獻[16]指出靜態(tài)分析具體可以從Android系統(tǒng)的訪問權(quán)限、API調(diào)用序列、提取偽裝成資源文件的可執(zhí)行程序以及驗證簽名4個方面進行分析;動態(tài)分析則從敏感路徑、惡意域名獲取、惡意收費以及權(quán)限繞過這些角度進行檢測。但是,該方法仍處于提案層面,沒有得到實施,因此沒有任何結(jié)果能證明其有效性。
2017年,Gharib等[17]提出了一個實時檢測Android勒索軟件的方法DNA-Droid。它首先使用靜態(tài)分析方法掃描應(yīng)用程序,然后對可疑應(yīng)用程序用動態(tài)分析方法進一步檢查。該方法使用深度學(xué)習(xí)技術(shù)對已知分類的數(shù)據(jù)集進行訓(xùn)練。靜態(tài)分析模塊是從文本分類、圖像分類、API調(diào)用以及權(quán)限許可進行分析;動態(tài)分析模塊則通過在沙箱中運行檢測其API調(diào)用序列,周期為5 min。DNA-Droid具有98.1%的準(zhǔn)確率和低于1.5%的虛警率。但是,該方法具有一個明顯的缺點:嚴(yán)重混淆的勒索軟件可以繞過靜態(tài)分析檢測,從而避免動態(tài)分析。
由于混合靜態(tài)動態(tài)檢測方法準(zhǔn)確率比較高,2018年Ferrante等[18]也作了這方面的研究。他們同時采用了基于操作碼使用頻率的靜態(tài)分析,以及基于CPU、內(nèi)存、網(wǎng)絡(luò)的使用率以及系統(tǒng)調(diào)用信息的動態(tài)分析。研究表明,該方法的準(zhǔn)確率能達到100%且誤報率低于4%。但是,該方法需要20~60 s才能檢測到勒索軟件,這個過程有可能會給用戶帶來比較大的文件損失。
文獻[19]提出了一種基于結(jié)構(gòu)相似性的檢測方案RanDroid。該方案使用靜態(tài)分析技術(shù)從解析后的APK文件中提取字符串文本和圖像,使用動態(tài)分析技術(shù)捕獲應(yīng)用程序活動,若檢測到存在威脅文本提示或鎖定屏幕,則提取文本并截獲圖像。之后與數(shù)據(jù)庫中存儲的勒索軟件的文本與圖像進行對比,超過閾值則認為是勒索軟件并報警。通過100個勒索軟件與200個良性軟件組成數(shù)據(jù)集進行實驗,實驗準(zhǔn)確率達到91%。但是,由于該方案不能識別英語之外的其他語言,因此漏報率較高。此外,若應(yīng)用程序中包含太多書籍或雜志的相關(guān)文本,誤報率也較高。
在計算機科學(xué)中,形式化方法是建立在邏輯演算、形式語言、自動機理論等理論基礎(chǔ)之上,對計算機系統(tǒng)進行描述和分析的一系列符號與技術(shù)的集合[20]。使用形式化方法是使用適當(dāng)?shù)臄?shù)學(xué)分析以提高設(shè)計的可靠性和健壯性,使用形式化的規(guī)范語言來定義系統(tǒng)的每個特性。該語言非常特殊并采用了一種包含對象、關(guān)系和規(guī)則組件的獨特語法,這些組件可以驗證每個特性的正確性[21]。
文獻[22]描述了一種基于形式化方法的檢測方法。該方法能檢測勒索軟件并能識別出勒索軟件中的惡意代碼部分。評估了由勒索軟件與良性軟件組成的2 477個樣本集,召回率為99%。此外,該方法針對Java字節(jié)碼而不是源代碼,因此不需要反編譯。但是,該方法的主要弱點在于構(gòu)建邏輯規(guī)則需要人工操作。
后來,Cimitile等[23]在此基礎(chǔ)上進行了拓展,提出了基于模型檢測的工具Talos。此方法主要通過Java字節(jié)碼識別勒索軟件,通過字節(jié)碼而不是直接在源代碼上檢測,具有獨立于源代碼編程語言,不需要反編譯,且能反混淆等眾多優(yōu)點。文獻[23]評估該工具的檢測準(zhǔn)確率達99%。但是,當(dāng)從Java字節(jié)碼派生出形式化模型后,需要手工制定邏輯規(guī)則,用于判斷勒索軟件的惡意行為。
機器學(xué)習(xí)是依靠模式和推理對用于執(zhí)行特定任務(wù)的算法和統(tǒng)計模型的計算機系統(tǒng)的科學(xué)研究[24]。學(xué)習(xí)的過程需要訓(xùn)練數(shù)據(jù)來尋找某種模式,以實現(xiàn)對任意例子都能做出更好的決策或預(yù)測。隨著物聯(lián)網(wǎng)時代的到來,人工智能學(xué)科正發(fā)展得如火如荼,在勒索軟件檢測領(lǐng)域中機器學(xué)習(xí)也發(fā)揮著重要作用。
Karimi等[25]提出將可執(zhí)行指令序列轉(zhuǎn)換為灰度圖像,使用隱含狄利克雷分布LDA(Latent Dirichlet Allocation)從中選擇最佳操作碼,作為區(qū)分勒索軟件和良性軟件的特征,最后用LDA對應(yīng)用程序進行分類。LDA主要用于尋找特征的線性組合,以便將對象分離。文獻[25]測試了280個樣本集,準(zhǔn)確率可達97.3%。
文獻[26]提出了一種使用機器學(xué)習(xí)的工具R-PackDroid。檢測分為預(yù)處理、特征提取和分類。預(yù)處理從可執(zhí)行代碼中提取DexCode;特征提取則從DexCode所在的代碼行提取API包;分類器則根據(jù)監(jiān)督學(xué)習(xí)算法訓(xùn)練的結(jié)果將其分類。該工具的主要思想是通過靜態(tài)分析分析 API包的Dalvik字節(jié)碼。文獻評估了8 304個樣本,對勒索軟件的檢測精確度為97%和誤報率為1%;對普通惡意軟件的檢測精確度和誤報率分別為85%和2%,且能對抗反混淆技術(shù)。但是,由于R-PackDroid完全依賴于靜態(tài)分析,因此它會受到一些固有限制。例如,不可能分析在運行時加載特征碼或加密類的勒索軟件,而且它只能使用已知的訓(xùn)練樣本檢測新的勒索軟件。
文獻[27]介紹了一種基于操作碼的加密勒索軟件檢測方法。首先使用IDA Pro自動提取樣本中的操作碼(443個);然后構(gòu)建操作碼的密度直方圖,并歸一化作為特征向量;最后用WEKA中的2-classes SMO分類器、6-classes SMO分類器以及8個特征簡約模型進行分類。實驗結(jié)果表明,使用2-classes SMO分類器可以達到100%的檢測精確度,使用6-classes SMO的精確度可達到96.5%。此外,使用CorrelationAttributeEval過濾器可以使操作碼減低至180個,且沒有檢測精確度損失。使用CFSSubset濾波器可使操作碼降為10個,但檢測準(zhǔn)確率降低為94.2%。
隨著鎖型勒索軟件越來越多,對用戶的財產(chǎn)和隱私也構(gòu)成了巨大威脅,Su等[28]系統(tǒng)地分析了中國社交網(wǎng)絡(luò)中的鎖型勒索軟件并提出了一種輕量級、自動化的檢測方法。首先對其反匯編提取6類顯示文本和后臺操作特征,然后用4種機器學(xué)習(xí)算法集成檢測。實驗結(jié)果表明,該方法準(zhǔn)確率可達99.98%。此外,由于良性軟件和鎖型勒索軟件通常不會對小部件混淆,因此從配置小部件(布局文件、字符串資源和反編譯代碼)中提取的文本特征能克服代碼混淆和root shell帶來的影響。但是,樣本集中只有301個勒索軟件,因此結(jié)果的準(zhǔn)確度有待詳細證明。
考慮到正常應(yīng)用程序在執(zhí)行敏感操作時會提醒用戶,而勒索軟件執(zhí)行加密操作時則必須在后臺運行或顯示欺騙窗口來隱藏自身,Chen等[29]從用戶意圖的角度出發(fā),提出了一種新的實時檢測系統(tǒng)—RansomProber。該系統(tǒng)通過分析相關(guān)Activity的用戶界面小部件和用戶手指移動的坐標(biāo),推斷出文件加密操作是否由用戶發(fā)起,從而檢測加密型勒索軟件。RansomProber的檢測分為3個模塊:加密分析、Foreground分析和Layout分析。加密分析通過分析加密前后文件的信息熵的變化來判定文件是否進行加密;Foreground負責(zé)確定加密過程是否是前臺應(yīng)用程序觸發(fā),如不是則很可能不被用戶所知;最后通過Layout模塊進一步分析用戶界面UI(User Interface)小部件以及操作坐標(biāo),來確定文件加密對用戶來說是否是已知的,進而確定應(yīng)用程序是否是加密型勒索軟件。RansomProber能以很高的準(zhǔn)確率—99%檢測加密型勒索軟件,誤報率不到1%,并且文件損失和運行時的內(nèi)存消耗也很小。但是,如果勒索軟件重新打包那些能加密或壓縮的應(yīng)用程序?qū)⑼黄拼讼到y(tǒng)。針對RansomProber的缺點,Ko等[30]對其進行了改進并結(jié)合文獻[31]提出了一種能實時檢測未知勒索軟件的新方法。該方法理論上能提高檢測未知勒索軟件的準(zhǔn)確率,但是未經(jīng)實驗驗證,因此實際效果未知。
由于勒索病毒一般采用強加密算法,因此在沒有密鑰的情況下很難恢復(fù),而如果提前進行數(shù)據(jù)備份,就能完全避免由勒索軟件加密帶來的損失。Yalew等[32]提出了一種基于數(shù)據(jù)備份的解決方案——RANSOMSAFEDROID。它是一種基于TrustZone的備份服務(wù),定期將文件備份到一個安全的本地存儲,并將其發(fā)送到外部存儲、遠程服務(wù)器或云計算服務(wù)。最初,該方案對整個設(shè)備的文件系統(tǒng)進行完整備份,然后進行增量備份。文獻[32]在一臺手機設(shè)備上進行了測試,初始備份在設(shè)備運行之前進行,因此不考慮其時間長短;運行備份與備份文件的多少有關(guān),11 MB的文件需要3 s和100個文件需要4.1 s;空備份大約2 s。但是,由于大多數(shù)商業(yè)支持的TrustZone在手機中不被允許使用,因此該系統(tǒng)的使用范圍具有一定的局限性。
信息熵是1948年香農(nóng)提出的一個概念,用于解決對信息的量化度量問題。信息熵類似熱力學(xué)中的熱熵,是用來描述信源的不確定度[33]。如果一個系統(tǒng)越有序,信息熵越低,反之則信息熵越高。而對于可執(zhí)行程序來說,打包或加密的惡意軟件要系統(tǒng)內(nèi)部相對普通應(yīng)用軟件要混亂,因此熵也較高。根據(jù)這個特征,熵也被用于惡意軟件檢測領(lǐng)域[34 - 36]。
勒索軟件也是一類惡意軟件,文獻[37]基于熵和模糊分類算法提出了一種檢測方法。文獻中基于熵的方法指的是基于對Android 可執(zhí)行文件結(jié)構(gòu)熵的估計。獲得結(jié)構(gòu)熵是將.dex文件分成固定大小的塊,計算每塊的香農(nóng)熵,然后比較2個.dex文件的塊,以獲得相似性得分。相似性得分是基于Levenshtein距離,該值表示2個.dex文件基于相應(yīng)熵的相似度百分比。一旦獲得結(jié)構(gòu)熵,就對其進行分類,文獻評估了10 052個樣本,考慮了8種模糊分類算法,結(jié)果表明,使用FuzzyRoughNN分類算法能獲得高達84.1%的精確度。
表2總結(jié)了Android平臺勒索軟件防護技術(shù)的研究成果。其中-表示文獻中無該選項;R表示勒索軟件;M表示除勒索軟件之外的其他惡意軟件;B表示良性軟件;(R+B)或(R+M+B)表示數(shù)據(jù)集(各種類軟件的數(shù)量之和);(A/B):分子A表示正確分類的個數(shù),分母B表示測試數(shù)據(jù)集的個數(shù);s表示秒;min表示分鐘;P表示精確度。
為了對現(xiàn)有Android勒索軟件的防護技術(shù)進行比較,本文提出以下評判指標(biāo)來評估系統(tǒng)性能的高低,以克服潛在的攻擊與安全威脅。
(1)準(zhǔn)確率、精確度和誤報率:在對惡意軟件檢測過程中,檢測出的惡意樣本占所有樣本的比例即為準(zhǔn)確率;所有檢測出惡意樣本中真正為惡意樣本的比例為精確度;將檢測出的良性樣本歸為勒索樣本的比例即為誤報率。準(zhǔn)確率和精確度反映了系統(tǒng)檢測惡意樣本的能力,因此越高越好;而誤報率是指把良性樣本錯當(dāng)成惡意樣本的比例,因此越低越好。
(2)檢測速度:由于勒索軟件的加密均是難以恢復(fù)的,因此檢測速度越慢,勒索軟件加密的文件越多,用戶損失越大。
Table 2 Comparison of the schemes表2 各方案對比分析結(jié)果
(3)性能消耗:手機與PC不同,手機中的內(nèi)存和CPU是非常小的(相對PC而言),而人們對手機的響應(yīng)速度卻要求很高。因此,如果檢測系統(tǒng)的性能消耗過高,影響用戶體驗效果,則其也會被用戶摒棄。
(4)抗混淆:勒索軟件為了逃避越來越完備的檢測系統(tǒng),紛紛采取變形、加殼等一系列混淆手段以逃避檢測系統(tǒng)的檢測,而如果檢測系統(tǒng)的抗混淆能力較差,則隨著時間的推移,勒索軟件變種越來越多,該系統(tǒng)終將被淘汰。
上述指標(biāo)用于評估現(xiàn)有方案的性能,本文將其中一些指標(biāo)進一步劃分為3個層次:高、中、低,以衡量現(xiàn)有方案在多大程度上滿足每個需求。比較結(jié)果如表2所示。
根據(jù)制定的指標(biāo)和表2中的比較結(jié)果,發(fā)現(xiàn)基于靜態(tài)分析的方法性能消耗非常低、檢測速度非??欤欠浅]p量級的方法,而且誤報率較低。但是,其抗混淆變形能力較差,準(zhǔn)確率相對較低,而且針對未知的、新品種的勒索軟件的威脅識別能力也相對較差。
基于動態(tài)分析的方法中有的方案作者只進行了理論證明未經(jīng)實驗驗證,而有的方案作者只用一個勒索軟件進行驗證,因此它們的效果均有待研究。
基于混合分析的方法集中了靜態(tài)分析和動態(tài)分析的優(yōu)點,準(zhǔn)確率普遍較高且抗混淆能力較強。但是,作為第1個檢測Android平臺勒索軟件的工具——HelDroid,由于其依賴于文本檢測器,因此對語言的要求過高,具有一定的局限性,準(zhǔn)確率相對較低。GreateEatlon在HelDroid的基礎(chǔ)上進行改進,可以識別圖像中的威脅文本,能在一定程度上抗混淆。HelDroid正常情況下可以平均在4 s內(nèi)檢測出勒索軟件,但是若需動態(tài)分析威脅文本,則檢測時間降為5 min,因為動態(tài)分析帶來的性能消耗也是非常大的,因此檢測速度根據(jù)采取的方法有快慢之分。
基于形式化方法的方案準(zhǔn)確率和誤報率非常高,且由于在字節(jié)碼層次制定邏輯規(guī)則,因此抗混淆能力強,性能消耗低,但由于邏輯規(guī)則需要人工制定,因此加大了人工操作的負擔(dān)。
基于機器學(xué)習(xí)的方法是近年來研究的熱點,同樣具有準(zhǔn)確率高、檢測速度快和性能消耗低的優(yōu)點,其抗混淆能力雖然比靜態(tài)檢測方法強,但是依然有待提升。
考慮到勒索軟件加密時的隱蔽性和鎖定手機時將自定義界面置頂?shù)奶匦?,基于用戶意圖的方法被提出。該方法不僅準(zhǔn)確率高、誤報率低,而且檢測速度快、性能消耗低,是一種非常適用于日常生活中對新應(yīng)用檢查的輕量級方案。但是,其也有局限性,由于UI檢測是檢測勒索軟件的重要指標(biāo)之一,因此當(dāng)勒索軟件加密時,用戶點擊不相關(guān)按鈕可能會導(dǎo)致指標(biāo)失效。
其他勒索軟件的防護方法包括基于熵的檢測以及基于數(shù)據(jù)備份的保護方案,其中基于熵的檢測達到了84.1%的準(zhǔn)確率,但是誤報率相對較高。基于數(shù)據(jù)備份的方案備份數(shù)據(jù)非???,但是使用范圍具有一定的局限性,且大量的備份會導(dǎo)致性能下降,因此實用效果不很理想。
根據(jù)第4節(jié)對當(dāng)前Android勒索軟件防護技術(shù)的分析比較結(jié)果,發(fā)現(xiàn)現(xiàn)有的這些防護方案仍然存在不足,針對這些不足提出以下建議:
(1)從表2中得知,基于用戶意圖和機器學(xué)習(xí)的檢測方法在準(zhǔn)確率、誤報率以及檢測速度方面性能均比較高,因此,可以繼續(xù)從這2方面入手,提高他們的抗混淆能力,完善他們的方案,以檢測更多類型的勒索軟件,更加適應(yīng)勒索軟件變種的攻擊。此外,基于靜態(tài)分析的方案抗混淆能力偏低,而基于混合分析的方案抗混淆能力較高,但是其性能消耗過大,這說明動態(tài)分析方法具有較高的抗混淆能力,但也具有高耗能的特性。因此,也可以考慮從降低動態(tài)分析的能耗或提高靜態(tài)分析的抗混淆能力出發(fā),克服相應(yīng)方案的缺點,對其進行完善。基于形式化的方法準(zhǔn)確率和抗混淆能力都很高,且檢測速度相對較快,但是由于需要人工制定邏輯規(guī)則,因此比較耗時。如果可以將邏輯規(guī)則以自動化的方式快速構(gòu)建,那么采用形式化方法檢測勒索軟件將是一個非常具有優(yōu)勢的策略。
(2)現(xiàn)有的Android平臺勒索軟件的檢測方案大都是從“事后”的角度出發(fā),即勒索軟件感染手機之后,以最高精度檢測出勒索軟件和最大限度地減少用戶的損失為目標(biāo),進行勒索軟件的檢測。但是,很少有針對“事前”的方案。只有基于數(shù)據(jù)備份的方案是“事前”進行的,但該方案無法應(yīng)對數(shù)據(jù)量太大的情形,因此,應(yīng)用場景有限。因此,可以考慮從遏制勒索軟件的傳播途徑出發(fā),以降低勒索軟件進入手機的概率從而避免勒索軟件帶來的損失。
(3)HTTP流量檢測是Android平臺惡意軟件檢測最普遍的方式之一。文獻[38-42]均是通過流量檢測Android惡意軟件。而勒索軟件是一種特殊的惡意軟件,且加密型勒索軟件存在與C&C服務(wù)器流量交互的過程,因此可以嘗試通過檢測勒索軟件與C&C服務(wù)器的流量構(gòu)成其特有的簽名,達到對勒索軟件檢測的目的。
(4)針對勒索軟件的防護研究,大多數(shù)都是從“檢測”角度出發(fā),并且已經(jīng)提出了很多勒索軟件檢測與防護系統(tǒng),但是對勒索軟件溯源的研究工作相對較少,這是由于比特幣的匿名性等其他原因?qū)е伦粉櫪账鬈浖粽咦兊檬掷щy。但是,如果能通過利用網(wǎng)絡(luò)誘騙環(huán)境或者其他方式,輔助跟蹤溯源技術(shù)找到攻擊者,那么這將極大地阻止利用勒索軟件進行網(wǎng)絡(luò)犯罪的發(fā)生。
(5)由于勒索軟件攻擊最早且范圍最廣的平臺是Windows平臺,因此針對Windows平臺的勒索軟件檢測技術(shù)相對比較成熟[43-45],可以嘗試將Windows平臺中的技術(shù)沿用到Android平臺,找到更加完善的針對Android平臺的勒索軟件防護方案。
勒索軟件是最突出的惡意軟件威脅之一,由于其后果的難以恢復(fù)性受到人們的密切關(guān)注。隨著智能設(shè)備的普及,勒索軟件攻擊目標(biāo)已從PC端蔓延到Android手機平臺,給用戶造成了非常嚴(yán)重的財產(chǎn)和隱私泄露損失。本文對Android平臺勒索軟件的檢測和防護技術(shù)進行了調(diào)研,并對各防護技術(shù)進行了全面分析和比較,最后在分析結(jié)果的基礎(chǔ)上對未來的研究方向進行了探討。