胡建偉,張 玉,崔艷鵬
(西安電子科技大學網絡與信息安全學院,陜西 西安 710075)
勒索軟件是一種非常典型的惡意軟件,它通過將用戶設備鎖住或將設備中的數據以及資源加密來向用戶索要贖金進行牟利。由于勒索軟件一般采用強加密手段加密用戶數據,因此其造成的后果幾乎是不可逆轉的,由此給用戶和企業帶來了極大的隱私和安全威脅。最早的勒索軟件可以追溯到20世紀80年代末[1],但是直到近幾年才開始大規模爆發。據統計,2013年勒索軟件的數量同比增長超過500%,逐漸成為最引人注目的惡意軟件威脅之一[2]。2016年勒索軟件數量激增至170萬,被稱為“勒索軟件之年”。根據Symantec的數據報告[3],2017年勒索軟件變種的數量增加了46%,爆發范圍波及到全球。2018年,雖然勒索軟件活躍度總體降低,但是勒索軟件目標開始轉向企業,企業感染數量上升了12%,造成的危害仍然不容小覷[4]。勒索軟件最初只針對PC(Personal Computer)端使用率最大的Windows平臺,但隨著Android智能手機的快速發展,其越來越開放的應用市場和相對寬松的審查機制給了勒索軟件可趁之機。Kaspersky labs在2015年第一季度發現了1 113個針對Android設備的勒索軟件樣本。2016年手機勒索軟件再次激增,是2015年的4倍,360手機衛士共截獲Android平臺勒索軟件新增樣本17萬個。Symantec發布的2019年《互聯網安全威脅報告》[4]顯示,2018年移動設備上的勒索軟件的感染比例比2017年高出1/3,手機感染勒索軟件的事件呈急速上升趨勢。
由于手機勒索軟件越來越猖獗,Android平臺勒索軟件的預防與檢測得到人們越來越多的重視,研究人員提出了很多相關研究成果。但是,目前尚沒有系統地對Android平臺勒索軟件預防和檢測技術進行研究綜述,比較相關的是Monika等[5]和Bander等[6]的研究。前者只對Android平臺勒索軟件的發展和演變作了系統的描述,并未對Android平臺勒索軟件的預防和檢測技術做調研。后者對所有平臺的勒索軟件預防與檢測技術進行了綜述,但是針對Android平臺的調研只有3篇相關文獻?,F在針對Android平臺勒索軟件的預防與檢測技術已取得較多的進展,需要重新歸納總結。因此,本文搜索了IEEE Explorer、ACM數據庫、Springer數據庫和Elsevier數據庫中目前為止所有針對Android平臺勒索軟件的防護技術,全面分析比較了不同技術的優缺點,并對未來的研究方向進行了探討。
勒索軟件是一種惡意軟件,其根本目的是迫使用戶交付贖金以重新獲取系統的訪問權。勒索軟件可分為2類:鎖屏勒索軟件與加密勒索軟件。鎖屏勒索軟件顧名思義,是指能將用戶設備鎖定,然后在屏幕上顯示一條付款消息。加密勒索軟件則是對設備中的數據資源進行加密,使用戶無法訪問。
2017年,臭名昭著的WannaCry勒索軟件在全球范圍內大爆發,主要針對用戶量大的Windows平臺。受其影響,WannaLocker勒索軟件以類似的方式攻擊Android平臺,它偽裝成游戲插件,誘騙用戶下載啟動。這個偽插件會對外部存儲中的數據進行編碼并使用對稱加密算法AES(Advanced Encryption Standard)加密這些文件。完成加密后,在屏幕上將顯示一條勒索信息。
2017年,另一個臭名昭著的勒索軟件是DoubleLocker,DoubleLocker通過對受攻擊的網站以冒充Adobe Flash更新的形式傳播,它是第一個濫用Android可訪問性的勒索軟件,而這通常是Android銀行木馬用來竊取銀行憑證的手段。
另一種特別的勒索軟件名為LeakerLocker,LeakerLocker不像通常的勒索軟件對文件進行加密,而是威脅用戶手機中保存的個人數據。侵入設備后,LeakerLocker會收集盡可能多的私人信息,然后顯示一份贖金通知,說明所有的個人數據都已被復制到攻擊者的云端,并且表示除非支付贖金,否則這些信息都將發給所有受害人的聯系人。
(1)鎖屏。
鎖屏勒索軟件通過獲得管理權限鎖定智能手機屏幕。鎖屏勒索軟件主要有2種方式,一種是利用WindowManager.LayoutParams通過控制flags屬性設置一個特殊的全屏窗口并置頂;另一種則是通過激活設備管理器的方式,設置系統的鎖屏密碼,導致無法進入系統操作界面[7,8]。該類型的勒索軟件目標明確,通常針對特定的設計漏洞。鎖屏勒索軟件實現流程如圖1所示。

Figure 1 Implementation process of lock ransomware圖1 鎖屏勒索軟件實現流程
(2)文件加密。
加密勒索軟件通常采用對稱加密算法AES進行加密,但也有勒索軟件采用對稱加密和非對稱加密混合加密的強加密方式,因此文件一旦被加密幾乎很難在沒有密鑰的情況下恢復。加密使用的加密密鑰通常在二進制文件中以純文本的形式進行硬編碼或者通過與命令與控制C&C(Command & Control)服務器交互獲得。加密勒索軟件的實現流程如圖2所示。

Figure 2 Implementation process of encrypted ransomware圖2 加密勒索軟件實現流程
(3)C&C服務器通信。
安裝成功后,大多數Android勒索軟件會向C&C服務器發送報告,現代勒索軟件主要通過C&C服務器獲取密鑰。勒索軟件會與C&C服務器建立一個永久的C&C通信通道,用來一直監聽并執行來自勒索軟件攻擊者發送的命令,這樣就建成了由攻擊者控制的受感染Android設備的網絡。這些命令除了顯示索要贖金的警告信息,還包括向所有設備中的聯系人發送郵件、訪問消息、關閉WiFi、關閉移動數據、跟蹤用戶的全球定位系統信息等等。
(4)權限許可。
與其他惡意軟件相比,勒索軟件沒有明顯的惡意行為,相反,勒索軟件在打開彈出窗口、文件加密等方面與良性軟件十分相似。ACCESS_NETWORK_STATE、READ_PHONE_STATE和INTERNET是勒索軟件和惡意軟件普遍要求的權限,因此這些權限與服務器進行網絡通信是必須的。而考慮到勒索軟件特有的行為,其更加傾向于與設備請求相關的權限,如WALK_LOCK、DISABLE_KEYGUARD、SYSTEM_ALERT_WINDOW、KILL_BACKGROUND_PROCESS、GET_TASK等。勒索軟件會在智能手機重啟后顯示警告勒索信息。劫持活動是鎖定手機的主要任務。
(5)勒索警告信息。
勒索就需要向用戶顯示警告信息,用來顯示贖金的金額、支付方式、地址以及期限等。大多數勒索軟件要求通過比特幣等加密貨幣的方式支付贖金,達到隱藏攻擊者身份的目的。除此之外,有的勒索軟件顯示的警告信息包含恐嚇內容,如Locker勒索軟件,它聲稱在用戶的設備發現了色情圖片必須要交罰金,否則將向FBI報告的警告信息。
Android平臺勒索軟件預防與檢測的研究成果非常多,本文按照檢測方法的差異將其歸納為基于程序分析方法、形式化方法、機器學習方法、用戶意圖、數據備份和結構熵6大類。
程序分析方法一般分為靜態分析、動態分析和混合分析。靜態分析是在程序不運行的情況下,利用自動化靜態分析工具(如IDA Pro)對程序源碼進行分析的技術。在分析Android可執行文件時,需要首先對可執行程序進行逆向工程,并通過分析逆向工程得到的文件查找惡意代碼和資源,常見的有:可疑字符串、可疑圖像、可疑操作碼序列等靜態資源。動態分析則是在程序運行的狀態下,通過監控程序的運行,找到與惡意程序相似的模式或行為。混合分析則是靜態分析與動態分析的結合,檢測精度更高。3種方法的比較如表1所示。

Table 1 Comparison of three program analysis methods表1 3種程序分析方法的比較
3.1.1 基于靜態分析方法
文獻[9]基于靜態分析方法提出了實時檢測方法RansomGuard,該方法從大量樣本中提取出勒索軟件的典型特征,如權限、威脅文本等,然后利用模塊化規則歸納學習算法得到分類規則。文獻[9]的作者采用2 721個勒索軟件和5 396個良性樣本作為數據集,準確率最高可達95.3%且誤報率僅為0.6%。此外,針對性能測試,發現系統平均花費5 s就能彈出警告。但是,由于RansomGuard是建立在靜態分析的基礎上,因此使用代碼加密、反射等混淆技術會使得某些特征無法提取,導致準確率降低。
Maiorca等[10]利用靜態方法提取API包構建了模型R-PackDroid,對Android勒索軟件進行檢測。該模型不依賴于勒索軟件加密的先驗知識,只依賴于應用程序中API包及其調用頻率,檢測精度比HelDroid高,但是其抗混淆能力較差,因此誤報率較高。
由于只用靜態分析方法檢測勒索軟件準確率無法滿足用戶需求,Kanwal等[11]將靜態分析方法進行了拓展,除了使用靜態分析方法從文本和圖像中檢測勒索軟件威脅信息外,還提供了硬件交互,在用戶遭受鎖屏勒索軟件侵害的情況下,通過使用廣播接收器多次按下電源按鈕取得屏幕的控制權。此外,該應用程序提供了一個功能—將重要文件上傳到在線服務器,以避免文件被加密型勒索軟件加密無法恢復的情況。但是,作者只用了一個特定的應用程序進行實驗,因此其通用性和性能有待測試。
3.1.2 基于動態分析方法
文獻[12]提出了一種動態分析方法。該方法包含3個模塊:配置模塊、監控模塊和處理模塊。配置模塊負責將重要文件所在區域注冊到監控模塊的監視列表,將監控模塊檢測到的用戶處理注冊到數據庫;監控模塊負責監控進程對CPU(Central Processing Unit)、內存、I/O(Input/Output)和文件的操作;一旦檢測到可疑進程就將信息發送到處理模塊,強制停止該進程并向用戶詢問對該進程的處理。由于該方法可以在Android源代碼中實現,因此檢測速度可以非常快,但是無法檢測到帶有威脅文本和鎖型勒索的軟件。此外,因為此方法只檢測CPU和I/O使用中的異常行為,模擬攻擊可以避開這種檢測。
文獻[13]提出了一種能保護隱私和檢測勒索軟件的應用程序—Sdguard。該應用程序基于Linux DAC機制細粒度的權限控制檢測加密型和鎖型勒索軟件。當一個外部應用程序對文件進行操作時,Sdguard首先根據訪問控制列表檢查其權限,并將所有的I/O操作轉存到日志文件,通過分析日志文件檢測惡意行為;同時,Sdguard檢測Android系統的活動堆棧,如果發現存在應用程序長時間處于頂層堆棧,則將其視為鎖型勒索軟件并殺死相應的進程,不過遺憾的是該技術尚未經過實踐檢驗。
3.1.3 基于混合分析方法
2015年,第1個用于Android勒索軟件檢測的混合分析方法—HelDroid被提出[14]。該工具包括基于自然語言處理NLP(Natural Language Processing)監督分類器的威脅文本檢測器、使用靜態污點分析跟蹤文件加密流的加密檢測器和基于輕量級仿真技術的啟發式鎖定檢測器3個組件。該工具的主要弱點是依賴于文本檢測器,因此通過字符串加密和混淆等技術可輕易繞過。此外,由于此工具很大程度上依賴于語言詞典,因此需要考慮不同語言。從性能來說,該工具在443個樣本中識別出375個勒索軟件,由于語言問題而未檢測出11個,在12 842個樣本中誤報了9個,即誤報率約為0.07%。
2017年,Zheng等[15]進一步拓展了HelDroid,并命名為GreatEatlon。該工具改進了加密檢測器和文本檢測器,增加了設備管理API濫用的檢測,能檢測勒索軟件通過圖像傳達的威脅文本,在一定程度上反字符串混淆。此外,該工具還采用監督學習分類算法進行輕量級的預過濾,以區分良性軟件和可疑軟件。但是,該工具仍未克服過度依賴文本檢測器的弱點,此外如果勒索軟件將威脅文本分割存儲在多個圖像中,則圖像探測器將失效。
文獻[16]指出靜態分析具體可以從Android系統的訪問權限、API調用序列、提取偽裝成資源文件的可執行程序以及驗證簽名4個方面進行分析;動態分析則從敏感路徑、惡意域名獲取、惡意收費以及權限繞過這些角度進行檢測。但是,該方法仍處于提案層面,沒有得到實施,因此沒有任何結果能證明其有效性。
2017年,Gharib等[17]提出了一個實時檢測Android勒索軟件的方法DNA-Droid。它首先使用靜態分析方法掃描應用程序,然后對可疑應用程序用動態分析方法進一步檢查。該方法使用深度學習技術對已知分類的數據集進行訓練。靜態分析模塊是從文本分類、圖像分類、API調用以及權限許可進行分析;動態分析模塊則通過在沙箱中運行檢測其API調用序列,周期為5 min。DNA-Droid具有98.1%的準確率和低于1.5%的虛警率。但是,該方法具有一個明顯的缺點:嚴重混淆的勒索軟件可以繞過靜態分析檢測,從而避免動態分析。
由于混合靜態動態檢測方法準確率比較高,2018年Ferrante等[18]也作了這方面的研究。他們同時采用了基于操作碼使用頻率的靜態分析,以及基于CPU、內存、網絡的使用率以及系統調用信息的動態分析。研究表明,該方法的準確率能達到100%且誤報率低于4%。但是,該方法需要20~60 s才能檢測到勒索軟件,這個過程有可能會給用戶帶來比較大的文件損失。
文獻[19]提出了一種基于結構相似性的檢測方案RanDroid。該方案使用靜態分析技術從解析后的APK文件中提取字符串文本和圖像,使用動態分析技術捕獲應用程序活動,若檢測到存在威脅文本提示或鎖定屏幕,則提取文本并截獲圖像。之后與數據庫中存儲的勒索軟件的文本與圖像進行對比,超過閾值則認為是勒索軟件并報警。通過100個勒索軟件與200個良性軟件組成數據集進行實驗,實驗準確率達到91%。但是,由于該方案不能識別英語之外的其他語言,因此漏報率較高。此外,若應用程序中包含太多書籍或雜志的相關文本,誤報率也較高。
在計算機科學中,形式化方法是建立在邏輯演算、形式語言、自動機理論等理論基礎之上,對計算機系統進行描述和分析的一系列符號與技術的集合[20]。使用形式化方法是使用適當的數學分析以提高設計的可靠性和健壯性,使用形式化的規范語言來定義系統的每個特性。該語言非常特殊并采用了一種包含對象、關系和規則組件的獨特語法,這些組件可以驗證每個特性的正確性[21]。
文獻[22]描述了一種基于形式化方法的檢測方法。該方法能檢測勒索軟件并能識別出勒索軟件中的惡意代碼部分。評估了由勒索軟件與良性軟件組成的2 477個樣本集,召回率為99%。此外,該方法針對Java字節碼而不是源代碼,因此不需要反編譯。但是,該方法的主要弱點在于構建邏輯規則需要人工操作。
后來,Cimitile等[23]在此基礎上進行了拓展,提出了基于模型檢測的工具Talos。此方法主要通過Java字節碼識別勒索軟件,通過字節碼而不是直接在源代碼上檢測,具有獨立于源代碼編程語言,不需要反編譯,且能反混淆等眾多優點。文獻[23]評估該工具的檢測準確率達99%。但是,當從Java字節碼派生出形式化模型后,需要手工制定邏輯規則,用于判斷勒索軟件的惡意行為。
機器學習是依靠模式和推理對用于執行特定任務的算法和統計模型的計算機系統的科學研究[24]。學習的過程需要訓練數據來尋找某種模式,以實現對任意例子都能做出更好的決策或預測。隨著物聯網時代的到來,人工智能學科正發展得如火如荼,在勒索軟件檢測領域中機器學習也發揮著重要作用。
Karimi等[25]提出將可執行指令序列轉換為灰度圖像,使用隱含狄利克雷分布LDA(Latent Dirichlet Allocation)從中選擇最佳操作碼,作為區分勒索軟件和良性軟件的特征,最后用LDA對應用程序進行分類。LDA主要用于尋找特征的線性組合,以便將對象分離。文獻[25]測試了280個樣本集,準確率可達97.3%。
文獻[26]提出了一種使用機器學習的工具R-PackDroid。檢測分為預處理、特征提取和分類。預處理從可執行代碼中提取DexCode;特征提取則從DexCode所在的代碼行提取API包;分類器則根據監督學習算法訓練的結果將其分類。該工具的主要思想是通過靜態分析分析 API包的Dalvik字節碼。文獻評估了8 304個樣本,對勒索軟件的檢測精確度為97%和誤報率為1%;對普通惡意軟件的檢測精確度和誤報率分別為85%和2%,且能對抗反混淆技術。但是,由于R-PackDroid完全依賴于靜態分析,因此它會受到一些固有限制。例如,不可能分析在運行時加載特征碼或加密類的勒索軟件,而且它只能使用已知的訓練樣本檢測新的勒索軟件。
文獻[27]介紹了一種基于操作碼的加密勒索軟件檢測方法。首先使用IDA Pro自動提取樣本中的操作碼(443個);然后構建操作碼的密度直方圖,并歸一化作為特征向量;最后用WEKA中的2-classes SMO分類器、6-classes SMO分類器以及8個特征簡約模型進行分類。實驗結果表明,使用2-classes SMO分類器可以達到100%的檢測精確度,使用6-classes SMO的精確度可達到96.5%。此外,使用CorrelationAttributeEval過濾器可以使操作碼減低至180個,且沒有檢測精確度損失。使用CFSSubset濾波器可使操作碼降為10個,但檢測準確率降低為94.2%。
隨著鎖型勒索軟件越來越多,對用戶的財產和隱私也構成了巨大威脅,Su等[28]系統地分析了中國社交網絡中的鎖型勒索軟件并提出了一種輕量級、自動化的檢測方法。首先對其反匯編提取6類顯示文本和后臺操作特征,然后用4種機器學習算法集成檢測。實驗結果表明,該方法準確率可達99.98%。此外,由于良性軟件和鎖型勒索軟件通常不會對小部件混淆,因此從配置小部件(布局文件、字符串資源和反編譯代碼)中提取的文本特征能克服代碼混淆和root shell帶來的影響。但是,樣本集中只有301個勒索軟件,因此結果的準確度有待詳細證明。
考慮到正常應用程序在執行敏感操作時會提醒用戶,而勒索軟件執行加密操作時則必須在后臺運行或顯示欺騙窗口來隱藏自身,Chen等[29]從用戶意圖的角度出發,提出了一種新的實時檢測系統—RansomProber。該系統通過分析相關Activity的用戶界面小部件和用戶手指移動的坐標,推斷出文件加密操作是否由用戶發起,從而檢測加密型勒索軟件。RansomProber的檢測分為3個模塊:加密分析、Foreground分析和Layout分析。加密分析通過分析加密前后文件的信息熵的變化來判定文件是否進行加密;Foreground負責確定加密過程是否是前臺應用程序觸發,如不是則很可能不被用戶所知;最后通過Layout模塊進一步分析用戶界面UI(User Interface)小部件以及操作坐標,來確定文件加密對用戶來說是否是已知的,進而確定應用程序是否是加密型勒索軟件。RansomProber能以很高的準確率—99%檢測加密型勒索軟件,誤報率不到1%,并且文件損失和運行時的內存消耗也很小。但是,如果勒索軟件重新打包那些能加密或壓縮的應用程序將突破此系統。針對RansomProber的缺點,Ko等[30]對其進行了改進并結合文獻[31]提出了一種能實時檢測未知勒索軟件的新方法。該方法理論上能提高檢測未知勒索軟件的準確率,但是未經實驗驗證,因此實際效果未知。
由于勒索病毒一般采用強加密算法,因此在沒有密鑰的情況下很難恢復,而如果提前進行數據備份,就能完全避免由勒索軟件加密帶來的損失。Yalew等[32]提出了一種基于數據備份的解決方案——RANSOMSAFEDROID。它是一種基于TrustZone的備份服務,定期將文件備份到一個安全的本地存儲,并將其發送到外部存儲、遠程服務器或云計算服務。最初,該方案對整個設備的文件系統進行完整備份,然后進行增量備份。文獻[32]在一臺手機設備上進行了測試,初始備份在設備運行之前進行,因此不考慮其時間長短;運行備份與備份文件的多少有關,11 MB的文件需要3 s和100個文件需要4.1 s;空備份大約2 s。但是,由于大多數商業支持的TrustZone在手機中不被允許使用,因此該系統的使用范圍具有一定的局限性。
信息熵是1948年香農提出的一個概念,用于解決對信息的量化度量問題。信息熵類似熱力學中的熱熵,是用來描述信源的不確定度[33]。如果一個系統越有序,信息熵越低,反之則信息熵越高。而對于可執行程序來說,打包或加密的惡意軟件要系統內部相對普通應用軟件要混亂,因此熵也較高。根據這個特征,熵也被用于惡意軟件檢測領域[34 - 36]。
勒索軟件也是一類惡意軟件,文獻[37]基于熵和模糊分類算法提出了一種檢測方法。文獻中基于熵的方法指的是基于對Android 可執行文件結構熵的估計。獲得結構熵是將.dex文件分成固定大小的塊,計算每塊的香農熵,然后比較2個.dex文件的塊,以獲得相似性得分。相似性得分是基于Levenshtein距離,該值表示2個.dex文件基于相應熵的相似度百分比。一旦獲得結構熵,就對其進行分類,文獻評估了10 052個樣本,考慮了8種模糊分類算法,結果表明,使用FuzzyRoughNN分類算法能獲得高達84.1%的精確度。
表2總結了Android平臺勒索軟件防護技術的研究成果。其中-表示文獻中無該選項;R表示勒索軟件;M表示除勒索軟件之外的其他惡意軟件;B表示良性軟件;(R+B)或(R+M+B)表示數據集(各種類軟件的數量之和);(A/B):分子A表示正確分類的個數,分母B表示測試數據集的個數;s表示秒;min表示分鐘;P表示精確度。
為了對現有Android勒索軟件的防護技術進行比較,本文提出以下評判指標來評估系統性能的高低,以克服潛在的攻擊與安全威脅。
(1)準確率、精確度和誤報率:在對惡意軟件檢測過程中,檢測出的惡意樣本占所有樣本的比例即為準確率;所有檢測出惡意樣本中真正為惡意樣本的比例為精確度;將檢測出的良性樣本歸為勒索樣本的比例即為誤報率。準確率和精確度反映了系統檢測惡意樣本的能力,因此越高越好;而誤報率是指把良性樣本錯當成惡意樣本的比例,因此越低越好。
(2)檢測速度:由于勒索軟件的加密均是難以恢復的,因此檢測速度越慢,勒索軟件加密的文件越多,用戶損失越大。

Table 2 Comparison of the schemes表2 各方案對比分析結果
(3)性能消耗:手機與PC不同,手機中的內存和CPU是非常小的(相對PC而言),而人們對手機的響應速度卻要求很高。因此,如果檢測系統的性能消耗過高,影響用戶體驗效果,則其也會被用戶摒棄。
(4)抗混淆:勒索軟件為了逃避越來越完備的檢測系統,紛紛采取變形、加殼等一系列混淆手段以逃避檢測系統的檢測,而如果檢測系統的抗混淆能力較差,則隨著時間的推移,勒索軟件變種越來越多,該系統終將被淘汰。
上述指標用于評估現有方案的性能,本文將其中一些指標進一步劃分為3個層次:高、中、低,以衡量現有方案在多大程度上滿足每個需求。比較結果如表2所示。
根據制定的指標和表2中的比較結果,發現基于靜態分析的方法性能消耗非常低、檢測速度非???,是非常輕量級的方法,而且誤報率較低。但是,其抗混淆變形能力較差,準確率相對較低,而且針對未知的、新品種的勒索軟件的威脅識別能力也相對較差。
基于動態分析的方法中有的方案作者只進行了理論證明未經實驗驗證,而有的方案作者只用一個勒索軟件進行驗證,因此它們的效果均有待研究。
基于混合分析的方法集中了靜態分析和動態分析的優點,準確率普遍較高且抗混淆能力較強。但是,作為第1個檢測Android平臺勒索軟件的工具——HelDroid,由于其依賴于文本檢測器,因此對語言的要求過高,具有一定的局限性,準確率相對較低。GreateEatlon在HelDroid的基礎上進行改進,可以識別圖像中的威脅文本,能在一定程度上抗混淆。HelDroid正常情況下可以平均在4 s內檢測出勒索軟件,但是若需動態分析威脅文本,則檢測時間降為5 min,因為動態分析帶來的性能消耗也是非常大的,因此檢測速度根據采取的方法有快慢之分。
基于形式化方法的方案準確率和誤報率非常高,且由于在字節碼層次制定邏輯規則,因此抗混淆能力強,性能消耗低,但由于邏輯規則需要人工制定,因此加大了人工操作的負擔。
基于機器學習的方法是近年來研究的熱點,同樣具有準確率高、檢測速度快和性能消耗低的優點,其抗混淆能力雖然比靜態檢測方法強,但是依然有待提升。
考慮到勒索軟件加密時的隱蔽性和鎖定手機時將自定義界面置頂的特性,基于用戶意圖的方法被提出。該方法不僅準確率高、誤報率低,而且檢測速度快、性能消耗低,是一種非常適用于日常生活中對新應用檢查的輕量級方案。但是,其也有局限性,由于UI檢測是檢測勒索軟件的重要指標之一,因此當勒索軟件加密時,用戶點擊不相關按鈕可能會導致指標失效。
其他勒索軟件的防護方法包括基于熵的檢測以及基于數據備份的保護方案,其中基于熵的檢測達到了84.1%的準確率,但是誤報率相對較高。基于數據備份的方案備份數據非???,但是使用范圍具有一定的局限性,且大量的備份會導致性能下降,因此實用效果不很理想。
根據第4節對當前Android勒索軟件防護技術的分析比較結果,發現現有的這些防護方案仍然存在不足,針對這些不足提出以下建議:
(1)從表2中得知,基于用戶意圖和機器學習的檢測方法在準確率、誤報率以及檢測速度方面性能均比較高,因此,可以繼續從這2方面入手,提高他們的抗混淆能力,完善他們的方案,以檢測更多類型的勒索軟件,更加適應勒索軟件變種的攻擊。此外,基于靜態分析的方案抗混淆能力偏低,而基于混合分析的方案抗混淆能力較高,但是其性能消耗過大,這說明動態分析方法具有較高的抗混淆能力,但也具有高耗能的特性。因此,也可以考慮從降低動態分析的能耗或提高靜態分析的抗混淆能力出發,克服相應方案的缺點,對其進行完善?;谛问交姆椒蚀_率和抗混淆能力都很高,且檢測速度相對較快,但是由于需要人工制定邏輯規則,因此比較耗時。如果可以將邏輯規則以自動化的方式快速構建,那么采用形式化方法檢測勒索軟件將是一個非常具有優勢的策略。
(2)現有的Android平臺勒索軟件的檢測方案大都是從“事后”的角度出發,即勒索軟件感染手機之后,以最高精度檢測出勒索軟件和最大限度地減少用戶的損失為目標,進行勒索軟件的檢測。但是,很少有針對“事前”的方案。只有基于數據備份的方案是“事前”進行的,但該方案無法應對數據量太大的情形,因此,應用場景有限。因此,可以考慮從遏制勒索軟件的傳播途徑出發,以降低勒索軟件進入手機的概率從而避免勒索軟件帶來的損失。
(3)HTTP流量檢測是Android平臺惡意軟件檢測最普遍的方式之一。文獻[38-42]均是通過流量檢測Android惡意軟件。而勒索軟件是一種特殊的惡意軟件,且加密型勒索軟件存在與C&C服務器流量交互的過程,因此可以嘗試通過檢測勒索軟件與C&C服務器的流量構成其特有的簽名,達到對勒索軟件檢測的目的。
(4)針對勒索軟件的防護研究,大多數都是從“檢測”角度出發,并且已經提出了很多勒索軟件檢測與防護系統,但是對勒索軟件溯源的研究工作相對較少,這是由于比特幣的匿名性等其他原因導致追蹤勒索軟件攻擊者變得十分困難。但是,如果能通過利用網絡誘騙環境或者其他方式,輔助跟蹤溯源技術找到攻擊者,那么這將極大地阻止利用勒索軟件進行網絡犯罪的發生。
(5)由于勒索軟件攻擊最早且范圍最廣的平臺是Windows平臺,因此針對Windows平臺的勒索軟件檢測技術相對比較成熟[43-45],可以嘗試將Windows平臺中的技術沿用到Android平臺,找到更加完善的針對Android平臺的勒索軟件防護方案。
勒索軟件是最突出的惡意軟件威脅之一,由于其后果的難以恢復性受到人們的密切關注。隨著智能設備的普及,勒索軟件攻擊目標已從PC端蔓延到Android手機平臺,給用戶造成了非常嚴重的財產和隱私泄露損失。本文對Android平臺勒索軟件的檢測和防護技術進行了調研,并對各防護技術進行了全面分析和比較,最后在分析結果的基礎上對未來的研究方向進行了探討。