楊世新,范九倫,黃文華,韓 剛
(西安郵電大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,陜西 西安 710121)
隨著工業(yè)互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)技術(shù)在工業(yè)領(lǐng)域的應(yīng)用明顯加快,工業(yè)設(shè)備受到勒索病毒的攻擊成為了一種新趨勢。勒索病毒最初是攻擊者通過敲詐、恐嚇或威脅等方式控制計算機用戶數(shù)據(jù)資產(chǎn)或計算資源,運用各種不可逆的加密算法對用戶數(shù)據(jù)或工控系統(tǒng)中的文件進行加密的一類惡意代碼。被勒索病毒加密的文件一般無法通過常規(guī)方法解密,用戶必須向黑客繳付高額贖金,才能拿到解密所需的特殊密鑰。然而,勒索病毒不斷更新升級迭代,產(chǎn)生了許多新的變種,并包含了一些新特點。例如,勒索病毒采用比特幣與Tor網(wǎng)絡(luò)[1]相結(jié)合的方式獲取勒索到的贖金。這兩項技術(shù)具有追蹤溯源難的特點,可以在很大程度上保證攻擊者匿名性,免于法律的追責(zé)。此外,勒索病毒的操縱者們又從性價比的角度出發(fā),攻擊目標(biāo)從“廣撒網(wǎng)”改到精準(zhǔn)投放,打擊關(guān)鍵的高價值目標(biāo)。從最初面向個人消費者的攻擊,逐漸改變攻擊策略,演變成有高度針對性和定向性的企業(yè)級安全攻擊,把宿主由個人用戶向供應(yīng)企業(yè)轉(zhuǎn)移[2]。2020年3月,隨著新冠肺炎的爆發(fā),一款名為“COVID19 Tracker”的勒索病毒也借著新冠肺炎的熱度,在全球范圍內(nèi)瘋狂傳播。該病毒要求企業(yè)在48小時內(nèi)支付100美元,否則將刪除其所有數(shù)據(jù)。根據(jù)調(diào)查顯示,2020年勒索病毒每月對企業(yè)發(fā)動的攻擊頻率隨時間推移也在不斷升高,5月達到了峰值。45%的勒索病毒攻擊發(fā)生在北美,其次是歐洲31%和亞洲18%[2]。在針對這些目標(biāo)企業(yè)的攻擊中,漲幅最大的為制造業(yè),2018年到2020年增長了接近3倍。
在勒索病毒中,目前最為流行的是Maze、REvil、Sodinokibi、Ryuk、NetWalker和WannaCry等家族[3],這些病毒快速產(chǎn)生了很多新變種,通過使用修改特征碼、加花指令、加殼和修改導(dǎo)入表等新技術(shù)增加了勒索病毒檢測的難度[4]。同時,勒索病毒也從單純的加密勒索演變到加密與數(shù)據(jù)勒索并存,“雙重勒索”成為新常態(tài)。攻擊者即便無法成功加密文件,仍可以通過盜取數(shù)據(jù)進行勒索。勒索病毒制造者與網(wǎng)絡(luò)犯罪團伙的合作也越來越頻繁,成立“勒索聯(lián)盟”實施“雙重勒索”的案例也不斷增多。例如,美國某石化公司就曾被Maze病毒勒索,公開的數(shù)據(jù)里包含了大量利益相關(guān)的敏感信息,包括客戶名單、員工信息和天然氣流量數(shù)據(jù)等。2020年8月,Sodinokibi病毒[2]試圖攻擊一家美國的制酒工廠,該工廠很快識別并在系統(tǒng)被加密前阻止了攻擊,但攻擊者還是竊取到了1 TB敏感信息并泄露到了自建的拍賣網(wǎng)站。上述案例充分顯示了工業(yè)企業(yè)面對雙重勒索時受到的巨大威脅?!半p重勒索”使工業(yè)企業(yè)不僅面臨數(shù)據(jù)泄露風(fēng)險,而且還要承受違反相關(guān)法律法規(guī)、聲譽受到影響的壓力。企業(yè)對已被竊取的數(shù)據(jù)沒有控制權(quán),也無從得知在支付贖金之后攻擊者們會如何處置這些數(shù)據(jù)[2]。此外,一旦支付了贖金,實際證實了這種方式的可行性,反而會激勵“勒索聯(lián)盟”發(fā)起更多的勒索攻擊。
針對勒索病毒多元化的技術(shù)、專業(yè)化的攻擊方式,不得不思考其背后存在的原因。首先是勒索病毒自身的特點,如制作成本低(技術(shù)細節(jié)公開、暗網(wǎng)公開售賣代碼)、犯罪成本低、攻擊方式簡單以及贖金收益高。其次,勒索軟件即服務(wù)RaaS ( Ransomware-as-a-Service)的出現(xiàn)為勒索病毒的發(fā)展提供了便利,典型的勒索病毒家族有 Cerber和GandCrab。若勒索病毒將目標(biāo)轉(zhuǎn)向工業(yè)設(shè)備,比起個人用戶遭遇勒索病毒,危害更大、損失程度也更重,且目前對于勒索病毒的防范、檢測和破解等技術(shù)還不夠完善[5]??紤]到工業(yè)設(shè)備在工業(yè)企業(yè)中的特殊性,即便部分設(shè)備感染勒索病毒,也可能造成整個生產(chǎn)線停工,甚至可能通過工控系統(tǒng)威脅到設(shè)備的物理安全。因此,從減少損失的角度看,使用其他手段恢復(fù)系統(tǒng)正常的代價遠高于支付贖金,運營管理者很難有其他選擇。工業(yè)企業(yè)正在成為勒索病毒攻擊的重點領(lǐng)域,網(wǎng)絡(luò)安全已成為急需面臨的重要問題。
在對抗勒索病毒的相關(guān)研究中,國內(nèi)關(guān)于勒索病毒的防御方法,尤其是Android工業(yè)設(shè)備勒索病毒的防御方法多以分析與報告的形式為主。 相較于國內(nèi),國外關(guān)于工業(yè)設(shè)備中移動端勒索病毒防御的研究也不多見。舉例來說,Wang等[6]提出了一種針對于移動端設(shè)備的安全勒索軟件防御策略MimosaFTL,通過利用Flash存儲的獨特特性抵御勒索病毒,但缺陷也十分明顯,因為其引入了額外的硬件。Hirano等[7]使用機器學(xué)習(xí)實現(xiàn)了實時勒索軟件樣本檢測系統(tǒng),通過對比定義樣本的特征,從而區(qū)分勒索軟件與具有類似勒索軟件行為的正常應(yīng)用程序。類似地,Kim等[8]利用日志信息區(qū)分勒索病毒。但這兩種方法都是動態(tài)檢測,動態(tài)檢測的不足是無法窮舉所有可能路徑,可能存在很大的漏報。Scalas 等[9]利用應(yīng)用程序接口(Application Programming Interface,API)的權(quán)限篩選勒索病毒,通過匹配事先設(shè)定好的勒索病毒API列表,對勒索病毒實現(xiàn)篩選。類似地,Alsoghyer[10]也提出了利用API的調(diào)用關(guān)系檢測勒索病毒的方案。這兩種方案都是靜態(tài)檢測,而靜態(tài)檢測的缺陷是靜態(tài)檢測非常依賴于檢測特征,無法檢測新型的勒索病毒,不能像動態(tài)檢測一樣實時監(jiān)控勒索病毒的勒索行為并加以制止。Gharib等[11]提出了一種基于神經(jīng)網(wǎng)絡(luò)的勒索病毒檢測方法,與其他基于人工智能的檢測方法類似,該檢測方法對于訓(xùn)練樣本的數(shù)量和質(zhì)量有較高要求,不能大規(guī)模地推廣和應(yīng)用。
區(qū)別于上述方案,依據(jù)勒索病毒的分類,結(jié)合勒索病毒多項靜態(tài)特征及文件信息熵的檢測,擬設(shè)計一種基于Android動靜融合工業(yè)設(shè)備勒索病毒檢測系統(tǒng)。該系統(tǒng)由動態(tài)分析和靜態(tài)分析兩大模塊組成。動態(tài)分析主要通過在模擬的Android環(huán)境中運行文件,計算信息熵的變化判斷是否為勒索病毒。靜態(tài)分析主要通過進行代碼分析判斷是否為勒索病毒。動態(tài)分析和靜態(tài)分析同時進行、相互配合,以期高效快速地檢測出勒索病毒。
勒索病毒[12]是一種攻擊者通過敲詐、恐嚇或威脅等方式控制數(shù)據(jù)資產(chǎn)或計算資源,使其無法正常使用的病毒。在Android系統(tǒng)中,勒索病毒通過網(wǎng)絡(luò)、OTG(On-The-Go)接口和重打包文件技術(shù)等方式進入設(shè)備,誘使完成安裝,并通過文件加密、恐嚇勒索、重要信息勒索和限制使用等方式,最終實現(xiàn)向工業(yè)設(shè)備所在企業(yè)勒索贖金的目的。勒索病毒的整個生命周期如圖1所示。
圖1 Android勒索病毒生命周期
勒索病毒從危害形式上可以分為恐嚇詐騙類、加密類、機密信息泄露類和限制使用類等4個變種??謬樤p騙類病毒通過彈框、發(fā)送恐嚇郵件等方式,恐嚇受害企業(yè)交納贖金,這類病毒危害較小,防范也較為容易,只要用戶有一定的辨識能力即可。加密類病毒較為常見,主要攻擊方式就是對重要文件進行加密,只有繳納贖金之后,才會向受害企業(yè)發(fā)送解密密鑰,解密文件,此類病毒危害較大,且難以防治。機密信息泄露類病毒通過偷取企業(yè)的機密信息(如企業(yè)財報)或商業(yè)隱私信息(如標(biāo)書)等,用泄露信息進行要挾,騙取受害企業(yè)錢財。限制使用類病毒是基于Android的工業(yè)互聯(lián)網(wǎng)設(shè)備中最為普遍的勒索病毒,通過鎖屏、覆蓋應(yīng)用窗口和鎖定進入界面等方式限制企業(yè)正常使用工業(yè)設(shè)備,影響企業(yè)的正常生產(chǎn),迫使企業(yè)向勒索者繳納贖金。
Android系統(tǒng)下的代碼檢測技術(shù)主要分為動態(tài)惡意代碼檢測技術(shù)與靜態(tài)惡意代碼檢測技術(shù)。動態(tài)惡意代碼檢測技術(shù)[13]首先需要搭建安全的沙箱環(huán)境,同時包含必備的Android虛擬機,將Android應(yīng)用程序包(Android Application Package,APK)進行動態(tài)執(zhí)行。通過監(jiān)聽日志、文件狀態(tài)等信息,綜合分析運行后產(chǎn)生的變化,對應(yīng)用是否為惡意軟件進行相應(yīng)判斷。靜態(tài)惡意代碼檢測技術(shù)[14]涉及到的技術(shù)較多,主要通過反編譯技術(shù)將應(yīng)用逆向為smali代碼與資源文件,再通過解析其中的邏輯或者尋找惡意特征,確定是否為惡意代碼。一般采用鑒別應(yīng)用程序簽名、查看權(quán)限列表、核對API調(diào)用函數(shù)序列和檢測資源文件等篩選特征的方法。
1)鑒別應(yīng)用程序簽名。該簽名與密碼學(xué)的簽名略有不同。按照密碼學(xué)的理解,對不同文件進行簽名,產(chǎn)生的簽名信息也不會相同。而一個Android應(yīng)用程序的簽名,實際上并不是開發(fā)者對于該APK程序的簽名,而是指開發(fā)者對于自身信息的簽名,其性質(zhì)類似于公鑰證書。同一類型的APK程序的不同版本,簽名是相同的,甚至不同APK屬于同一程序開發(fā)者的簽名也是相同的。因此,雖然簽名信息相對于其他靜態(tài)信息非常容易提取,但是,其檢測的準(zhǔn)確性是最低的。
2)查看權(quán)限列表。APK完成不同的功能,就需要申請不同的權(quán)限。例如,完成發(fā)短信的功能,就要申請短信發(fā)送的權(quán)限,所有的權(quán)限都需要在Android的配置文件Mainfest.xml中進行注冊[15]。權(quán)限的本質(zhì)實際上是Android系統(tǒng)對于命名空間資源劃分的一種拓展,APK以注冊權(quán)限的形式,將自身歸屬到某一特定資源的組內(nèi),共享組內(nèi)資源。
3)核對API調(diào)用函數(shù)序列。APK的函數(shù)調(diào)用序列代表應(yīng)用程序的執(zhí)行邏輯。如完成文件加密任務(wù),需要調(diào)用讀文件函數(shù)、加密函數(shù)和寫文件函數(shù)等很多系統(tǒng)級的函數(shù)。通過對比數(shù)據(jù)庫和指定規(guī)則,可以對APK的邏輯進行檢測,判斷一個應(yīng)用程序是否為惡意。
4)檢測資源文件。資源文件指的是APK中特定的引用資源,如圖片、字符串等。舉例來說,string.xml保存了所有的字符串資源,而style保存了主題相關(guān)資源[15]。某些惡意的函數(shù)會帶有很多特定的資源文件,這些資源文件也可以成為甄別惡意應(yīng)用的特征。
信息論是關(guān)于研究信息量、信息熵、信息通信系統(tǒng)和信息壓縮等問題的應(yīng)用理論,信息量是信息論中最基本的概念。信息熵[16]是描述信源的不確定性的一種度量,能有效地表現(xiàn)數(shù)據(jù)的集中和分散情況,主要用來反映一個事件的不確定性程度。變量的不確定性越大,熵也就越大,所含的信息量也就越大。
假設(shè)一個概率系統(tǒng)中同時存在N個事件,記為X=xi,i∈{1,2,3…N}。若xi發(fā)生的概率為Pi,則當(dāng)xi發(fā)生后,由N個事件計算出的信息熵表達式[16]為
另一方面來看,加密的本質(zhì)就是要將信息的分布打亂,讓原本所含信息量豐富的文件,變?yōu)榭此齐s亂無章、毫無信息量的文件,這樣的加密才被認為是安全的加密方法[17]。因此,可引入信息論中信息熵的概念判斷文件是否被加密。
基于Android動靜融合工業(yè)設(shè)備勒索病毒檢測系統(tǒng)主要包括基本信息提取、簽名分析、源碼提取器、源碼分析、信息熵檢測進程和綜合分析器等多個組件。檢測的基本流程分為動態(tài)分析與靜態(tài)分析兩個模塊,同步進行。動態(tài)分析模塊主要利用APK程序監(jiān)測進程監(jiān)聽文件的變化,對文件本身狀態(tài)是否發(fā)生改變、是否被加密進行監(jiān)聽,判斷加密類勒索病毒。靜態(tài)分析模塊則需要對APK應(yīng)用程序進行反編譯,通過分析文件資源、API調(diào)用函數(shù)和權(quán)限組合等信息,比對勒索病毒代碼基本特征,確定是否為勒索病毒。系統(tǒng)的整體設(shè)計與實現(xiàn)如圖2所示。
圖2 系統(tǒng)整體設(shè)計與實現(xiàn)
系統(tǒng)核心算法是通過輸入APK進行動態(tài)和靜態(tài)分析并進行綜合判斷該APK是否為勒索病毒,具體步驟如下。
步驟1輸入一個應(yīng)用程序APK和敏感API集APIset,作為關(guān)鍵輸入信息。
步驟2自動載入APK。對APK進行逆向,并將得到的信息載入內(nèi)存。
步驟3在內(nèi)存中對APK的信息與敏感API集合進行比較,如果匹配,則將其列入勒索病毒的序列。
步驟4對APK進行動態(tài)分析,運行APK在虛擬環(huán)境中。
步驟5在一定時間內(nèi),假如檢測到APK運行了加密函數(shù),則把APK加入到勒索病毒集合中。
步驟6將勒索病毒集合呈現(xiàn)匯報給用戶。
系統(tǒng)框架核心算法用偽代碼表述如下。
Input:APK,APIset;
Load(APK);
APKinfo=Decomple(APK);
If(APKinfo.contains(APIset))
Malset.add(APK);
Run(APK);
While(encryptiondetected())
Malset.add(APK);
If Malset!=null;
alertUser();
勒索病毒動態(tài)分析模塊主要就是信息熵檢測進程。通過對工業(yè)設(shè)備中的文件的信息熵數(shù)值進行監(jiān)測,分析變化過程,計算穩(wěn)定狀態(tài)下文件的二進制熵值與加密狀態(tài)下文件信息熵值的取值范圍,從而判斷文件是否為加密文件。
在具體的實現(xiàn)過程中,主要是通過APK安裝一個監(jiān)聽程序,以線程的方式監(jiān)聽文件的信息量變化。在APK運行時,通過Observer實例化一個觀察者組件,對文件系統(tǒng)的變化實施監(jiān)聽。文件觀察者作為觀察者的子類,可以輕松地對一個文件生命周期的所有狀態(tài)實施監(jiān)聽。如新建、刪除和更名等。
監(jiān)聽過程中,一旦有文件發(fā)生變化,系統(tǒng)則會進一步對這種變化進行捕捉,對變化序列實行判斷。舉例來說,加密類勒索病毒的行為進行排列組合無非兩種:第一種,讀取源文件,新建加密文件,刪除源文件;第二種,讀取源文件,新建加密文件,覆蓋源文件。如果通過進程監(jiān)聽,發(fā)現(xiàn)短時間內(nèi)忽然出現(xiàn)大量的上述序列,則很有可能是遭受了加密類勒索病毒的攻擊。而判斷一個文件是否被加密,主要方法就是信息熵檢測。
相對于動態(tài)分析模塊,靜態(tài)分析模塊功能更為復(fù)雜,其輸入是一個完整的APK文件,需要依次經(jīng)過基本信息提取、簽名分析、源碼提取、權(quán)限分析、API調(diào)用分析和資源文件分析等6個部分進行細致分析完成檢測。
1)基本信息提取。APK文件首先要經(jīng)過基本信息提取組件進行基本信息的提取,通過對Mainfest.xml文件進行初步解析,獲取文件包名、API版本號等唯一確定APK的信息。
2)簽名分析。APK的簽名可以初步篩選出一批勒索病毒。如APK的簽名并不是開發(fā)者對于該APK程序的簽名,而是指開發(fā)者對于自身信息的簽名,其性質(zhì)類似于公鑰證書。因此,不同APK,屬于同一程序開發(fā)者的簽名也是相同的。實際上,有一些惡意開發(fā)者專門以開發(fā)勒索病毒為業(yè),所有的勒索病毒都是由同一程序開發(fā)者生成,并且該程序開發(fā)者還制作了病毒生成器,可以批量產(chǎn)生不同種類、功能各異的勒索病毒。
3)源碼提取。該部分基于APKTool,主要用于將一個APK文件反編譯為源碼文件與資源文件。APKTool是谷歌原生態(tài)的一款反編譯工具,以小巧和易用著稱。將APKTool封裝進源碼提取過程,對APKTool進行功能上的改進,使其可以在反編譯的每個狀態(tài)都發(fā)出對應(yīng)的信號,系統(tǒng)就可以實時對APKTool的反編譯進程實施監(jiān)控,確定關(guān)鍵的執(zhí)行節(jié)點,用以指導(dǎo)和激活下一步的檢測流程。
4)權(quán)限分析。不同功能的APK擁有不同的權(quán)限組合,以一個勒索病毒為例,其所含的權(quán)限可以根據(jù)其功能很容易地進行區(qū)分。前文提到的幾種常見的勒索病毒,除了恐嚇類病毒沒有特定的權(quán)限組合之外,其余的病毒都有固定的特征性的權(quán)限組合。如加密類的勒索病毒,所具有的權(quán)限通常由文件讀寫權(quán)限所組成,即WRITE_EXTERNAL_STORAGE和UNMOUNT_FILESYSTEMS等。另外,例如偷取隱私的勒索病毒,除了具有文件讀寫權(quán)限之外,還應(yīng)具有網(wǎng)絡(luò)權(quán)限INTERNET,用以將偷取的隱私傳往外界。而限制使用類病毒,由于要將自身界面強制置頂,需要監(jiān)聽進程自身是否置頂,這就需要權(quán)限GET_TASKS。
5)API調(diào)用分析。這部分主要對于反編譯出來的源碼進行分析,通過APKTool反編譯之后產(chǎn)生的源碼主要是smali源碼,和Java的代碼有很多相似之處,非常易于程序化處理。不同的調(diào)用序列表示了不同的程序處理邏輯,通過函數(shù)名篩選等方法,可以重構(gòu)出函數(shù)執(zhí)行和調(diào)用關(guān)系,還原出程序原本功能。如一個加密類的勒索病毒,首先第一步需要進行窮舉性質(zhì)的遍歷,由File.listFiles()函數(shù)配合完成。其次,對函數(shù)進行加密,在源碼中會存在大量的FileInputStream或者FileOutputStream,這些函數(shù)在smail中的函數(shù)名和在Java中的函數(shù)名完全一樣。再如,一個利用PIN(Personal Identification Number)碼鎖屏的勒索病毒,則會用到DevicePolicyManager對象和resetPassword函數(shù)。如果是一個強制置頂?shù)睦账鰽PK,則需要設(shè)置FLAG_NEW_TASK標(biāo)簽和FLAG_FULLSCREEN 標(biāo)簽。通過對API調(diào)用序列的準(zhǔn)確構(gòu)建,可以很快還原出絕大多數(shù)的函數(shù)功能。
6)資源文件分析。資源文件檢測與傳統(tǒng)的檢測不同,傳統(tǒng)的檢測往往不注重這部分內(nèi)容的檢測,因為資源文件的表示形式千差萬別,而且與程序的邏輯并不密切。而勒索病毒則恰恰相反,在勒索病毒的資源文件中,含有很多勒索病毒特有的特征,尤其是以下兩類資源文件更應(yīng)該著重關(guān)注。第一類資源文件是內(nèi)置的庫文件。庫文件指的是Android程序自身在實現(xiàn)功能時候,外部引入的代碼函數(shù)集合,通過庫文件,程序可以完成某些復(fù)雜的函數(shù)功能而不需要特別冗余的代碼,因為庫文件中已經(jīng)將大部分的邏輯都完成了。庫文件特征選擇需要依據(jù)勒索病毒選擇加密算法種類,現(xiàn)已有專門針對高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES)、RSA等加密算法[18]的加密庫文件,將其作為勒索病毒的特征確定應(yīng)用程序是否為惡意,就能在一定程度上篩選勒索病毒。另一類資源文件是字符串資源文件及圖片資源文件。勒索病毒為了實現(xiàn)勒索的目的,往往會在自身界面中內(nèi)置提示框或字符串,通知用戶繳納贖金,一旦字符串或者圖片資源中出現(xiàn)諸如“贖金、比特幣、勒索、加密、鎖定”等敏感詞匯,很可能就是勒索病毒。
為了驗證基于Android動靜融合工業(yè)設(shè)備勒索病毒檢測系統(tǒng)的有效性,從安智市場通過爬蟲軟件下載1 000個正常應(yīng)用程序,從VirusTotal上收集對工業(yè)設(shè)備影響較大的加密類和鎖屏類勒索病毒,共 600個勒索病毒樣本,辨別其中348個加密類勒索病毒以及252個鎖屏類勒索病毒。測試樣本集合如圖3所示。
圖3 測試樣本集合
在Windows 10操作系統(tǒng)的筆記本電腦上安裝夜神模擬器7.0.1.9,建立基于Android的操作環(huán)境,將整個檢測系統(tǒng)安裝到模擬器中運行,靜態(tài)掃描組件對測試樣本進行靜態(tài)掃描,利用編寫好的腳本自動安裝運行所有測試樣本,同時啟動動態(tài)檢測組件進行確認,匯總得出結(jié)果集,計算準(zhǔn)確率和誤報率。
利用所設(shè)計的勒索病毒檢測系統(tǒng)對600個勒索病毒樣本進行辨別,準(zhǔn)確率高達99.5%(597/600)。這是因為該系統(tǒng)采用動態(tài)檢測和靜態(tài)檢測相結(jié)合的方式,針對加密類勒索病毒,通過熵值檢測文件加密特征判斷勒索病毒,全部成功檢出。針對鎖屏類勒索病毒,檢測調(diào)用鎖屏API特征,僅有3個漏報的病毒。通過分析病毒,發(fā)現(xiàn)漏報的病毒全部是強制置頂類的勒索病毒,該病毒中存在了大量的代碼混淆邏輯,強制置頂類的勒索病毒本身特征不明顯,加上混淆之后,非常容易被誤認為是正常的APK,還需要進一步優(yōu)化。
對1 000個應(yīng)用程序進行檢測,誤報率為0.5%(5/1000)。分析誤報的樣本發(fā)現(xiàn),該勒索病毒檢測系統(tǒng)關(guān)于加密類勒索病毒設(shè)置的權(quán)限還沒有調(diào)節(jié)到理想范圍內(nèi)。如加密類應(yīng)用程序包‘ua.org.linsalion.FilesCrypter’存在過多加密解密類等敏感代碼,如DesEncryptor,非常容易被檢測為勒索病毒。
綜上,雖然該勒索病毒檢測系統(tǒng)目前還存在一些缺陷,但是準(zhǔn)確率高、誤報率低,適應(yīng)于絕大多數(shù)基于Android的工業(yè)互聯(lián)網(wǎng)設(shè)備的勒索病毒檢測。
為了證明基于Android動靜融合工業(yè)設(shè)備勒索病毒檢測系統(tǒng)不會引入過多的時間開銷,分別對動態(tài)分析和靜態(tài)分析兩個模塊的消耗時間進行實驗評估,統(tǒng)計結(jié)果分別如圖4和圖5所示。在實驗過程中,動態(tài)分析模塊記錄了100次檢測中系統(tǒng)的時間開銷。對于靜態(tài)分析模塊,隨機挑選600個勒索病毒中的100個進行了靜態(tài)掃描測試,并記錄每次完成掃描所耗費的時間。
圖4 動態(tài)分析模塊消耗時間
由圖4可以看出,在動態(tài)分析中,系統(tǒng)的時間延遲均在1 s以內(nèi),平均時長為583 ms,時間分布主要集中在380 ms~800 ms,可及時發(fā)現(xiàn)并終止勒索病毒。
圖5 靜態(tài)分析模塊消耗時間
由圖5可以看出,在多次靜態(tài)分析中,耗時均在1 min之內(nèi),平均時長只需要30 s,時長分布主要集中在13~48 s,部分程序甚至達到了1 s的檢測速度。這是因為某些惡意代碼的簽名已經(jīng)被系統(tǒng)記錄,所以可以根據(jù)簽名很快進行判斷?;谏鲜鰷y試結(jié)果,該勒索病毒檢測系統(tǒng)時間開銷不大、速度較快、效率較高。
為了進一步驗證基于Android動靜融合工業(yè)設(shè)備勒索病毒檢測系統(tǒng)的有效性,將該系統(tǒng)與VirSCAN 檢測工具的檢測結(jié)果進行對比。VirSCAN是一款病毒在線檢測工具,其中包含了多個針對Android病毒的流行殺毒檢測引擎。同樣使用圖3中的1 600樣本進行檢測,VirSCAN檢測誤報率和準(zhǔn)確率分別為0.9%(9/1000)和86.8%(521/600)。顯然,該系統(tǒng)對基于Android的勒索病毒檢測結(jié)果的誤報率更低、準(zhǔn)確率更高。
基于Android動靜融合工業(yè)設(shè)備勒索病毒檢測系統(tǒng)根據(jù)勒索病毒的分類特征,采用動態(tài)分析與靜態(tài)分析相結(jié)合的方式,能夠較好地篩選出勒索病毒,彌補該領(lǐng)域現(xiàn)存技術(shù)的不足。未來,希望繼續(xù)提升檢測的精確度,主要目標(biāo)在下面兩個方面,第一,進一步實驗,確定加密類勒索病毒的最佳權(quán)重,減少誤報。第二,嘗試引入函數(shù)調(diào)用圖等方式,對勒索病毒進行進一步檢測,避免由于代碼混淆等方式帶來的漏報。