999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于動靜態結合分析的Android惡意應用多重檢測模型

2018-03-01 10:26:16陳明翔解夢飛張欽堯劉俊
無線互聯科技 2018年22期
關鍵詞:機器學習

陳明翔 解夢飛 張欽堯 劉俊

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

關鍵詞:Android;惡意軟件;動態監測;靜態分析;機器學習;漏洞掃描;隱私泄露

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

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

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

1 基于動靜態結合分析的Android惡意應用多重檢測模型的總體設計

本系統包括:動態監測部分和靜態檢測部分(見圖1),分別運行在Android客戶端和服務器端。

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

2 基于API Hook的敏感行為監測模塊

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

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

2.1 確定敏感行為

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

2.2 模塊工作流程

模塊工作流程包含API Hook模塊、風險評估模塊、風險預警模塊。

2.2.1 API Hook

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

2.2.2 風險評估

本文提出并設計一種風險評估模型,首先提出以下前提和概念。

a) 本文預設敏感API集為。

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

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

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

Hook模塊設計前期,對大量惡意軟件的反編譯提取其中敏感API調用代碼。本文通過大量的動態監測分析其惡意程度,定義了各敏感API的惡意權重。

Hook模塊提出一種風險評估算法:

定義為ai執行過程中調用的敏感API集。

定義為ai的調用權重,特別地若,則。

定義為該APP的帶權惡意系數。通過機器學習分類算法計算,若V>0.61,則判定該應用為惡意軟件。

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

為該惡意API組合調用的組合時間惡意系數,若T<0,則將該APP評估為惡意APP。

使用現有的APP自動化檢測系統得出在100款惡意軟件上,該風險評估算法成功率為87%。

2.3 風險預警

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

3 Android流量監控、分析、攔截模型

多數Android惡意應用通過聯網下載APP、展示廣告等方式盈利,這不僅導致用戶消耗大量流量,還可能威脅到用戶隱私和Android系統安全。基于惡意應用依賴互聯網盈利這個特點,本文在Android設備上搭建一個流量監控、分析、攔截平臺,建立惡意流量規則庫,對惡意應用的請求報文進行攔截,從而阻止惡意應用的惡意行為,保護用戶的流量和隱私。

3.1 模型設計

Android流量監控、分析、攔截平臺架構如圖2所示。

Android流量監控、分析、攔截平臺采用C-S模式,客戶端實現監控和攔截功能,服務器實現惡意流量規則的匯總、判優和同步。

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

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

3.2 模型實現

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

客戶端流量監控功能基于VPNService實現。在VPNService框架中,開發者可以獲取和控制所有網絡層流量。此外,網絡層中包含的傳輸層端口信息用來區分出不同應用的流量。

4 基于權限與敏感API的機器學習分類算法靜態檢測模型

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

4.1 特征選取

4.1.1 權限信息

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

4.1.2 敏感API調用

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

將敏感API的調用次數作為特征值構建特征向量,由于不同大小的應用程序相對調用API的次數不同,所以本文將應用程序的大小與API調用次數做了加權平均,來降低應用程序大小帶來的影響。

4.2 模型分析與評估

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

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

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

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

5 Android應用漏洞檢測模塊

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

5.1 Android應用漏洞檢測模塊的工作流程

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

5.2 基于數據流分析的變量行為記錄算法

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

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

6 隱私泄露檢測模塊

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

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

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

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

Android應用中每一個組件都有自己完整的生命周期,組件在運行過程中隨時可能被觸發調用。因此,要對Android應用程序進行過程間數據流分析,就需要先為Android應用程序的生命周期建模,并構造一個虛擬的main方法,在方法內模擬觸發所有組件,然后再對這個虛擬的main方法進行數據流分析,尋找Sources到Sinks間的路徑。

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

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

[參考文獻]

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

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

[3]邵舒迪,虞慧群,范貴生.基于權限和API特征結合的Android惡意軟件檢測方法[J].計算機科學,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,FRITZ 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.

猜你喜歡
機器學習
基于詞典與機器學習的中文微博情感分析
基于網絡搜索數據的平遙旅游客流量預測分析
時代金融(2016年27期)2016-11-25 17:51:36
前綴字母為特征在維吾爾語文本情感分類中的研究
科教導刊(2016年26期)2016-11-15 20:19:33
下一代廣播電視網中“人工智能”的應用
活力(2016年8期)2016-11-12 17:30:08
基于支持向量機的金融數據分析研究
基于Spark的大數據計算模型
基于樸素貝葉斯算法的垃圾短信智能識別系統
基于圖的半監督學習方法綜述
機器學習理論在高中自主學習中的應用
極限學習機在圖像分割中的應用
主站蜘蛛池模板: 国产成人综合在线视频| 国产91精品调教在线播放| 波多野结衣一区二区三区四区| 日韩欧美色综合| 成人午夜视频在线| 91网红精品在线观看| 九月婷婷亚洲综合在线| 精品国产福利在线| 乱色熟女综合一区二区| 精品视频在线观看你懂的一区| 久久人午夜亚洲精品无码区| 嫩草在线视频| 伊人国产无码高清视频| 亚洲精品中文字幕午夜| 亚洲视频在线青青| 凹凸国产分类在线观看| 亚洲中文字幕日产无码2021| 91久久偷偷做嫩草影院精品| 欧美亚洲欧美区| 日韩视频免费| 青草视频在线观看国产| 日韩av高清无码一区二区三区| 久久福利片| 波多野结衣一二三| 91精品久久久久久无码人妻| 青青久久91| 人妻中文久热无码丝袜| 亚洲欧洲日韩综合色天使| 日日碰狠狠添天天爽| 精品1区2区3区| 欧美性猛交xxxx乱大交极品| 色九九视频| 国产一区二区色淫影院| 亚洲天堂在线免费| 91娇喘视频| 国产又粗又猛又爽| 亚洲欧美另类久久久精品播放的| 日本手机在线视频| 91成人在线免费视频| 国产毛片基地| 亚洲国产系列| 永久免费无码成人网站| 国产成人久久综合777777麻豆 | 久一在线视频| 精品伊人久久久香线蕉| 精品国产aⅴ一区二区三区| 久久不卡精品| 亚洲精品天堂在线观看| 亚洲天堂免费观看| 91在线国内在线播放老师| 乱人伦99久久| 91精品啪在线观看国产91九色| 99青青青精品视频在线| 一级毛片免费观看不卡视频| 亚洲精品777| 色婷婷天天综合在线| 波多野结衣一区二区三区88| 国产在线一二三区| 日韩无码视频专区| 国产精品播放| 亚洲人成网站色7799在线播放| 精品91在线| 成人精品在线观看| 91精品网站| 97在线国产视频| 亚洲色图综合在线| 国产熟睡乱子伦视频网站| 国外欧美一区另类中文字幕| 色综合久久88| 久久成人18免费| 成人在线综合| 成人日韩精品| 夜夜爽免费视频| 亚洲大学生视频在线播放| 成人91在线| 免费看美女毛片| 99r在线精品视频在线播放| www.国产福利| 激情综合网激情综合| 免费人成在线观看视频色| 天堂久久久久久中文字幕| 久久精品国产精品青草app|