?

基于沙盒的Android惡意軟件檢測技術研究

2016-10-14 06:44林鑫
電子設計工程 2016年12期
關鍵詞:沙盒云端靜態

林鑫

(南京理工大學江蘇南京210094)

基于沙盒的Android惡意軟件檢測技術研究

林鑫

(南京理工大學江蘇南京210094)

隨著互聯網技術和計算機技術的高速發展,人們獲取資源和服務變得更加方便快捷了,但與之伴隨而來的安全問題也日益突出。特別是在使用廣泛的移動終端上,竊取信息、惡意吸費等惡意軟件層出不窮。由于受到資源和計算能力的限制,移動終端無法安裝功能強大、性能要求高的病毒查殺軟件。本文從實際出發,針對移動終端對安全的需求和現有查殺軟件存在的弊端進行了深入的分析,提出了一種基于沙盒的結合移動端和云端的惡意軟件檢測技術。該技術采用了基于動態分析的沙盒技術,從一定程度上彌補了傳統的靜態分析方法所存在的不足,沙盒所特有的隔離環境,同時保證在系統執行檢測任務時免遭惡意程序的破壞。另外,考慮到移動終端的局限性和檢測過程的可靠性,在移動終端經過預處理后,使用高效的比對算法進行二進制比對,同時通過網絡將APK中的class字節碼文件上傳到云端,通過在云端的虛擬機中運行執行代碼進行進一步檢測,從而提高檢測的可靠性和效率。

沙盒;Android;惡意軟件;云計算

2007年至今的短短七年時間里,Android一躍成為市場占有率最高的移動智能終端操作系統。生態封閉的iOS和Windows Phone保證了開發平臺和產品一致性,應用程序經過嚴格審查,價值鏈控制嚴密.而Android系統秉持開放性原則,吸引了大批用戶、手機廠商、應用開發商和銷售商,但是開放的應用市場和相對寬松的應用審查機制導致Android惡意軟件泛濫、安全威脅與日俱增[1]。

現有Android惡意軟件反逆向、抗檢測技術不斷發展成熟,惡意軟件變種迅速,家族種類繁多,已經形成了以吸費扣費、惡意推廣、隱私販賣為目的的灰色利益產業鏈[2]。安全公司每天面臨大量待測可疑樣本,分析檢測工作量巨大,特征提取效率低下,導致了基于靜態掃描引擎的安全軟件檢出率不高。應用市場間競爭激烈,同質化嚴重,基本處于無序發展狀態.這樣的“內憂外患”惡化了Andoird安全形勢。

受電池、帶寬、CPU、內存資源限制,傳統適用于PC的惡意軟件分析檢測手段不能直接運用在移動智能終端上。如何針對Android移動平臺惡意軟件進行快速有效的分析檢測成為當務之急[3]。

本文由4個部分組成,第1節研究現有Android惡意軟件攻擊技術的相關內容,包括Android惡意軟件檢測技術及其優缺點;第2節提出一種較為完整的解決方案,一種動態檢測和靜態檢測結合移動終端和云端聯動的檢測模型;第3節針對現有研究中的不足之處,提出了幾點未來的發展方向。

1 Android惡意軟件檢測技術研究

1.1惡意軟件攻擊技術

綜合分析已知惡意軟件,它們的危害大體上可分為兩方面,一方面是針對用戶個人,另一方面是針對通信網絡等硬件,主要行為表現為:惡意扣費或消耗套餐,竊取用戶隱私資料,提示聯網下載軟件,大量傳播惡意軟件等。

惡意程序的攻擊方式有很多,但都會表現出一定的特征,一般完成一次攻擊,要經歷入侵、獲取權限、潛伏、實施破壞行為等過程。在惡意程序實施攻擊行為的過程中主要使用到進程注入技術、遠程控制技術、端口反向連接與端口復用技術、自生產和升級技術、自啟動技術等[4]。

1.2惡意軟件檢測技術

1.2.1靜態檢測方法

靜態分析方法,是指不運行可疑惡意程序,僅僅通過某些分析工具或者反編譯工具獲得待測程序的語義和特征,然后進行程序樣本庫的匹配,從而識別目標程序是否具有惡意性質[5]。顯而易見,使用靜態分析方法進行分析的優點是不必運行目標程序,所以分析速度快,系統也因此可以免遭不可預測的惡意破壞。而該方法的缺點是,在執行對某些經過加殼或者加密的可疑程序的分析時,往往得不到任何的分析信息,因此靜態分析方法有一定的局限性。根據識別惡意程序的依據不同,可以把靜態分析方法分為基于代碼特征分析法和基于代碼語義分析法兩類。

1)基于代碼特征的分析方法

基于代碼特征分析法是一種根據目標程序代碼所出現的統計特性進行惡意識別的一種靜態分析方法。在使用靜態分析方法時往往可以通過分析工具得到可疑惡意程序的某些統計特性,通常情況下,這些統計特性在惡意代碼中表現的特別明顯,惡意程序為了實現其惡意目的,在其代碼中難免會出現多次對某些系統API函數的調用,例如操作系統注冊表的函數,而正常情況下,無惡意的軟件是很少會多次操作注冊表信息的,因此一旦在基于代碼特征的分析的過程中發現目標程序具有這種統計特性時,就可以初步將目標程序判定為疑似惡意程序。

2)基于代碼語義的分析方法

與上述方法不同,基于代碼語義的分析方法并不是依賴于目標程序的代碼統計特性進行惡意判定,該方法首先是利用某些工具對惡意代碼進行反編譯,然后通過對語義的理解和分析,重構目標程序的功能模塊圖以及執行流程圖。

1.2.2動態檢測方法

當惡意程序運用了加殼、多態技術以及變形技術時,采用靜態分析法進行分析就有可能失效。使用動態分析方法進行惡意程序檢測往往可以得到更加全面的分析結果,其好處是可以提高分析的準確率,并且可以使一些經過加殼或者加密的惡意程序無處遁形。根據動態分析過程中所關注的內容不同,可以將動態分析法分為兩類:狀態對比法和動態追蹤法。

1)狀態對比法

如果希望快速了解惡意程序所使用的攻擊方式以及破壞意圖,可采用狀態分析法進行快速分析,其原理如下,記錄系統運行目標程序前后的環境以及系統狀態變化,通過對比變化,與行為特征庫進行匹配,即可初步確定目標惡意程序所屬類型和所使用的攻擊方式。

2)動態追蹤法

如果希望在動態分析的過程中獲取目標程序產生的所有信息,則需要使用動態跟蹤法。與狀態對比法相比,該方法關注的重點是目標程序執行時所表現出的全部行為特征,通過綜合分析這些特征屬性,來確定目標程序是否具有惡意性。

1.3沙箱技術研究

1.3.1沙盒技術概述

沙盒技術是國際反病毒業界近年來提出的反病毒新概念。它在計算機系統內部構造了一個獨立的虛擬空間,當發現程序的可疑行為時讓程序繼續運行,確認是病毒時才終止[6]。沙盒技術能讓程序的可疑行為在電腦虛擬的沙盒里充分表演,并記下它的每一個動作,在病毒充分暴露了其病毒屬性后,沙盒就會執行回滾機制,將病毒的痕跡和動作抹去,恢復系統到正常狀態。

1.3.2沙盒分析方法

根據上述概念,使用傳統的沙盒分析方法時,首先創造一個虛擬的程序運行環境,然后將目標程序放入其中執行,由于該虛擬環境擁有像真實操作系統一樣的環境,因此目標程序能夠正常執行并且會表現出它本身所具有的惡意性,當系統確定待測程序屬于惡意程序時,就會終止目標程序的運行,以避免它對真實操作系統造成破壞。沙盒分析結束后,分析系統會生成目標程序的分析日志,用戶可以通過該分析日志來確定目標程序是否具有惡意性。

2 基于沙盒的Android惡意軟件檢測方案設計

經過綜合考慮,本文專門提出了一種靜態掃描和動態執行結合,移動終端和云端聯動的檢測模式。在移動終端上只做靜態檢測,在云平臺上做進一步的動態檢測,甚至可以將靜態檢測中耗時的操作遷移至云平臺上,進一步節省手機電量,降低手機資源的消耗。系統的網絡拓撲結構如圖1所示。

圖1 系統網絡拓撲結構圖

2.1云端沙箱聯動機制

在移動終端主要進行解壓縮,簡單的二進制對比,簡單的API調用序列對比和上傳動作;云端主要運行了重新修改編譯后的虛擬機來動態執行手機端上傳的樣本代碼,重新編譯好的框架層或者DVM虛擬機會動態執行該樣本,可以獲得樣本加載系統模塊,動作行為等具體信息,進一步來增強檢測效果。

系統首先將對目標代碼進行靜態檢測,移動終端的軟件將會負責APK解壓,先進行啟發式掃描,然后檢查Manifest. xml文件,最后分析DEX文件中的全部敏感屬性,假設以上結果檢測不出結果,或者3項中的結果只有一項有可疑結果,我們就上傳APK至云端,動用動態檢測來進一步分析,假設云端動態執行后的結果出目標代碼是惡意代碼,則目標軟件能夠肯定屬于惡意軟件[7],假設之前的靜態檢測已經能夠明確的指出代碼是惡意代碼,則可以省去動態檢測這一步驟,直接對用戶提示潛在威脅,云端沙箱聯動機制的具體檢測流程如圖2所示。

圖2 云端沙箱聯動機制檢測流程圖

目的是出于考慮到手機平臺的特殊性,網絡上傳動作需要較多的電量和帶寬支持,假設使用GPRS網絡上傳,單個APP的大小通常在幾M到30M左右,會使用戶手機產生較大的流量費用,假設使用WiFi,則用戶相對容易接受(考慮設計一個監聽廣播收集用戶Android系統的網絡狀態,只在系統存在WiFi鏈接時,才進行APK上傳動作,提高用戶體驗)。

2.2移動終端預處理

在移動終端端上,利用APP完成相對簡單的預處理過程,比如解壓APK,上傳特定的文件至服務器,簡單的靜態檢測,對用戶進行提醒等等。

在移動終端,主體功能在于對目標代碼進行靜態檢測,同時具備查看日志和提醒用戶等功能,程序總體是由一個運行在后臺的Service和一個運行在前端的Activity組成,Service會攔截系統啟動Boost廣播,從而實現自啟動,Service在整個用戶手機運行期間,均會在后臺運行,同時Service會監聽系統安裝程序的廣播,對新安裝的程序進行默認掃描,假如靜態檢測無法識別,而目標代碼可疑程度較高則會通過上傳模塊,上傳至云端,進行動態檢測;在Activity中,能夠實現系統的基本配置管理,查看運行日志和查看歷史提醒等功能。查看日志主要為方便用戶,查看提醒采用Toast組件對用戶進行提醒,Toast組件的持續時間較短,用戶可能忽略,因此必須設置查看歷史提醒功能。在Service中,首先對APK進行解壓,然后對APK結構執行啟發式掃描,之后執行初步二進制對比class.dex文件的全部敏感字段,最后檢查Manifest.xml文件,關鍵在于分析廣播器、監聽器以及系統權限信息,如果無法得出結果,則考慮上傳APK至服務器。在Activity中,主要有基本配置管理,查看運行日志,查看歷史提醒等功能模塊。移動終端APP功能結構劃分如圖3所示。

圖3 移動終端APP功能結構圖

2.3云端檢測處理

在后臺服務器集群構建的云端負責接收上傳APK,使用重新編譯好的模擬器來觀察動態執行的結果,反匯編APK,對比APK源碼結構,建立并管理簽名數據庫和惡意代碼數據庫,反饋結果至移動終端。后臺服務器主要運行在Linux操作系統上,由于某些靜態檢測非常耗費資源,云端同樣會執行部分靜態檢測。

假設之前的靜態檢測并不足以判斷一個APK是否為惡意軟件,必須上傳此目標APK至云端。在云端結合專業的病毒庫,進一步進行比對分析,目標對象為XML文件,簽名文件以及反編譯DEX文件,假設檢測仍然沒有結果[8],但目標代碼的確存在可疑之處,借助重新編譯后的虛擬機動態執行目標代碼,從執行過程調用的系統框架層函數中,捕獲所需參數信息,以及目標代碼是否加載某些系統模塊進行檢測。云端子系統功能結構劃分如圖4所示。

圖4 云端子系統功能結構圖

3 結束語

本文對Android惡意軟件檢測技術進行了系統的調研,分析了Android惡意軟件檢測技術的各方面相關內容,在此基礎上提出了一種全新的基于沙盒的Android惡意軟件檢測方案。本文提出的方案解決了現有方案存在的不足,為Android應用程序提供了一個真實的運行環境,使應用程序暴露出其真實的行為。

本方案也存在幾點不足之處。首先,對Android沙盒的控制依賴于虛擬化軟件,虛擬化軟件的穩定性決定了Android沙盒的穩定性;其次,Android沙盒系統的版本依賴于Android開源項目,新版本的Android系統如果加入了新的系統API,將無法檢測出這些新的API調用;最后,本文的Android惡意軟件檢測方案在移動終端無法訪問網絡時存在功能局限性,只能進行簡單的移動終端預處理。

針對上面提出的三點不足之處,下一步的研究重點是改進Android沙盒,降低甚至消除Android沙盒對虛擬化軟件和Android開源項目的過分依賴,在移動終端搭建相對智能化的可自動進化升級的Android惡意軟件預檢測機制,在考慮移動終端局限性的同時,盡可能提高惡意軟件檢出效率。

[1]Steven MP,Contrary to what you've heard,Android is almost impenetrable to malware[EB/OL].(2013-10-03)[2015-06-23].http://qz.com/131436/contrary-to-what-you' veeard-android-is-almost-impenetrable-to-malware.

[2]馮博,戴航.Android惡意軟件檢測方法研究[J].計算機技術與發展,2014,24(2):149-152.

[3]彭國軍,李晶雯,孫潤康,等.Android惡意軟件檢測研究與進展[J].武漢大學學報(理學版),2015(1):21-33.

[4]何國賢.基于沙盒技術的多平臺惡意程序分析工具研究與實現[D].成都:電子科技大學,2013.

[5]Kasama,Takahiro.Malware Detection Method by Catching Their Random Behavior in Multiple Executions[C]//2012 IEEE/IPSJ 12th International Symposium on Applications and the Internet,Izmir,2012:262-266.

[6]Jana,Suman.Building Secure,Efficient Sandboxes with System Transactions[C]//2011 IEEE Symposium on Security and Privacy,Berkeley,CA,2011:329-344.

[7]劉一田,孔震,李萌.Web應用中故障檢測機制的研究與改進[J].陜西電力,2012(11):66-69.

[8]周云端,何志勇,趙瑞國.基于遺傳算法的加速度控制PID參數自整定研究[J].火箭推進,2012(4):68-71.

Malware detection technology research of Android platform based on sandbox

LIN Xin
(Nanjing University of Science and Technology,Nanjing 210094,China)

With the rapid development of Internet technology and computer technology,people's access to resources and services become more convenient,but the security issue with the attendant increasingly prominent.Especially in the use of a wide range of mobile devices,steal information,malicious suction fee malware endless.Due to limited resources and computing power,the mobile terminal cannot install a powerful,high performance requirements virus killing software.This article from the reality,for mobile terminal security requirements and existing software Disadvantages killing depth analysis,the malware detection technology based on a combination of sandbox mobile terminal and the cloud.The technology uses sandbox technology based dynamic analysis,to some extent,compensate for the shortcomings of traditional static analysis methods exist,sandbox unique isolated environment,while ensuring that malicious programs from the system to perform inspection tasks in damage.In addition,taking into account the limitations and reliability of the detection process of the mobile terminal,the mobile terminal after pretreatment,the use of efficient than binary comparison algorithm,and through a network of APK class bytecode files uploaded to the cloud by the virtual machine to execute code to run in the cloud for further testing to improve the reliability and efficiency of detection.

sandbox;android;malware detection;cloud computing

TN929.5

A

1674-6236(2016)12-0048-03

2015-07-15稿件編號:201507110

林鑫(1983—),男,福建閩侯人,碩士,助理研究員。研究方向:計算機應用技術。

猜你喜歡
沙盒云端靜態
不好惹的沙盒樹
四海心連·云端匯聚
最新進展!中老鐵路開始靜態驗收
靜態隨機存儲器在軌自檢算法
云端之城
韓國版金融科技“監管沙盒”法案及其啟示
Windows 10“沙盒” 不僅更安全
云端創意
熱點追蹤 角逐創新沙盒絕賽Phantom異軍突起奪冠
在云端
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合