吳瑩瑩 殷西祥
摘?要:Android系統具有開源性、硬件選擇豐富等優點,目前已成為用戶基數最為龐大的移動操作系統,但同時也成為惡意應用軟件的主要攻擊目標,給廣大的Android系統用戶帶來了危害。現階段針對Android惡意應用檢測的研究越來越多,本文對Android惡意應用檢測技術和方案進行歸納總結,分析不同技術特點,對Android惡意應用軟件檢測研究的方向與特點進行討論。
關鍵詞:Android;惡意應用軟件;檢測技術
Analysis?of?Android?Malware?Detection?Scheme
Wu?Yingying?Yin?Xixiang
Anhui?Bussiness?College?AnhuiWuhu?241000
Abstract:Android?system?has?the?advantages?of?open?source?and?rich?hardware?options.At?present,it?has?become?the?mobile?operating?system?with?the?largest?user?base,but?it?has?also?become?the?main?attack?target?of?malicious?applications,bringing?harm?to?the?majority?of?Android?system?users.At?this?stage,there?are?more?and?more?researches?on?Android?malicious?application?detection.This?paper?summarizes?the?Android?malicious?application?detection?technology?and?scheme,analyzes?the?characteristics?of?different?technologies,and?discusses?the?direction?and?characteristics?of?Android?malicious?application?detection?research.
Keywords:Android;malware;detection?technology
隨著移動互聯網在人們生活中的大量使用,其安全性的討論也越來越多。移動安全的主要威脅來自于硬件、網絡、操作系統、APP應用軟件等方面。以Android系統為例,系統的碎片化具有較大的安全隱患,越來越豐富的Android應用軟件也帶來了越來越多的技術安全風險。惡意軟件開發者利用Android系統的安全漏洞,通過各種渠道入侵用戶的移動終端設備進行攻擊,這對用戶的隱私以及財產安全產生了極大的威脅。
1?Android惡意軟件的常用檢測技術
1.1?靜態分析技術
靜態分析指的是在APP應用不運行的情況下,對該APP應用的特征進行檢測分析,即通過采用逆向處理的方式來獲取APP應用的源代碼信息,隨后對該源代碼進行研究分析。特征的選擇與分析是其主要研究,常常被選用的特征主要包括網絡IP、Java代碼、權限、硬件組件等,安裝包文件可上傳至服務器端進行檢測,速度較快。但是針對代碼混淆等對抗技術時,靜態分析常常力不從心,無法有效識別。常見的靜態分析技術有代碼相似性檢測、基于模板檢測等。
1.2?動態分析技術
動態分析指的是在APP運行的情況下,通過監控其運行過程中產生的行為以及數據來進行分析。動態檢測技術主要研究點在于運行環境的狀態變化和應用程序的行為追蹤,前者指對APP運行前后的安卓操作系統參數以及服務是否發生變化進行監控,后者則是對APP運行時的所有行為進行實時監控,例如打電話、拍照等。動態分析技術可有效避免APP程序代碼被加固和代碼混淆帶來的影響,但需要配合自動化的驅動策略。常見做法一般是將應用軟件的樣本置入沙盒中運行,利用人工或者工具進行時間觸發,通過監控工具進行過程監控,得到系統調用日志,從而創建數據集,在此基礎之上對系統調用日志進行特征提取,構建特征向量,根據結果對軟件進行歸類,示意圖參見下圖所示。
動態技術分析示意圖
1.3?混合分析技術
混合分析技術是將靜態分析技術與動態分析技術結合,在應用軟件安裝前提取相關權限信息以及代碼信息進行分析,在軟件安裝后監聽應用軟件的系統調用信息,此類檢測方法成本較高,但較前兩者效果好,形成更為準確的惡意軟件分析方式。
2?安卓惡意軟件的類型分析
2.1?安卓惡意軟件的分類方式
對于安卓惡意軟件的分類,常采用兩種方式。一種是基于家族的分類方式,即具有相同特征的惡意軟件的集合[1],另外一種則是按照惡意軟件的發生行為進行分類。
2.2?安卓惡意軟件的入侵方式分析
安卓惡意軟件常常采用重打包、更新包、偷渡式下載等方式入侵用戶設備產生危害。
重打包指的是惡意軟件開發者通過某些反編譯軟件對正常APP應用的APK安裝包進行解包,解包之后隨即植入惡意代碼,再進行重新打包,形成新的具有惡意功能的APK安裝包,將其投放到某些缺乏監管的APP應用下載市場或者網頁論壇,讓用戶誤以為該惡意軟件為正常APP應用,從而進行下載。
更新包則是指初始版本的安裝包為正常APK安裝包,在安裝完成后的使用過程中誘導用戶下載準備好的惡意代碼來完成軟件的更新,達到入侵的目的。此類惡意軟件的檢測往往需要采用動態分析檢測手段。
偷渡式下載常見手段則是通過網頁瀏覽器或者相關插件存在的漏洞進行攻擊,例如誘導用戶使用釣魚鏈接,偽造圖標按鈕。某些基于機器學習的檢測手段可對此種下載方式進行實時監測且效果良好。
惡意程序通過上述手段完成入侵用戶設備之后,再通過監聽事件、引導用戶點擊等手段進行觸發,達到權限提升、遠程控制、扣除話費等目的,借助ProGuard、APKFuscator等工具完成應用的代碼混淆,提高自身的生存性能,比較棘手。
3?Android惡意軟件檢測方案分析
3.1?基于靜態分析技術的檢測方案
常見的基于靜態分析技術的惡意軟件檢測方案包括基于APP安裝包文件特征分析、基于APP的特征分析等。
基于APP安裝包文件特征指的是對安裝包文件進行解壓,解壓后對其中的非資源文件以及非簽名文件進行檢測,再對資源文件和簽名文件等進行特征表征,隨后進行相似性比較,用以判斷是否為惡意軟件。有學者將APP代碼片段進行哈希計算[2],得到哈希值后作為軟件應用程序的特征;還有學者提出可以基于多層次簽名(API簽名、Class簽名、Method簽名、APK簽名等)來進行檢測。
基于APP特征分析的方案則是將APP的名稱、多媒體文件、用戶界面、ICON等做特征表示,隨后進行相似度計算以得出結論。例如,有學者根據軟件的用戶界面特征定位該APP的Dialog界面等,得到界面的跳轉流程圖后,計算流程圖中心圖標的相似性來實施惡意軟件檢測[3]。該方法能夠同時兼顧到惡意軟件檢測的效率與準確率,總體檢測效果表現較好。
3.2?基于動態分析技術的檢測方案
通常情況下,基于動態分析技術的檢測方式會對Android系統進行定制和改寫,比如改寫安全機制、在原生系統中加入監視器等,由此得到APP應用的行為信息。常見的動態分析技術的檢測方案有基于APP動態行為分析、基于污點跟蹤等。
Fairuz等學者提出了基于異常和機器學習分類來對應用軟件進行檢測,在網絡流量特征中,選擇基于內容、信息、時間、連結自重特征值。在實驗結果中可見,基于貝葉斯網絡與隨機擇機分類器的檢測方法大大提高了檢測準確率,能夠達到84.57%;朱月俊等學者則通過改進隨機森林算法,對惡意的應用軟件進行評估,選取并優化隨機森林構建過程中節點分裂時產生的特征子集,利用交叉驗證的方法優化模型,對Android應用軟件進行分類,通過最終實驗評估,該方法的準確率能夠達到94.0%;Lindorfer等學者提出的Apps?Playground惡意應用軟件檢測系統,則是融合了多種動態檢測特征,將污點分析、系統調用監控、API監控等多種分析方法綜合使用,此類方法對于隱私泄露的檢測行為較好,但現有的污點分析技術對于本地代碼和控制流的跟蹤效果有限[4]。
3.3?基于混合分析技術的檢測方案
常見的基于混合分析技術的檢測流程通常是先進行靜態分析再進行動態分析,依據各部分的分析結果進行綜合判斷,使檢測開銷和檢測效果能夠達到平衡。
在Wang等學者基于CuckooDroid開源框架提出的混合檢測系統中,從反匯編代碼以及清單文件中提取靜態特征,在應用運行時獲取動態API調用動態特征。該系統由異常檢測引擎通過動態分析進行非正常應用檢測,由簽名檢測引擎完成一致的惡意軟件進行檢測與分類;Spreitzenbarth等學者則提出MobileSandbox系統,靜態分析技術用于解析應用軟件的Manifest文件,并對應用軟件程序進行反編譯,對應用是否擁有可疑權限和意圖進行判斷,動態分析技術執行應用并記錄應用所有執行操作[56]。
混合檢測技術雖然可以抵抗的靜態檢測技術中的代碼混淆以及動態檢測技術中難以測試應用軟件中所有功能而導致的漏報,但由于所選取的特征值復雜,總體效率偏低。
3.4?基于機器學習的檢測方案
作為人工智能的主要技術之一,機器學習已經越來越多應用于惡意軟件檢測的工作中,計算機可以模擬人類來識別惡意軟件,并且在面對大量樣本時,效率較高。例如,有學者使用了SVM(Support?Vector?Machines)為訓練的數據集構建一個超平面模型,通過檢測樣本的掉落區域來判斷該應用軟件的性質,檢測率達到了93.9%[7]。
近些年,深度學習在圖像領域取得了突破性進展,因此也被遷徙到安卓惡意軟件的檢測研究中[89]。根據樣本表示方法的不同,其檢測方案可以分為基于卷積神經網絡的惡意軟件檢測、基于循環神經網絡的惡意軟件檢測、基于圖神經網絡的惡意軟件檢測。
卷積神經網絡CNN在數據具有空間結構關系的場景中性能表現優秀,因此學者們嘗試將惡意軟件轉換為具有空間關系結構的數據,再使用卷積神經網絡進行檢測。深層卷積網絡對數據的擬合能力較強,面對混淆后的樣本也能有效應對,但如果深度過深,則會造成訓練時梯度爆炸或消失的不利局面;循環神經網絡RNN的特點是序列化數據處理能力較強,因此在機器翻譯、自然語言處理表現優秀,目前很多學者在將惡意軟件解析為API調用序列等序列數據之后,基于RNN進行惡意軟件檢測模型的建構。圖神經網絡GNN在深度學習模型中引入圖,能夠較好處理關系型數據,因此學者們將應用軟件樣本轉化為圖,建立基于GNN的檢測模型對圖進行識別,目前這方面的研究工作不多,如何有效進行表征學習、將樣本用圖來進行準確表示需要進一步研究。
結語
Android惡意軟件快速發展對Android用戶帶來了風險與困擾。雖然目前Android惡意應用檢測的相關研究已經取得了不少成果,也形成了相對成熟的檢測工具,但是要實現對惡意軟件的完全檢測依然較為困難。總體而言,很多研究仍然處于理論階段,實際應用中局限性仍然較大,因此,迫切需要工業界以及學術界攜手對惡意軟件檢測進行更加深入的研究,使Android惡意應用檢測技術得到更好的發展。
參考文獻:
[1]何曉霞.Android平臺惡意軟件與動態檢測技術[J].科學技術創新,2021(31):9193.
[2]肖錦琦,王俊峰.基于模糊哈希特征表示的惡意軟件聚類方法[J].四川大學學報(自然科學版),2018,55(03):469476.
[3]李承言.面向安卓的軟件惡意行為分析與防御研究[D].中北大學,2021.
[4]秦佳偉.安卓平臺的漏洞檢測關鍵技術研究[D].北京郵電大學,2021.
[5]李淼.基于混合特征分析的安卓惡意軟件檢測技術研究與實現[D].天津大學,2020.
[6]張凱萌.基于多特征的Android惡意軟件混合分析檢測的方法研究[D].電子科技大學,2021.
[7]陳會兵.基于機器學習的惡意腳本代碼檢測方法的研究與實現[D].浙江工業大學,2011.
[8]胡冰城.深度學習方法在惡意程序檢測系統中的應用[D].北京郵電大學,2021.
[9]譚茹涵,左黎明,劉二根,等.基于圖像特征融合的惡意代碼檢測[J].信息網絡安全,2021,21(10):9095.
基金項目:2022年度校科學研究重點項目:基于交互式人工智能的智慧養老系統研究與設計(2022KZZ04);2021年校技術技能創新服務平臺應用研究項目:基于用戶體驗的企業APP設計與應用研究(2021ZDQ15);安徽省教育廳重點研究項目:基于深度學習的Android惡意軟件檢測研究(2022AH052742)
作者簡介:吳瑩瑩(1983—?),女,漢族,安徽銅陵人,碩士,講師,研究方向:移動應用開發、網絡安全。