国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android應(yīng)用威脅等級評估技術(shù)的設(shè)計與實現(xiàn)

2021-01-08 08:43:20吳潤浦
信息安全研究 2021年1期
關(guān)鍵詞:漏洞應(yīng)用程序威脅

劉 林 劉 亮 張 磊 吳潤浦

1(四川大學網(wǎng)絡(luò)空間安全學院 成都 610065) 2(中國信息安全測評中心 北京 100085)

(withliulin@qq.com)

據(jù)最近的一份報告[1]顯示,僅在2019年Android移動端新增惡意程序樣本約180.9萬個,從漏洞數(shù)量看,Android系統(tǒng)以414個漏洞位居產(chǎn)品漏洞數(shù)量榜首,已對移動終端安全造成極大威脅,針對Android惡意軟件的研究已成為熱門.

在針對Android惡意應(yīng)用程序的評估和檢測方面,采用靜態(tài)分析為主的有:McLaughlin等人[2]提出了基于對反匯編程序的原始操作碼序列的靜態(tài)分析來執(zhí)行惡意應(yīng)用程序分類,從而實現(xiàn)無需手動設(shè)計惡意應(yīng)用程序的功能;高楊晨等人[3]提取Android應(yīng)用的DEX文件,然后將其轉(zhuǎn)換成灰度圖像并放入CNN中進行訓練分類,具有較高的分類準確率和泛化性能;Sanz等人[4]提出了利用靜態(tài)分析檢測的方法,通過確定Android應(yīng)用程序是否有被過度授權(quán)以判斷應(yīng)用程序的惡意與否;Fang等人[5]提出了采用基于多核學習的特征融合算法分類的方法,將Android應(yīng)用程序的DEX文件轉(zhuǎn)換為圖像和純文本,再從中提取特征加強分類效果;Sarma等人[6]則采用的是觀察關(guān)鍵權(quán)限的申請?zhí)卣鱽韺ndroid惡意應(yīng)用程序進行檢測評估;Liang等人[7]利用權(quán)限申請組合來識別惡意應(yīng)用程序,以及Barrera等人[8]提出基于權(quán)限使用自組織映射進行實證分析惡意軟件,進一步提升了靜態(tài)分析識別的準確度.除了靜態(tài)分析方法外,還有通過動態(tài)分析對惡意應(yīng)用程序進行評估和檢測:Enck等人[9]提出利用動態(tài)污點跟蹤和分析惡意程序,最終實現(xiàn)同時跟蹤多個敏感數(shù)據(jù)源;Kapratwar等人[10]提出了一種新的混合測試輸入產(chǎn)生方法以提高代碼覆蓋率,從而在動態(tài)分析中發(fā)現(xiàn)更多的惡意行為;Singh等人[11]提出了利用數(shù)據(jù)分類技術(shù),將應(yīng)用程序的系統(tǒng)調(diào)用行為構(gòu)造成特征向量,最后利用特征排序技術(shù)提高識別惡意應(yīng)用程序的準確率;Zhou等人[12]利用惡意家族來對Android惡意應(yīng)用程序進行系統(tǒng)化、特征化處理,提升了對變種惡意應(yīng)用程序的檢測率.

針對Android惡意應(yīng)用程序檢測分級,國內(nèi)外的研究現(xiàn)狀如下:Peng等人[13]提出了風險評估應(yīng)該考慮到流行應(yīng)用程序的高權(quán)限請求效率、社區(qū)評級、開發(fā)人員網(wǎng)站的可用性和開發(fā)人員發(fā)布的應(yīng)用程序數(shù)量,但這種方法并不能直接從請求權(quán)限進行判斷,效率并不高;李永鋒[14]提出利用敏感API數(shù)據(jù)依賴特征,通過分析數(shù)據(jù)流以獲得其中的依賴關(guān)系,利用機器學習來訓練模型,最后實現(xiàn)對惡意程序的檢測分類和描述,但針對應(yīng)用程序的分析還停留在字節(jié)碼階段,沒有深入分析到本地代碼,處理方法并不全面;黃心依等人[15]提出利用權(quán)限、Intent Action和是否使用第三方代碼以作為進行惡意應(yīng)用程序的檢測與判斷的參考,并利用卡方檢驗算法和因子分析權(quán)數(shù)法來構(gòu)建評估模型,但該文提出的安全等級評估模型的計算公式僅僅采用因子權(quán)數(shù)法確定安全值的權(quán)重.

針對上述問題,本文提出一種惡意應(yīng)用程序威脅等級評估方法,主要的研究工作和貢獻包括:

1) 設(shè)計實現(xiàn)一種靜態(tài)分析技術(shù),對APK文件進行反編譯,提取應(yīng)用程序的權(quán)限,利用漏洞特征信息和動態(tài)分析技術(shù),獲取應(yīng)用程序的行為特征;

2) 設(shè)計實現(xiàn)一種基于信息增益篩選計算權(quán)限、行為特征的方法,得出更利于區(qū)分正常應(yīng)用程序和惡意應(yīng)用程序的特征,有利于后續(xù)的應(yīng)用程序計算分數(shù);

3) 提出一種基于樸素貝葉斯的Android惡意軟件威脅等級劃分模型,設(shè)計基于樸素貝葉斯的函數(shù),對應(yīng)用程序進行打分,根據(jù)分數(shù)來劃分應(yīng)用的威脅等級;

4) 基于上述方法,設(shè)計實現(xiàn)一種移動應(yīng)用程序威脅等級的劃分規(guī)則,依據(jù)特征集中特征的分類來進行,針對權(quán)限和行為特征,等級的評估通過設(shè)計函數(shù)計算應(yīng)用程序所得分數(shù),再根據(jù)分數(shù)來進行等級的評估,最后根據(jù)《信息安全技術(shù)安全漏洞等級劃分指南》綜合判斷漏洞特征的等級.

1 相關(guān)技術(shù)背景

1.1 靜態(tài)分析

靜態(tài)分析[16]指的是在不運行應(yīng)用程序的前提下,將應(yīng)用程序通過逆向工具進行分析,掌握其實現(xiàn)的功能和其代碼是如何運行的,研究惡意代碼的第1步通常也是進行靜態(tài)檢測分析,它也是一個分析程序指令與結(jié)構(gòu)來確定功能的過程.靜態(tài)分析主要有兩大類:特征碼分析和源代碼分析.特征碼分析指的是針對應(yīng)用程序的操作序列、二進制文件、函數(shù)的調(diào)用序列進行分析,然后再將獲得的特征碼與所建立的惡意代碼庫中的特征碼進行比對匹配.源代碼分析[17]則指的是利用逆向工具來處理APK文件,將其逆向得到可見源代碼,然后通過分析文件的源代碼的運行流程和所調(diào)用的API函數(shù)來判斷其是否具備惡意性.

靜態(tài)分析檢測出來的結(jié)果可靠性較高,且不需要運行,這樣也可以減少檢測時間,但往往容易受到惡意代碼加殼技術(shù)的限制.

1.2 動態(tài)分析

動態(tài)分析[18]指的是將目標文件放置在虛擬機或者沙盒中運行,然后對其表現(xiàn)出來的行為進行檢測記錄,動態(tài)分析分為狀態(tài)對比和行為跟蹤[19].狀態(tài)對比指的是通過對比文件運行前后系統(tǒng)的文件結(jié)構(gòu)來推測該文件是否有對系統(tǒng)作出修改以及哪些修改,再從這些操作中判斷行為的惡意與否,這種方法缺點在于只是記錄了系統(tǒng)文件結(jié)構(gòu)的前后變化,鑒于系統(tǒng)文件結(jié)構(gòu)變化還有可能是因為一些相互作用而導致的,所以誤判率較高,不確定因素過大.行為跟蹤則是直接對測試文件進行行為檢測,通過誘導該文件,觸發(fā)它作出其所有的行為,再記錄該文件在沙盒或是模擬器中所表現(xiàn)出來的行為,然后再判斷這些行為的惡意與否,這種方法具有實時性的優(yōu)點[20],但在誘導文件作出它所有的行為具有一定的難度,尤其有一些文件可以檢測虛擬機的功能時,這種方法就比較難實現(xiàn).

1.3 樸素貝葉斯模型

樸素貝葉斯模型[21]是在假設(shè)各特征之間樸素獨立的條件下,通過運用貝葉斯定理進行的簡單概率生成模型.樸素貝葉斯模型的思想基礎(chǔ)即是針對給出的需要進行分類的項,計算設(shè)計Android應(yīng)用威脅等級評估規(guī)則的設(shè)計與實現(xiàn)得出在該項出現(xiàn)的條件下,其中每個類別出現(xiàn)的概率.樸素貝葉斯分類定義如下:

1) 設(shè)χ={α1,α2,…,αm}為1個需要分類處理的項,每個α為χ的1個特征屬性.

2)C={μ1,μ2,…,μn}為類別集合.

3) 計算P(μ1|χ),P(μ2|χ),…,P(μn|χ).

4) 若P(μk|χ)=max{P(μ1|χ),P(μ2|χ),…,P(μn|χ)},則χ屬于C中的μk類.

而在本文中,樸素貝葉斯模型應(yīng)用于針對計算樣本的得分,便于直觀展示測試樣本的威脅程度.

1.4 信息增益算法

信息增益的定義即指通過計算信息熵的有效減少量,來評估系統(tǒng)的有序化程度.在信息增益的計算過程中,是否選擇該特征[22],其衡量標準是通過計算觀察這個特征能給待檢測的分類系統(tǒng)帶來信息量的多與少,帶來的信息量越多,該特征就越重要.在本系統(tǒng)中,對于待檢測的特征A,分別計算系統(tǒng)包含它時的信息量(即信息熵)和不包含它時的信息量(即條件熵)各是多少,再取其差值,即得出特征A給系統(tǒng)帶來的信息量.根據(jù)式(1)計算系統(tǒng)本身的信息熵:

(1)

再根據(jù)式(2)計算每個特征的信息增益,最后再將每個特征按照信息增益值的大小進行排序:

(2)

在本文中,信息增益主要用于在特征庫選取特征,信息增益值可以用來展示哪些特征與惡意應(yīng)用程序和正常應(yīng)用程序關(guān)聯(lián)度最高,并且在保證與惡意應(yīng)用程序關(guān)聯(lián)度高的同時,能與正常應(yīng)用程序區(qū)分開來.

2 Android應(yīng)用威脅等級評估方案設(shè)計

本文的Android應(yīng)用威脅等級評估方案利用靜態(tài)分析、動態(tài)分析、漏洞分析分別得出待篩選的權(quán)限、行為、漏洞特征;再通過信息增益計算篩選構(gòu)建用于等級評估的特征庫;最后,設(shè)計威脅等級評估規(guī)則,從多個維度進行評估.其實現(xiàn)框架如圖1所示:

圖1 評估技術(shù)框架圖

2.1 建立特征庫

特征提取從豌豆莢分別在:影音播放、系統(tǒng)工具、通信社交、手機美化、新聞閱讀、攝影圖像、考試學習、網(wǎng)上購物、金融理財、生活休閑、旅行出游、健康運動、辦公商務(wù)、育兒親子共14個類別里下載大量正常樣本.

2.1.1 權(quán)限特征庫建立

使用Spyder軟件進行權(quán)限特征提取.正常樣本和惡意樣本的各特征出現(xiàn)頻率統(tǒng)計結(jié)果分別如表1和表2所示.

在正常樣本中,應(yīng)用程序所申請的頻率處于前列的分別是“android. permission. ACCESS_NETWORK_STATE”“android. permission. INTERNET”“android. permission. ACCESS_WIFI_STATE”,這些權(quán)限分別是用于檢測手機的網(wǎng)絡(luò)連接狀態(tài),進行網(wǎng)絡(luò)連接,檢測當前的WiFi情況.在惡意應(yīng)用程序樣本中,權(quán)限使用的頻率與正常樣本有所不同,從表2中可以看出,使用頻率處于前列的分別是“android. permission.INTERNET”“android. permission. READ_PHONE_STATE”“android. permission. WRITE_EXTERNAL_STORAGE”,這些權(quán)限分別是用于手機進行網(wǎng)絡(luò)連接、讀取電話狀態(tài)以及寫入外部存儲數(shù)據(jù),可以明顯看出正常樣本申請的權(quán)限和惡意應(yīng)用程序樣本申請的權(quán)限是存在差別的.

得到初步結(jié)果后,分別計算其信息增益,并按照從大到小的順序排列,如表3所示.

從表3可以看出有部分權(quán)限對系統(tǒng)的貢獻,以及與惡意樣本的關(guān)聯(lián)度高的同時能保持與正常樣本特征區(qū)分開來.由此選擇帶給系統(tǒng)信息增益量前12的權(quán)限特征作為最終選入特征庫中的權(quán)限特征.

表1 正常應(yīng)用程序樣本權(quán)限統(tǒng)計

表2 惡意應(yīng)用程序樣本權(quán)限統(tǒng)計

續(xù)表2

表3 權(quán)限信息增益量

2.1.2 漏洞特征庫建立

漏洞庫是根據(jù)具體漏洞所對應(yīng)的特征來建立的一個數(shù)據(jù)庫.建立好漏洞特征庫之后,可以通過反編譯,將獲取到的APK文件的源碼與漏洞特征庫里所記錄的特征進行匹配分析,判斷該APK是否存在相關(guān)漏洞.本文對漏洞的主要檢測點有:敏感信息硬編碼、證書校驗缺陷、證書完整性、加密算法誤用、Log敏感信息泄露、組件權(quán)限控制、自定義權(quán)限保護級別、文件掃描安全、AndroidMainifest.xml文件配置不當、組件權(quán)限控制等

在建立好漏洞特征庫后,同權(quán)限特征的提取做法相似,也是利用靜態(tài)分析,將APK文件進行逆向分析,獲取到APK文件源代碼后,通過Python腳本來對文件代碼逐行讀取搜索:定位漏洞代碼所在行數(shù),輸出該行內(nèi)容,最后可以得出文件是否有利用漏洞以及利用的是哪種漏洞的結(jié)果.

2.1.3 行為特征庫建立

首先將下載的正常樣本和惡意樣本運行在Android模擬器中進行動態(tài)分析,本文的動態(tài)分析模塊由控制端和模擬端2部分組成,控制端中搭建了Python2.7環(huán)境,利用Python腳本實現(xiàn)對模擬器端的控制以及控制樣本的上傳和樣本數(shù)據(jù)的下載.為盡可能獲得各類樣本的行為特征,模擬器端利用了Android SDK中自帶的AVD模擬器,AVD模擬器可以用來模擬手機運行環(huán)境,并且模擬器可以任意設(shè)置Android系統(tǒng)的各個版本、部分手機型號以及手機的配置信息.行為特征提取流程圖如圖2所示:

圖2 行為特征提取流程圖

在圖2中,首先在控制端將樣本傳送到模擬器端進行安裝,通過自動化運行讓樣本在模擬器中運行起來;其次在控制端植入Python腳本即可利用控制執(zhí)行腳本來控制模擬器端里面的預(yù)置程序;然后獲取APK文件動態(tài)特征;最后再執(zhí)行腳本,將數(shù)據(jù)傳送到控制端,記錄該應(yīng)用程序中調(diào)用了哪些涉及到敏感行為的函數(shù),例如未經(jīng)用戶允許向別人撥打電話或發(fā)送短信以及發(fā)送用戶的GPS信息.

這里,本文將提取到的行為特征分為以下15類,如表4所示:

表4 提取到的行為特征類別

續(xù)表4

每一類中再設(shè)置敏感API用以文件分析提取相關(guān)信息后比對.

2.2 威脅等級評估規(guī)則設(shè)計

2.2.1 權(quán)限特征評估規(guī)則

根據(jù)權(quán)限特征庫的建立過程可知,參與評估應(yīng)用程序的一共有12條權(quán)限,根據(jù)這些權(quán)限,本文的評估規(guī)則方案提出需要建立一個威脅評分函數(shù),該函數(shù)具有單調(diào)性、典型性、直觀性的特點:單調(diào)性即保證申請規(guī)則中的權(quán)限更多的應(yīng)用程序得分一定會比申請規(guī)則中權(quán)限更少的應(yīng)用程序高;典型性則指的是能保證眾所周知的惡意應(yīng)用程序通常應(yīng)該具有高風險分數(shù);直觀性則期望該函數(shù)定義明確,簡單易懂,讓用戶易于理解.

本文使用樸素貝葉斯模型進行威脅評分,首先設(shè)立一個具有12個屬性值的一維向量υ=[λ1,λ2,…,λ12],將其所有屬性值設(shè)置為初始值0,接著需要計算各權(quán)限請求頻率θi:

(3)

得到請求頻率θi后,根據(jù)式(4)計算得出該APK文件的概率分布:

(4)

最后根據(jù)式(5)計算得出該APK文件所得分數(shù):

score=-lnP(χi).

(5)

2.2.2 漏洞特征評估規(guī)則

漏洞設(shè)置好檢測點后,還需根據(jù)其影響系統(tǒng)的具體部署情況,結(jié)合《信息安全技術(shù)安全漏洞等級劃分指南》中給出的漏洞危害等級綜合判斷漏洞的危害程度,來對漏洞的等級進行劃分.漏洞的等級劃分參考標準主要是3個方面:訪問路徑、利用復雜度和影響程度,其中訪問路徑又被分為本地、鄰接和遠程.通常將可以被遠程控制進而利用的漏洞的威脅等級設(shè)置高于會被鄰接利用的漏洞的威脅等級,會被鄰接利用的漏洞的威脅等級又高于在本地會被利用的漏洞的威脅等級;利用復雜度中則是越簡單的漏洞設(shè)置的威脅等級越高;最后在影響程度中的威脅等級劃分則是按照影響程度越大威脅等級越高來進行劃分的.

漏洞庫收錄的威脅等級為高、中、低的部分漏洞如表5~7所示:

表5 威脅等級為高的部分漏洞

表6 威脅等級為中的部分漏洞

表7 威脅等級為低的部分漏洞

2.2.3 行為特征評估規(guī)則

在行為特征提取部分,將提取到的行為特征分為16類.而根據(jù)行為特征來評估威脅等級則是根據(jù)該APK文件調(diào)用的敏感API次數(shù)來確定的,如表8所示,即記錄有部分敏感API調(diào)用:

表8 部分敏感API表

之后的處理方法與權(quán)限特征評估規(guī)則類似,根據(jù)概率生成模型設(shè)計函數(shù),最后計算得出該APK文件所得分數(shù)

3 實驗結(jié)果分析

實驗環(huán)境配置如表9所示:

表9 實驗環(huán)境配置表

3.1 權(quán)限特征評估結(jié)果

根據(jù)特征庫中的12個權(quán)限,首先需要計算各權(quán)限特征其對應(yīng)的請求頻率θi,再將特征向量12個屬性值分別全置為0和1,然后根據(jù)算法公式計算該計算系統(tǒng)的最低分和最高分.

由計算結(jié)果可知,權(quán)限計算分數(shù)最大值約為18.210 4,最小值約為3.821 8,滿足單調(diào)性的計算所得分數(shù)均處在這個分數(shù)區(qū)域內(nèi).利用Python腳本結(jié)合Matplotlib可以畫出其對應(yīng)的值,其中橫坐標的值的二進制形式表示對應(yīng)的特征向量,再根據(jù)分數(shù)進行高中低3個威脅等級的劃分,結(jié)果如圖3所示:

圖3 權(quán)限特征向量值對應(yīng)分數(shù)圖

3.2 漏洞特征評估結(jié)果

根據(jù)漏洞特征評估規(guī)則以及識別方法,上傳惡意樣本后可以給出其是否有利用漏洞,以及利用的漏洞級別,上傳樣本文件后得到漏洞分析結(jié)果如圖4所示:

圖4 漏洞特征向量值對應(yīng)分數(shù)圖

在圖4中,系統(tǒng)可以檢測出樣本文件所利用的漏洞名稱和對應(yīng)的危險等級及詳細內(nèi)容.

3.3 行為特征評估結(jié)果

行為特征威脅等級評估與權(quán)限特征威脅等級評估方法相同,通過統(tǒng)計大量樣本文件調(diào)用的敏感API次數(shù),計算得出其調(diào)用頻率θi,再得出行為特征中API調(diào)用頻率集合,再根據(jù)算法公式計算預(yù)估能得到的最低分和最高分,若滿足單調(diào)性的計算所得分數(shù)將會均處在這個分數(shù)區(qū)域內(nèi).利用Python腳本結(jié)合Matplotlib可以畫出其對應(yīng)的值,其中橫坐標的值的二進制形式表示對應(yīng)的特征向量,同樣再根據(jù)分數(shù)進行高中低3個威脅等級的劃分,得到的結(jié)果如圖5所示.

圖5 行為特征向量值對應(yīng)分數(shù)圖

在圖5中,特征向量值取0時取得最低分數(shù),即16.297 1,而在特征向量值取最大時,對應(yīng)也取得了最高的分數(shù)43.784 3,其余所有取得分數(shù)均在兩者之間,從圖5中也能明顯直觀地發(fā)現(xiàn)這一點,由此也驗證了設(shè)計函數(shù)具有單調(diào)性的特點,設(shè)計實現(xiàn)也是較為成功的.

4 總 結(jié)

本文設(shè)計實現(xiàn)了一種Android應(yīng)用威脅等級評估技術(shù),主要分為2部分:特征庫的構(gòu)建和Android應(yīng)用威脅等級的評估.在特征庫構(gòu)建中,采用的方法是對APK文件進行動靜態(tài)分析后獲取其權(quán)限特征、行為特征以及漏洞特征.在Android應(yīng)用威脅等級評估部分,基于樸素貝葉斯模型設(shè)計函數(shù),在滿足單調(diào)性、典型性、直觀性的前提下實現(xiàn)根據(jù)申請權(quán)限數(shù)目和調(diào)用敏感API的數(shù)目來對APK文件計算分數(shù),以及構(gòu)造分數(shù)與等級的對應(yīng)關(guān)系,漏洞特征威脅等級評估則是根據(jù)給出的漏洞危害等級綜合判斷漏洞的危害程度,最終均能以更為直觀的方式來表現(xiàn)評估的應(yīng)用程序危險等級.

猜你喜歡
漏洞應(yīng)用程序威脅
漏洞
人類的威脅
刪除Win10中自帶的應(yīng)用程序
電腦報(2019年12期)2019-09-10 05:08:20
受到威脅的生命
面對孩子的“威脅”,我們要會說“不”
家教世界(2017年11期)2018-01-03 01:28:49
三明:“兩票制”堵住加價漏洞
漏洞在哪兒
兒童時代(2016年6期)2016-09-14 04:54:43
Why Does Sleeping in Just Make Us More Tired?
英語學習(2015年2期)2016-01-30 00:23:16
高鐵急救應(yīng)補齊三漏洞
關(guān)閉應(yīng)用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
凤城市| 博野县| 利川市| 灵台县| 陵水| 泸溪县| 正镶白旗| 林周县| 四子王旗| 彝良县| 广西| 肇州县| 吴旗县| 武邑县| 湖南省| 毕节市| 精河县| 六枝特区| 阿拉尔市| 临西县| 古交市| 威远县| 泌阳县| 胶州市| 五大连池市| 丹巴县| 天峨县| 鄂托克前旗| 临猗县| 民权县| 塔城市| 政和县| 平定县| 紫金县| 长宁区| 资中县| 景泰县| 二手房| 苗栗市| 乐都县| 高雄市|