惡意行為傳 播途徑進(jìn)行行為約束;并根據(jù)惡意行為特點,設(shè)置導(dǎo)向惡意節(jié)點,對這個惡意節(jié)點再進(jìn)行惡 意行為二分,以此類推,把每個節(jié)點的惡意行為,全部用二叉樹的形式進(jìn)行表示出來。在應(yīng) 用程序的敏感信息標(biāo)記行為傳播過程中,通過對比內(nèi)核中的相似節(jié)點,分析此節(jié)點下的所 有子類,從而有效的減少遍歷時間和檢測重復(fù)度,以此減少惡意行為的分析時間,進(jìn)而提高 檢測的效率,將遺漏應(yīng)用程序的惡意行為風(fēng)險降到最低。
[0045] 具體地,內(nèi)核的行為導(dǎo)向約束中,惡意節(jié)點為惡意行為分類的總節(jié)點,對不斷出現(xiàn) 的新的惡意行為,以行為劃分,增加到不同的子類中,從而使惡意行為可以不斷擴(kuò)展細(xì)化。 在進(jìn)行惡意行為的定位時,如果不能直接定位到類似的惡意節(jié)點,則根據(jù)行為再定位上一 層的惡意節(jié)點中,在這個惡意節(jié)點的下面所有子類進(jìn)行惡意行為檢測,以此達(dá)到全面快速 有效的分析結(jié)果。
[0046] 參照圖1,本發(fā)明的基于導(dǎo)向性符號的移動終端惡意行為的檢測系統(tǒng)包括應(yīng)用程 序預(yù)處理模塊1、應(yīng)用程序依賴圖構(gòu)建模塊2、敏感信息標(biāo)記模塊3、敏感信息傳播模塊4、導(dǎo) 引信息提取模塊5、符號化執(zhí)行模塊6和檢測模塊7。
[0047] 應(yīng)用程序預(yù)處理模塊1用于在應(yīng)用程序安裝時,對應(yīng)用程序進(jìn)行預(yù)處理,以獲取 應(yīng)用程序的相關(guān)信息。具體地,對應(yīng)用程序進(jìn)行預(yù)處理,主要用到下面二個服務(wù):活動管理 服務(wù)(ActivityManagerService)和包管理服務(wù)(PackageMangerService)。在程序進(jìn)行安 裝時,上述二個服務(wù)同時對程序進(jìn)行檢測,其中活動管理服務(wù)管理應(yīng)用程序的交互信息,包 管理服務(wù)主要收集應(yīng)用程序的活動組件、服務(wù)組件、接收器組件、內(nèi)容提供組件等,從而對 收集到的應(yīng)用程序的交互信息和其他信息等相關(guān)信息一起進(jìn)行歸類處理,即對信息進(jìn)行行 為約束預(yù)處理。
[0048] 應(yīng)用程序依賴圖構(gòu)建模塊2用于構(gòu)建應(yīng)用程序權(quán)限的依賴關(guān)系。具體地,在應(yīng)用 程序安裝時,活動管理服務(wù)會收集到應(yīng)用程序的所有權(quán)限狀態(tài)信息,并保存起來。在應(yīng)用程 序所使用的這些權(quán)限中,應(yīng)用程序依賴圖構(gòu)建模塊2主要是對收集的權(quán)限進(jìn)行判斷,構(gòu)建 應(yīng)用程序權(quán)限的依賴關(guān)系。
[0049] 具體地,應(yīng)用程序要上網(wǎng),依賴的權(quán)限包括如下:
[0050] android,permission.ACCESS_NETWORK_STATE,表示允許程序訪問有關(guān)GSM網(wǎng)絡(luò) 信息;
[0051] android,permission.ACCESS_WIFI_STATE,表示允許程序訪問Wi-Fi網(wǎng)絡(luò)狀態(tài)信 息;
[0052] android,permission.CHANGE_NETTORK_STATE,表示允許程序改變網(wǎng)絡(luò)連接狀 態(tài);
[0053] android,permission.CHANGE_WIFI_STATE,表示允許程序改變Wi-Fi連接狀態(tài);
[0054] android,permission.INTERNET,表示允許程序打開網(wǎng)絡(luò)套接字;
[0055] android,permission.WAKE_L0CK,表不允許使用PowerManager的WakeLocks保持 進(jìn)程在休眠時從屏幕消失;
[0056] android,permission.WRITE_EXTERNAL_STORAGE,表示往SDCard寫入數(shù)據(jù)權(quán)限。
[0057] 在這些權(quán)限中,有很多是共用的權(quán)利。例如,寫入SD卡數(shù)據(jù),在下載數(shù)據(jù)、在錄音 時、在拍照時等等都會用到。這些權(quán)限相互依賴,造就應(yīng)用程序的依賴圖。
[0058] 敏感信息標(biāo)記模塊3用于標(biāo)記應(yīng)用程序行為的敏感信息。其中敏感信息包括有隱 私信息,如短信、聯(lián)系人、數(shù)字證書、密碼、相冊、密鑰、位置定位等等;惡意扣費信息,如后臺 跑流量、自動打電話、自動發(fā)送短信等;系統(tǒng)破壞信息,如自動創(chuàng)建大量文件、修改系統(tǒng)源文 件等等。
[0059] 敏感信息傳播模塊4用于傳播應(yīng)用程序的敏感信息。例如,隱私信息通過網(wǎng)絡(luò)進(jìn) 行擴(kuò)散,通過后臺進(jìn)行網(wǎng)絡(luò)傳輸,或者將隱私信息打包通過內(nèi)置郵件發(fā)送等;通過程序發(fā)送 扣費短信、后臺自動打電話、自動下載應(yīng)用等信息。
[0060] 導(dǎo)引信息提取模塊5用于將傳播的敏感信息按類引導(dǎo)到相應(yīng)的特征和行為權(quán)限。 在應(yīng)用程序安裝時收集的應(yīng)用程序的相關(guān)信息是按類處理,相應(yīng)的權(quán)限依賴是按關(guān)系處 理。提取引導(dǎo)信息主要由活動管理服務(wù)進(jìn)行處理。
[0061] 符號化執(zhí)行模塊6用于將傳播的敏感信息與惡意節(jié)點二叉樹中的相似節(jié)點進(jìn)行 對比,并分析此惡意節(jié)點下的所有子類,其中惡意節(jié)點二叉樹通過二叉樹的形式對惡意行 為進(jìn)行逐層描述,每個惡意節(jié)點表示惡意行為的系統(tǒng)預(yù)配置的信息。
[0062] 具體地,本發(fā)明提出一種基于符號執(zhí)行二叉樹的概念。在Linux系統(tǒng)內(nèi)核層, 在Linux內(nèi)核層構(gòu)建符號二叉樹模型監(jiān)視器,對惡意傳播途徑進(jìn)行行為約束、監(jiān)視;并在 framework層對,根據(jù)行為特點,設(shè)置導(dǎo)向惡意節(jié)點,對這個惡意節(jié)點再進(jìn)行惡意行為二分, 以此類推,把每個節(jié)點的惡意行為,全部用二叉樹的形式進(jìn)行所示出來。
[0063] 如圖2所示,在層數(shù)為k的二叉樹中,惡意節(jié)點的個數(shù)最多為2k'其中每一個節(jié)點 對應(yīng)一個約束條件。設(shè)定第k層的第i個節(jié)點所對應(yīng)的約束條件為nki。
[0064] 除第一層節(jié)點外,每個節(jié)點都有父節(jié)點。子節(jié)點為父節(jié)點的子類,包括左子節(jié)點和 右子節(jié)點。在遍歷時,根據(jù)父節(jié)點和子節(jié)點的關(guān)系,快速進(jìn)行查找。
[0065] Linux系統(tǒng)framework層安裝有一個惡意程序權(quán)限使用特征集,用于存放現(xiàn)有的 惡意行為的特征和行為權(quán)限。如:移動終端的IMEI、電話號碼、設(shè)備序列號、短信、圖片、位 置信息、通訊記錄、錄音、聊天記錄等等特征;申請移動終端的上網(wǎng)權(quán)限、文件讀寫權(quán)限、位 置權(quán)限、打開移動數(shù)據(jù)流量權(quán)限等行為權(quán)限。這些行為和特征一起作為系統(tǒng)預(yù)配置的信息。
[0066] 檢測模塊7用于在應(yīng)用程序行為的敏感信息與系統(tǒng)預(yù)配置的信息相同時,判斷應(yīng) 用程序行為是惡意行為。
[0067] 例如,在圖3模型中,設(shè)定層數(shù)為4層。現(xiàn)有技術(shù)所采用的遍歷執(zhí)行順序依次為:
[0068] nl->n21->n31->n41 ;
[0069] nl->n21->n31->n42 ;
[0070]nl->n21->n32->n44;
[0071]nl->n21->n32->n44;
[0072] ......
[0073]nl->n22->n34->n48;
[0074] 由上可知,遍歷是在左子圖中先一步步進(jìn)行遍歷掃描,掃描耗時長;但如果在一定 的時間內(nèi)進(jìn)行遍歷,左子圖因數(shù)據(jù)多而不能遍歷右子圖,這樣會導(dǎo)致遍歷不全面,造成應(yīng)用 的行為分析不全面的問題。
[0075]使用本發(fā)明的基于導(dǎo)向性符號的移動終端惡意行為的檢測方案時,將應(yīng)用程序的 每一步的行為都進(jìn)行分類,根據(jù)相應(yīng)的子類選擇進(jìn)行導(dǎo)向性遍歷,如果應(yīng)用的惡意行為與n34相類似,則可以直接選擇到n34,則根據(jù)選擇,遍歷n34下面的所有子類,如果有一樣的行 為,則判斷是惡意行為,如果沒有一樣的行為,則說明不是惡意行為。具體地,遍歷的路徑 為:
[0076] nl->n22->n34->n47 ;
[0077] nl->n21->n34->n48 ;
[0078] 因此,在現(xiàn)有的二叉樹遍歷方法中,要從左子圖一步一步向右進(jìn)行遍歷,遍歷的時 間長,分析n34的行為,要一共進(jìn)行8次;而利用導(dǎo)向性符號,只須要2步就可以對n34進(jìn)行 對應(yīng)的分析,可以大幅度的減少耗時。
[0079] 具體地,采用以下代碼來實現(xiàn)本發(fā)明的基于導(dǎo)向性符號的移動終端惡意行為的搜 索:
[0081]
[0082] 參照圖4,本發(fā)明的基于導(dǎo)向性符號的移動終端惡意行為的搜索方法包括以下步 驟:
[0083] 步驟S1、在應(yīng)用程序安裝時,對應(yīng)用程序進(jìn)行預(yù)處理,以獲取應(yīng)用程序的相關(guān)信 息。
[0084] 具體地,對應(yīng)用程序進(jìn)行預(yù)處理,主要用到下面二個服務(wù):活動管理服務(wù) (ActivityManagerService)和包管理服務(wù)(PackageMangerService)。在程序進(jìn)行安裝時, 上述二個服務(wù)同時對程序進(jìn)行檢測,其中活動管理服務(wù)管理應(yīng)用程序的交互信息,包管理 服務(wù)主要收集應(yīng)用程序的活動組件、服務(wù)組件、接收器組件、內(nèi)容提供組件等,從而對收集 到的應(yīng)用程序的交互信息和其他信息等相關(guān)信息一起進(jìn)行歸類處理,即對信息進(jìn)行行為約 束預(yù)處理。
[0085] 步驟S2、構(gòu)建應(yīng)用程序權(quán)限的依賴關(guān)系。
[0086] 具體地,在應(yīng)用程序安裝時,活動管理服務(wù)會收集到應(yīng)用程序的所有權(quán)限狀態(tài)信 息,并保存起來。在應(yīng)用程序所使用的這些權(quán)限中,應(yīng)用程序依賴圖構(gòu)建模塊主要是對收集 的權(quán)限進(jìn)行判斷,構(gòu)建應(yīng)用程序權(quán)限的依賴關(guān)系。
[0087] 具體地,應(yīng)用程序要上網(wǎng),依賴的權(quán)限包括如下:
[0088] android,permission