用于惡意軟件檢測的方法和裝置的制造方法
【專利摘要】提供了一種用于提供離線惡意軟件檢測以及附加的實(shí)時惡意軟件檢測的方法。離線惡意軟件檢測可以包括:離線檢測應(yīng)用的至少一個函數(shù)調(diào)用圖,其中該函數(shù)調(diào)用圖記錄該應(yīng)用所調(diào)用的函數(shù)之間的調(diào)用關(guān)系;從該至少一個函數(shù)調(diào)用圖中提取該應(yīng)用的函數(shù)調(diào)用的模式;并且將所提取的模式與正常應(yīng)用的至少一種基本模式進(jìn)行比較。該實(shí)時惡意軟件檢測可以包括:在真實(shí)環(huán)境中運(yùn)行應(yīng)用;記錄該應(yīng)用在其運(yùn)行時間的行為;從所記錄的行為中提取行為模式;并且將所提取的行為模式與正常應(yīng)用的基本模式或先前針對該應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。
【專利說明】
用于惡意軟件檢測的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明一般地涉及計算機(jī)和網(wǎng)絡(luò)安全。更具體地,本發(fā)明涉及惡意軟件檢測。
【背景技術(shù)】
[0002]移動設(shè)備已經(jīng)演進(jìn)為用于執(zhí)行各種應(yīng)用的開放平臺。也被稱為“app”的應(yīng)用通常是指能夠在諸如移動設(shè)備的計算設(shè)備上執(zhí)行的軟件應(yīng)用。app特別是移動app例如通過即時訪問互聯(lián)網(wǎng)上的海量信息并且提供各種功能而對我們的許多日常活動加以提升。移動app的快速增長對于未來移動互聯(lián)網(wǎng)和經(jīng)濟(jì)的成功扮演著關(guān)鍵角色。如今有超過一百萬的移動£ΦΡ并且每天有大約2000個新的app被投入市場。
[0003]然而,移動app可能是惡意的、有缺陷的(buggy),意外運(yùn)行或者對移動設(shè)備帶來安全漏洞。此外,惡意app可能威脅到連接至互聯(lián)網(wǎng)的其它主機(jī)以及移動和無線通信網(wǎng)絡(luò)節(jié)點(diǎn)。移動惡意軟件是指在移動設(shè)備中表現(xiàn)出惡意行為的惡意的軟件。移動惡意軟件的惡意行為可以被寬泛地歸類為包括駐留在移動設(shè)備中的病毒、僵尸網(wǎng)絡(luò)、蠕蟲、特洛伊木馬。最初,其強(qiáng)調(diào)移動通信系統(tǒng)的安全漏洞。近來,惡意的移動代碼已經(jīng)成為了一種通過盜取用戶證書、銷售用戶信息、操控內(nèi)容遞送和發(fā)送SMS垃圾郵件而獲取大規(guī)模經(jīng)濟(jì)利益的渠道。哪些移動app值得用戶信任從而進(jìn)行消費(fèi)成為了影響app和移動互聯(lián)網(wǎng)的最終成功的關(guān)鍵因素,并且影響與移動網(wǎng)絡(luò)相關(guān)的經(jīng)濟(jì)。
[0004]因此,在本領(lǐng)域提供一種允許有效且高效地檢測惡意軟件的方法和系統(tǒng)將會是有利的。
【發(fā)明內(nèi)容】
[0005]為了克服以上所描述的問題并且克服在閱讀和理解現(xiàn)有技術(shù)時將會顯而易見的局限性,本公開提供了在離線情況下和/或在運(yùn)行時間有效且高效地檢測惡意軟件的方法。
[0006]根據(jù)一個實(shí)施例,一種方法包括使得對應(yīng)用進(jìn)行離線惡意軟件檢測。該離線惡意軟件檢測包括離線檢測應(yīng)用的至少一個函數(shù)調(diào)用圖,其中該函數(shù)調(diào)用圖記錄該應(yīng)用所調(diào)用的函數(shù)之間的調(diào)用關(guān)系;從該至少一個函數(shù)調(diào)用圖中提取該應(yīng)用的函數(shù)調(diào)用的模式;并且將所提取的模式與正常應(yīng)用的至少一種基本模式進(jìn)行比較。該離線惡意軟件檢測的結(jié)果可以被通報以指示來自應(yīng)用的潛在惡意威脅。
[0007]在示例性實(shí)施例中,該檢測可以包括在虛擬環(huán)境中運(yùn)行該應(yīng)用的代碼的至少一部分并且獲取該應(yīng)用的函數(shù)調(diào)用的日志。該提取可以包括使用數(shù)據(jù)挖掘方法來分析該日志。
[0008]在示例性實(shí)施例中,該至少一個函數(shù)調(diào)用圖可以包括以下三種類型的函數(shù)調(diào)用圖中的至少一種:完整調(diào)用圖,其包含能夠供所述應(yīng)用貫穿所述運(yùn)行所調(diào)用的功能之間的所有調(diào)用關(guān)系;不同時間的調(diào)用圖,其包含所述應(yīng)用在所述運(yùn)行期間的所述不同時間的時間點(diǎn)之前所調(diào)用的功能之間的調(diào)用關(guān)系;和部分調(diào)用圖,其包含所述應(yīng)用在所述運(yùn)行期間的一個時間段中所調(diào)用的功能之間的調(diào)用關(guān)系。
[0009]在示例性實(shí)施例中,該離線惡意軟件檢測可以進(jìn)一步包括通過添加用于獲取該功能調(diào)用的日志的功能模塊而對該應(yīng)用的執(zhí)行代碼的至少一部分進(jìn)行重新編譯,以及在該虛擬環(huán)境中運(yùn)行所重新編譯的代碼以獲取該日志。
[0010]在示例性實(shí)施例中,該方法可以進(jìn)一步包括根據(jù)應(yīng)用的聲譽(yù)來調(diào)度該應(yīng)用的離線惡意軟件檢測。具有較高聲譽(yù)的應(yīng)用可以先于具有較低聲譽(yù)的應(yīng)用被調(diào)度以進(jìn)行離線惡意軟件檢測。
[0011]在示例性實(shí)施例中,該方法可以進(jìn)一步包括使得在所述應(yīng)用在真實(shí)環(huán)境中被執(zhí)行的同時對所述應(yīng)用進(jìn)行實(shí)時惡意軟件檢測。該實(shí)時惡意軟件檢測包括記錄該應(yīng)用在其運(yùn)行時間的行為;從所記錄的行為中提取行為模式;并且將所提取的行為模式與正常應(yīng)用的基本模式或先前針對該應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。所記錄的行為可以包括以下三種類型的行為中的至少一種:與應(yīng)用的函數(shù)調(diào)用相關(guān)聯(lián)的行為,與應(yīng)用所引起的本地數(shù)據(jù)訪問相關(guān)聯(lián)的行為,和與該應(yīng)用所引發(fā)的傳入(i nbound)和/或出站(outbound)流量相關(guān)聯(lián)的行為。該實(shí)時惡意軟件檢測可以進(jìn)一步包括通過增加用于獲取該應(yīng)用的行為的日志的功能模塊而對該應(yīng)用的至少一部分程序代碼進(jìn)行重新編譯。
[0012]根據(jù)另一個實(shí)施例,一種方法包括在真實(shí)環(huán)境中運(yùn)行應(yīng)用;記錄該應(yīng)用在其運(yùn)行時間的行為;從所記錄的行為中提取行為模式;并且將所提取的行為模式與正常應(yīng)用的基本模式或先前針對該應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。
[0013]根據(jù)另一個實(shí)施例,一種裝置包括至少一個處理器,和至少一個包括計算機(jī)程序代碼的存儲器,該至少一個存儲器和計算機(jī)程序代碼被配置為與該至少一個處理器一起至少部分地使得該裝置:在真實(shí)環(huán)境中運(yùn)行應(yīng)用;記錄該應(yīng)用在其運(yùn)行時間的行為;從所記錄的行為中提取行為模式;并且將所提取的行為模式與正常應(yīng)用的基本模式或先前針對該應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。
[0014]根據(jù)另一個實(shí)施例,一種計算機(jī)可讀存儲介質(zhì),其承載一個或多個指令的一個或多個序列,一個或多個指令的一個或多個序列在被一個或多個處理器執(zhí)行時使得裝置執(zhí)行以上所討論的方法之一。
[0015]根據(jù)另一個實(shí)施例,一種裝置包括用于執(zhí)行以上所討論的方法之一的器件。
[0016]—種計算機(jī)程序產(chǎn)品,包括一個或多個指令的一個或多個序列,一個或多個指令的一個或多個序列在被一個或多個處理器執(zhí)行時使得裝置執(zhí)行以上所討論的方法之一。
[0017]簡單地通過圖示包括被預(yù)期實(shí)施本發(fā)明的最佳模式在內(nèi)的多個特定實(shí)施例和實(shí)施方式,本發(fā)明的其它方面、特征和優(yōu)勢將由于以下的詳細(xì)描述而是顯然的。本發(fā)明還支持其它且不同的實(shí)施例,并且其若干細(xì)節(jié)可以在各個顯然的方面被加以修改,全部這些都并不背離本發(fā)明的精神和范圍。因此,附圖和描述要被視為是實(shí)質(zhì)上是說明性的而并非作為限制。
【附圖說明】
[0018]在附圖的圖中通過示例而非限制來對本發(fā)明的實(shí)施例進(jìn)行圖示:
[0019]圖1圖示了根據(jù)本發(fā)明一些實(shí)施例的用于檢測移動設(shè)備的惡意軟件的架構(gòu);
[0020]圖2是圖示根據(jù)本發(fā)明一些實(shí)施例的用于進(jìn)行綜合惡意軟件檢測的過程的流程圖;
[0021]圖3圖示了根據(jù)本發(fā)明一些實(shí)施例的通過聲譽(yù)評估來驅(qū)動離線惡意軟件檢測的過程;
[0022]圖4是根據(jù)本發(fā)明一些實(shí)施例的用于離線惡意軟件檢測的流程圖;
[0023]圖5是根據(jù)本發(fā)明一些實(shí)施例的用于實(shí)時惡意軟件檢測的流程圖;和
[0024]圖6圖示了本發(fā)明各個示例性實(shí)施例可以被應(yīng)用于其中的裝置的示例框圖。
【具體實(shí)施方式】
[0025]公開了用于提供惡意軟件檢測的方法、裝置、系統(tǒng)和計算機(jī)程序的示例。在以下描述中,出于解釋的目的而給出了很多具體細(xì)節(jié)以便提供對本發(fā)明實(shí)施例的全面理解。然而,對于本領(lǐng)域技術(shù)人員而言顯而易見的是,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下或者利用等同的部署形式進(jìn)行實(shí)踐。在其它實(shí)例中,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備以免對本發(fā)明的實(shí)施例造成不必要的混淆。同樣的附圖標(biāo)記始終指代同樣的要素。
[0026]在下文中,移動設(shè)備將被用作被惡意軟件威脅的計算設(shè)備的一個示例,但是諸如膝上計算機(jī)、臺式計算機(jī)、家居自動化和/或控制設(shè)備之類的其它類型的計算設(shè)備也是可能的。此外,在描述中將使用移動惡意軟件,但是其它類型的惡意軟件也是可能的,包括但并不局限于膝上計算機(jī)上的惡意軟件或未知惡意軟件。
[0027]將安全性作為主要考量,通過研究每個app以查明該app是惡意的還是善意的而對所有app進(jìn)行跟蹤將會是一項(xiàng)難以企及的任務(wù)。許多app商店使用下載統(tǒng)計而給出app的信任度或聲譽(yù)以便作出推薦。但是研究發(fā)現(xiàn)26%的移動app在下載之后被試用過一次而隨后就被棄用。顯然,跟蹤下載根本無法準(zhǔn)確計量app的成功和安全性,因?yàn)橄螺d統(tǒng)計所提供的觀點(diǎn)經(jīng)常是不準(zhǔn)確且夸張的。由于app的數(shù)量龐大,所以高效且有效地檢測惡意軟件是非常困難的。首先,數(shù)量龐大的應(yīng)用使得安全服務(wù)提供方(例如,F(xiàn)-secure、中國的360等)對每個應(yīng)用的安全性進(jìn)行驗(yàn)證并且決定哪一個應(yīng)當(dāng)以優(yōu)先級加以確認(rèn)是困難且高成本的。其次,一些應(yīng)用會在安裝和使用一段時間之后變?yōu)閻阂獾摹D壳?,并沒有在運(yùn)行時間以動態(tài)的方式檢測移動惡意軟件的良好解決方案。
[0028]已經(jīng)提出了許多用于檢測惡意軟件的技術(shù),它們之中的大多數(shù)集中于綜合調(diào)查。然而,有關(guān)移動惡意軟件的研究仍處于其初級階段。惡意軟件檢測技術(shù)可以被歸類為以下類別。能夠用于檢測移動惡意軟件以及其它安全漏洞的技術(shù)具有變化的強(qiáng)度和弱點(diǎn)。
[0029](I)靜態(tài)分析
[0030]靜態(tài)分析是在并不執(zhí)行應(yīng)用的情況下找出它們中的惡意特征或壞代碼分段的方式。它們通常在首次對可疑應(yīng)用進(jìn)行評估以檢測任何顯見的安全性威脅的時候在預(yù)備分析中被使用。一種靜態(tài)惡意軟件檢測技術(shù)首先對移動應(yīng)用進(jìn)行拆分并且提取系統(tǒng)調(diào)用(特征提取)。其隨后使用質(zhì)心機(jī)(Centroid Machine)--一種輕量級聚類機(jī)制--將該移動應(yīng)用歸類為惡意的或良性的(異常檢測)。第二種靜態(tài)惡意軟件檢測機(jī)制通過首先拆分移動應(yīng)用并且構(gòu)建控制流程圖(CFG)來執(zhí)行靜態(tài)污染分析。該分析考慮始于諸如地址簿、當(dāng)前GPS坐標(biāo)、鍵盤高速緩存、唯一設(shè)備ID和其它電話相關(guān)信息之類的敏感來源的路徑。數(shù)據(jù)流分析針對從來源傳送的任何敏感數(shù)據(jù)進(jìn)行檢查以進(jìn)行同步而并不通知用戶并且因此導(dǎo)致隱私泄露。該方法僅可以檢測單一應(yīng)用內(nèi)的隱私泄露,并且在兩個或更多應(yīng)用傳遞相連在一起的情況下則無效。第三種靜態(tài)惡意軟件檢測技術(shù)使用反向編譯器(例如,用于安卓代碼)從應(yīng)用的安裝鏡像生成Java源代碼并且隨后使用靜態(tài)代碼分析套件來評估所恢復(fù)的源代碼。該技術(shù)局限于使用相對少量的許可和API調(diào)用的那些app。
[0031]靜態(tài)分析是一種快速且廉價的方法,但是難以檢測到在長時間良好運(yùn)行之后自行修改并因此突然出現(xiàn)惡意行為的代碼所導(dǎo)致的安全威脅。其無法克服移動僵尸網(wǎng)絡(luò)主控方或僵尸網(wǎng)絡(luò)或病毒所導(dǎo)致的攻擊或入侵。
[0032](2)動態(tài)分析
[0033]動態(tài)分析涉及在諸如虛擬機(jī)或仿真程序之類的隔離環(huán)境中執(zhí)行移動應(yīng)用,使得研究人員能夠監(jiān)控應(yīng)用的動態(tài)行為。研究人員主要將動態(tài)分析使用污染追蹤或系統(tǒng)調(diào)用跟蹤之中。例如,TaintDroid提供了針對安卓的系統(tǒng)范圍的動態(tài)污染追蹤。移動應(yīng)用送至Dalvik虛擬機(jī)以執(zhí)行四種粒度的污染傳播:變量、方法、消息和文件級別。污染追蹤對來自于諸如位置、麥克風(fēng)、相機(jī)和其它電話標(biāo)識符之類的敏感來源的任何歧義數(shù)據(jù)進(jìn)行標(biāo)記。該技術(shù)對本地庫集加載器進(jìn)行修改以確保所有的本地庫都從虛擬機(jī)進(jìn)行調(diào)用,因此防止不被信任的應(yīng)用直接執(zhí)行本地方法。最后,動態(tài)分析在受影響數(shù)據(jù)在網(wǎng)絡(luò)接口一一污染槽一一離開系統(tǒng)之前針對任何潛在的敏感數(shù)據(jù)泄露而對其進(jìn)行篩選。然而,TaintDroid可能受到錯誤否定和錯誤肯定結(jié)果的影響;此外,其僅關(guān)注數(shù)據(jù)流而并未考慮其它漏洞。安卓應(yīng)用沙箱(AASandbox)系統(tǒng)針對安卓應(yīng)用提供了兩個步驟的分析。移動應(yīng)用送至AASandbox,在那里其以離線模式執(zhí)行靜態(tài)和動態(tài)分析。靜態(tài)分析將應(yīng)用鏡像二進(jìn)制碼進(jìn)行拆解并且使用拆解后的代碼搜索任何的可疑模式(http://bit.ly/171MnI)。動態(tài)分析在安卓仿真程序中執(zhí)行該二進(jìn)制碼并且將系統(tǒng)調(diào)用記入日志。雖然研究人員使用了安卓Monkey(ADB Monkey)來生成輸入,但這并不像利用真實(shí)用戶進(jìn)行測試那樣有效。此外,該方法還沒有針對表現(xiàn)出多形態(tài)行為或代碼段加密的惡意軟件進(jìn)行過測試。
[0034]該大的數(shù)量要求自動化方法在應(yīng)當(dāng)進(jìn)行更接近的(人工)分析的樣本以及作為已知威脅的變化形式的那些樣本之間進(jìn)行快速區(qū)分。該自動分析可以以兩種方式來執(zhí)行。動態(tài)分析是指執(zhí)行樣本并且驗(yàn)證該樣本實(shí)際上所執(zhí)行的動作的技術(shù),而靜態(tài)分析則在并不實(shí)際執(zhí)行樣本的情況下執(zhí)行其任務(wù)。而靜態(tài)分析有可能覆蓋通過程序的所有可能執(zhí)行流程,動態(tài)分析則受到不完整路徑覆蓋的問題的影響。
[0035](3)應(yīng)用許可分析
[0036]應(yīng)用許可分析旨在通過許可檢查而找出移動app的惡意行為。例如,Kirin是用于安卓平臺的應(yīng)用認(rèn)證。Kirin在安裝期間對應(yīng)用執(zhí)行許可檢查。當(dāng)用戶安裝應(yīng)用時,Kirin提取其安全配置并且針對已經(jīng)具有的安全策略規(guī)則對它們進(jìn)行檢查。如果應(yīng)用無法通過所有安全策略規(guī)則,則Kirin能夠?qū)⑵鋭h除或者警告用戶。Kirin僅對應(yīng)用作者的許可請求進(jìn)行檢查而并不驗(yàn)證應(yīng)用如何使用這些許可。其對于檢查惡意公開敏感用戶數(shù)據(jù)或者(在具有所同意的許可的情況下)引入所不希望的內(nèi)容的一些app的安全漏洞的檢查可能是無效的。
[0037](4)基于云的檢測
[0038]由于有限的計算能力和能量來源,智能電話可能無法承載功能完整的安全機(jī)制,諸如簡單文件掃描器?;谠频膼阂廛浖Wo(hù)技術(shù)將安全分析和計算移動至主控在仿真裝置上運(yùn)行的移動電話的多個副本的遠(yuǎn)程服務(wù)器。位于移動電話中的跟蹤程序記錄重放移動應(yīng)用的執(zhí)行所需的所有必要信息。該跟蹤程序?qū)⑺涗浀男畔魉椭粱谠频闹胤牌?,該重放器對仿真裝置中的執(zhí)行進(jìn)行重放。該重放器能夠?qū)Χ喾N安全檢查進(jìn)行部署,諸如來自云的豐富資源的動態(tài)惡意軟件分析、存儲器掃描、系統(tǒng)調(diào)用異常檢測和商業(yè)防病毒掃描。但是使用該方法最初可能導(dǎo)致錯誤的肯定結(jié)果,因?yàn)闃颖镜拇笮∪匀环浅P 4送?,并不清楚用戶在被要求將?yīng)用行為發(fā)送至第三方時將會如何反應(yīng),并且對于用戶行為的總體依賴性可能并不會產(chǎn)生準(zhǔn)確的結(jié)果。用戶隱私也是一個開放性的問題。該方法還具有檢測延期。其無法在網(wǎng)絡(luò)連接不可用或者被惡意軟件損毀的情況下得以應(yīng)用。
[0039](5)電池壽命監(jiān)控
[0040]由于智能電話的電池容量有限,所以觀察能量消耗有時識別出比善意應(yīng)用消耗更多能量的惡意應(yīng)用。如果正常的用戶行為、當(dāng)前電池狀態(tài)以及諸如信號強(qiáng)度和網(wǎng)絡(luò)業(yè)務(wù)量之類的其它特定于域的細(xì)節(jié)是已知的,則可能更為精確地檢測到隱藏的惡意活動。無法預(yù)測的用戶行為和惡意軟件所引入的虛假事件會影響到功率模型的準(zhǔn)確性。此外,該方法無法被應(yīng)用于具有多任務(wù)特征的智能電話。
[0041]如能夠從上文所看到的,每種類型的方法都具有其缺陷而且它們都不是綜合性的。此外,大多數(shù)用于移動惡意軟件檢測的現(xiàn)有方法無法實(shí)時檢測運(yùn)行時間的移動惡意軟件。然而,一些惡意移動app會在被長時間使用之后或者通過代碼的自行修改而突然入侵移動設(shè)備。這種威脅挑戰(zhàn)到對于移動app的信任管理的研究。
[0042]根據(jù)各個示例性實(shí)施例,可以在離線檢查中以及附加地在應(yīng)用運(yùn)行時間的實(shí)時檢查中提供高效且有效的惡意軟件檢測。對于惡意軟件的“離線”檢查意味著在并不在真實(shí)環(huán)境中實(shí)際執(zhí)行應(yīng)用的情況下檢測該應(yīng)用中的異常。在一些實(shí)施例中,所要檢查的應(yīng)用的至少一部分代碼可以在虛擬環(huán)境中運(yùn)行,從而獲取該應(yīng)用的函數(shù)調(diào)用的日志。從函數(shù)調(diào)用的日志,能夠得出函數(shù)調(diào)用圖以反映出該應(yīng)用所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。應(yīng)用的函數(shù)調(diào)用圖包含表示該應(yīng)用所調(diào)用的函數(shù)的節(jié)點(diǎn)以及指示節(jié)點(diǎn)之間的調(diào)用關(guān)系的邊。邊能夠根據(jù)其相應(yīng)調(diào)用關(guān)系的詳細(xì)信息(諸如調(diào)用密度和調(diào)用頻率)而進(jìn)一步被加權(quán)。通過例如經(jīng)由數(shù)據(jù)挖掘技術(shù)對函數(shù)調(diào)用圖進(jìn)行統(tǒng)計分析,該函數(shù)調(diào)用圖的統(tǒng)計特征或模式可以被提取。隨后,所提取到的模式或特征可以與正常應(yīng)用的基本模式或規(guī)則進(jìn)行比較,以便找出所檢查的應(yīng)用中的異常。這樣,可以基于對應(yīng)用的函數(shù)調(diào)用的結(jié)構(gòu)的自動分析而進(jìn)行離線惡意軟件檢測。該離線惡意軟件檢測的結(jié)果例如可以通過發(fā)出指示來自所檢測應(yīng)用的可能惡意威脅的安全證書而被通報,從而幫助用戶作出應(yīng)用下載的決策。
[0043]在一些實(shí)施例中,即使應(yīng)用(經(jīng)過或未經(jīng)過離線檢查)已經(jīng)在真實(shí)環(huán)境中在移動設(shè)備上被下載、安裝并隨后實(shí)際被執(zhí)行,該移動設(shè)備也可以自動檢測到該應(yīng)用的惡意行為。就此而言,應(yīng)用在其運(yùn)行時間的執(zhí)行行為可以被實(shí)時挖掘以便提取出模式或統(tǒng)計特征。所提取的模式可以與該應(yīng)用的正常模式和先前所記錄的模式進(jìn)行比較以便找出異常。一些惡意應(yīng)用可能在被安裝之后正常運(yùn)行一段時間,但是在得到用戶信任之后突然變?yōu)閻阂獾摹R虼嗽撃J奖容^可以有效檢測這種潛在威脅。這提供了檢測惡意軟件的綜合方式。
[0044]在一些實(shí)施例中,可以使用相應(yīng)應(yīng)用的聲譽(yù)來自動驅(qū)動離線惡意軟件檢測。就此而言,基本思想在于,沒有針對惡意軟件進(jìn)行過檢測的最具聲譽(yù)的應(yīng)用需要被仔細(xì)分析以消除嫌疑。應(yīng)用的聲譽(yù)表示該應(yīng)用在用戶間的信任程度和流行度。例如,應(yīng)用的較高聲譽(yù)值意味著該應(yīng)用更值得信任且流行。在一些實(shí)施例中,根據(jù)應(yīng)用的使用行為,用戶對于應(yīng)用的個人信任例如可以在移動設(shè)備處被自動生成?;谠搨€人用戶信任以及諸如用戶反饋之類的關(guān)于應(yīng)用的其它信息,可以進(jìn)一步生成應(yīng)用的聲譽(yù)?;趹?yīng)用的聲譽(yù),還沒有被檢查過的具有較高聲譽(yù)且流行(被廣泛使用)的應(yīng)用在信譽(yù)低且較少使用的應(yīng)用之前被檢查。
[0045]圖1是根據(jù)一些實(shí)施例的用于檢測移動設(shè)備的惡意軟件的架構(gòu)的功能框圖。如圖1所示,系統(tǒng)100包括計算設(shè)備101a,其經(jīng)由通信網(wǎng)絡(luò)105而具有到應(yīng)用商店107、安全服務(wù)提供方109、聲譽(yù)中心111和其它通信實(shí)體(諸如其它計算設(shè)備1lb)的連接。作為示例,系統(tǒng)100的通信網(wǎng)絡(luò)105包括一個或多個網(wǎng)絡(luò),諸如數(shù)據(jù)網(wǎng)絡(luò)(未示出)、無線網(wǎng)絡(luò)(未示出)、電話網(wǎng)絡(luò)(未示出)或者它們的任意組合。所預(yù)見到的是,數(shù)據(jù)網(wǎng)絡(luò)可以是任意的局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、公共數(shù)據(jù)網(wǎng)(例如,互聯(lián)網(wǎng))、自組織移動網(wǎng)絡(luò),或者任意其它適當(dāng)?shù)姆纸M交換網(wǎng)絡(luò),諸如商業(yè)所有的、專用分組交換網(wǎng)絡(luò),例如專有線纜或光纖網(wǎng)絡(luò)。此外,無線網(wǎng)絡(luò)例如可以是蜂窩網(wǎng)絡(luò)并且可以各種技術(shù),包括全球演進(jìn)增強(qiáng)數(shù)據(jù)速率(EDGE)、通用分組無線電服務(wù)(GPRS)、全球移動通信系統(tǒng)(GSM)、互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)(MS)、通用移動電信系統(tǒng)(UMTS)等,以及任意其它的適當(dāng)無線介質(zhì),例如全球微波接入互操作性(WiMAX)、無線局域網(wǎng)(WLAN)、長期演進(jìn)(LTE)網(wǎng)絡(luò)、碼分多址(CDMA)、寬帶碼分多址(WCDMA)、無線保真度(WiFi)、衛(wèi)星、移動專設(shè)網(wǎng)絡(luò)(MANET),等等。
[0046]計算設(shè)備101a、101b(此后統(tǒng)稱為101)可以是能夠例如利用處理器執(zhí)行軟件應(yīng)用的任意類型的設(shè)備。例如,計算設(shè)備101可以是移動設(shè)備,諸如智能電話、平板電腦、膝上計算機(jī)、筆記本或者個人數(shù)字助理;固定設(shè)備,諸如站點(diǎn)、單元、多媒體計算機(jī)、多媒體平板電腦、互聯(lián)網(wǎng)節(jié)點(diǎn)或者臺式計算機(jī);或者嵌入式設(shè)備,或者它們的任意組合。如圖1所示,計算設(shè)備101可以從應(yīng)用商店107下載應(yīng)用103a、103b,并且執(zhí)行所下載的應(yīng)用。計算設(shè)備101還可以被用來向應(yīng)用商店107或者諸如聲譽(yù)中心111和/或其它實(shí)體的其它方提供應(yīng)用使用的反饋。
[0047]應(yīng)用商店107可以高速緩存并管理各種應(yīng)用以便進(jìn)行上傳、下載、更新等。例如,對于智能電話而言,存在用于諸如Windows Phone系統(tǒng)、安卓系統(tǒng)和1S系統(tǒng)之類的不同操作系統(tǒng)的多種應(yīng)用商店。雖然圖1中僅示出了一個應(yīng)用商店,但是可以提供任意數(shù)量的應(yīng)用商店。
[0048]安全服務(wù)提供方(SSP)109被提供用于對多個應(yīng)用進(jìn)行離線掃描以檢測應(yīng)用異常和惡意軟件。在一些實(shí)施例中,SSP 109可以直接或間接從應(yīng)用商店103下載所要掃描的應(yīng)用。然而,應(yīng)當(dāng)理解的是,SSP 109可以從任意應(yīng)用來源獲得所要掃描的應(yīng)用的執(zhí)行代碼,上述來源諸如軟件應(yīng)用的開發(fā)方、企業(yè)、政府組織、用戶和/或其它實(shí)體。掃描或惡意軟件檢測的結(jié)果可以被發(fā)布以幫助用戶作出有關(guān)應(yīng)用下載的決策。例如,存在有提供軟件應(yīng)用的安全服務(wù)的多個企業(yè)或組織,諸如F-secure、360等。在一些實(shí)施例中,SSP 109可以被體現(xiàn)為這樣的企業(yè)或組織的服務(wù)器以便檢查軟件應(yīng)用的安全性或者被部署為能夠由任意其它各方進(jìn)行訪問的公眾或私人云服務(wù)。在一些實(shí)施例中,SSP 109甚至可以被部署在計算設(shè)備處,后者實(shí)際上也能夠自行執(zhí)行這些應(yīng)用。
[0049]此外,SSP109中的離線惡意軟件檢測或掃描可以基于這些應(yīng)用的聲譽(yù)排名來進(jìn)行。在其中存在大量應(yīng)用的實(shí)例中,SSP 109驗(yàn)證每個應(yīng)用的安全性可能是困難且昂貴的。因此,有必要利用優(yōu)先級來決定應(yīng)當(dāng)對哪一個進(jìn)行檢測。根據(jù)聲譽(yù)排名,最具聲譽(yù)且流行的應(yīng)用能夠首先被檢查以排除嫌疑。
[0050]聲譽(yù)中心(RC)Ill可以被提供以生成應(yīng)用的聲譽(yù)并且將其提供至SSP109oRC 111收集與應(yīng)用使用相關(guān)的信息以及來自用戶(例如,來自用戶的計算設(shè)備)的有關(guān)應(yīng)用的反饋。根據(jù)該信息,可以生成應(yīng)用的聲譽(yù)值以反映出應(yīng)用值得信任的程度以及流行度。RC 111可以被部署在服務(wù)SSP 109的云服務(wù)提供方處,或者以其它方式在應(yīng)用商店108或SSP 109之中進(jìn)行協(xié)同操作。
[0051]圖2是根據(jù)一些實(shí)施例的用于進(jìn)行綜合惡意軟件檢測的過程的流程圖。該綜合惡意軟件檢測包括兩個階段,即離線惡意軟件檢測和實(shí)時惡意軟件檢測。在203,可以對應(yīng)用進(jìn)行離線惡意軟件檢測。例如,其可以在SSP 109處通過工具套件來完成。SSP 109可以檢查在應(yīng)用的函數(shù)調(diào)用中是否存在任何異常。離線惡意軟件檢測的詳細(xì)過程隨后將參考圖4進(jìn)行描述。
[0052]惡意軟件檢測的結(jié)果例如可以通過在205發(fā)出檢查結(jié)果(肯定或否定的)的證書而被通報。如果惡意軟件檢測的結(jié)果是否定的,即應(yīng)用中存在一些異常,則SSP 109可以通報所檢測到的問題并且證明該檢測結(jié)果。如果惡意軟件檢測的結(jié)果是肯定的,SSP 109可以發(fā)出證書以證明該肯定的檢查結(jié)果。該結(jié)果可以被提供至用戶以幫助作出是否將應(yīng)用下載到他們的移動設(shè)備101的決策。該結(jié)果可以進(jìn)一步被提供至應(yīng)用商店107以輔助對應(yīng)用的管理,諸如將應(yīng)用下架和/或?yàn)閼?yīng)用開發(fā)補(bǔ)丁。利用該離線惡意軟件檢測,可能在投入使用之前排除一些惡意軟件。
[0053]該離線惡意軟件檢測可以根據(jù)相應(yīng)軟件的聲譽(yù)進(jìn)行調(diào)度。在一些實(shí)施例中,SSP109可以被配置為在多個應(yīng)用中優(yōu)先檢查具有較高聲譽(yù)的應(yīng)用。例如,RC 111可以決定需要針對惡意軟件進(jìn)行檢查的具有較高聲譽(yù)的應(yīng)用,并且隨后在SSP 109觸發(fā)對該應(yīng)用的離線惡意軟件檢測。
[0054]如果應(yīng)用通過了離線惡意軟件檢測,并且在真實(shí)環(huán)境中一一例如在計算設(shè)備1la中一一被實(shí)際執(zhí)行,則能夠在207對該應(yīng)用進(jìn)行實(shí)時惡意軟件檢測。計算設(shè)備1la可以監(jiān)控該應(yīng)用在運(yùn)行時間的應(yīng)用行為,諸如函數(shù)調(diào)用、數(shù)據(jù)訪問行為和聯(lián)網(wǎng)行為,并且檢查這些行為是否正常。實(shí)時惡意軟件檢測的詳細(xì)過程隨后將參考圖5進(jìn)行描述。
[0055]如果實(shí)時惡意軟件檢測的結(jié)果是否定的,即如果在應(yīng)用行為中存在異常,則計算設(shè)備在209作出反應(yīng)以控制所檢測到的惡意應(yīng)用。例如,計算設(shè)備的用戶可以被通知移除該應(yīng)用或者采取相應(yīng)的動作。
[0056]如以上所討論的,離線惡意軟件檢測可以由聲譽(yù)評估來驅(qū)動。圖3圖示了根據(jù)一些實(shí)施例的這樣的過程。在301,RC 111可以針對應(yīng)用例如從移動設(shè)備101收集用戶的使用數(shù)據(jù)。該使用數(shù)據(jù)可以包括與正常應(yīng)用使用相關(guān)的app使用行為數(shù)據(jù),其主要可以由所過去的使用時間、使用次數(shù)、和使用頻率來反映;app反映行為數(shù)據(jù),其涉及到用戶面對應(yīng)用問題/錯誤或者具有良好/不好的使用體驗(yàn)之后的使用行為;和app相關(guān)行為數(shù)據(jù),其涉及到與多個功能類似的應(yīng)用相關(guān)的使用行為?;谒占降氖褂脭?shù)據(jù),可以確定指示應(yīng)用中的個人用戶信任度的信任度級別。基于應(yīng)用的信任度級別和/或用戶的主觀反饋,可以在303生成應(yīng)用的聲譽(yù)。存在許多用于生成或評估聲譽(yù)的算法。例如,一些算法在發(fā)明人的題為aTruBeRepec:A Trust-Behav1r-Based Reputat1n and Recommender System forMobile Applicat 1ns”(Z.Yan、P.Zhang、R.H.Deng,Journal of Personal andUbiquitous Computing, Springer,Vol.16, Issue 5,pp.485-506,2012)中有所描述。也可以使用現(xiàn)在已知或后續(xù)開發(fā)的用于生成或評估app聲譽(yù)的其它方法。
[0057]根據(jù)相應(yīng)應(yīng)用的聲譽(yù),RC111可以在305例如按照聲譽(yù)值的降序?qū)σM(jìn)行惡意軟件檢測的應(yīng)用進(jìn)行排名。隨后,RC 111可以在307針對還沒有進(jìn)行檢查的應(yīng)用決定惡意軟件檢測的優(yōu)先級。例如,排名前N(N是檢測閾值)的應(yīng)用可以被決定以按照優(yōu)先級接受離線惡意軟件檢測。在309,該決策可以觸發(fā)SSP 109逐個加載這些所決定的應(yīng)用的代碼以便例如通過SSP 109處的離線惡意軟件檢測工具套件進(jìn)行檢查。
[0058]利用app聲譽(yù)評估,SSP 109易于合理安排離線惡意軟件檢測的調(diào)度。SSP 109可以關(guān)注檢查具有高聲譽(yù)和流行度的最具價值的應(yīng)用。這可以幫助SSP 109節(jié)約成本并且更為有效地進(jìn)行惡意軟件檢測。例如,對于不喜歡的應(yīng)用,SSP 109將不需要匆忙檢查或者不必要檢測它們的問題。對于流行應(yīng)用,SSP 109可以盡可能早地檢查其安全性,以便大幅減少它們所導(dǎo)致的潛在風(fēng)險。因此,SSP 109被允許關(guān)注于市場需求。
[0059]參考圖4,現(xiàn)在將對離線惡意軟件檢測的過程進(jìn)行描述。在離線惡意軟件檢測中,對應(yīng)用的函數(shù)調(diào)用的結(jié)構(gòu)進(jìn)行分析以便找出應(yīng)用中的異常。在401,對應(yīng)用的函數(shù)調(diào)用圖進(jìn)行離線檢測。函數(shù)調(diào)用圖可以記錄應(yīng)用所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。其可以包含表示應(yīng)用所調(diào)用的函數(shù)的節(jié)點(diǎn)以及對節(jié)點(diǎn)進(jìn)行鏈接從而指示節(jié)點(diǎn)之間的函數(shù)調(diào)用關(guān)系的邊。邊可以進(jìn)一步具有方向以指示調(diào)用方向和順序。圖中的函數(shù)可以是應(yīng)用所調(diào)用的任意函數(shù),包括應(yīng)用自身所設(shè)計并劃分的函數(shù)和子函數(shù)。可替換地或除此之外,圖中的函數(shù)可以包括其它應(yīng)用所提供的服務(wù)函數(shù),和/或底層操作系統(tǒng)所提供的系統(tǒng)級函數(shù)或服務(wù),諸如移動電話的通訊錄函數(shù)、拍照函數(shù)、聯(lián)網(wǎng)函數(shù)、定位函數(shù)等。節(jié)點(diǎn)所表示的粗糙粒度的函數(shù)可以進(jìn)一步包括精細(xì)粒度的函數(shù)的集合。兩個節(jié)點(diǎn)之間的邊可以進(jìn)一步根據(jù)這兩個節(jié)點(diǎn)所表示的兩個函數(shù)之間的調(diào)用的屬性而進(jìn)行加權(quán)。例如,邊可以基于調(diào)用密度和調(diào)用頻率進(jìn)行加權(quán)。
[0060]在一些實(shí)施例中,應(yīng)用的執(zhí)行代碼可以被反向編譯,并且可以被重新編譯從而促進(jìn)獲取函數(shù)調(diào)用的日志。例如,應(yīng)用可以被嵌入有用于通過使用工具套件而獲取函數(shù)調(diào)用的日志的功能模塊。通過在虛擬環(huán)境中運(yùn)行應(yīng)用經(jīng)重新編譯的執(zhí)行代碼,可以離線獲得該應(yīng)用的函數(shù)調(diào)用的日志?;谠摵瘮?shù)調(diào)用的日志,可以得出該應(yīng)用的函數(shù)調(diào)用圖并且對其進(jìn)行分析以找出該應(yīng)用中的異常。
[0061]在403,從該函數(shù)調(diào)用圖,可以提取出應(yīng)用的函數(shù)調(diào)用的模式。例如,SSP 109可以使用數(shù)據(jù)挖掘技術(shù)來自動挖掘函數(shù)調(diào)用日志。提取函數(shù)調(diào)用的模式以檢測app異常是有效的。接下來在405,SSP 109可以將所提取的模式與正常應(yīng)用的基本模式或規(guī)則進(jìn)行比較,以確定所提取的模式是否符合該基本模式或規(guī)則。例如,如果所提取的模式與正常應(yīng)用的基本模式之間存在顯著差異,或者如果所提取的模式并未遵循正常模式的規(guī)則,則可以確定所檢測的應(yīng)用是異常的并且可能是惡意軟件。
[0062]在該階段,可以應(yīng)用任意的動態(tài)和/或靜態(tài)方法來進(jìn)行離線惡意軟件檢測。在一些實(shí)施例中,SSP 109可以檢查不同類型的函數(shù)調(diào)用圖,并且以動態(tài)和/或靜態(tài)的方式分析時間進(jìn)行時的調(diào)用關(guān)系、調(diào)用順序、調(diào)用密度和調(diào)用頻率。就此而言,SSP 109可以檢查包含可供應(yīng)用在完整仿真運(yùn)行中所調(diào)用的函數(shù)之間的所有調(diào)用關(guān)系的完整調(diào)用圖。可以以靜態(tài)方式分析該完整調(diào)用圖,因?yàn)樵撏暾{(diào)用圖對于應(yīng)用而言幾乎就是靜態(tài)的。SSP 109可以確定該完整調(diào)用圖是否符合正常應(yīng)用的基本模式,例如具有功率法則程度分布的無標(biāo)度和小群體復(fù)雜網(wǎng)絡(luò)。
[0063]除此之外或可替換地,可以檢查不同時間的調(diào)用圖,其包含應(yīng)用在仿真期間的不同時間的時點(diǎn)之前所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。例如,應(yīng)用的仿真被假設(shè)運(yùn)行十分鐘。不同時間的調(diào)用圖可以包含該應(yīng)用從仿真開始到第一分鐘,或者到第二分鐘,或者到第三分鐘等等所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。作為對比,完整調(diào)用圖則可以包含應(yīng)用貫穿整個十分鐘所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。SSP 109可以確定不同時間的調(diào)用圖是否與正常應(yīng)用的基本模式(例如密實(shí)化(Dens i f i cat i on)功率法則)相符。
[0064]除此之外或可替換地,包含所選擇應(yīng)用在仿真運(yùn)行期間的一段時間所調(diào)用的函數(shù)之間的調(diào)用關(guān)系的部分調(diào)用圖。采用以上所提到的仿真作為示例,部分調(diào)用圖可以包含應(yīng)用在前兩分鐘,或者第二個兩分鐘,或者第三個兩分鐘等的期間所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。部分調(diào)用也可以被分析以確定其是否與正常應(yīng)用的某些基本規(guī)則相符,例如某些穩(wěn)定行為模式,諸如密實(shí)化功率法則。
[0065]正常應(yīng)用的基本模式通常反映正常應(yīng)用經(jīng)常所涉及到的屬性。例如,近年來,已經(jīng)發(fā)現(xiàn)真實(shí)網(wǎng)絡(luò)經(jīng)常在其演進(jìn)中表現(xiàn)出持續(xù)趨勢,其經(jīng)常被表達(dá)為e(t)an(t)a,其中e(t)和n(t)是網(wǎng)絡(luò)中在時間t的邊和節(jié)點(diǎn)的數(shù)量,而“a”則是I和2之間的指數(shù)。該關(guān)系被稱作密實(shí)化功率法則。一些研究發(fā)現(xiàn)所有被測試的良好軟件調(diào)用圖在它們生長期間都嚴(yán)格遵守密實(shí)化功率法則。部分調(diào)用圖的密實(shí)化功率法則屬性與軟件系統(tǒng)動態(tài)的實(shí)質(zhì)性機(jī)制有關(guān)。這樣,例如如果應(yīng)用的部分調(diào)用圖距密實(shí)化功率法則具有大幅偏差,則可以確定該應(yīng)用是異常的并且可能是惡意軟件。
[0066]403和405處的模式提取和比較可以分別關(guān)于這些不同類型的函數(shù)調(diào)用圖來進(jìn)行。如果發(fā)現(xiàn)了任何異常,則SSP 109可以提出進(jìn)行附加檢查的警告,例如進(jìn)入到更為嚴(yán)格的惡意軟件檢測處理。
[0067]在其中應(yīng)用在計算設(shè)備上被安裝和執(zhí)行的實(shí)例中,即使惡意應(yīng)用通過了離線惡意軟件檢查,仍然可能根據(jù)一些實(shí)施例在運(yùn)行時間找出惡意應(yīng)用行為。能夠基于從實(shí)時app行為進(jìn)行挖掘并且與正常應(yīng)用和/或app行為的之前記錄進(jìn)行比較來進(jìn)行實(shí)時惡意軟件檢測。參考圖5,現(xiàn)在將對實(shí)時惡意軟件檢測的過程進(jìn)行描述。在這樣的實(shí)施例中,過程500由一個或多個計算設(shè)備(諸如計算設(shè)備101a、101b)來執(zhí)行,并且例如在包括如圖6所示的處理器和存儲器的芯片組中實(shí)施。這樣,計算設(shè)備可以提供用于完成過程500的各個部分的器件以及用于結(jié)合其它組件完成其它處理的器件。
[0068]在501,計算設(shè)備可以在實(shí)際在該計算設(shè)備處被執(zhí)行(例如,由該計算設(shè)備的處理器執(zhí)行)的應(yīng)用的運(yùn)行時間、在一段時間內(nèi)記錄該應(yīng)用的行為。所記錄的應(yīng)用行為的信息可以涉及與應(yīng)用或計算設(shè)備的安全相關(guān)聯(lián)的任意操作、處理和數(shù)據(jù)。例如,在app運(yùn)行時間,計算設(shè)備可以記錄與函數(shù)調(diào)用相關(guān)聯(lián)的函數(shù)調(diào)用行為,諸如當(dāng)前時間的部分調(diào)用圖和調(diào)用圖。該計算設(shè)備可以進(jìn)一步記錄與本地數(shù)據(jù)訪問相關(guān)聯(lián)的數(shù)據(jù)訪問行為,諸如用于從計算設(shè)備的存儲器讀取數(shù)據(jù)的操作,用于向計算設(shè)備的存儲器寫入數(shù)據(jù)的操作,所訪問數(shù)據(jù)的屬性(例如,安全級別、大小等)。計算設(shè)備可以進(jìn)一步記錄與應(yīng)用所導(dǎo)致的傳入和傳出流量相關(guān)聯(lián)的聯(lián)網(wǎng)行為,諸如用于發(fā)起或終止與其它網(wǎng)絡(luò)設(shè)備、用于聯(lián)網(wǎng)的通信端口和地址的通信連接的操作。
[0069]應(yīng)用行為可以通過讀取在運(yùn)行時間應(yīng)用的執(zhí)行日志而被記錄。在一些實(shí)施例中,計算設(shè)備可以通過增加相應(yīng)的功能模塊而對應(yīng)用的執(zhí)行代碼進(jìn)行重新編譯??商鎿Q地,應(yīng)用的重新編譯可以被銷售該應(yīng)用的應(yīng)用商店支持。
[0070]在503,從所記錄的應(yīng)用行為,該計算設(shè)備可以例如通過數(shù)據(jù)挖掘技術(shù)而提取出該應(yīng)用在運(yùn)行時間的行為模式。在運(yùn)行時間自動使用數(shù)據(jù)挖掘技術(shù)來挖掘app行為是有效的。隨后,所提取的行為模式可以與良好模式進(jìn)行比較,后者諸如正常應(yīng)用的基本模式或規(guī)則,尤其針對所檢測的應(yīng)用在過去運(yùn)行時間和/或離線所分析的模式。如果應(yīng)用行為明顯與常見的正常應(yīng)用或者其自己之前的行為(其看上去是正常的)有所不同,則可以確定該應(yīng)用中存在一些異常。這樣,在并不進(jìn)行離線檢查的情況下執(zhí)行app的風(fēng)險可以被有效降低。此外,針對在一段時間行為良好從而贏得用戶信任而隨后突然將其行為變?yōu)閻阂獾哪切阂廛浖?,仍然可以在其運(yùn)行時間對其進(jìn)行檢測。與此同時,在安裝和執(zhí)行之后能夠被病毒所感染而變?yōu)閻阂獾恼?yīng)用也能夠在app運(yùn)行時間被檢測。
[0071]例如,計算設(shè)備可以(在505)將當(dāng)前時間的部分調(diào)用圖和調(diào)用圖與在過去的運(yùn)行時間和/或離線所分析的相應(yīng)的良好模式進(jìn)行比較,并且(在507)檢查所提取的調(diào)用行為的模式是否與相應(yīng)的良好模式相符。如果檢查結(jié)果是否定的,則該計算設(shè)備可以在509發(fā)出警告并且建議用戶對此異常作出應(yīng)對。
[0072]如果在507的檢查結(jié)果是肯定的,則該計算設(shè)備可以進(jìn)一步(在511)將數(shù)據(jù)訪問行為與在過去的運(yùn)行時間和/或離線所分析的相應(yīng)的良好模式進(jìn)行比較,并且(在513)檢查所提取的數(shù)據(jù)訪問行為的模式是否與相應(yīng)的良好模式相符。如果檢查結(jié)果是否定的,則該計算設(shè)備可以在509發(fā)出警告并且建議用戶對此異常作出應(yīng)對。
[0073]否則,如果在513的檢查結(jié)果是肯定的,則該計算設(shè)備可以進(jìn)一步(在515)將app聯(lián)網(wǎng)行為與在過去的運(yùn)行時間和/或離線所分析的相應(yīng)的良好模式進(jìn)行比較,并且(在517)檢查所提取的數(shù)據(jù)訪問行為的模式是否與相應(yīng)的良好模式相符。如果檢查結(jié)果是否定的,則該計算設(shè)備可以在509發(fā)出警告并且建議用戶對此異常作出應(yīng)對。
[0074]如果對應(yīng)用行為的以上每項(xiàng)檢查都是肯定的,則如從517至501的連線所示,該過程可以返回以再次定期監(jiān)控并分析所記錄的app行為。雖然以上檢查是參考圖5以某種順序進(jìn)行描述,但是應(yīng)當(dāng)意識到的是,這些操作可以以可替換的順序來執(zhí)行,并且一些操作可以被調(diào)節(jié)、合并或者甚至被省略。例如,針對聯(lián)網(wǎng)行為的檢查可以被調(diào)節(jié)為在針對app調(diào)用行為之前進(jìn)行或者與之并行進(jìn)行。
[0075]現(xiàn)在參考圖6,其圖示了本發(fā)明各個示例性實(shí)施例可以被應(yīng)用于其中的裝置600的示例框圖。這可以是安全服務(wù)提供方或者計算設(shè)備,諸如服務(wù)器、用戶設(shè)備(UE)、移動終端或其它計算設(shè)備。裝置600的總體結(jié)構(gòu)包括處理模塊601,耦合至處理模塊601的通信接口模塊609。裝置600可以進(jìn)一步包括耦合至處理模塊601的用戶接口模塊611,以及耦合至處理模塊601的非易失性存儲器613。通信接口模塊609、用戶接口模塊611和非易失性存儲器613還可以互相通信。
[0076]處理模塊601包括處理器603和存儲器605。處理模塊601進(jìn)一步包括存儲在存儲器605中并且能夠進(jìn)行操作而被加載到處理器603中并在其中執(zhí)行的軟件607。軟件607可以包括一個或多個軟件模塊并且可以為計算機(jī)程序產(chǎn)品的形式。處理模塊601可以包括用于應(yīng)用程序或數(shù)據(jù)以及用于裝置600的正常操作的單獨(dú)處理和存儲器區(qū)域。
[0077]通信接口模塊609例如可以是無線電接口模塊,諸如WLAN、藍(lán)牙、GSM/GPRS、CDMA、WCDMA或LTE(長期演進(jìn))無線電模塊。通信接口模塊609可以被整合到裝置600中或者被整合到可以被插入裝置600的適當(dāng)插槽或端口之中的適配器、卡等。通信接口模塊609可以支持一種無線電接口技術(shù)或多種技術(shù)。圖6示出了一個通信接口模塊609,但是裝置600可以包括多個通信接口模塊609。
[0078]處理器603例如可以是中央處理單元(CPU)、微處理器、數(shù)字信號處理器(DSP)、圖形處理單元等。圖6示出了一個處理器603,但是裝置600可以包括多個處理器。
[0079]存儲器605例如可以包括非易失性或易失性存儲器,諸如只讀存儲器(R0M)、可編程只讀存儲器(PROM)、可擦除可編程只讀存儲器(EPR0M)、隨機(jī)訪問存儲器(RAM)、閃存、數(shù)據(jù)盤、光學(xué)存儲、磁性存儲、智能卡等。裝置600可以包括多個存儲器。存儲器605可以被構(gòu)建為裝置600的一部分或者其可以被用戶插入到裝置600的插槽、端口等之中。存儲器605可以提供單純的存儲數(shù)據(jù)的用途,或者其可以被構(gòu)造為提供諸如處理數(shù)據(jù)或進(jìn)行惡意軟件檢測之類的其它用途的裝置的一部分。非易失性存儲器613例如可以是閃存并且例如可以提供接收并存儲軟件更新的用途。非易失性存儲器613可以被構(gòu)造為裝置600的一部分或者其可以被用戶插入到裝置600的插槽、端口等之中。
[0080]用戶接口模塊611可以包括用于例如經(jīng)由小鍵盤、裝置600的顯示器上所示出的圖形用戶界面、話音識別電路或者諸如頭戴式耳機(jī)的附屬設(shè)備接收來自裝置600的用戶的輸入并且例如經(jīng)由圖形用戶界面或揚(yáng)聲器向用戶提供輸出的電路。
[0081]本領(lǐng)域技術(shù)人員理解,除了圖6所示的部件之外,裝置600可以包括其它部件,諸如麥克風(fēng)、顯示器以及附加電路,諸如輸入/輸出(I/O)電路、存儲器芯片、應(yīng)用特定集成電路(ASIC)、用于具體用途的處理電路,諸如源編碼/解碼電路、信道編碼/解碼電路、加密/解密電路等。此外,裝置600可以包括可任意處理或可充電的電池(未示出)以便在外部電源無法使用的情況下為裝置600進(jìn)行供電。
[0082]通常,各個示例性實(shí)施例可以以硬件或?qū)S秒娐?、軟件、邏輯或者其任意組合來實(shí)施。例如,一些方面可以以硬件實(shí)施,而其它方面則可以以關(guān)鍵或者可由控制器、微處理器或其它計算設(shè)備所執(zhí)行的軟件來實(shí)施,雖然本公開并不局限于此。雖然本公開的示例性實(shí)施例的各個方面可以被圖示并描述為框圖、流程圖,或者使用一些其它的圖形表示形式,但是所要理解的是,這里所描述的這些模塊、裝置、系統(tǒng)、技術(shù)或方法作為非限制示例可以以硬件、軟件、固件、專用電路或邏輯、通用硬件或控制器或者其它計算設(shè)備或者它們的一些組合來實(shí)施。
[0083]應(yīng)當(dāng)意識到的是,本發(fā)明的示例性實(shí)施例的至少一些方面可以以一個或多個計算機(jī)或其它設(shè)備所執(zhí)行的計算機(jī)可執(zhí)行指令來體現(xiàn),諸如以一個或多個程序模塊來體現(xiàn)。通常,程序模塊包括在被計算機(jī)或其它設(shè)備中的處理器所執(zhí)行時實(shí)施特定任務(wù)或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。計算機(jī)可執(zhí)行指令可以被存儲在諸如硬盤、光盤、可移除存儲媒體、固態(tài)存儲器、RAM等的計算機(jī)可讀介質(zhì)上。如本領(lǐng)域技術(shù)人員將會意識到的,程序模塊的功能在各個實(shí)施例中可以按照期望進(jìn)行組合或分布。此外,功能可以整體或部分在固件或硬件等同形式中體現(xiàn),諸如集成電路、現(xiàn)場可編程門陣列(FPGA)等。
[0084]本發(fā)明各個實(shí)施例的各種特征可以提供各種益處。通過根據(jù)一些實(shí)施例在離線情況下以及運(yùn)行時間檢查惡意軟件,可以將惡意軟件的風(fēng)險降低至最小。在離線惡意軟件檢測期間,可以對靜態(tài)完整調(diào)用圖、部分調(diào)用圖和不同時間的調(diào)用圖中的至少一個進(jìn)行檢查以找出惡意軟件。在實(shí)時惡意軟件檢測中,可以對調(diào)用圖模式進(jìn)行檢查以找出函數(shù)調(diào)用所導(dǎo)致的安全漏洞。此外,可以對數(shù)據(jù)訪問行為進(jìn)行檢查以找出存在風(fēng)險的局部數(shù)據(jù)訪問,特別是不同于以往的異常訪問。此外,通過對應(yīng)用的聯(lián)網(wǎng)行為進(jìn)行檢查,可以對應(yīng)用的傳入流量進(jìn)行檢查以找出潛在入侵,并且可以對應(yīng)用的傳出流量進(jìn)行檢查以解決一些突發(fā)攻擊所導(dǎo)致的可能感染,例如使得計算設(shè)備變?yōu)椴《緳C(jī)器人(bot)。這樣,可以應(yīng)對偷竊并銷售用戶信息、操控內(nèi)容遞送、發(fā)送垃圾郵件或者在計算設(shè)備上進(jìn)行突發(fā)入侵的惡意軟件,并且提供了廣泛的檢測和保護(hù)。
[0085]本發(fā)明包括這里明確公開的任何新穎特征或特征組合或者其任意的概括形式。在結(jié)合附圖閱讀時,針對本發(fā)明的以上示例性實(shí)施例的各種修改和調(diào)適在考慮到以上描述的情況下對于相關(guān)領(lǐng)域的技術(shù)人員會是顯而易見的。然而,任何及全部的修改都將落入本發(fā)明的非限制性和示例性實(shí)施例的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種方法,包括: 使得對應(yīng)用進(jìn)行離線惡意軟件檢測,其中所述離線惡意軟件檢測包括: 離線檢測所述應(yīng)用的至少一個函數(shù)調(diào)用圖,其中所述函數(shù)調(diào)用圖記錄所述應(yīng)用所調(diào)用的函數(shù)之間的調(diào)用關(guān)系; 從所述至少一個函數(shù)調(diào)用圖中提取所述應(yīng)用的函數(shù)調(diào)用的模式;以及 將所提取的模式與正常應(yīng)用的至少一種基本模式進(jìn)行比較。2.根據(jù)權(quán)利要求1所述的方法,其中所述檢測包括在虛擬環(huán)境中運(yùn)行所述應(yīng)用的代碼的至少一部分并且獲取所述應(yīng)用的所述函數(shù)調(diào)用的日志。3.根據(jù)權(quán)利要求2所述的方法,其中所述提取包括使用數(shù)據(jù)挖掘方法來分析所述日志。4.根據(jù)權(quán)利要求3所述的方法,其中所述至少一個函數(shù)調(diào)用圖包括以下三種類型的函數(shù)調(diào)用圖中的至少一種:完整調(diào)用圖,其包含能夠供所述應(yīng)用貫穿所述運(yùn)行所調(diào)用的函數(shù)之間的所有調(diào)用關(guān)系; 不同時間的調(diào)用圖,其包含所述應(yīng)用在所述運(yùn)行期間的所述不同時間的時間點(diǎn)之前所調(diào)用的函數(shù)之間的調(diào)用關(guān)系;和 部分調(diào)用圖,其包含所述應(yīng)用在所述運(yùn)行期間的一個時間段中所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。5.根據(jù)權(quán)利要求1所述的方法,其中所述離線惡意軟件檢測進(jìn)一步包括: 通過添加用于獲取所述函數(shù)調(diào)用的日志的功能模塊而對所述應(yīng)用的執(zhí)行代碼的至少一部分進(jìn)行重新編譯,以及 在所述虛擬環(huán)境中運(yùn)行所重新編譯的代碼以獲取所述日志。6.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括: 根據(jù)所述應(yīng)用的聲譽(yù)來調(diào)度對所述應(yīng)用的所述離線惡意軟件檢測。7.根據(jù)權(quán)利要求6所述的方法,其中具有較高聲譽(yù)的應(yīng)用先于具有較低聲譽(yù)的應(yīng)用被調(diào)度以進(jìn)行所述離線惡意軟件檢測。8.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括: 通報所述離線惡意軟件檢測的指示來自所述應(yīng)用的潛在惡意威脅的結(jié)果。9.根據(jù)權(quán)利要求1-8中任一項(xiàng)所述的方法,進(jìn)一步包括使得在所述應(yīng)用在真實(shí)環(huán)境中被執(zhí)行的同時對所述應(yīng)用進(jìn)行實(shí)時惡意軟件檢測,其中所述實(shí)時惡意軟件檢測包括: 記錄在所述應(yīng)用的所述執(zhí)行期間所述應(yīng)用的行為; 從所記錄的行為中提取行為模式;以及 將所提取的行為模式與正常應(yīng)用的基本模式或先前針對所述應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。10.根據(jù)權(quán)利要求9所述的方法,其中所記錄的行為包括以下三種類型的行為中的至少一種: 與所述應(yīng)用的函數(shù)調(diào)用相關(guān)聯(lián)的行為, 與所述應(yīng)用所引起的本地數(shù)據(jù)訪問相關(guān)聯(lián)的行為,和 與所述應(yīng)用所引發(fā)的傳入和/或傳出流量相關(guān)聯(lián)的行為。11.根據(jù)權(quán)利要求9-10中任一項(xiàng)所述的方法,其中所述實(shí)時惡意軟件檢測進(jìn)一步包括: 通過添加用于獲取所述應(yīng)用的所述行為的日志的功能模塊而對所述應(yīng)用的執(zhí)行代碼的至少一部分進(jìn)行重新編譯。12.一種方法,包括: 在真實(shí)環(huán)境中運(yùn)行應(yīng)用; 記錄在所述應(yīng)用的運(yùn)行時間所述應(yīng)用的行為; 從所記錄的行為中提取行為模式;以及 將所提取的行為模式與正常應(yīng)用的基本模式或先前針對所述應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。13.根據(jù)權(quán)利要求12所述的方法,其中所記錄的行為包括以下三種類型的行為中的至少一種: 與所述應(yīng)用的函數(shù)調(diào)用相關(guān)聯(lián)的行為, 與所述應(yīng)用所引起的本地數(shù)據(jù)訪問相關(guān)聯(lián)的行為,和 與所述應(yīng)用所引發(fā)的傳入和/或傳出流量相關(guān)聯(lián)的行為。14.根據(jù)權(quán)利要求12-13中任一項(xiàng)所述的方法,進(jìn)一步包括: 通過添加用于獲取所述應(yīng)用的所述行為的日志的功能模塊而對所述應(yīng)用的執(zhí)行代碼的至少一部分進(jìn)行重新編譯。15.—種裝置,包括: 至少一個處理器;和 包括計算機(jī)程序代碼的至少一個存儲器, 所述至少一個存儲器和所述計算機(jī)程序代碼被配置為與所述至少一個處理器一起使得所述裝置至少執(zhí)行以下: 使得對應(yīng)用進(jìn)行離線惡意軟件檢測,其中所述離線惡意軟件檢測包括: 離線檢測所述應(yīng)用的至少一個函數(shù)調(diào)用圖,其中所述函數(shù)調(diào)用圖記錄所述應(yīng)用所調(diào)用的函數(shù)之間的調(diào)用關(guān)系; 從所述至少一個函數(shù)調(diào)用圖中提取所述應(yīng)用的函數(shù)調(diào)用的模式;以及 將所提取的模式與正常應(yīng)用的至少一種基本模式進(jìn)行比較。16.根據(jù)權(quán)利要求15所述的裝置,其中所述檢測包括在虛擬環(huán)境中運(yùn)行所述應(yīng)用的代碼的至少一部分并且獲取所述應(yīng)用的所述函數(shù)調(diào)用的日志。17.根據(jù)權(quán)利要求16所述的裝置,其中所述提取包括使用數(shù)據(jù)挖掘方法來分析所述日V 1、1、O18.根據(jù)權(quán)利要求17所述的裝置,其中所述至少一個函數(shù)調(diào)用圖包括以下三種類型的函數(shù)調(diào)用圖中的至少一種: 完整調(diào)用圖,其包含能夠供所述應(yīng)用貫穿所述運(yùn)行所調(diào)用的函數(shù)之間的所有調(diào)用關(guān)系; 不同時間的調(diào)用圖,其包含所述應(yīng)用在所述運(yùn)行期間的所述不同時間的時間點(diǎn)之前所調(diào)用的函數(shù)之間的調(diào)用關(guān)系;和 部分調(diào)用圖,其包含所述應(yīng)用在所述運(yùn)行期間的一個時間段中所調(diào)用的函數(shù)之間的調(diào)用關(guān)系。19.根據(jù)權(quán)利要求15所述的裝置,其中所述離線惡意軟件檢測進(jìn)一步包括: 通過添加用于獲取函數(shù)調(diào)用的日志的功能模塊而對所述應(yīng)用的執(zhí)行代碼的至少一部分進(jìn)行重新編譯,以及 在所述虛擬環(huán)境中運(yùn)行所重新編譯的代碼以獲取所述日志。20.根據(jù)權(quán)利要求15所述的裝置,其中所述裝置被進(jìn)一步使得: 根據(jù)所述應(yīng)用的聲譽(yù)來調(diào)度對所述應(yīng)用的所述離線惡意軟件檢測。21.根據(jù)權(quán)利要求20所述的裝置,其中具有較高聲譽(yù)的應(yīng)用先于具有較低聲譽(yù)的應(yīng)用被調(diào)度以進(jìn)行所述離線惡意軟件檢測。22.根據(jù)權(quán)利要求15所述的裝置,其中所述裝置被進(jìn)一步使得: 通報所述離線惡意軟件檢測的指示來自所述應(yīng)用的潛在惡意威脅的結(jié)果。23.根據(jù)權(quán)利要求15-22中任一項(xiàng)所述的裝置,其中所述裝置被進(jìn)一步使得:引起在所述應(yīng)用在真實(shí)環(huán)境中被執(zhí)行的同時對所述應(yīng)用進(jìn)行實(shí)時惡意軟件檢測,其中所述實(shí)時惡意軟件檢測包括: 記錄在所述應(yīng)用的所述執(zhí)行期間所述應(yīng)用的行為; 從所記錄的行為中提取行為模式;以及 將所提取的行為模式與正常應(yīng)用的基本模式或先前針對所述應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。24.根據(jù)權(quán)利要求23所述的裝置,其中所記錄的行為包括以下三種類型的行為中的至少一種: 與所述應(yīng)用的函數(shù)調(diào)用相關(guān)聯(lián)的行為, 與所述應(yīng)用所引起的本地數(shù)據(jù)訪問相關(guān)聯(lián)的行為,和 與所述應(yīng)用所引發(fā)的傳入和/或傳出流量相關(guān)聯(lián)的行為。25.根據(jù)權(quán)利要求23-24中任一項(xiàng)所述的裝置,其中所述實(shí)時惡意軟件檢測進(jìn)一步包括: 通過添加用于獲取所述應(yīng)用的所述行為的日志的功能模塊而對所述應(yīng)用的執(zhí)行代碼的至少一部分進(jìn)行重新編譯。26.—種裝置,包括: 至少一個處理器;和 包括計算機(jī)程序代碼的至少一個存儲器, 所述至少一個存儲器和所述計算機(jī)程序代碼被配置為與所述至少一個處理器一起使得所述裝置至少執(zhí)行以下: 在真實(shí)環(huán)境中運(yùn)行應(yīng)用; 記錄在所述應(yīng)用的運(yùn)行時間所述應(yīng)用的行為; 從所記錄的行為中提取行為模式;以及 將所提取的行為模式與正常應(yīng)用的基本模式或先前針對所述應(yīng)用所記錄的模式中的至少一種進(jìn)行比較。27.根據(jù)權(quán)利要求26所述的裝置,其中所記錄的行為包括以下三種類型的行為中的至少一種: 與所述應(yīng)用的函數(shù)調(diào)用相關(guān)聯(lián)的行為, 與所述應(yīng)用所引起的本地數(shù)據(jù)訪問相關(guān)聯(lián)的行為,和 與所述應(yīng)用所引發(fā)的傳入和/或傳出流量相關(guān)聯(lián)的行為。28.根據(jù)權(quán)利要求26-27中任一項(xiàng)所述的裝置,其中所述裝置被進(jìn)一步配置為: 通過添加用于獲取所述應(yīng)用的所述行為的日志的功能模塊而對所述應(yīng)用的執(zhí)行代碼的至少一部分進(jìn)行重新編譯。29.—種計算機(jī)可讀存儲介質(zhì),承載一個或多個指令的一個或多個序列,所述一個或多個指令的所述一個或多個序列在被一個或多個處理器執(zhí)行時使得裝置至少執(zhí)行根據(jù)權(quán)利要求1-14中任一項(xiàng)所述的方法。30.—種裝置,包括用于執(zhí)行根據(jù)權(quán)利要求1-14中任一項(xiàng)所述的方法的裝置。31.—種計算機(jī)程序產(chǎn)品,包括一個或多個指令的一個或多個序列,所述一個或多個指令的所述一個或多個序列在被一個或多個處理器執(zhí)行時使得裝置至少執(zhí)行根據(jù)權(quán)利要求1 -14中任一項(xiàng)所述的方法的步驟。
【文檔編號】G06F21/56GK105874463SQ201380081921
【公開日】2016年8月17日
【申請日】2013年12月30日
【發(fā)明人】閆崢
【申請人】諾基亞技術(shù)有限公司