• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于非用戶操作序列的惡意軟件檢測方法

      2018-03-20 00:47:41羅文塽曹天杰
      計算機應用 2018年1期
      關鍵詞:函數(shù)調(diào)用流程圖調(diào)用

      羅文塽,曹天杰

      (中國礦業(yè)大學 計算機科學與技術學院,江蘇 徐州 221116)(*通信作者電子郵箱luows@cumt.edu.cn)

      0 引言

      Android自2012年以來一直是最流行的移動操作系統(tǒng),它以其開放性和實用性贏得了大多數(shù)人的喜愛[1]。由于其開放性等特點,Android的市場份額在2016年第三季度達到了86.8%,僅在中國國內(nèi),Android手機就賣出了多達4.25億部,占國內(nèi)智能手機銷售量的81%。

      近幾年,Android手機發(fā)展迅猛,Android平臺上的應用軟件數(shù)量日益增多,Android手機為用戶帶來了極大便利,但同時也為黑客提供了各種機會。由于Android系統(tǒng)的開源性以及市場自身制度的不完善,導致惡意軟件數(shù)量急劇增加[2]。McAfee Labs的一份報告中顯示,移動惡意軟件數(shù)量在2017年第一季度增長了37%[3]。Android惡意軟件數(shù)量一直處于上升階段,并且新的惡意軟件數(shù)量也在不斷增加。今天,雖然用戶享受了Android應用程序帶來的便利,但用戶的個人信息,如電話號碼、當前位置和聯(lián)系信息等,可能會被一些不良的應用程序開發(fā)商濫用。許多惡意的智能手機應用程序未經(jīng)用戶許可竊取用戶信息,撥打電話,發(fā)送短信等,給用戶帶來了巨大的威脅。為了保護用戶,Android應用市場非常需要強大的分析工具來識別和刪除惡意應用,因此,如何有效地完成對惡意軟件的檢測已經(jīng)成為了一項亟待解決的問題。

      1 相關工作

      近些年Android惡意軟件的檢測被越來越多的研究學者所關注,目前惡意軟件檢測工作主要分為靜態(tài)檢測和動態(tài)檢測[4]。

      靜態(tài)分析是在不運行代碼的情況下,對應用程序進行反編譯,然后對其進行源代碼級的解析。Junaid等[5]提出了一個Dexteroid的靜態(tài)分析框架,它通過反向工程生命周期模型來捕獲Android組件的行為,導出事件序列并使用它們來檢測由特定事件序列發(fā)起的攻擊。Wu等[6]通過提取數(shù)據(jù)流相關的應用程序編程接口(Application Programming Interface, API)級特征,并采用機器學習方法進一步優(yōu)化數(shù)據(jù)流相關的API列表進行惡意軟件檢測,該方法大幅度提高了敏感數(shù)據(jù)傳輸分析的效率,得到了97.66%的準確率。Arzt等[7]提出了一個靜態(tài)污點分析系統(tǒng)FlowDroid,通過構建一個過程間控制流圖,采用圖可達性分析來識別可能的隱私泄露路徑。Du等[8]提出了一種基于多源的方法來檢測Android惡意軟件,強調(diào)傳統(tǒng)的靜態(tài)特性、控制流圖和重打包的特點。每個類別的特征被視為特征提取規(guī)則建立和分類中的獨立信息源。使用Dempster-Shafer算法來融合這些信息源,以提高惡意軟件檢測的準確性,而不增加從反匯編代碼中提取的太多不穩(wěn)定特性,并且在抗代碼混淆技術方面具有更好的性能。Guan等[9]提出了一個RepDetector的原型,該原型基于語義的方法來檢測重打包的應用程序。通過使用狀態(tài)流圖捕獲函數(shù)的輸入輸出狀態(tài),以描述應用程序的語義行為,通過使用馬氏距離比較不同應用程序之間函數(shù)的相似度,從而進行惡意軟件識別,該方法可以有效地檢測出重打包的應用程序,并且可以容忍某些噪聲插入或復雜的混淆,因此具有抗混淆性。Feizollah等[10]提出了AndroDialysis,一個分析兩種不同類型的Intent對象的系統(tǒng)。該系統(tǒng)評估顯式和隱式Android Intents的有效性,作為識別惡意應用程序的一個顯著特征。實驗結果表明Intents擁有語義豐富的特征,與其他特征如權限相比,能夠?qū)阂廛浖囊鈭D進行編碼,具有更快、更好的惡意軟件檢測效果。Wang等[11]提出了一個DroidChain的原型系統(tǒng),通過結合靜態(tài)分析和行為鏈模型,使用矩陣理論Wxshall-extend來計算可達性矩陣從而進行惡意軟件檢測。

      動態(tài)分析通過在受控環(huán)境中運行應用程序并監(jiān)視其行為來完成惡意軟件的檢測。動態(tài)檢測使用的技術手段主要是軟件行為監(jiān)控,從而得到軟件的行為信息。Xiao等[12]使用系統(tǒng)調(diào)用序列來區(qū)分惡意軟件。通過跟蹤在不同事件下的應用程序的系統(tǒng)調(diào)用,使用兩個不同的特征模型頻率向量和共生矩陣,從系統(tǒng)調(diào)用序列中提取特征,并應用重力向量的自適應正則化和其他機器學習算法,分別基于上述兩個模型來識別Android惡意軟件。實驗結果表明,共生矩陣具有更好的檢測率。Enck等[13]提出TaintDroid,目的是跟蹤隱私敏感數(shù)據(jù)流,并監(jiān)視應用程序如何訪問和操縱用戶個人數(shù)據(jù),以便檢測敏感數(shù)據(jù)何時通過不受信任的應用程序離開系統(tǒng)。孫潤康等[14]分析了當前Android惡意軟件特征,提出了一種Android軟件行為動態(tài)監(jiān)控框架,并通過采用信息增益、卡方檢驗和Fisher Score的特征選擇方法評估了支持向量機、決策樹、k-近鄰和樸素貝葉斯分類器在Android惡意軟件分類檢測方面的有效性。Feng等[15]提出了一個SCDFLOW(Selecting Critical Data Flows)系統(tǒng),該系統(tǒng)通過特征選擇算法CFlowSel,基于每個流的頻率差來自動選擇Android應用程序中的關鍵數(shù)據(jù)流,并將這些關鍵數(shù)據(jù)流作為異常行為檢測特征,通過關鍵數(shù)據(jù)流進行惡意軟件識別。

      靜態(tài)檢測可以對軟件進行全面分析,并且檢測速度較快,但對未知惡意軟件的檢測具有一定滯后性。動態(tài)檢測準確率較高,但同時檢測成本也較高,檢測時間較長,且無法覆蓋程序中的所有路徑。本文采用靜態(tài)檢測的方法。對于智能手機惡意軟件的靜態(tài)檢測主要是針對應用程序中敏感數(shù)據(jù)傳輸?shù)臋z測,即用戶的隱私數(shù)據(jù)是否離開設備。然而,在這個時代,許多良性的應用程序通常需要收集敏感數(shù)據(jù),如位置、聯(lián)系人來提供給用戶更多的功能和服務。云的出現(xiàn),使得大多數(shù)應用程序的數(shù)據(jù)向云端發(fā)送;同時,竊取用戶數(shù)據(jù)的惡意應用程序也可能表現(xiàn)出相同的行為,使用戶的隱私信息遭到泄露,這大幅度增加了通過敏感數(shù)據(jù)傳輸?shù)臋z測來識別惡意應用程序的難度,因此,敏感數(shù)據(jù)的傳輸本身可能不表示真正的隱私泄露。本文提出了一種靜態(tài)的惡意軟件檢測方法,通過提取API調(diào)用信息,構建應用程序的函數(shù)調(diào)用流程圖,提取出其中的非用戶操作序列進行惡意軟件檢測,并通過不斷更新惡意行為庫的方式來解決對未知惡意軟件的檢測的滯后性問題。

      2 相關概念

      2.1 敏感API

      應用程序的字節(jié)碼中包含應用程序的代碼等信息,如API調(diào)用信息。應用程序使用這些API函數(shù)完成應用程序所需功能,如獲取手機的個人信息,發(fā)送短信、撥打電話等;同樣惡意軟件也需通過調(diào)用API函數(shù)來完成相應的惡意行為。所以,利用API調(diào)用信息,可以間接地推斷出應用程序的行為和意圖,尤其是那些權限受到保護的API調(diào)用函數(shù)。敏感API只占API總數(shù)的一小部分,然而,通過它們,惡意軟件可以訪問敏感信息或執(zhí)行敏感任務。為了識別惡意軟件,本文重點關注受Android權限管理的部分敏感API。

      2.2 函數(shù)調(diào)用流程

      函數(shù)調(diào)用流程圖表示了應用程序中函數(shù)的調(diào)用關系,函數(shù)之間的調(diào)用關系反映了應用程序的行為,本文使用它將給定的應用程序轉(zhuǎn)換為圖形表示,即函數(shù)調(diào)用流程圖,其中包含必要的結構信息來描述應用程序的行為。

      通過使用反編譯工具對應用程序進行反編譯得到應用程序的字節(jié)碼文件,從中捕獲應用程序中函數(shù)之間的調(diào)用關系。它可以表示為有向圖G=(V,E)。V={vi|1≤i≤n}表示給定應用程序調(diào)用的函數(shù)集合,其中每個vi∈V對應一個函數(shù)名稱。E?V×V表示函數(shù)調(diào)用集合,其中邊(vi,vj)∈E表示從調(diào)用函數(shù)vi到被調(diào)用函數(shù)vj存在一個調(diào)用,vi是調(diào)用函數(shù),vj是被調(diào)用函數(shù)。

      2.3 非用戶操作序列

      Android應用程序經(jīng)常在不經(jīng)過用戶同意的情況下,將用戶的隱私數(shù)據(jù)傳輸?shù)轿粗康牡亍S绕涫窃谠频某霈F(xiàn)后,許多良性的應用程序提供從云到終端用戶的服務,這些應用程序通常需要收集用戶的隱私數(shù)據(jù)發(fā)送到云以完成應用程序的某些功能。同時,惡意應用程序利用云作為中介進行用戶的隱私數(shù)據(jù)的竊取。所以,敏感數(shù)據(jù)的傳輸本身不能表示真正的隱私泄露。本文將非用戶意圖的敏感數(shù)據(jù)傳輸視為隱私泄露,而用戶意圖的敏感數(shù)據(jù)傳輸視為正常行為,因此,使用非用戶操作序列的方式進行惡意軟件檢測。

      1)用戶意圖的數(shù)據(jù)傳輸。為了使用應用程序提供的一些功能,用戶經(jīng)常通過應用程序發(fā)送其移動終端的隱私信息。例如,當使用信息管理應用時,用戶可以通過在觸摸屏上點擊幾個按鈕來將信息轉(zhuǎn)發(fā)到第三方。當使用地圖等基于位置的應用程序時,用戶通常會發(fā)送其所在的位置得到用戶想要獲取的一些信息。由于應用程序獲取用戶隱私信息是在用戶知情且與用戶意圖一致的情況下,所以本文不應將這種傳輸視為隱私泄漏。

      2)非用戶意圖的數(shù)據(jù)傳輸。應用程序在未經(jīng)用戶的許可下對用戶的隱私數(shù)據(jù)進行傳輸被定義為非用戶意圖的數(shù)據(jù)傳輸或隱私泄漏。在大多數(shù)情況下,用戶不知道這種傳輸,因為惡意應用程序總是以隱身的方式這樣做。

      3)非用戶操作序列。本文將應用程序的所有函數(shù)調(diào)用流程中不存在用戶操作的序列定義為非用戶操作序列。本文通過提取應用程序中的API調(diào)用信息構建應用程序的函數(shù)調(diào)用流程圖,刪除函數(shù)流程圖中的用戶操作調(diào)用序列,進一步提取出其中的非用戶操作序列。

      2.4 編輯距離

      編輯距離(Edit Distance),又稱Levenshtein距離,是指兩個字符串之間由一個轉(zhuǎn)成另一個所需的最少編輯操作次數(shù)。編輯操作包括將一個字符替換成另一個字符、插入一個字符、刪除一個字符。編輯距離越小,兩個字符串的相似度越大。為了計算出兩個非用戶操作序列的相似度,本文通過計算兩個非用戶操作序列之間的編輯距離從而得到序列之間的差異度,進行相似度判斷。本文通過替換、插入、刪除操作求出兩個序列的最小編輯距離。

      3 本文惡意軟件檢測方法的實現(xiàn)

      本文惡意軟件檢測方法如圖1所示,主要由敏感API的選取、非用戶操作序列的提取、非用戶操作序列之間的相似性度量以及惡意軟件的檢測識別四部分組成。

      該檢測方法的主要工作步驟如下:

      1)通過使用Androguard分析工具對應用程序進行反編譯,提取出其中的API調(diào)用信息。對惡意樣本中使用的API進行統(tǒng)計分析,提取出其中在惡意樣本中使用頻率較高的API作為敏感API。

      2)對訓練樣本進行API調(diào)用信息提取,并以其所調(diào)用的API函數(shù)為核心構建樣本的函數(shù)調(diào)用流程圖,提取出函數(shù)調(diào)用圖中的非用戶操作序列作為惡意軟件檢測的惡意行為庫。

      3)通過對待檢測樣本進行反編譯,提取出其中的敏感API,構建函數(shù)流程圖,并提取出樣本中的非用戶操作序列。采用編輯距離算法計算待檢測樣本的非用戶操作序列與惡意行為庫的差異度。

      4)將計算出來的差異度值與設定的閾值相比較來進行惡意軟件檢測。如果待檢測樣本與惡意行為庫的差異度小于或等于該閾值,則判定該檢測樣本為惡意軟件;否則為正常樣本。

      3.1 敏感API的選取

      Android平臺提供了一些API,應用軟件可用這些函數(shù)與底層Android系統(tǒng)進行交互。這些API涉及收集用戶的私人信息或系統(tǒng)信息,訪問Web服務,發(fā)送和刪除手機短信服務(Short Message Service, SMS)消息,錄音,訪問和閱讀內(nèi)容提供商等。例如:“getLine1Number()”函數(shù)用于獲取用戶手機號碼,造成用戶手機號碼泄露;“getDeviceId()”函數(shù)用于獲取設備Id,造成設備IMEI泄露。本文以統(tǒng)計方式通過對實驗樣本中用到的API進行分析以確定惡意軟件經(jīng)常使用的敏感API,如表1所示。

      表1 敏感API

      3.2 非用戶操作序列的提取方法

      由于良性軟件和惡意軟件都會對用戶的敏感信息進行操作,因此敏感信息的傳輸本身可能不代表真正的隱私泄露,但通常用戶不希望應用程序在不知情的情況下對隱私信息進行操作,所以敏感數(shù)據(jù)是否經(jīng)用戶操作來進行傳輸可用來作為識別惡意行為的一個指標。因此,本文中重點研究未經(jīng)用戶操作的敏感信息傳輸是否存在惡意行為,進而判斷其是否為惡意軟件。函數(shù)之間的調(diào)用關系反映了應用程序的行為,本文使用函數(shù)調(diào)用圖來表示應用程序的函數(shù)調(diào)用關系,進而從中提取應用程序的非用戶操作序列,進行惡意軟件行為識別。

      本文通過使用Androguard分析工具對Android安裝包(Android Package, APK)進行反編譯,提取出API調(diào)用信息。以其所調(diào)用的敏感API函數(shù)為核心構建應用程序的函數(shù)調(diào)用流程圖。對于調(diào)用了敏感API的函數(shù),采用向后遍歷調(diào)用圖以查找可能觸發(fā)它的所有事件。在所有觸發(fā)事件中通過KMP(Knuth-Morris-Pratt)算法搜索是否存在用戶操作。在本文中將所有觸發(fā)事件的操作序列作為主串,用戶操作作為模式串進行用戶操作序列匹配,從而查找是否存在非用戶操作序列,流程如圖2所示。

      3.2.1 函數(shù)調(diào)用圖的構建

      本文通過廣度優(yōu)先遍歷構建每個敏感API函數(shù)的函數(shù)調(diào)用流程圖,并將所有流程圖合并為應用程序的完整函數(shù)流程圖,構建函數(shù)調(diào)用流程圖的具體步驟如下:

      1)對于應用程序調(diào)用的每個敏感API函數(shù),采用廣度優(yōu)先遍歷的方式,獲得該敏感API函數(shù)所調(diào)用的函數(shù)集合以及被調(diào)用的函數(shù)集合,形成該敏感API函數(shù)的函數(shù)調(diào)用關系圖。

      2)對圖中每個函數(shù)分別提取其所調(diào)用的函數(shù)的集合以及被調(diào)用的函數(shù)集合插入圖中,重復遍歷直至應用程序中的所有函數(shù)均已被遍歷或程序流程結束。

      3)將應用程序的每個敏感API函數(shù)調(diào)用關系圖進行合并,去除重復操作成為該應用程序的完整函數(shù)調(diào)用關系圖。

      圖2 非用戶操作序列提取流程

      在上述過程中生成的函數(shù)調(diào)用流程圖,每個節(jié)點代表一個函數(shù),每條邊代表函數(shù)之間的先后調(diào)用關系。本文采用給節(jié)點編號的方式來表示一個應用程序的函數(shù)調(diào)用流程圖,以方便后續(xù)生成的非用戶操作序列之間進行比較,從而得出非用戶操作序列之間的差異度。如惡意樣本在獲取設備ID和發(fā)送信息中所調(diào)用的敏感API函數(shù)getDeviceId()和sendTextMessage()生成的函數(shù)流程如圖3所示,其在生成惡意樣本的整體函數(shù)調(diào)用流程圖的過程中刪除重復節(jié)點,最終形成如圖4所示的函數(shù)調(diào)用流程。

      圖3 惡意樣本中敏感API函數(shù)調(diào)用流程

      3.2.2 非用戶操作序列的提取

      本文通過采用向后遍歷調(diào)用圖以查找函數(shù)調(diào)用流程圖中可能觸發(fā)敏感API函數(shù)的所有事件。在所有觸發(fā)事件中通過KMP算法搜索是否存在用戶操作,進而形成非用戶操作序列。提取非用戶操作序列的具體步驟如下:

      1)將上述形成的應用程序函數(shù)調(diào)用流程圖采用從尾節(jié)點向后遍歷的方式查找可能觸發(fā)路徑中的敏感API函數(shù)的函數(shù)節(jié)點。

      2)在所有觸發(fā)事件中通過KMP算法搜索是否存在用戶操作。若存在用戶操作,則在函數(shù)調(diào)用流程圖中刪除該路徑,若與其他路徑存在共同部分,則刪除其余部分路徑以保證其他路徑的完整性。

      3)重復遍歷上述操作直至所有路徑均以被遍歷。函數(shù)調(diào)用流程圖中的所有路徑形成操作序列,最終形成應用程序的非用戶操作序列集合。

      在上述過程中,每個非用戶操作序列代表該序列中敏感API函數(shù)的函數(shù)調(diào)用流程,通過將該敏感API函數(shù)的函數(shù)調(diào)用序列與惡意行為庫中相同敏感API函數(shù)下的函數(shù)調(diào)用序列進行對比,從而判斷該應用程序是否存在惡意行為。

      3.3 非用戶操作序列的相似性度量方式

      本文以敏感API函數(shù)調(diào)用的非用戶操作序列為特征,計算應用程序與惡意軟件的相似性,也就是計算相同敏感API函數(shù)調(diào)用的非用戶操作序列的相似性。本文采用編輯距離來計算操作序列的相似性。

      設str1,str2為需要比較的兩個非用戶操作序列,為了計算兩個非用戶操作序列之間編輯距離,本文通過替換、插入、刪除操作求出兩個序列的最小編輯距離,因此,兩個非用戶操作序列的編輯距離為:

      其中:d[i-1,j]+1代表str2插入一個操作所需代價,d[i,j-1]+1代表字符串str1刪除一個操作所需代價。當xi=yj時,表示兩個操作相同,所以與d[i-1,j-1]代價相同;否則代價加1,d[i,j]為以上三者中代價最小的一項。在本文的實驗中,本文將兩個非用戶操作序列的長度分別定義為n,m,則兩個非用戶操作序列的差異度定義為兩個序列的編輯距離之和與兩個序列長度的比值,即:

      在上述計算兩個非用戶操作序列相似性的過程中,兩個序列的編輯距離越小,差異度就越小,相似性越大;反之,編輯距離越大,差異度就越大,相似性越小。

      3.4 惡意軟件的識別

      通過上述的相似性度量方法,計算待檢測樣本中每個敏感API函數(shù)的非用戶操作序列與惡意行為庫中相同敏感API函數(shù)的非用戶操作序列之間的差異度值,將該差異度值與設定的閾值進行比較,當待檢測樣本與惡意行為庫的差異度值小于或等于該閾值,則判定該樣本為惡意軟件;否則為正常樣本。

      4 實驗與分析

      4.1 實驗樣本

      為了對本文的方法進行驗證,從VirusShare和Google官網(wǎng)獲得1 500個樣本,其中有1 200個惡意樣本和300個正常樣本。首先把收集的1 200個惡意軟件分為兩部分,其中70%用于訓練作為樣本數(shù)據(jù)集;另外的30%作為檢測數(shù)據(jù)集。通過殺毒軟件對從Google收集的300個應用程序進行檢測確保實驗的準確性。

      4.2 度量指標

      1)召回率(recall rate)。惡意軟件被正確地檢測為惡意軟件的數(shù)量在所有惡意軟件中的比例:

      recall_rate=TP/(TP+FN)

      2)漏報率(false negative rate)。惡意軟件被錯誤地檢測為良性軟件的數(shù)量在所有惡意軟件中的比例。

      false_negative_rate=FN/(TP+FN)

      3)準確率(precision rate)。良性軟件被正確地檢測為良性軟件的數(shù)量在所有良性軟件中的比例:

      precision_rate=TN/(TN+FP)

      4)誤報率(false positive rate)。良性軟件被錯誤地檢測為惡意軟件的數(shù)量在所有良性軟件中的比例:

      false_positive_rate=FP/(TN+FP)

      數(shù)值模型中,僅在A2和A3兩個控制孔內(nèi)設置恒定控制水壓,以此改變煤體中孔隙壓力分布,形成非對稱的孔隙壓力場,如圖6所示。模型邊界荷載為定值,分別為8、12 MPa;控制水壓為一變量,分別為0~10 MPa,每個模型控制水壓相差2 MPa,煤、巖體各項參數(shù)見表1。模擬結果及分析如下。

      5)正確率(accuracy)。被正確檢測的軟件的數(shù)量在所有軟件中比例:

      accuracy=(TP+TN)/(TP+TN+FP+FN)

      4.3 實驗結果

      為了驗證本文提出的方法的有效性,本文應用收集的360個惡意樣本和300的正常樣本進行檢測,并與著名的Android惡意應用檢測工具Androguard和FlowDroid[7]進行對比。Androguard惡意應用檢測工具是一個Android惡意軟件靜態(tài)檢測工具,該檢測方法可以查看應用程序使用權限,獲取應用程序中的所有方法,獲取調(diào)用某個特殊API的方法信息以及獲取應用程序的整體函數(shù)調(diào)用流程,通過靜態(tài)分析應用程序代碼檢測惡意應用程序。

      本文通過對惡意樣本進行逆向分析,提取出惡意樣本中的權限和API調(diào)用信息。以其所調(diào)用的API函數(shù)為核心構建惡意樣本的函數(shù)調(diào)用流程圖,進而獲取惡意樣本的非用戶操作序列形成惡意行為庫。對上述待檢測樣本采用相同方法獲得每個API調(diào)用函數(shù)的非用戶操作序列并采用編輯距離算法計算待檢測樣本與惡意行為庫中的編輯距離,將計算出來的差異度值與設定的閾值作比較,進而判斷該檢測樣本是否為惡意軟件。本文選擇不同的閾值進行惡意軟件判斷,并對相應的檢測效果進行比較,結果如圖5~6所示。

      圖5 不同閾值下的檢測成功率

      綜合圖5~6可以看出,在閾值為0.07時,檢測總體正確率達到90.3%,此時本文提出的方法具有較好的檢測效果。對于應用程序的誤報和漏報情況,主要是由于一些應用仍然存在非用戶操作的隱私泄露,其中大多數(shù)應用程序是社交網(wǎng)絡服務(Social Networking Services, SNS)應用程序或具有嵌入式廣告模塊的應用程序。另一方面,惡意數(shù)據(jù)泄漏可能會隱藏在一些正常數(shù)據(jù)傳輸之中,以繞過最先進的安全驗證。

      圖6 不同閾值下的漏報率和誤報率

      將上述實驗中閾值為0.07的檢測結果與Androguard和FlowDroid進行比較,對樣本的檢測結果如表2所示。

      由表2可以看出,本文所述的惡意軟件檢測方法與Androguard檢測方法相比在正常樣本檢測方面存在一些不足,但在惡意樣本檢測中相比Androguard檢測方法能夠檢測出更多的惡意軟件,檢測效果更優(yōu),比Androguard檢測方法在召回率上提升了30%。與FlowDroid檢測方法相比本文所述的檢測方法在正常樣本和惡意樣本檢測中召回率和準確率均有提升,在正常樣本檢測中準確率提升了10%,在惡意樣本檢測中召回率提升了4%。

      表2 3種方法的對比結果

      5 結語

      本文通過提取API調(diào)用信息構建應用程序的函數(shù)調(diào)用流程圖,進一步提取出其中的非用戶操作序列,并通過判斷各非用戶操作序列的相似性來進行惡意軟件檢測。實驗結果表明,本文所提出的方法在閾值為0.07的條件下達到了90.8%的召回率和90.3%的正確率,具有較好的檢測結果。本文的檢測方法有夠有效地識別出惡意軟件,但在SNS應用程序和具有嵌入式廣告模塊的應用程序的檢測中存在一定的誤報。

      References)

      [1] 彭國軍,李晶雯,孫潤康,等.Android惡意軟件檢測研究與進展[J].武漢大學學報(理學版),2015,61(1):21-33.(PENG G J, LI J W, SUN R K, et al. Android malware detection research and development [J]. Journal of Wuhan University (Natural Science Edition), 2015, 61(1): 21-33.)

      [2] 卿斯?jié)h.Android安全研究進展[J].軟件學報,2016,27(1):45-71(QING S H. Research progress on Android security [J]. Journal of Software, 2016, 27(1): 45-71)

      [3] McAfee Labs. McAfee labs threats report [EB/OL]. [2017- 06- 01]. https://www.mcafee.com/us/resources/reports/rp-quarterly-threats-jun- 2017.pdf.

      [4] FEIZOLLAH A, ANUAR N B, SALLEH R, et al. A review on feature selection in mobile malware detection [J]. Digital Investigation, 2015, 13: 22-37.

      [5] JUNAID M, LIU D, KUNG D. Dexteroid: detecting malicious behaviors in Android apps using reverse-engineered life cycle models [J]. Computers & Security, 2016, 59: 92-117.

      [6] WU S Y, WANG P, LI X, et al. Effective detection of android malware based on the usage of data flow APIs and machine learning [J]. Information and Software Technology, 2016, 75(C): 17-25.

      [7] ARZT S, RASTHOFER S, FRITZ C, et al. FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps [C]// PLDI 2014: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation. New York: ACM, 2014: 259-269.

      [8] DU Y, WANG X Q, WANG J F. A static Android malicious code detection method based on multi-source fusion [J]. Security & Communication Networks, 2015, 8(17): 3238-3246.

      [9] GUAN Q, HUANG H, LUO W, et al. Semantics-based repackaging detection for mobile apps [C]// ESSoS 2016: Proceedings of the 2016 International Symposium on Engineering Secure Software and Systems. Berlin: Springer, 2016: 89-105

      [10] FEIZOLLAH A, ANUAR N B, SALLEH R, et al. AndroDialysis: analysis of Android intent effectiveness in malware detection [J]. Computers & Security, 2016, 65: 121-134.

      [11] WANG Z, LI C, YUAN Z, et al. DroidChain: a novel Android malware detection method based on behavior chains [J]. Pervasive & Mobile Computing, 2016, 32:3-14.

      [12] XIAO X, XIAO X, JIANG Y, et al. Identifying Android malware with system call co-occurrence matrices [J]. Transactions on Emerging Telecommunications Technologies, 2016, 27(5): 675-684.

      [13] ENCK W, GILBERT P, CHUN B G, et al. TaintDroid: an information flow tracking system for real-time privacy monitoring on smartphones [J]. Communications of the ACM, 2014, 57(3): 99-106.

      [14] 孫潤康,彭國軍,李晶雯,等.基于行為的Android惡意軟件判定方法及其有效性[J].計算機應用,2016,36(4):973-978.(SUN R K, PENG G J, LI J W, et al. Behavior oriented method of Android malware detection and its effectiveness [J]. Journal of Computer Applications, 2016, 36(4): 973-978.)

      [15] FENG P, SUN C, MA J. Selecting critical data flows in android applications for abnormal behavior detection [J]. Mobile Information Systems, 2017, 2017: Article ID 7397812.

      This work is partially supported by the National Natural Science Foundation of China (61303263).

      LUOWenshuang, born in 1993, M. S. candidate. Her research interests include network security, mobile terminal security.

      CAOTianjie, born in 1967, Ph. D., professor. His research interests include cryptology, information security.

      猜你喜歡
      函數(shù)調(diào)用流程圖調(diào)用
      基于C語言的數(shù)學菜單的設計與實現(xiàn)
      核電項目物項調(diào)用管理的應用研究
      LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
      測控技術(2018年5期)2018-12-09 09:04:46
      基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測方法*
      探討C++編程中避免代碼冗余的技巧
      Unity3D項目腳本優(yōu)化分析與研究
      中國新通信(2017年1期)2017-03-08 03:12:21
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
      專利申請審批流程圖
      河南科技(2016年8期)2016-09-03 08:08:22
      專利申請審批流程圖
      河南科技(2016年6期)2016-08-13 08:18:29
      寧海縣村級權力清單36條
      新安县| 敦化市| 额尔古纳市| 合山市| 皮山县| 新竹县| 尖扎县| 东乡族自治县| 景宁| 旌德县| 攀枝花市| 绥棱县| 上杭县| 广宁县| 桃江县| 沐川县| 得荣县| 嘉荫县| 沙湾县| 江北区| 苗栗县| 平山县| 班戈县| 许昌市| 建德市| 龙口市| 镇坪县| 哈密市| 平远县| 方正县| 尖扎县| 屯昌县| 天柱县| 安达市| 广河县| 杭州市| 濉溪县| 新宁县| 大悟县| 万州区| 宜春市|