亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于動靜態(tài)結(jié)合分析的Android惡意應(yīng)用多重檢測模型

        2018-03-01 10:26:16陳明翔解夢飛張欽堯劉俊
        無線互聯(lián)科技 2018年22期
        關(guān)鍵詞:機器學(xué)習(xí)

        陳明翔 解夢飛 張欽堯 劉俊

        摘 要:文章通過對大量Android惡意軟件的研究,提出并設(shè)計一種Android惡意應(yīng)用綜合檢測模型。模型中包含動態(tài)監(jiān)測和靜態(tài)分析兩種惡意應(yīng)用識別技術(shù),并結(jié)合機器學(xué)習(xí)算法,對Android應(yīng)用中可能存在的惡意代碼攻擊、漏洞利用、隱私泄露3種問題進行了研究并設(shè)計出解決方案。

        關(guān)鍵詞:Android;惡意軟件;動態(tài)監(jiān)測;靜態(tài)分析;機器學(xué)習(xí);漏洞掃描;隱私泄露

        近年來,Android智能設(shè)備在全球市場的占有率越來越高,但Android系統(tǒng)的安全問題卻層出不窮。一方面各大應(yīng)用市場寬松的審查機制導(dǎo)致Android惡意軟件泛濫,另一方面開發(fā)者的水平不一也導(dǎo)致Android應(yīng)用自身的安全性良莠不齊。隨著時間的推移,各大廠商的手機大多都已安裝了自家的安全軟件,并配套了具有審查機制的應(yīng)用市場。但是,由于Android系統(tǒng)的開源性,許多智能手機愛好者會為系統(tǒng)進行root提權(quán),從而對手機進行高度定制。然而,各大廠商原生的安全機制對root手機不再適用。用戶在沒有對Android應(yīng)用安全性進行確認(rèn)的情況下,經(jīng)過root提權(quán)的手機(以下簡稱root手機)更容易被惡意軟件以高權(quán)限入侵。

        與此同時,目前常見的Android應(yīng)用安全性檢測方案主要使用動態(tài)和靜態(tài)兩種檢測技術(shù),但大多數(shù)設(shè)計方案只針對其中一項技術(shù)進行應(yīng)用或改進,少有對這些技術(shù)檢測效果的相關(guān)性與互補性進行研究。這明顯無法對root手機進行全面、高效的安全防護。

        在此背景下,本文提出一種綜合多種檢測技術(shù)的Android應(yīng)用安全性檢測模型。此模型基于現(xiàn)有的檢測技術(shù)進行改進,并通過不同檢測方案間的互補性來設(shè)計檢測流程,一方面可以提高檢測的精度,另一方面則可以擴展應(yīng)用安全性的評估面。此外,本系統(tǒng)針對root手機的特點,在應(yīng)用安全性評估模型中還著重實現(xiàn)了動態(tài)的風(fēng)險評估和危險行為攔截,具有全面性、精確性、高效性。

        1 基于動靜態(tài)結(jié)合分析的Android惡意應(yīng)用多重檢測模型的總體設(shè)計

        本系統(tǒng)包括:動態(tài)監(jiān)測部分和靜態(tài)檢測部分(見圖1),分別運行在Android客戶端和服務(wù)器端。

        動態(tài)監(jiān)測部分包括敏感行為監(jiān)測模塊和流量監(jiān)控模塊,靜態(tài)檢測部分包括惡意軟件鑒別模塊、漏洞檢測模塊和隱私泄露檢測模塊。

        2 基于API Hook的敏感行為監(jiān)測模塊

        Android操作系統(tǒng)維護著自己的一套事件分發(fā)機制,Android應(yīng)用程序、觸發(fā)事件和后臺邏輯處理,都是根據(jù)該機制一步步向下執(zhí)行,惡意軟件的敏感行為也不例外。若能在事件傳送到終點前將事件截獲并對其操作進行一定修改,就可以有效地抑制惡意行為的效果,這就是Hook機制。

        本模塊設(shè)計一種基于Xposed框架的Hook模塊,運行于Android客戶端上,利用Xposed框架對Zygote進程及其創(chuàng)建的Dalvik虛擬機的劫持[1],在開機時完成對所有的Hook方法的重定義或改寫,實現(xiàn)對于應(yīng)用中調(diào)用的系統(tǒng)敏感API的鉤取、分析、預(yù)警。

        2.1 確定敏感行為

        通常,移動平臺的惡意行為包含:惡意控制設(shè)備、強行推送廣告、偷跑流量、竊取用戶隱私、獲取用戶實時動態(tài)等[2],根據(jù)以上惡意行為,Hook模塊預(yù)設(shè)80多項行為作為敏感行為。

        2.2 模塊工作流程

        模塊工作流程包含API Hook模塊、風(fēng)險評估模塊、風(fēng)險預(yù)警模塊。

        2.2.1 API Hook

        Hook模塊隨Android客戶端安裝后托管于Xposed模塊,運行于后臺。API Hook模塊每鉤取到一個API,就會記錄其調(diào)用時間、重要參數(shù),加入相應(yīng)Android應(yīng)用程序的API調(diào)用鏈中。API Hook模塊只記錄固定時間內(nèi)的API調(diào)用,若超過該固定時間,API調(diào)用鏈中過早調(diào)用的API會被刪去。若該應(yīng)用在固定時間內(nèi)程序調(diào)用鏈長度達(dá)到閾值或者API調(diào)用鏈中出現(xiàn)了固定的惡意API組合,模塊就會啟動惡意風(fēng)險評估流程。

        2.2.2 風(fēng)險評估

        本文提出并設(shè)計一種風(fēng)險評估模型,首先提出以下前提和概念。

        a) 本文預(yù)設(shè)敏感API集為。

        b) 定義為APP調(diào)用的敏感API集,包含于{API}。

        c)對APP中的敏感API調(diào)用鏈進行分析、評估,分以下兩種情況執(zhí)行:

        (1)若無匹配惡意行為特征API集的調(diào)用出現(xiàn)。

        Hook模塊設(shè)計前期,對大量惡意軟件的反編譯提取其中敏感API調(diào)用代碼。本文通過大量的動態(tài)監(jiān)測分析其惡意程度,定義了各敏感API的惡意權(quán)重。

        Hook模塊提出一種風(fēng)險評估算法:

        定義為ai執(zhí)行過程中調(diào)用的敏感API集。

        定義為ai的調(diào)用權(quán)重,特別地若,則。

        定義為該APP的帶權(quán)惡意系數(shù)。通過機器學(xué)習(xí)分類算法計算,若V>0.61,則判定該應(yīng)用為惡意軟件。

        (2)若匹配到惡意行為特征API集。

        為該惡意API組合調(diào)用的組合時間惡意系數(shù),若T<0,則將該APP評估為惡意APP。

        使用現(xiàn)有的APP自動化檢測系統(tǒng)得出在100款惡意軟件上,該風(fēng)險評估算法成功率為87%。

        2.3 風(fēng)險預(yù)警

        對于判定為惡意APP的應(yīng)用,API Hook模塊提醒用戶卸載,并將其包名、簽名添加到黑名單中。Hook模塊監(jiān)聽系統(tǒng)安裝程序,對于黑名單中的應(yīng)用直接予以卸載處理。對于未判定為惡意但進入風(fēng)險評估流程的APP,本系統(tǒng)會在用戶允許下將其上傳到服務(wù)器,啟動靜態(tài)檢測流程。

        3 Android流量監(jiān)控、分析、攔截模型

        多數(shù)Android惡意應(yīng)用通過聯(lián)網(wǎng)下載APP、展示廣告等方式盈利,這不僅導(dǎo)致用戶消耗大量流量,還可能威脅到用戶隱私和Android系統(tǒng)安全?;趷阂鈶?yīng)用依賴互聯(lián)網(wǎng)盈利這個特點,本文在Android設(shè)備上搭建一個流量監(jiān)控、分析、攔截平臺,建立惡意流量規(guī)則庫,對惡意應(yīng)用的請求報文進行攔截,從而阻止惡意應(yīng)用的惡意行為,保護用戶的流量和隱私。

        3.1 模型設(shè)計

        Android流量監(jiān)控、分析、攔截平臺架構(gòu)如圖2所示。

        Android流量監(jiān)控、分析、攔截平臺采用C-S模式,客戶端實現(xiàn)監(jiān)控和攔截功能,服務(wù)器實現(xiàn)惡意流量規(guī)則的匯總、判優(yōu)和同步。

        客戶端流量攔截模塊長期在后臺運行,核心是請求報文惡意特征匹配機制。該機制根據(jù)本地惡意URL模式庫和URL黑名單庫檢查每一個請求報文,命中規(guī)則即進行攔截,否則放行。流量監(jiān)控模塊由用戶啟動,抓取用戶指定應(yīng)用的流量包,輔助用戶編寫自定義攔截規(guī)則,添加到本地惡意流量數(shù)據(jù)庫中。用戶可選擇上傳分享自定義規(guī)則,同時也可對其他人編寫的規(guī)則進行評價。此外,客戶端還接受Hook模塊判定的惡意應(yīng)用的流量清單,根據(jù)用戶選擇將流量清單加入惡意流量黑名單庫中。

        服務(wù)器端接收用戶分享的自定義規(guī)則,暫時存放在共享惡意流量規(guī)則庫中。用戶可以試用共享規(guī)則庫中的規(guī)則并對其評價打分。服務(wù)器定期將高評分規(guī)則加入公共惡意流量規(guī)則庫中,向所有客戶端同步。隨著用戶的分享和數(shù)據(jù)庫的不斷更新,逐步加強對惡意流量攔截的廣度和準(zhǔn)確度。

        3.2 模型實現(xiàn)

        客戶端流量攔截功能基于browsermob-proxy代理實現(xiàn)。代理工具browsermob-proxy開放源代碼,本文除了使用API接口提供的功能外,還改動源碼適配Android系統(tǒng)。代理需要長期運行,為了保證代理不被系統(tǒng)回收,將代理寫入Android前臺服務(wù)中并在通知欄顯示運行狀態(tài)。

        客戶端流量監(jiān)控功能基于VPNService實現(xiàn)。在VPNService框架中,開發(fā)者可以獲取和控制所有網(wǎng)絡(luò)層流量。此外,網(wǎng)絡(luò)層中包含的傳輸層端口信息用來區(qū)分出不同應(yīng)用的流量。

        4 基于權(quán)限與敏感API的機器學(xué)習(xí)分類算法靜態(tài)檢測模型

        本模塊針對Android應(yīng)用程序的權(quán)限機制與敏感API的調(diào)用情況,分別建立基于權(quán)限與敏感API的特征向量,然后使用樸素貝葉斯與隨機森林兩種機器學(xué)習(xí)算法建立分類模型。通過對兩種分類模型的性能評估,提出了基于敏感API調(diào)用的隨機森林算法分類模型,從而完成對惡意軟件與正常應(yīng)用的基本鑒別,并反饋用戶鑒別結(jié)果。

        4.1 特征選取

        4.1.1 權(quán)限信息

        Android應(yīng)用程序的一系列行為都需要它所申請的權(quán)限作為支撐,所以權(quán)限在一定程度上反映了應(yīng)用程序的行為模式。通過對Android應(yīng)用程序的配置文件AndroidManifest.xml的分析,提取了關(guān)于應(yīng)用注冊的權(quán)限信息。

        4.1.2 敏感API調(diào)用

        敏感API包括涉及竊取用戶隱私行為的高危函數(shù)接口,通過這些函數(shù)的調(diào)用,程序可以直接或間接地獲取一些敏感數(shù)據(jù)。本文通過對應(yīng)用程序反編譯之后的中間代碼進行提取,整理出53個調(diào)用次數(shù)較多的敏感API,其中部分API如表1所示。

        將敏感API的調(diào)用次數(shù)作為特征值構(gòu)建特征向量,由于不同大小的應(yīng)用程序相對調(diào)用API的次數(shù)不同,所以本文將應(yīng)用程序的大小與API調(diào)用次數(shù)做了加權(quán)平均,來降低應(yīng)用程序大小帶來的影響。

        4.2 模型分析與評估

        本文取正常應(yīng)用與惡意應(yīng)用各1 500個作為訓(xùn)練集,另取250個作為測試集,其中惡意應(yīng)用來自公開的惡意軟件庫VirusShare,正常應(yīng)用爬取自GooglePlay商店,基本涵蓋了所有應(yīng)用類別。

        采用精確率(pre)與召回率(recall)[3]作為衡量分類性能的指標(biāo),實驗結(jié)果如表2所示。

        不同于權(quán)限,敏感API信息包含每個API的平均調(diào)用次數(shù),所以惡意特征的表現(xiàn)方式會更加明顯,通過反編譯得到每個應(yīng)用的API調(diào)用情況,結(jié)合調(diào)用次數(shù)建立基于敏感API的特征向量,并輸入分類器中。實驗結(jié)果如表3所示。

        可以看出,隨機森林算法的分類性能依然優(yōu)于樸素貝葉斯算法,無論準(zhǔn)確率(ACC)還是召回率(recall)都接近95%,精確率(pre)也接近97%,說明利用敏感API作為鑒別特征,基于隨機森林分類算法能達(dá)到很好的分類效果。

        5 Android應(yīng)用漏洞檢測模塊

        漏洞檢測模塊為靜態(tài)檢測中的第二部分,基于Soot[4]對應(yīng)用進行反編譯以檢測出其中可能存在的漏洞。另一方面,為了提高漏洞檢測精度,本文提出了一種基于過程內(nèi)數(shù)據(jù)流分析技術(shù)的變量行為記錄算法,在漏洞檢測中可以用于實現(xiàn)函數(shù)內(nèi)變量到相關(guān)常量的追溯,提高檢測準(zhǔn)確率。

        5.1 Android應(yīng)用漏洞檢測模塊的工作流程

        首先使用Soot對APK進行初始化工作,輸出的兩個結(jié)果一個是Jimple中間代碼,另一個則是控制流圖,其中控制流圖使用5.2小節(jié)中介紹的追溯算法為函數(shù)內(nèi)的變量生成行為記錄。初始化工作結(jié)束后,則開始進行漏洞特征匹配,最后輸出檢測結(jié)果。

        5.2 基于數(shù)據(jù)流分析的變量行為記錄算法

        在對漏洞特征進行匹配時,經(jīng)常將特定的常量參數(shù)作為漏洞特征。然而應(yīng)用開發(fā)中有很多情況是先將常量賦值到一個變量對象里,進行處理之后再作為參數(shù)傳值到漏洞特征函數(shù)中。一個最簡單的例子就是使用StringBuilder連接字符串,最后調(diào)用toString()方法將生成的字符串作為參數(shù)傳給函數(shù)。對于這種情況,傳統(tǒng)基于字符匹配的檢測方案是無法匹配到特征的。本小節(jié)提出的算法則用于解決這種問題,算法基于過程內(nèi)數(shù)據(jù)流分析生成變量的行為記錄,之后基于此記錄追溯變量的常量特征。具體算法流程如圖3所示。

        在利用Soot生成控制流圖后,使用Soot提供的過程內(nèi)數(shù)據(jù)流分析框架來模擬完整控制結(jié)構(gòu)下的語句遍歷分析,并在此過程中基于傳入的記錄規(guī)則,詳細(xì)記錄所有變量的初始化、變量的方法和成員變量調(diào)用、變量賦值、變量值傳遞等所有變量相關(guān)的行為。在最終生成的變量行為記錄中,即可清楚地獲得變量的常量特征。

        6 隱私泄露檢測模塊

        在智能設(shè)備大量普及的當(dāng)下,手機比電腦中存放著更多用戶的隱私信息,這些信息一旦被應(yīng)用惡意獲取,就可能給用戶帶來無法挽回的損失。因此,用戶隱私安全性與Android應(yīng)用的安全性是緊密相關(guān)的,隱私泄露檢測模塊便從隱私泄露的角度入手,進行Android應(yīng)用安全性的評估。

        6.1 對Sources點及Sinks點的分析歸類

        Android系統(tǒng)中含有很多涉及獲取用戶隱私的API(Sources點)以及隱秘的數(shù)據(jù)發(fā)送途徑(Sinks點),通過歸類整理并使用基于過程間數(shù)據(jù)流分析技術(shù)[5]的污點傳播算法,尋找從Sources點到Sinks點的傳播路徑,從而發(fā)現(xiàn)這些隱私泄露問題。

        6.2 使用污點分析算法尋找傳播路徑

        Android應(yīng)用中每一個組件都有自己完整的生命周期,組件在運行過程中隨時可能被觸發(fā)調(diào)用。因此,要對Android應(yīng)用程序進行過程間數(shù)據(jù)流分析,就需要先為Android應(yīng)用程序的生命周期建模,并構(gòu)造一個虛擬的main方法,在方法內(nèi)模擬觸發(fā)所有組件,然后再對這個虛擬的main方法進行數(shù)據(jù)流分析,尋找Sources到Sinks間的路徑。

        模型使用FlowDroid[6]進行實現(xiàn)污點傳播路徑的尋找。FlowDroid是基于流分析技術(shù)的隱私泄露分析工具,它對Android應(yīng)用程序的生命周期做了完整建模,并構(gòu)建了一個虛擬dummyMainMethod方法來模擬生命周期,在對應(yīng)用內(nèi)的Sources點及Sinks點做了標(biāo)記后,使用過程間數(shù)據(jù)流分析技術(shù)尋找這些點間的傳播路徑。

        本模型即基于FlowDroid所提供的分析接口以及6.1歸類的Sources點與Sinks點進行Android應(yīng)用中的隱私泄露分析。

        [參考文獻(xiàn)]

        [1]于航,劉麗敏,高能,等.基于模擬器的沙箱系統(tǒng)研究[J].信息網(wǎng)絡(luò)安全,2015(9):139-143.

        [2]任偉,柳坤,周金.An Da:惡意代碼動態(tài)分析系統(tǒng)[J].信息網(wǎng)絡(luò)安全,2014(8):28-33.

        [3]邵舒迪,虞慧群,范貴生.基于權(quán)限和API特征結(jié)合的Android惡意軟件檢測方法[J].計算機科學(xué),2017(4):135-139.

        [4]EINARSSON A,NIELSEN J D.A survivors guide to java program analysis with soot[EB/OL].(2008-07-17)[2018-09-28].https://www.researchgate.net/publication/241734740_A_Survivors_Guide_to_Java_Program_Analysis_with_Soot.

        [5]BODDEN E.Inter-procedural data-flow analysis with IFDS/IDE and soot[C].Beijing:Acm Sigplan International Workshop on the State of the Art in Java Program Analysis,2012.

        [6]ARZT S,RASTHOFER S,F(xiàn)RITZ C,et al.FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps[C].Edinburgh:Acm Sigplan Conference on Programming Language Design & Implementation,2014.

        猜你喜歡
        機器學(xué)習(xí)
        基于詞典與機器學(xué)習(xí)的中文微博情感分析
        基于網(wǎng)絡(luò)搜索數(shù)據(jù)的平遙旅游客流量預(yù)測分析
        時代金融(2016年27期)2016-11-25 17:51:36
        前綴字母為特征在維吾爾語文本情感分類中的研究
        下一代廣播電視網(wǎng)中“人工智能”的應(yīng)用
        活力(2016年8期)2016-11-12 17:30:08
        基于支持向量機的金融數(shù)據(jù)分析研究
        基于Spark的大數(shù)據(jù)計算模型
        基于樸素貝葉斯算法的垃圾短信智能識別系統(tǒng)
        基于圖的半監(jiān)督學(xué)習(xí)方法綜述
        機器學(xué)習(xí)理論在高中自主學(xué)習(xí)中的應(yīng)用
        極限學(xué)習(xí)機在圖像分割中的應(yīng)用
        亚洲女同免费在线观看| 久久中文字幕乱码免费| 免费精品美女久久久久久久久久| 中文字幕久区久久中文字幕 | 男女边摸边吃奶边做视频韩国| 欧美熟妇性xxx交潮喷| 老熟女多次高潮露脸视频| 亚洲熟妇夜夜一区二区三区| 午夜免费观看国产视频| 狠狠躁日日躁夜夜躁2020| 无码人妻精品一区二区三18禁| 亚洲欧美日本人成在线观看| 久久一区二区av毛片国产| 永久亚洲成a人片777777| 亚洲另类精品无码专区| 亚洲欧美另类日本久久影院| 日韩精品免费视频久久| 午夜免费福利小电影| av大片在线无码免费| 一区二区三区蜜桃在线视频| 久久综合九色综合97婷婷| 国产精品久久人妻无码| av中文字幕综合在线| 国产偷拍盗摄一区二区| 国产精品亚洲av无人区一区香蕉| 在线观看免费人成视频| 国产一级淫片免费播放电影| 在线观看二区视频网站二区| 色老板美国在线观看| 色妞色综合久久夜夜| 少妇av免费在线播放| 精品视频在线观看日韩| 国产精品乱码一区二区三区 | 国产成人精品电影在线观看 | 精品深夜av无码一区二区| 久久久久亚洲AV成人网毛片| 亚洲乱熟妇一区二区三区蜜桃| 日韩网红少妇无码视频香港| 大地资源中文在线观看官网第二页| 久久熟女乱一区二区三区四区| 蜜桃传媒一区二区亚洲av婷婷|