本發(fā)明涉及智能手機(jī)信息安全領(lǐng)域,具體而言,本發(fā)明提供一種智能手機(jī)應(yīng)用程序的動態(tài)分析方法及相關(guān)系統(tǒng)。
背景技術(shù):
隨著現(xiàn)代通信手段的進(jìn)步,我國智能手機(jī)的用戶越來越多,而隨著手機(jī)終端的不斷普及、網(wǎng)民規(guī)模高速增長以及移動互聯(lián)快發(fā)展,各類手機(jī)應(yīng)用如雨后春筍般出現(xiàn),包括電子商務(wù)、手機(jī)支付、LBS、聯(lián)系人云備份、手機(jī)預(yù)訂票和酒店等在內(nèi)的商務(wù)應(yīng)用也不斷成熟,極大地滿足了用戶的多方需求。
但隨著智能手機(jī)市場的進(jìn)一步擴(kuò)展,水貨、山寨手機(jī)及其應(yīng)用的泛濫使得手機(jī)的安全風(fēng)險日益擴(kuò)大,感染手機(jī)病毒的用戶量急劇增長。包括病毒、惡意扣費(fèi)、騷擾電話、手機(jī)系統(tǒng)垃圾、私自聯(lián)網(wǎng)消耗流量、手機(jī)支付安全隱患、隱私泄露在內(nèi)的各類問題困擾著用戶。與此同時,病毒投放渠道、攻擊技術(shù)利益聯(lián)盟等黑色產(chǎn)業(yè)鏈也逐步完善,更多的手機(jī)用戶因此開始受到病毒的大規(guī)模侵襲。
目前越來越多的案件和電子數(shù)據(jù)勘查取證涉及到手機(jī)程序功能的分析,分析的難度和工作量也越來越大,包括對各類惡意扣費(fèi)軟件、竊取用戶個人隱私信息等手機(jī)程序的取證分析和檢驗鑒定。因此,對主流的智能手機(jī)的應(yīng)用程序的功能分析和取證必須有相應(yīng)的技術(shù)、工具和系統(tǒng)予以支撐,以解決上述問題。
目前對智能手機(jī)應(yīng)用程序的動態(tài)分析只限于對網(wǎng)絡(luò)交互的數(shù)據(jù)進(jìn)行抓取分析,無法得到其它相關(guān)的進(jìn)程和后臺的行為動作,且動態(tài)分析結(jié)果不準(zhǔn)確,獲取的信息有限。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的旨在解決上述至少一個問題,提供一種智能手機(jī)應(yīng)用程序的動態(tài)分析方法,包括以下步驟:
接收上傳的應(yīng)用程序樣本;
創(chuàng)建與應(yīng)用程序樣本運(yùn)行環(huán)境相應(yīng)的虛擬機(jī)環(huán)境;
監(jiān)控運(yùn)行在所述虛擬機(jī)上的應(yīng)用程序樣本的動態(tài)行為及網(wǎng)絡(luò)交互信息;
根據(jù)監(jiān)控結(jié)果判定所述應(yīng)用程序樣本的安全等級。
具體的,所述創(chuàng)建的虛擬機(jī)環(huán)境具體包括創(chuàng)建支持應(yīng)用程序樣本運(yùn)行的進(jìn)程、環(huán)境變量、網(wǎng)絡(luò)接口、shell命令接口、與應(yīng)用程序樣本相同類型的文件系統(tǒng)。
具體的,所述監(jiān)控應(yīng)用程序樣本的動態(tài)行為及網(wǎng)絡(luò)交互信息具體指:
由動態(tài)行為監(jiān)控單元監(jiān)控應(yīng)用程序樣本的動態(tài)行為;
由網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元監(jiān)控應(yīng)用程序樣本的網(wǎng)絡(luò)交互信息。
具體的,所述動態(tài)行為監(jiān)控單元具體采用hook函數(shù)監(jiān)控應(yīng)用程序樣本的動態(tài)行為。
具體的,所述判定安全等級步驟具體是利用應(yīng)用程序樣本的動態(tài)行為中動態(tài)行為策略庫中對應(yīng)的權(quán)值判定該應(yīng)用程序樣本的安全等級。
一種智能手機(jī)應(yīng)用程序的動態(tài)分析系統(tǒng),包括:
接收模塊:接收上傳的應(yīng)用程序樣本;
創(chuàng)建虛擬機(jī)模塊:創(chuàng)建與應(yīng)用程序樣本運(yùn)行環(huán)境相應(yīng)的虛擬機(jī)環(huán)境;
監(jiān)控模塊:監(jiān)控運(yùn)行在所述虛擬機(jī)上的應(yīng)用程序樣本的動態(tài)行為及網(wǎng)絡(luò)交互信息;
判定模塊:根據(jù)監(jiān)測結(jié)果判定所述應(yīng)用程序樣本的安全等級。
具體的,所述創(chuàng)建的虛擬機(jī)環(huán)境具體包括創(chuàng)建支持應(yīng)用程序樣本運(yùn)行的進(jìn)程、環(huán)境變量、網(wǎng)絡(luò)接口、shell命令接口、與應(yīng)用程序樣本相同類型的文件系統(tǒng)。
具體的,所述監(jiān)控模塊包括一個動態(tài)行為監(jiān)控單元和一個網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元,其中,
動態(tài)行為監(jiān)控單元用于監(jiān)控所述應(yīng)用程序樣本的動態(tài)行為;
網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元用于監(jiān)控所述應(yīng)用程序樣本的網(wǎng)絡(luò)交互信息。
具體的,所述動態(tài)行為監(jiān)控單元具體采用hook函數(shù)監(jiān)控應(yīng)用程序樣本的動態(tài)行為。
具體的,所述判定模塊具體是利用應(yīng)用程序樣本的動態(tài)行為中動態(tài)行為策略庫中對應(yīng)的權(quán)值判定該應(yīng)用程序樣本的安全等級。
相比現(xiàn)有技術(shù),本發(fā)明的方案具有以下優(yōu)點(diǎn):
1、本發(fā)明接收上傳的應(yīng)用程序樣本,自動對所述應(yīng)用程序樣本進(jìn)行動態(tài)分析,由動態(tài)行為監(jiān)控模塊監(jiān)控其動態(tài)行為,由網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控模塊監(jiān)控其網(wǎng)絡(luò)交互情況,根據(jù)分析的結(jié)果綜合確定其安全等級,實(shí)現(xiàn)自動化動態(tài)分析應(yīng)用程序樣本,大大提高惡意程序的檢測效率。同時,由于采用同時監(jiān)控應(yīng)用程序動態(tài)行為和其網(wǎng)絡(luò)交互行為的策略,提高了對惡意程序的檢測準(zhǔn)確率。
2、本發(fā)明所述智能手機(jī)應(yīng)用程序的動態(tài)分析方法,創(chuàng)建與應(yīng)用程序運(yùn)行于用戶終端相一致的虛擬機(jī)環(huán)境,使得應(yīng)用程序的運(yùn)行狀態(tài)和效果與運(yùn)行于用戶終端的狀態(tài)和效果一致。在虛擬機(jī)環(huán)境下采用動態(tài)行為監(jiān)控模塊對應(yīng)用程序調(diào)用的動態(tài)行為API進(jìn)行監(jiān)控,可以實(shí)現(xiàn)多種動態(tài)行為的監(jiān)控,根據(jù)動態(tài)行為策略庫確定所調(diào)用的動態(tài)API的權(quán)值,由所有權(quán)值的加權(quán)和確定應(yīng)用程序的安全等級,量化了應(yīng)用程序的安全等級,可以更精確評估應(yīng)用程序的安全等級。
3、本發(fā)明提供的智能手機(jī)應(yīng)用程序的動態(tài)分析系統(tǒng)即可用于檢測Android系統(tǒng)的惡意程序,也可以檢測IOS系統(tǒng)的惡意程序,實(shí)現(xiàn)對現(xiàn)今流行的兩大操作系統(tǒng)的智能手機(jī)的應(yīng)用程序進(jìn)行安全等級確定。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1為智能手機(jī)應(yīng)用程序的動態(tài)分析方法流程示意圖;
圖2為智能手機(jī)應(yīng)用程序的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控模塊流程示意圖;
圖3為智能手機(jī)應(yīng)用程序的動態(tài)分析系統(tǒng)流程框圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無線信號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信 設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個人通信系統(tǒng)),其可以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS(Global Positioning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計算機(jī)或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運(yùn)輸、安裝在交通工具(航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或以分布形式,運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機(jī)頂盒等設(shè)備。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的遠(yuǎn)端網(wǎng)絡(luò)設(shè)備,其包括但不限于計算機(jī)、網(wǎng)絡(luò)主機(jī)、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云。在此,云由基于云計算(Cloud Computing)的大量計算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計算是分布式計算的一種,由一群松散耦合的計算機(jī)集組成的一個超級虛擬計算機(jī)。本發(fā)明的實(shí)施例中,遠(yuǎn)端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP協(xié)議的計算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。
本發(fā)明支持Android、IOS智能手機(jī)操作系統(tǒng),參閱圖1所示,以Android系統(tǒng)的智能手機(jī)為實(shí)施例說明本發(fā)明的智能手機(jī)應(yīng)用程序的靜態(tài)分析方法,包括以下步驟:
步驟S11、接收上傳的應(yīng)用程序樣本
用戶可以使用客戶端,訪問服務(wù)端的網(wǎng)頁或其它形式的內(nèi)容,借助網(wǎng)頁提供的上傳工具或其它上傳工具向服務(wù)端上傳應(yīng)用程序的文件,服務(wù)端 接收客戶端上傳的應(yīng)用程序樣本。
誠然,也可以由相應(yīng)的抓取模塊從互聯(lián)網(wǎng)中自動抓取并接收相關(guān)應(yīng)用程序樣本,或者從預(yù)設(shè)的網(wǎng)絡(luò)位置中定時獲取新的應(yīng)用程序樣本等。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知曉獲取應(yīng)用程序樣本的多種方式。
步驟S12、創(chuàng)建與應(yīng)用程序樣本運(yùn)行環(huán)境相應(yīng)的虛擬機(jī)環(huán)境
創(chuàng)建一個虛擬機(jī),可以是Android應(yīng)用程序運(yùn)行的Android系統(tǒng),例如Android在其系統(tǒng)SDK包中即提供了相應(yīng)的虛擬機(jī)環(huán)境的相關(guān)文件,也可以是IOS應(yīng)用程序運(yùn)行的IOS系統(tǒng),所述虛擬機(jī)為一個適應(yīng)于應(yīng)用程序樣本運(yùn)行的完整系統(tǒng)環(huán)境,模擬硬件系統(tǒng)功能,其相對于所寄生的操作系統(tǒng)是完全隔離的。
創(chuàng)建與運(yùn)行在虛擬機(jī)上的應(yīng)用程序相應(yīng)的虛擬機(jī)環(huán)境,以使應(yīng)用程序樣本運(yùn)行的環(huán)境與其在手機(jī)操作系統(tǒng)中的運(yùn)行環(huán)境一致,以Android系統(tǒng)的應(yīng)用程序為例,具體包括:
在虛擬機(jī)中創(chuàng)建與應(yīng)用程序相一致的文件系統(tǒng),如Android應(yīng)用程序樣本使用的文件系統(tǒng)為devpts文件系統(tǒng),則虛擬機(jī)中的文件系統(tǒng)也應(yīng)為devpts文件系統(tǒng);創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行的進(jìn)程,如Android系統(tǒng)的應(yīng)用程序需要創(chuàng)建ServiceManager進(jìn)程;創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行的環(huán)境變量,如Android應(yīng)用程序創(chuàng)建的path變量;創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行的網(wǎng)絡(luò)接口,如建立TCP連接、獲取網(wǎng)絡(luò)信息、設(shè)置網(wǎng)絡(luò)信息接口等;創(chuàng)建用于支持應(yīng)用程序運(yùn)行時調(diào)用使用的shell命令接口;此外,還包括創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行在虛擬機(jī)上所需要的其他功能。
同理,關(guān)于IOS系統(tǒng)的虛擬環(huán)境的創(chuàng)建,現(xiàn)有技術(shù)中也不乏可以直接引用的公知手段。
本領(lǐng)域技術(shù)人員根據(jù)上述揭示的說明,可以輕易地知曉如何通過現(xiàn)有技術(shù)創(chuàng)建應(yīng)用程序的虛擬環(huán)境這一技術(shù)手段,恕不贅述。
步驟S13、監(jiān)控運(yùn)行在所述虛擬機(jī)上的應(yīng)用程序樣本的動態(tài)行為及網(wǎng)絡(luò)交互信息
將接收的上傳應(yīng)用程序樣本導(dǎo)入上述創(chuàng)建的虛擬機(jī)中,并運(yùn)行所述應(yīng) 用程序樣本,由本步驟實(shí)現(xiàn)的動態(tài)行為監(jiān)控單元對其進(jìn)行監(jiān)控,具體采用hook(鉤子)函數(shù)對系統(tǒng)的指定函數(shù)進(jìn)行監(jiān)控。
此處的術(shù)語“鉤子”涵蓋了用于通過攔截在應(yīng)用軟件組件之間傳遞的函數(shù)調(diào)用、消息、或事件來改變或增加操作系統(tǒng)、應(yīng)用程序、或其他軟件組件的行為的技術(shù)。而處理這種被攔截的函數(shù)調(diào)用、事件或消息的代碼就被稱為hook(鉤子)函數(shù)。鉤子通常用于各種目標(biāo),包括對功能進(jìn)行調(diào)試和對功能進(jìn)行擴(kuò)展。其示例可以包括在鍵盤或鼠標(biāo)事件傳遞到應(yīng)用程序之前攔截它們,或者攔截系統(tǒng)調(diào)用(system call)、或者系統(tǒng)函數(shù)行為、函數(shù)執(zhí)行結(jié)果等,以實(shí)現(xiàn)監(jiān)視或修改應(yīng)用程序或其他組件的功能等目的。
當(dāng)應(yīng)用程序樣本開始運(yùn)行時,會調(diào)用系統(tǒng)中的相應(yīng)函數(shù),采用hook函數(shù)對應(yīng)用程序樣本啟動時系統(tǒng)調(diào)用的指定函數(shù)進(jìn)行掛鉤,當(dāng)指定函數(shù)被應(yīng)用程序的樣本調(diào)用時,則返回相應(yīng)的消息,通過該消息確定應(yīng)用程序的動態(tài)行為。如創(chuàng)建/刪除快捷方式、彈出通知欄、取消通知欄、讀取通話記錄、插入通話記錄、更新通話記錄、刪除通話記錄、發(fā)送短消息等行為。以下就常見的幾種事件行為進(jìn)行示例性說明:
(1)終端、聯(lián)網(wǎng)行為:
獲取運(yùn)營商信息:目標(biāo)應(yīng)用程序樣本例如通過getSimOperatorName()函數(shù)可以獲得移動終端的IMSI,由此可進(jìn)一步判斷運(yùn)營商的名稱,進(jìn)一步可以向運(yùn)營商發(fā)送約定指令,實(shí)現(xiàn)扣費(fèi)之類的非法目的。通過掛鉤并監(jiān)控與此相關(guān)的消息,依據(jù)返回的相應(yīng)消息便可以捕獲事件行為。
切換APN操作:同理,應(yīng)用程序樣本通過與APN切換有關(guān)的函數(shù)實(shí)現(xiàn)ANP切換控制的操作,也可通過調(diào)用相應(yīng)的掛鉤插件實(shí)現(xiàn)監(jiān)控。
類似的操作,還包括獲取手機(jī)識別碼IME的操作,也與上述同理。
(2)彈出通知欄廣告行為:通知欄廣告是最易被惡意程序利用的手段,通過調(diào)用相應(yīng)的掛鉤插件對notify函數(shù)產(chǎn)生的事件消息進(jìn)行監(jiān)控,利用反饋的消息進(jìn)行判斷,也可對其實(shí)施監(jiān)控以實(shí)現(xiàn)事件行為的分析確定。
(3)通信行為:
如電話拔打操作,通過StartActivity()函數(shù)可以監(jiān)控拔打電話的事件行為,利用相應(yīng)的掛鉤插件可以對拔打電話操作建立事件行為監(jiān)控。
短信操作,對應(yīng)于SendTextMessage()之類的函數(shù),同理,可以借助掛鉤插件對這類函數(shù)建立事件行為監(jiān)控。
聯(lián)系人相關(guān)操作:一般對應(yīng)于Query()、Insert()函數(shù),利用掛鉤插件掛鉤此類函數(shù)可以實(shí)現(xiàn)對此類事件行為的監(jiān)控捕獲。
(4)命令操作:
如SU提權(quán)操作或執(zhí)行命令操作,均需用到Execve()函數(shù),通過監(jiān)控此函數(shù)的返回消息,便可實(shí)現(xiàn)該類事件行為的監(jiān)控。
(5)界面及訪問操作:
如創(chuàng)建快捷方式的事件行為,則對應(yīng)于SentBroacast()函數(shù)。同理,對于隱藏程序圖標(biāo)的操作,也可對應(yīng)特定函數(shù)監(jiān)控之,以此確定事件行為。
如HTTP網(wǎng)絡(luò)訪問操作,則對應(yīng)于Sentto()、Write()等函數(shù)。
(6)程序操作:
如應(yīng)用加載操作,指當(dāng)前應(yīng)用程序樣本運(yùn)行后加載相關(guān)應(yīng)用的操作,通過對dexclassloader()、loadlibrary()等函數(shù)進(jìn)行掛鉤監(jiān)控,可以實(shí)現(xiàn)對此類事件行為的捕獲。
又如安裝子包,則對應(yīng)于StartActivity()函數(shù)。
(7)其它危險操作:
例如,子進(jìn)程侵入操作、衍生物操作等。
其中,子進(jìn)程是指應(yīng)用程序建立的子進(jìn)程,在應(yīng)用程序創(chuàng)建子進(jìn)程時,通過本步驟實(shí)現(xiàn)的監(jiān)控模塊收到相應(yīng)的消息,判定其創(chuàng)建子進(jìn)程的事件行為。由此,該監(jiān)控模塊進(jìn)一步向該子進(jìn)程以內(nèi)聯(lián)鉤子的方式在該子進(jìn)程中注入本步驟實(shí)現(xiàn)的動態(tài)行為監(jiān)控單元,后續(xù)便可繼續(xù)對該子進(jìn)程的事件行為進(jìn)行監(jiān)控。因而,無論是應(yīng)用程序樣本的自身進(jìn)程,還是由其創(chuàng)建的子進(jìn)程,它們直接或間接所觸發(fā)的事件行為,均能被本步驟實(shí)現(xiàn)的動態(tài)行為監(jiān)控單元所監(jiān)控。
而所述衍生物,是指應(yīng)用程序自行創(chuàng)建的文件,或者遠(yuǎn)程下載的文件,通常是指敏感的衍生物,例如安裝包。通過掛鉤fclose()函數(shù)可以捕獲該事件。
上述的事件行為僅為摘錄之用,不能理解為對本發(fā)明監(jiān)控的事件行為 的限制。通過以上的揭示可知,利用Hook技術(shù),可以實(shí)現(xiàn)對應(yīng)用程序樣本的事件行為做詳盡的監(jiān)視,有助于后續(xù)步驟的處理。
除了應(yīng)用程序樣本的事件行為之外,應(yīng)用程序樣本與外網(wǎng)進(jìn)行信息交換的行為也是確定應(yīng)用程序樣本的安全等級的重要依據(jù),因此,有必要對應(yīng)用程序樣本運(yùn)行時的網(wǎng)絡(luò)交互信息進(jìn)行抓包監(jiān)控。
具體而言,本步驟實(shí)現(xiàn)的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元通過抓包實(shí)時監(jiān)控虛擬機(jī)模擬的網(wǎng)卡的網(wǎng)絡(luò)交互情況,參考圖2所示,監(jiān)控實(shí)施步驟為:
步驟1、抓包獲取應(yīng)用程序樣本進(jìn)行網(wǎng)絡(luò)交互時產(chǎn)生的數(shù)據(jù)包
采用諸如tcpdump、wireshark之類的抓包工具抓取應(yīng)用程序的網(wǎng)絡(luò)交互數(shù)據(jù)包,一旦抓包成功,則確定應(yīng)用程序樣本有網(wǎng)絡(luò)交互行為,其中,所述網(wǎng)絡(luò)交互數(shù)據(jù)包可以包括以下一種或幾種的組合:
DNS通信數(shù)據(jù)包、HTTP通信數(shù)據(jù)包、SMTP通信數(shù)據(jù)包、FTP通信數(shù)據(jù)包。
步驟2、解析獲取的數(shù)據(jù)包,獲取預(yù)先指定的信息
對抓取的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行解析,以便獲取預(yù)先指定的信息。以下結(jié)合前述列舉的不同類型的數(shù)據(jù)包做示例性說明。
DNS是一個域名系統(tǒng),記錄域名和IP地址之間映射的一個分布式數(shù)據(jù)庫,DNS通信數(shù)據(jù)包包括DNS請求包和DNS應(yīng)答包,其中,DNS請求包用于向DNS服務(wù)器發(fā)送域名解析請求,對其進(jìn)行解析獲取查詢URL的名稱、源ip和端口、目標(biāo)ip和端口;DNS應(yīng)答包用于DNS服務(wù)器對請求域名解析的響應(yīng),對其進(jìn)行解析獲取查詢URL的名稱、查詢到的URL對應(yīng)的ip值。
HTTP是超文本傳輸協(xié)議,通過該協(xié)議定位網(wǎng)絡(luò)資源。HTTP通信數(shù)據(jù)包包括HTTP請求包和HTTP應(yīng)答包,其中,HTTP請求包用于向服務(wù)器發(fā)送建立連接的請求,對其進(jìn)行解析獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容等信息;HTTP應(yīng)答包用于響應(yīng)建立的連接,對其進(jìn)行解析獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容等信息。
SMTP即簡單郵件傳輸協(xié)議,定義用于由源地址到目的地址傳送郵件的規(guī)則。解析其數(shù)據(jù)包,可以獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容 等信息。
FTP即文件傳輸協(xié)議,用于Internet上的控制文件的雙向傳輸。解析其數(shù)據(jù)包,可以獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容等信息。
步驟3、將從數(shù)據(jù)包中獲取的指定信息記錄于特征碼數(shù)據(jù)庫
提取監(jiān)測到的有網(wǎng)絡(luò)交互行為的應(yīng)用程序樣本的特征碼,將所述特征碼與解析到的數(shù)據(jù)包指定信息一一對應(yīng)記錄到特征碼數(shù)據(jù)庫,其中,包括數(shù)據(jù)包類型名稱,如DNS通信數(shù)據(jù)包、HTTP通信數(shù)據(jù)包、SMTP通信數(shù)據(jù)包、FTP通信數(shù)據(jù)包,以及各數(shù)據(jù)包對應(yīng)的信息,如URL名稱、包的內(nèi)容長度、包的內(nèi)容、源ip和端口、目標(biāo)ip和端口等信息。
可以看出,通過步驟S13,既可獲的應(yīng)用程序樣本的事件行為,還可獲的應(yīng)用程序樣本進(jìn)行網(wǎng)絡(luò)通信時產(chǎn)生的網(wǎng)絡(luò)交互信息,利用該步驟獲取的信息,即可用于后續(xù)的安全等級的判定。
步驟S14、根據(jù)監(jiān)控結(jié)果判定所述應(yīng)用程序樣本的安全等級
將安全等級分為四級,分別為高危險、中危險、低危險、安全。根據(jù)監(jiān)控結(jié)果采用以下方式判定應(yīng)用程序樣本的安全等級:
通過步驟S13(可以實(shí)現(xiàn)為動態(tài)行為監(jiān)控模塊)確定應(yīng)用程序樣本的動態(tài)事件行為,將所述動態(tài)行為API與動態(tài)行為策略庫中記錄的數(shù)據(jù)一一對比,即可確定應(yīng)用程序樣本調(diào)用的各動態(tài)API的安全等級權(quán)值。其中,所述動態(tài)行為策略庫用于記錄應(yīng)用程序樣本的動態(tài)行為API與其安全等級權(quán)值之間的映射關(guān)系,這里API即事件行為本身所涉及的函數(shù),而安全等級是利用公知技術(shù)提前人為或自動賦值的。該動態(tài)行為策略庫已預(yù)先生成并存儲于服務(wù)器。動態(tài)行為策略庫中的每個API對應(yīng)的權(quán)值根據(jù)其行為對用戶隱私的危險性對應(yīng)不同的權(quán)值,如發(fā)送短信行為的危險性大于創(chuàng)建快捷方式的危險性,則發(fā)送短信行為對應(yīng)的API的安全等級權(quán)值為3,創(chuàng)建快捷方式行為對應(yīng)的API的安全等級權(quán)值為1。同理,應(yīng)用程序產(chǎn)生的網(wǎng)絡(luò)交互信息在這里也可被視為一種與事件行為等同的事件行為,而被存儲到所述的動態(tài)行為策略庫或類似的文件中,并且在本步驟中進(jìn)行類似的判定。當(dāng)然,作為另一實(shí)施例,也可直接將發(fā)生網(wǎng)絡(luò)交互消息這一結(jié)果本身即視為一種對應(yīng)的安全等級,從而僅經(jīng)查詢即可確定其安全等級。
通過查詢所述的動態(tài)事件行為策略庫,便可獲得應(yīng)用程序樣本所對應(yīng)的各個事件行為的相應(yīng)的安全等級權(quán)值。計算應(yīng)用程序樣本調(diào)用的至少一個策略庫中的動態(tài)行為API對應(yīng)的安全等級權(quán)值之和,將該些權(quán)值之和與預(yù)設(shè)的用于劃分不同安全等級的閾值進(jìn)行對比,便可將該應(yīng)用程序樣本判定為高危險、中危險、低危險、安全四個等級中的一種。例如權(quán)值之和大于10判斷為高危險,權(quán)值之和介于5和10判斷為中危險,權(quán)值之和介于2和5判斷為低危險,權(quán)值之和為0則判斷為安全。當(dāng)然,這樣的一種閾值和等級劃分是靈活的,也可以僅設(shè)置3個等級,或設(shè)置5個等級,相應(yīng)的閾值也可做出靈活的調(diào)整。
如前所述的另一實(shí)例中,一旦所述網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元監(jiān)控應(yīng)用程序樣本中運(yùn)行過程中的網(wǎng)絡(luò)交互行為,與所述動態(tài)行為監(jiān)控單元同步進(jìn)行,一旦抓包工具獲取到網(wǎng)絡(luò)數(shù)據(jù)包,則直接判斷該應(yīng)用程序樣本為高危險等級。如果未抓取到網(wǎng)絡(luò)數(shù)據(jù)包,則根據(jù)上述動態(tài)行為API的權(quán)值之和判斷應(yīng)用程序樣本的安全等級。
通過上述的揭示,可以看出,本發(fā)明提供的智能手機(jī)應(yīng)用程序的動態(tài)分析方法,利用為應(yīng)用程序樣本提供的虛擬機(jī)環(huán)境,借助相應(yīng)的應(yīng)用程序監(jiān)控技術(shù),便可實(shí)現(xiàn)對應(yīng)用程序樣本的事件行為的分析,包括對其網(wǎng)絡(luò)交互信息進(jìn)行監(jiān)控等,在此基礎(chǔ)上,可以利用預(yù)設(shè)的數(shù)據(jù)庫來確定應(yīng)用程序本樣的安全等級,從而為手機(jī)安全監(jiān)控提供重要的技術(shù)準(zhǔn)備。
請參閱圖3所示,本發(fā)明還提供一種智能手機(jī)應(yīng)用程序的動態(tài)分析系統(tǒng),包括接收模塊11、創(chuàng)建虛擬機(jī)模塊12、監(jiān)控模塊13、判斷模塊14,其中,
接收模塊11用于接收上傳的應(yīng)用程序樣本。用戶可以使用客戶端,訪問服務(wù)端的網(wǎng)頁或其它形式的內(nèi)容,借助網(wǎng)頁提供的上傳工具或其它上傳工具向服務(wù)端上傳應(yīng)用程序的文件,服務(wù)端接收客戶端上傳的應(yīng)用程序樣本。
誠然,也可以由相應(yīng)的抓取模塊從互聯(lián)網(wǎng)中自動抓取并接收相關(guān)應(yīng)用程序樣本,或者從預(yù)設(shè)的網(wǎng)絡(luò)位置中定時獲取新的應(yīng)用程序樣本等。本領(lǐng) 域技術(shù)人員應(yīng)當(dāng)知曉獲取應(yīng)用程序樣本的多種方式。
創(chuàng)建虛擬機(jī)模塊12用于創(chuàng)建與應(yīng)用程序樣本運(yùn)行環(huán)境相應(yīng)的虛擬機(jī)環(huán)境。創(chuàng)建一個虛擬機(jī),可以是Android應(yīng)用程序運(yùn)行的Android系統(tǒng),例如Android在其系統(tǒng)SDK包中即提供了相應(yīng)的虛擬機(jī)環(huán)境的相關(guān)文件,也可以是IOS應(yīng)用程序運(yùn)行的IOS系統(tǒng),所述虛擬機(jī)為一個適應(yīng)與應(yīng)用程序樣本運(yùn)行的完整系統(tǒng)環(huán)境,模擬硬件系統(tǒng)功能,其相對于所寄生的操作系統(tǒng)是完全隔離的。
創(chuàng)建與運(yùn)行在虛擬機(jī)上的應(yīng)用程序相應(yīng)的虛擬機(jī)環(huán)境,以使應(yīng)用程序樣本運(yùn)行的環(huán)境與其在手機(jī)操作系統(tǒng)中的運(yùn)行環(huán)境一致,具體包括:
在虛擬機(jī)中創(chuàng)建與應(yīng)用程序相一致的文件系統(tǒng),如Android應(yīng)用程序樣本使用的文件系統(tǒng)為devpts文件系統(tǒng),則虛擬機(jī)中的文件系統(tǒng)也應(yīng)為devpts文件系統(tǒng);創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行的進(jìn)程,如Android系統(tǒng)的應(yīng)用程序需要創(chuàng)建ServiceManager進(jìn)程;創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行的環(huán)境變量,如Android應(yīng)用程序創(chuàng)建的path變量;創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行的網(wǎng)絡(luò)接口,如建立TCP連接、獲取網(wǎng)絡(luò)信息、設(shè)置網(wǎng)絡(luò)信息接口等;創(chuàng)建用于支持應(yīng)用程序運(yùn)行時調(diào)用使用的shell命令接口;此外,還包括創(chuàng)建用于支持應(yīng)用程序樣本運(yùn)行在虛擬機(jī)上所需要的其他功能。
同理,關(guān)于IOS系統(tǒng)的虛擬環(huán)境的創(chuàng)建,現(xiàn)有技術(shù)中也不乏可以直接引用的公知手段。本領(lǐng)域技術(shù)人員根據(jù)上述揭示的說明,可以輕易地知曉如何通過現(xiàn)有技術(shù)創(chuàng)建應(yīng)用程序的虛擬環(huán)境這一技術(shù)手段,恕不贅述。
監(jiān)控模塊13用于監(jiān)控運(yùn)行在所述虛擬機(jī)上的應(yīng)用程序樣本的動態(tài)行為及網(wǎng)絡(luò)交互信息。包括一個動態(tài)行為監(jiān)控單元和一個網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元,其中,動態(tài)行為監(jiān)控單元用于監(jiān)控所述應(yīng)用程序樣本的動態(tài)行為;網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元用于監(jiān)控所述應(yīng)用程序樣本的網(wǎng)絡(luò)交互信息。
將接收的上傳應(yīng)用程序樣本導(dǎo)入上述由創(chuàng)建虛擬機(jī)模塊12創(chuàng)建的虛擬機(jī)中,并運(yùn)行所述應(yīng)用程序樣本,由所述監(jiān)控模塊13中的動態(tài)行為監(jiān)控單元對其進(jìn)行監(jiān)控,具體采用hook函數(shù)對系統(tǒng)的指定函數(shù)進(jìn)行監(jiān)控。
當(dāng)應(yīng)用程序樣本開始運(yùn)行時,會調(diào)用系統(tǒng)中的相應(yīng)函數(shù),所述監(jiān)控模 塊13中的動態(tài)行為監(jiān)控單元采用hook函數(shù)對應(yīng)用程序樣本啟動時系統(tǒng)調(diào)用的指定函數(shù)進(jìn)行掛鉤,當(dāng)指定函數(shù)被應(yīng)用程序的樣本調(diào)用時,則返回相應(yīng)的信號,通過該信號獲取應(yīng)用程序的動態(tài)行為。如創(chuàng)建/刪除快捷方式、彈出通知欄、取消通知欄、讀取通話記錄、插入通話記錄、更新通話記錄、刪除通話記錄、發(fā)送短消息等行為。
以下就常見的幾種事件行為進(jìn)行示例性說明:
(1)終端、聯(lián)網(wǎng)行為:
獲取運(yùn)營商信息:目標(biāo)應(yīng)用程序樣本例如通過getSimOperatorName()函數(shù)可以獲得移動終端的IMSI,由此可進(jìn)一步判斷運(yùn)營商的名稱,進(jìn)一步可以向運(yùn)營商發(fā)送約定指令,實(shí)現(xiàn)扣費(fèi)之類的非法目的。通過掛鉤并監(jiān)控與此相關(guān)的消息,依據(jù)返回的相應(yīng)消息便可以捕獲事件行為。
切換APN操作:同理,應(yīng)用程序樣本通過與APN切換有關(guān)的函數(shù)實(shí)現(xiàn)ANP切換控制的操作,也可通過調(diào)用相應(yīng)的掛鉤插件實(shí)現(xiàn)監(jiān)控。
類似的操作,還包括獲取手機(jī)識別碼IME的操作,也與上述同理。
(2)彈出通知欄廣告行為:通知欄廣告是最易被惡意程序利用的手段,動態(tài)行為監(jiān)控單元通過調(diào)用相應(yīng)的掛鉤插件對notify函數(shù)產(chǎn)生的事件消息進(jìn)行監(jiān)控,利用反饋的消息進(jìn)行判斷,也可對其實(shí)施監(jiān)控以實(shí)現(xiàn)事件行為的分析確定。
(3)通信行為:
如電話拔打操作,通過StartActivity()函數(shù)可以監(jiān)控拔打電話的事件行為,利用相應(yīng)的掛鉤插件可以對拔打電話操作建立事件行為監(jiān)控。
短信操作,對應(yīng)于SendTextMessage()之類的函數(shù),同理,可以借助掛鉤插件對這類函數(shù)建立事件行為監(jiān)控。
聯(lián)系人相關(guān)操作:一般對應(yīng)于Query()、Insert()函數(shù),通過動態(tài)行為監(jiān)控模塊掛鉤此類函數(shù)可以實(shí)現(xiàn)對此類事件行為的監(jiān)控捕獲。
(4)命令操作:
如SU提權(quán)操作或執(zhí)行命令操作,均需用到Execve()函數(shù),通過監(jiān)控此函數(shù)的返回消息,便可實(shí)現(xiàn)該類事件行為的監(jiān)控。
(5)界面及訪問操作:
如創(chuàng)建快捷方式的事件行為,則對應(yīng)于SentBroacast()函數(shù)。同理,對于隱藏程序圖標(biāo)的操作,也可對應(yīng)特定函數(shù)監(jiān)控之,以此確定事件行為。
如HTTP網(wǎng)絡(luò)訪問操作,則對應(yīng)于Sentto()、Write()等函數(shù)。
(6)程序操作:
如應(yīng)用加載操作,指當(dāng)前應(yīng)用程序樣本運(yùn)行后加載相關(guān)應(yīng)用的操作,通過對dexclassloader()、loadlibrary()等函數(shù)進(jìn)行掛鉤監(jiān)控,可以實(shí)現(xiàn)對此類事件行為的捕獲。
又如安裝子包,則對應(yīng)于StartActivity()函數(shù)。
(7)其它危險操作:
例如,子進(jìn)程侵入操作、衍生物操作等。
其中,子進(jìn)程是指應(yīng)用程序建立的子進(jìn)程,在應(yīng)用程序創(chuàng)建子進(jìn)程時,通過所述監(jiān)控模塊13收到相應(yīng)的消息,判定其創(chuàng)建子進(jìn)程的事件行為。由此,該監(jiān)控模塊13進(jìn)一步向該子進(jìn)程以內(nèi)聯(lián)鉤子的方式在該子進(jìn)程中注入動態(tài)行為監(jiān)控單元,后續(xù)便可繼續(xù)對該子進(jìn)程的事件行為進(jìn)行監(jiān)控。因而,無論是應(yīng)用程序樣本的自身進(jìn)程,還是由其創(chuàng)建的子進(jìn)程,它們直接或間接所觸發(fā)的事件行為,均能被所述監(jiān)控模塊13所監(jiān)控。
而所述衍生物,是指應(yīng)用程序自行創(chuàng)建的文件,或者遠(yuǎn)程下載的文件,通常是指敏感的衍生物,例如安裝包。通過掛鉤fclose()函數(shù)可以捕獲該事件。
上述的事件行為僅為摘錄之用,不能理解為對本發(fā)明監(jiān)控的事件行為的限制。通過以上的揭示可知,利用Hook技術(shù),監(jiān)控模塊13中的動態(tài)行為監(jiān)控單元可以實(shí)現(xiàn)對應(yīng)用程序樣本的事件行為做詳盡的監(jiān)視,有助于后續(xù)模塊的處理。
同時,監(jiān)控模塊13中的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元通過抓包實(shí)時監(jiān)控虛擬機(jī)模擬的網(wǎng)卡的網(wǎng)絡(luò)交互情況,具體實(shí)施過程為:
1、抓包獲取應(yīng)用程序樣本進(jìn)行網(wǎng)絡(luò)交互的數(shù)據(jù)包
采用諸如tcpdump、wireshark之類的抓包工具抓取應(yīng)用程序的網(wǎng)絡(luò)交互數(shù)據(jù)包,一旦抓包成功,則確定應(yīng)用程序樣本有網(wǎng)絡(luò)交互行為,其中,所述網(wǎng)絡(luò)交互數(shù)據(jù)包可以包括以下一種或幾種的組合:
DNS通信數(shù)據(jù)包、HTTP通信數(shù)據(jù)包、SMTP通信數(shù)據(jù)包、FTP通信數(shù)據(jù)包。
2、解析獲取的數(shù)據(jù)包,獲取預(yù)先指定的信息
對抓取的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行解析,以便獲取預(yù)先指定的信息。以下結(jié)合前述列舉的不同類型的數(shù)據(jù)包做示例性說明。
DNS是一個域名系統(tǒng),記錄域名和IP地址之間映射的一個分布式數(shù)據(jù)庫,DNS通信數(shù)據(jù)包包括DNS請求包和DNS應(yīng)答包,其中,DNS請求包用于向DNS服務(wù)器發(fā)送域名解析請求,對其進(jìn)行解析獲取查詢URL的名稱、源ip和端口、目標(biāo)ip和端口;DNS應(yīng)答包用于DNS服務(wù)器對請求域名解析的響應(yīng),對其進(jìn)行解析獲取查詢URL的名稱、查詢到的URL對應(yīng)的ip值。
HTTP是超文本傳輸協(xié)議,通過該協(xié)議定位網(wǎng)絡(luò)資源。HTTP通信數(shù)據(jù)包包括HTTP請求包和HTTP應(yīng)答包,其中,HTTP請求包用于向服務(wù)器發(fā)送建立連接的請求,對其進(jìn)行解析獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容等信息;HTTP應(yīng)答包用于響應(yīng)建立的連接,對其進(jìn)行解析獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容等信息。
SMTP即簡單郵件傳輸協(xié)議,定義用于由源地址到目的地址傳送郵件的規(guī)則。解析其數(shù)據(jù)包,可以獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容等信息。
FTP即文件傳輸協(xié)議,用于Internet上的控制文件的雙向傳輸。解析其數(shù)據(jù)包,可以獲取URL名稱、包的內(nèi)容長度、包的內(nèi)容等信息。
3、將數(shù)據(jù)包中的指定內(nèi)容記錄于特征碼數(shù)據(jù)庫
提取監(jiān)測到的有網(wǎng)絡(luò)交互行為的應(yīng)用程序樣本的特征碼,將所述特征碼與解析到的數(shù)據(jù)包指定信息一一對應(yīng)記錄到特征碼數(shù)據(jù)庫,其中,包括數(shù)據(jù)包類型名稱,如DNS通信數(shù)據(jù)包、HTTP通信數(shù)據(jù)包、SMTP通信數(shù)據(jù)包、FTP通信數(shù)據(jù)包,以及各數(shù)據(jù)包對應(yīng)的信息,如URL名稱、包的內(nèi)容長度、包的內(nèi)容、源ip和端口、目標(biāo)ip和端口等信息。
判定模塊14用于根據(jù)監(jiān)測結(jié)果判定所述應(yīng)用程序樣本的安全等級。將安全等級分為四級,分別為高危險、中危險、低危險、安全。根據(jù)監(jiān)控 結(jié)果采用以下方式判定應(yīng)用程序樣本的安全等級:
由監(jiān)控模塊13中的動態(tài)行為監(jiān)控單元確定應(yīng)用程序樣本動態(tài)行為,將所述動態(tài)行為API與動態(tài)行為策略庫中記錄的數(shù)據(jù)一一對比,確定應(yīng)用程序樣本調(diào)用的各動態(tài)API的安全等級權(quán)值。其中,所述動態(tài)行為策略庫用于記錄應(yīng)用程序樣本的動態(tài)行為API與其安全等級權(quán)值之間的映射關(guān)系,此處所述API即事件行為本身所涉及的函數(shù),而安全等級是利用公知技術(shù)提取手動或自動賦值的,該動態(tài)行為策略庫已預(yù)先生成并存儲于服務(wù)器。動態(tài)行為策略庫中的每個API對應(yīng)的權(quán)值根據(jù)其行為對用戶隱私的危險性對應(yīng)不同的權(quán)值,如發(fā)送短信行為的危險性大于創(chuàng)建快捷方式的危險性,則發(fā)送短信行為對應(yīng)的API的安全等級權(quán)值為3,創(chuàng)建快捷方式行為對應(yīng)的API的安全等級權(quán)值為1。
同理,應(yīng)用程序產(chǎn)生的網(wǎng)絡(luò)交互信息在這里也可被視為一種與事件行為等同的事件行為,而被存儲到所述的動態(tài)行為策略庫或類似的文件中,并且由判斷模塊14進(jìn)行類似的判定。當(dāng)然,作為另一實(shí)施例,也可直接將發(fā)生網(wǎng)絡(luò)交互消息這一結(jié)果本身視為一種對應(yīng)的安全等級,從而僅經(jīng)查詢即可確定其安全等級。
通過查詢所述的動態(tài)事件行為策略庫,便可獲得應(yīng)用程序樣本所對應(yīng)的各個事件行為的相應(yīng)的安全等級權(quán)值。計算應(yīng)用程序樣本調(diào)用的至少一個策略庫中的動態(tài)行為API對應(yīng)的安全等級權(quán)值之和,將該權(quán)值之和與預(yù)設(shè)的用于劃分不同安全等級的閾值進(jìn)行對比,便可以將所述應(yīng)用程序樣本判斷為高危險、中危險、低危險、安全四個等級中的一種。例如權(quán)值之和大于10判斷為高危險,權(quán)值之和介于5和10判斷為中危險,權(quán)值之和介于2和5判斷為低危險,權(quán)值之和為0則判斷為安全。當(dāng)然,這樣的一種閾值和等級劃分是靈活的,也以僅設(shè)置3個等級,或設(shè)置5個等級,相應(yīng)的閾值也可做出靈活的調(diào)整。當(dāng)然,這樣的一種閾值和等級劃分是靈活的,也以僅設(shè)置3個等級,或設(shè)置5個等級,相應(yīng)的閾值也可做出靈活的調(diào)整。
此外,監(jiān)控模塊13的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)控單元監(jiān)控應(yīng)用程序樣本中運(yùn)行過程中的網(wǎng)絡(luò)交互行為,與監(jiān)控模塊13的動態(tài)行為監(jiān)控單元同步進(jìn)行,一旦抓包工具獲取到網(wǎng)絡(luò)數(shù)據(jù)包,則直接判斷該應(yīng)用程序樣本為高危險等 級。如果未抓取到網(wǎng)絡(luò)數(shù)據(jù)包,則根據(jù)上述動態(tài)行為API的權(quán)值之和判斷應(yīng)用程序樣本的安全等級。
通過上述的揭示可以看出,本發(fā)明提供的智能手機(jī)應(yīng)用程序的動態(tài)分析系統(tǒng),利用創(chuàng)建虛擬機(jī)模塊12為應(yīng)用程序樣本提供虛擬機(jī)環(huán)境,借助監(jiān)控模塊13實(shí)現(xiàn)對應(yīng)用程序樣本的事件行為的分析,包括對其網(wǎng)絡(luò)交互信息進(jìn)行監(jiān)控等,通過判斷模塊14確定應(yīng)用程序本樣的安全等級,從而實(shí)現(xiàn)手機(jī)應(yīng)用程序的安全等級判定。
以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。