基于動態(tài)插樁的惡意代碼檢測系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動終端應(yīng)用安全領(lǐng)域,具體涉及一種基于動態(tài)插粧檢測移動終端應(yīng)用程序惡意行為的檢測系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著移動互聯(lián)網(wǎng)的發(fā)展,智能手機的安全問題成為移動互聯(lián)網(wǎng)行業(yè)以及移動互聯(lián)網(wǎng)用戶重點關(guān)注的領(lǐng)域,有關(guān)移動智能終端惡意代碼的相關(guān)變形技術(shù)的研宄有重打包技術(shù)、反匯編技術(shù)、花指令技術(shù)、字節(jié)碼被加密技術(shù)以及數(shù)據(jù)被加密技術(shù)等,根據(jù)惡意代碼的危險程度,把其劃分為三個等級:嚴(yán)重、中等、和低級。主要研宄方法有三,第一、根據(jù)已經(jīng)有的安卓系統(tǒng)的漏洞特征檢測存在惡意操作的應(yīng)用;第二、分析代碼,檢查代碼中是否存在扣費,上傳文件或者向不明服務(wù)器發(fā)送私密數(shù)據(jù)的惡意代碼片段;第三、同樣是利用靜態(tài)代碼分析方法,首先去分析被加密代碼調(diào)用的特征是否存在于Native層,隨后再對程序的執(zhí)行路徑以及惡意的危險的Dalvik代碼進(jìn)行檢測和分析,去判斷其是否為惡意應(yīng)用。
[0003]以上三種方發(fā)是現(xiàn)行移動終端中常用的檢測方法,現(xiàn)有安全應(yīng)用軟件以APK的形式被用戶下載安裝在Android手機上,從而啟動病毒檢測和安全防護(hù)等作用,其在檢測病毒時是以嫌疑軟件在用戶手機系統(tǒng)后臺運行時,檢測嫌疑軟件是否調(diào)用系統(tǒng)重要組件及功能,或者檢測其嫌疑軟件特征碼并與服務(wù)器端進(jìn)行特征庫比照,從而查驗嫌疑軟件的安全性。
[0004]然而,對于沒有在特征庫中的病毒程序,安全應(yīng)用軟件只能提供一個人工標(biāo)注的接口,當(dāng)用戶在受到未檢測出的病毒應(yīng)用傷害后,用戶可以利用這個接口給安全應(yīng)用軟件進(jìn)行病毒上報,從而安全應(yīng)用軟件在其服務(wù)器端進(jìn)行特征庫更新。這種上報在軟件使用過程中遭遇的病毒的方法,以實際使用中遭受安全傷害為前提,對用戶造成不便,并且用戶在誤操作的可能下會對移動設(shè)備安全留下潛在的威脅。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中存在的問題,提出一種基于動態(tài)插粧的惡意代碼檢測系統(tǒng)及方法,在應(yīng)用程序安裝之前,對應(yīng)用程序frameworks框架進(jìn)行重定制以檢測應(yīng)用程序的惡意代碼,在程序運行之前解決移動終端隱私泄露以及應(yīng)用程序惡意行為操作等的安全問題。
[0006]為達(dá)到上述發(fā)明的目的,本發(fā)明通過以下技術(shù)方案實現(xiàn):
[0007]一種基于動態(tài)插粧的惡意代碼檢測系統(tǒng),包括有服務(wù)器、移動終端及其上運行待檢測軟件的系統(tǒng)模擬器,服務(wù)器包括如下:
[0008]插粧管理器,用于將系統(tǒng)模擬器中待測軟件的framework框架重定制,其包括有插粧策略文件和至少一個探針函數(shù),插粧策略文件用于植入系統(tǒng)模擬器中,探針函數(shù)根據(jù)插粧策略文件對framework框架的API函數(shù)進(jìn)行監(jiān)控;
[0009]監(jiān)聽器,用于移動終端和服務(wù)器的通信連接,以及接收探針函數(shù)獲取的待檢測軟件對API函數(shù)的操作行為和內(nèi)容;
[0010]行為分析器,將監(jiān)聽器返回的包含操作行為和內(nèi)容的探測結(jié)果與和惡意API序列特征庫做比對,存在在惡意API序列特征庫中,則標(biāo)記軟件存在惡意行為操作,不存在在惡意API序列特征庫中,則標(biāo)記軟件為安全,從而確定待檢測軟件的安全性。
[0011 ] 所述插粧管理器對待測軟件的framework框架重訂制是對framework, jar和core, jar文件的定制,在原來的framework, jar基礎(chǔ)上向敏感的、需要監(jiān)控的API函數(shù)中置入探針函數(shù),core, jar文件的定制與framework, jar相同。
[0012]所述探針函數(shù)包括有管理插粧策略文件的ConfigManager類和對探針在framework框架的API函數(shù)中監(jiān)聽到的內(nèi)容進(jìn)行處理操作的Controller類。
[0013]所述插粧策略文件用于指引監(jiān)聽器負(fù)責(zé)監(jiān)聽位于framework框架中的探針函數(shù),并可以選擇性地對指定API函數(shù)的探針函數(shù)進(jìn)行實時監(jiān)管。插粧策略文件包括有不止一類行為檢測或監(jiān)控的選項,所述選項包括有SQL執(zhí)行檢測、手機號碼讀取操作檢測和命令執(zhí)行行為檢測,探針函數(shù)針對所述選項進(jìn)行實時監(jiān)管。
[0014]一種基于動態(tài)插粧的惡意代碼檢測方法,包括:
[0015]在移動終端的系統(tǒng)模塊器上加載待檢測軟件;
[0016]在服務(wù)器上由插粧管理器將系統(tǒng)模擬器中待測軟件的framework框架重訂制,將插粧策略文件植入系統(tǒng)模擬器中,至少一個探針函數(shù)根據(jù)插粧策略文件對framework框架的API函數(shù)進(jìn)行監(jiān)控;
[0017]服務(wù)器上的監(jiān)聽器與移動終端通信并接收探針函數(shù)獲取的待檢測軟件對API函數(shù)的操作行為和內(nèi)容;
[0018]將包含操作行為和內(nèi)容的探測結(jié)果與惡意API序列特征庫做比對,存在在惡意API序列特征庫中,則標(biāo)記軟件存在惡意行為操作,不存在在惡意API序列特征庫中,則標(biāo)記軟件為安全,從而確定待檢測軟件的安全性。
[0019]所述對待測軟件的framework框架重訂制是對framework, jar和core, jar文件的定制,在原來的framework, jar基礎(chǔ)上向敏感的、需要監(jiān)控的API函數(shù)中置入探針函數(shù),core, jar文件的定制與framework, jar相同。
[0020]所述探針函數(shù)包括有管理插粧策略文件的ConfigManager類和對探針在framework框架的API函數(shù)中監(jiān)聽到的內(nèi)容進(jìn)行處理操作的Controller類。
[0021]所述至少一個探針函數(shù)根據(jù)插粧策略文件對framework框架的API函數(shù)進(jìn)行監(jiān)控,是由插粧策略文件指引監(jiān)聽器負(fù)責(zé)監(jiān)聽位于framework框架中的探針函數(shù),并選擇性地對指定API函數(shù)的探針函數(shù)進(jìn)行實時監(jiān)管。
[0022]所述插粧策略文件包括有不止一類行為檢測或監(jiān)控的選項,所述選項包括有SQL執(zhí)行檢測、手機號碼讀取操作檢測和命令執(zhí)行行為檢測,探針函數(shù)針對所述選項進(jìn)行實時監(jiān)管
ΓΤΠ.曰 O
[0023]所述探針函數(shù)對指定API函數(shù)進(jìn)行實時監(jiān)管,是以如下三種操作模式進(jìn)行:
[0024]發(fā)送模式,把探針函數(shù)監(jiān)聽到的內(nèi)容發(fā)給行為分析器;
[0025]代理模式,讓測試員控制探針函數(shù)監(jiān)聽到的內(nèi)容;
[0026]修改模式,將探針函數(shù)監(jiān)聽到的內(nèi)容替換為預(yù)設(shè)的指定內(nèi)容。
[0027]以上三種模式可以讓測試人員實時地監(jiān)控到App應(yīng)用的動態(tài)行為,發(fā)送模式和代理模式可以實現(xiàn)App動態(tài)行為分析和監(jiān)控,代理模式和修改模式可以實現(xiàn)實時修改App應(yīng)用行為。
[0028]本發(fā)明通過插粧技術(shù)向位于Android系統(tǒng)底層框架中的API函數(shù)植入探針函數(shù),對樣本進(jìn)行實時檢測和監(jiān)控。探針捕獲惡意代碼運行過程中對系統(tǒng)資源的訪問情況,并將捕獲到的內(nèi)容轉(zhuǎn)發(fā)給服務(wù)端的監(jiān)聽器,行為分析器會將探針函數(shù)所探到的API函數(shù)序列同惡意API序列特征庫進(jìn)行特征匹配,最終實現(xiàn)行為檢測和判斷。
【附圖說明】
[0029]圖1為本發(fā)明的基于動態(tài)插粧的惡意代碼檢測系統(tǒng)的結(jié)構(gòu)圖。
[0030]圖2為本發(fā)明的基于動態(tài)插粧的惡意代碼檢測方法的流程步驟圖。
【具體實施方式】
[0031]下面結(jié)合附圖和實施例對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部實施例。
[0032]請參閱圖1,圖1是本發(fā)明實施例的基于動態(tài)插粧的惡意代碼檢測系統(tǒng)的結(jié)構(gòu)圖。
[0033]一種基于動態(tài)插粧的惡意代碼檢測系統(tǒng),包括有服務(wù)器、移動終端及其上運行待檢測軟件的系統(tǒng)模擬器,服務(wù)器包括如下:
[0034]插粧管理器103,用于將系統(tǒng)模擬器101中待測軟件的framework框架重定制,其包括有插粧策略文件和至少一個探針函數(shù),插粧策略文件用于植入系統(tǒng)模擬器101中,探針函數(shù)根據(jù)插粧策略文件對framework框架的API函數(shù)進(jìn)行監(jiān)控;
[0035]監(jiān)聽器102,用于移動終端和服務(wù)器的通信連接,以及接收探針函數(shù)獲取的待檢測軟件對API函數(shù)的操作行為和內(nèi)容;
[0036]行為分析器104,將監(jiān)聽器102返回的將包含操作行為和內(nèi)容的探測結(jié)果與惡意API序列特征庫做比對,存在在惡意API序列特征庫中,則標(biāo)記軟件存在惡意行為操作,不存在在惡意API序列特征庫中,則標(biāo)記軟件為安全,從而確定待檢測軟件的安全性。
[0037]所述插粧管理器103中還包括有配置文件,配置文件可對插粧策略文件的保存以及加載進(jìn)行操作,不僅可以在本地服務(wù)器系統(tǒng)中加載配置文件和保存插粧策略文件,還可以從系統(tǒng)模擬器中加載加載配置文件和保存插粧策略文件。
[0038]所述插粧管理器103對待測軟件的framework框架重訂制是對framework, jar和core, jar文件的定制,在原來的framework, jar基礎(chǔ)上向敏感的、需要監(jiān)控的API函數(shù)中置入探針函數(shù),core, jar文件的定制與framework, jar相同。
[0039]所述探針函數(shù)包括有管理插粧策略文件的ConfigManager類和對探針在framework框架的API函數(shù)中監(jiān)聽到的內(nèi)容進(jìn)行處理操作的Controller類。
[0040]所述插粧策略文件用于指引監(jiān)聽器102負(fù)責(zé)監(jiān)聽位于framework框架中的探針函數(shù),并可以選擇性地對指定API函數(shù)的探針函數(shù)進(jìn)行實時監(jiān)管。
[0041]所述插粧策略文件包括有不止一類行為檢測或監(jiān)控的選項,所述選項包括有SQL執(zhí)行檢測、手機號碼讀取操作檢測和命令執(zhí)行行為檢測,探針函數(shù)針對所述選項進(jìn)行實時監(jiān)管
ΓΤΠ.曰 O
[0042]所述插粧策略文件還包括有XML配置文件,所述XML配置文件具有的config標(biāo)簽中生成有g(shù)eneral Item標(biāo)簽和item標(biāo)簽,general Item標(biāo)簽包含監(jiān)聽器IP地址和監(jiān)聽端口號的配置信息標(biāo)簽包含探針函數(shù)配置信息如下:檢測名稱-name、是否開探針檢測-enabled、檢測的App名稱-affectedApp、被監(jiān)聽的framework框架的API名稱-caller、探針行為模式-mode和探針行為匹配條件-condit1n。
[0043]請參閱圖2,圖2是本發(fā)明實施例的基于動態(tài)插粧的惡意代碼檢測方法的流程步驟圖。
[0044]一種基于動態(tài)插粧的惡意代碼檢測方法,包括:
[0045]步驟S100,在移動終端的系