專利名稱:用于分析及檢測(cè)惡意軟件的方法和裝置的制作方法
用于分析及檢測(cè)惡意軟件的方法和裝置技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例總體上涉及網(wǎng)絡(luò)和設(shè)備安全性技術(shù),更具體來說涉及一種用于提 供對(duì)于惡意軟件的分析和檢測(cè)的方法、裝置和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
現(xiàn)代通信已經(jīng)為有線和無線網(wǎng)絡(luò)帶來了極大的擴(kuò)展。計(jì)算機(jī)網(wǎng)絡(luò)、電視網(wǎng)絡(luò)和電 話網(wǎng)絡(luò)正在經(jīng)歷由消費(fèi)者需求所推動(dòng)的前所未有的技術(shù)擴(kuò)展。聯(lián)網(wǎng)技術(shù)解決了相關(guān)的消費(fèi) 者需求,并且同時(shí)為信息傳輸提供了更多靈活性和即時(shí)性。
當(dāng)前的和未來的聯(lián)網(wǎng)技術(shù)通過擴(kuò)展電子設(shè)備的能力以及改進(jìn)網(wǎng)絡(luò)性能而繼續(xù)促 進(jìn)信息傳輸?shù)暮?jiǎn)易性和用戶的便利性。其中需要提高信息傳輸?shù)暮?jiǎn)易性的一個(gè)領(lǐng)域涉及向 電子設(shè)備的用戶遞送服務(wù)。所述服務(wù)可以具有用戶所期望的特定媒體或通信應(yīng)用的形式, 比如音樂播放器、游戲機(jī)、電子書、短消息、電子郵件、內(nèi)容共享、web瀏覽等等。所述服務(wù) 還可以具有交互式應(yīng)用的形式,其中用戶可以對(duì)網(wǎng)絡(luò)設(shè)備做出響應(yīng)以便施行任務(wù)或?qū)崿F(xiàn)目 的。或者,網(wǎng)絡(luò)設(shè)備可以對(duì)用戶發(fā)出的命令或請(qǐng)求(例如內(nèi)容搜索、測(cè)繪或路線服務(wù)等等)做 出響應(yīng)。所述服務(wù)可以從網(wǎng)絡(luò)服務(wù)器或其他網(wǎng)絡(luò)設(shè)備提供,或者甚至從移動(dòng)終端提供,比如 移動(dòng)電話、移動(dòng)導(dǎo)航系統(tǒng)、移動(dòng)計(jì)算機(jī)、移動(dòng)電視、移動(dòng)游戲系統(tǒng)等等。
針對(duì)內(nèi)容和信息的持續(xù)不斷的需求導(dǎo)致在各個(gè)設(shè)備之間傳輸大量數(shù)據(jù)、內(nèi)容和信 息。雖然在各個(gè)設(shè)備之間所傳輸?shù)拇蟛糠炙夭恼窍鄳?yīng)用戶所期望的,但是也可能會(huì)在各 個(gè)設(shè)備之間傳輸惡意軟件(或者稱作“malware”)。惡意軟件可能會(huì)帶來隱私問題,造成干擾 甚至破壞,并且在某些情況下可能會(huì)招致?lián)p失。因此可能希望繼續(xù)開發(fā)能夠用以提供針對(duì) 惡意軟件的保護(hù)的改進(jìn)機(jī)制。發(fā)明內(nèi)容
因此,提供一種方法、裝置和計(jì)算機(jī)程序產(chǎn)品以便允許對(duì)軟件進(jìn)行分析從而檢測(cè) 出惡意軟件。在這方面,例如一些實(shí)施例可以基于軟件的代碼結(jié)構(gòu)中的模式來提供對(duì)于軟 件的分析。因此,在某些情況下可以基于軟件的代碼結(jié)構(gòu)中的模式而檢測(cè)出惡意軟件。
在一個(gè)示例性實(shí)施例中,提供一種用以分析及檢測(cè)惡意軟件的方法。所述方法可 以包括引導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合的比較;基于所述比較確定樣 本代碼是否有可能是惡意軟件;以及響應(yīng)于確定樣本代碼有可能是惡意軟件,基于樣本代 碼內(nèi)的模式確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類。
在另一個(gè)示例性實(shí)施例中,提供一種用以分析及檢測(cè)惡意軟件的計(jì)算機(jī)程序產(chǎn) 品。所述計(jì)算機(jī)程序產(chǎn)品包括至少一種其中存儲(chǔ)有計(jì)算機(jī)可執(zhí)行程序代碼指令的計(jì)算機(jī) 可讀存儲(chǔ)介質(zhì)。所述計(jì)算機(jī)可執(zhí)行程序代碼指令可以包括用于施行以下步驟的程序代碼指 令引導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合的比較;基于所述比較確定樣本代 碼是否有可能是惡意軟件;以及響應(yīng)于確定樣本代碼有可能是惡意軟件,基于樣本代碼內(nèi) 的模式確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類。
在另一個(gè)示例性實(shí)施例中,提供一種用以分析及檢測(cè)惡意軟件的裝置。所述裝置 可以包括至少一個(gè)處理器和包括計(jì)算機(jī)程序代碼的至少一個(gè)存儲(chǔ)器。所述至少一個(gè)存儲(chǔ)器 和計(jì)算機(jī)程序代碼可以被配置成利用所述至少一個(gè)處理器使得所述裝置至少施行以下步 驟引導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合的比較;基于所述比較確定樣本代 碼是否有可能是惡意軟件;以及響應(yīng)于確定樣本代碼有可能是惡意軟件,基于樣本代碼內(nèi) 的模式確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類。
本發(fā)明的實(shí)施例可以提供一種采用在移動(dòng)環(huán)境或固定環(huán)境中的方法、裝置和計(jì)算 機(jī)程序產(chǎn)品。因此,例如移動(dòng)終端和其他計(jì)算設(shè)備的用戶在訪問網(wǎng)絡(luò)應(yīng)用或服務(wù)時(shí)可以享 有改進(jìn)的安全性水平。
在前面一般性地描述了本發(fā)明的實(shí)施例之后,下面將參照不一定是按比例繪制的 附圖,其中
圖1是根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的無線通信系統(tǒng)的示意性方框圖2示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的用于提供針對(duì)惡意軟件的分析和 檢測(cè)的裝置的方框圖;以及
圖3是根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的用于提供針對(duì)惡意軟件的分析和檢測(cè) 的另一種示例性方法的流程圖。
具體實(shí)施方式
下面將參照附圖更加全面地描述本發(fā)明的一些實(shí)施例,在附圖中示出了本發(fā)明的 一些但非所有實(shí)施例。實(shí)際上,本發(fā)明的各個(gè)實(shí)施例可以用許多不同形式來具體實(shí)現(xiàn),并 且不應(yīng)當(dāng)被解釋成限制到這里所闡述的實(shí)施例;相反,提供這些實(shí)施例是為了使得本公開 內(nèi)容滿足使用的法律要求。相同的附圖標(biāo)記始終指代相同的元件。這里所使用的術(shù)語“數(shù) 據(jù)”、“內(nèi)容”、“信息”和類似術(shù)語可以互換地使用來指代能夠根據(jù)本發(fā)明的實(shí)施例來傳送、 接收和/或存儲(chǔ)的數(shù)據(jù)。因此,對(duì)于任何此類術(shù)語的使用不應(yīng)當(dāng)被理解成限制本發(fā)明的實(shí) 施例的精神和范圍。
此外,這里所使用的術(shù)語“電路”指的是(a)僅有硬件的電路實(shí)現(xiàn)方式(例如模擬 電路和/或數(shù)字電路中的實(shí)現(xiàn)方式);(b)電路與包括存儲(chǔ)在一個(gè)或更多計(jì)算機(jī)可讀存儲(chǔ)器 中的軟件和/或固件的(多個(gè))計(jì)算機(jī)程序產(chǎn)品的組合,其一起工作來使得裝置施行這里所 描述的一項(xiàng)或更多項(xiàng)功能;以及(C)需要軟件或固件來操作的例如(多個(gè))微處理器或者(多 個(gè))微處理器的一部分之類的電路,即使所述軟件或固件并沒有物理上的存在?!半娐贰钡倪@ 一定義適用于這里對(duì)于該術(shù)語的所有使用,包括在任何權(quán)利要求中的使用。作為另一個(gè)例 子,這里所使用的術(shù)語“電路”還包括這樣一種實(shí)現(xiàn)方式,所述實(shí)現(xiàn)方式包括一個(gè)或更多處 理器和/或其(多個(gè))部分以及伴隨的軟件和/或固件。作為另一個(gè)例子,這里所使用的術(shù) 語“電路”例如還包括用于移動(dòng)電話的基帶集成電路或應(yīng)用處理器集成電路,或者服務(wù)器、 蜂窩網(wǎng)絡(luò)設(shè)備、其他網(wǎng)絡(luò)設(shè)備和/或其他計(jì)算設(shè)備中的類似集成電路。
這里所定義的“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”指的是非瞬時(shí)性的物理存儲(chǔ)介質(zhì)(例如易失 性或非易失性存儲(chǔ)器設(shè)備),其可以與指代電磁信號(hào)的“計(jì)算機(jī)可讀傳輸介質(zhì)”做出區(qū)分。
如前所述,本發(fā)明的一些實(shí)施例可以涉及提供惡意軟件檢測(cè)。在某些情況下,對(duì)于 惡意軟件的檢測(cè)是基于分析代碼的屬性和/或檢查從二進(jìn)制代碼計(jì)算的校驗(yàn)和。但是在惡 意軟件對(duì)其自身進(jìn)行修改或者作為其他惡意軟件的新的略加修改的版本而被例行地發(fā)布 的情況下,此類方法的操作可能會(huì)復(fù)雜化。在這些情況下,代碼中的任何改變都可能導(dǎo)致校 驗(yàn)和發(fā)生改變,因此惡意軟件代碼的新版本可能不會(huì)與舊有的檢測(cè)簽名匹配。在某些情況 下,可以在惡意軟件代碼上采用幾個(gè)部分校驗(yàn)和,從而惡意軟件代碼的任何未被修改的部 分都會(huì)保持相同的校驗(yàn)和。但是在代碼的全體上對(duì)于惡意軟件代碼所做的改變也可能會(huì)使 得這些機(jī)制的成功實(shí)施復(fù)雜化。因此,在一些實(shí)施例中,可以基于代碼結(jié)構(gòu)中的模式對(duì)軟件 進(jìn)行分析,并且可以基于這樣的模式檢測(cè)出惡意軟件。因此,即使在對(duì)代碼做出了改變時(shí), 也可以檢測(cè)出例如蠕蟲、病毒和其他惡意軟件,以便改進(jìn)操作在可執(zhí)行代碼上的平臺(tái)的安 全性和穩(wěn)定性。此外,各個(gè)實(shí)施例可能適用于個(gè)人計(jì)算機(jī)(PC)程序、移動(dòng)終端程序或者用 于任何執(zhí)行平臺(tái)的可執(zhí)行代碼。
圖1示出了一般性的系統(tǒng)圖示,其中在示例性通信環(huán)境中示出了可以受益于本發(fā) 明的實(shí)施例的設(shè)備,比如移動(dòng)終端10。如圖1中所示,根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的 系統(tǒng)包括可以分別能夠與網(wǎng)絡(luò)30通信的第一通信設(shè)備(例如移動(dòng)終端10)和第二通信設(shè)備 20。第二通信設(shè)備20被提供為一個(gè)實(shí)例,以便說明關(guān)于可以被包括在網(wǎng)絡(luò)30中并且可以實(shí) 踐示例性實(shí)施例的其他設(shè)備事例的潛在多樣性。所述系統(tǒng)的各個(gè)通信設(shè)備可以能夠通過網(wǎng) 絡(luò)30與網(wǎng)絡(luò)設(shè)備或者與彼此通信。在某些情況下,所述系統(tǒng)的通信設(shè)備與之通信的網(wǎng)絡(luò)設(shè) 備可以包括服務(wù)平臺(tái)40。在一個(gè)示例性實(shí)施例中,移動(dòng)終端10 (和/或第二通信設(shè)備20) 被允許與服務(wù)平臺(tái)40通信,以便提供、請(qǐng)求和/或接收信息。
雖然出于舉例的目的圖示出并且在下文中描述了移動(dòng)終端10的一個(gè)示例性實(shí) 施例,但是許多類型的移動(dòng)終端都可以很容易采用本發(fā)明的實(shí)施例,比如便攜式數(shù)字助理 (PDA)、尋呼機(jī)、移動(dòng)電視、移動(dòng)電話、游戲設(shè)備、膝上型計(jì)算機(jī)、照相機(jī)、照相手機(jī)、錄像機(jī)、 音頻/視頻播放器、無線電收音機(jī)、GPS設(shè)備、導(dǎo)航設(shè)備或者前述各項(xiàng)的任意組合以及其他 類型的語音和文本通信系統(tǒng)。此外,非移動(dòng)設(shè)備也可以很容易采用本發(fā)明的實(shí)施例。例如 第二通信設(shè)備20可以代表能夠采用一個(gè)示例性實(shí)施例的固定電子設(shè)備的一個(gè)例子。舉例 來說,第二通信設(shè)備20可以是個(gè)人計(jì)算機(jī)(PC)或者具有觸摸顯示器的其他終端。
在一些實(shí)施例中,不是采用本發(fā)明的實(shí)施例的所有系統(tǒng)都可能包括在這里圖示出 和/或描述的所有設(shè)備。舉例來說,雖然在這里將描述的一個(gè)示例性實(shí)施例當(dāng)中,移動(dòng)用戶 設(shè)備(例如移動(dòng)終端10)、固定用戶設(shè)備(例如第二通信設(shè)備20)或網(wǎng)絡(luò)設(shè)備(例如服務(wù)平臺(tái) 40)可以包括能夠結(jié)合與網(wǎng)絡(luò)30的通信施行示例性實(shí)施例的裝置,但是應(yīng)當(dāng)認(rèn)識(shí)到,一些 實(shí)施例可以完全排除所述設(shè)備當(dāng)中的一個(gè)或多個(gè)或者網(wǎng)絡(luò)30,并且簡(jiǎn)單地以獨(dú)立模式被實(shí) 踐在單個(gè)設(shè)備(例如移動(dòng)終端10或第二通信設(shè)備20)上。
在一個(gè)示例性實(shí)施例中,網(wǎng)絡(luò)30包括能夠通過相應(yīng)的有線和/或無線接口彼此通 信的各種不同節(jié)點(diǎn)、設(shè)備或功能的總集。因此,圖1的圖示應(yīng)當(dāng)被理解成是所述系統(tǒng)的某些 元件的寬泛視圖的一個(gè)實(shí)例,而不是所述系統(tǒng)或網(wǎng)絡(luò)30的全包含性或詳細(xì)視圖。雖然不一 定是必要的,但是在一些實(shí)施例中,網(wǎng)絡(luò)30可以能夠支持根據(jù)以下各項(xiàng)當(dāng)中的任意一項(xiàng)或 更多項(xiàng)的通信第一代(1G)、第二代(2G)、2. 5G、第三代(3G)、3. 5G、3. 9G、第四代(4G)移動(dòng) 通信協(xié)議、長(zhǎng)期演進(jìn)(LTE)等等。
例如移動(dòng)終端10和第二通信設(shè)備20之類的一個(gè)或更多通信終端可以能夠通過網(wǎng)絡(luò)30彼此通信,并且分別可以包括用于向/從基站傳送/接收信號(hào)的一個(gè)或多個(gè)天線,所述基站例如可以是作為一個(gè)或更多蜂窩或移動(dòng)網(wǎng)絡(luò)的一部分的基站,或者是可以耦合到數(shù)據(jù)網(wǎng)絡(luò)的接入點(diǎn),所述數(shù)據(jù)網(wǎng)絡(luò)例如是局域網(wǎng)(LAN)、城域網(wǎng)(MAN)和/或因特網(wǎng)之類的廣域網(wǎng)(WAN)。相應(yīng)地,例如處理設(shè)備或元件(例如個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)等等)之類的其他設(shè)備可以通過網(wǎng)絡(luò)30耦合到移動(dòng)終端10和第二通信設(shè)備20。通過將移動(dòng)終端10、第二通信設(shè)備20以及其他設(shè)備直接或間接地連接到網(wǎng)絡(luò)30,移動(dòng)終端10和第二通信設(shè)備20可以被允許例如根據(jù)多種通信協(xié)議(其中包括超文本傳輸協(xié)議(HTTP)等等)與其他設(shè)備(或彼此)通信,從而分別實(shí)施移動(dòng)終端10和第二通信設(shè)備20的各種通信或其他功能。
此外,雖然在圖1中沒有示出,但是移動(dòng)終端10和第二通信設(shè)備20可以例如根據(jù)射頻(RF)、Bluetooth (BT)、紅外(IR)或者多種不同有線或無線通信技術(shù)(包括LAN、無線 LAN (WLAN)、全球微波接入互操作性(胃1獻(xiàn)乂)、11 1、超寬帶(而8)、1讓代6技術(shù)等等)當(dāng)中的任一種進(jìn)行通信。因此,移動(dòng)終端10和第二通信設(shè)備20可以被允許通過多種不同訪問機(jī)制當(dāng)中的任一種與網(wǎng)絡(luò)30和彼此通信。舉例來說,可以支持例如寬帶碼分多址(W-CDMA)、 CDMA2000、全球移動(dòng)通信系統(tǒng)(GSM)、通用分組無線業(yè)務(wù)(GPRS)等移動(dòng)訪問機(jī)制,以及利潤(rùn) WLAN、WiMAX等無線訪問機(jī)制,和例如數(shù)字訂戶線(DSL)、電纜調(diào)制解調(diào)器、以太網(wǎng)等固定訪問機(jī)制。
在一個(gè)示例性實(shí)施例中,服務(wù)平臺(tái)40可以是例如服務(wù)器或其他處理設(shè)備之類的設(shè)備或節(jié)點(diǎn)。服務(wù)平臺(tái)40可以具有許多功能或者與各種服務(wù)的關(guān)聯(lián)。因此,例如,服務(wù)平臺(tái)40可以是與特定信息來源或服務(wù)(例如安全性服務(wù))相關(guān)聯(lián)的諸如專用服務(wù)器(或服務(wù)器庫(kù))的平臺(tái),或者服務(wù)平臺(tái)40可以是與一項(xiàng)或更多項(xiàng)其他功能或服務(wù)相關(guān)聯(lián)的后端服務(wù)器。 因此,服務(wù)平臺(tái)40代表用于多種不同的服務(wù)或信息來源的潛在主機(jī)。在一些實(shí)施例中,服務(wù)平臺(tái)40的功能由被配置成根據(jù)用于向通信設(shè)備的用戶提供信息的已知技術(shù)操作的硬件和/或軟件組件來提供。但是由服務(wù)平臺(tái)40提供的至少一些功能是根據(jù)本發(fā)明的示例性實(shí)施例提供的信息。
圖2示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的用于提供對(duì)惡意軟件的分析和檢測(cè)的裝置的示意性方框圖。下面將參照?qǐng)D2描述本發(fā)明的一個(gè)示例性實(shí)施例,其中顯示出用于提供對(duì)惡意軟件的分析和檢測(cè)的裝置50的某些元件。圖2的裝置50例如可以被采用在服務(wù)平臺(tái)40、移動(dòng)終端10和/或第二通信設(shè)備20上。但是裝置50也可以替換地被具體實(shí)現(xiàn)在多種其他設(shè)備上,其中既包括移動(dòng)設(shè)備也包括固定設(shè)備(例如前面所列出的任何設(shè)備)。在某些情況下,可以在一個(gè)設(shè)備或設(shè)備組合上采用各個(gè)實(shí)施例。相應(yīng)地,本發(fā)明的一些實(shí)施例可以被完全具體實(shí)現(xiàn)在單個(gè)設(shè)備(例如服務(wù)平臺(tái)40、移動(dòng)終端10或第二通信設(shè)備20 )上,按照分布式方式由多個(gè)設(shè)備具體實(shí)現(xiàn),或者由處于客戶端/服務(wù)器關(guān)系中的設(shè)備 (例如移動(dòng)終端10和服務(wù)平臺(tái)40)具體實(shí)現(xiàn)。此外還應(yīng)當(dāng)提到的是,下面所描述的設(shè)備或元件可以不是強(qiáng)制性的,因此在某些實(shí)施例中可以省略其中一些設(shè)備或元件。
現(xiàn)在參 照?qǐng)D2,其中提供了一種用以分析及檢測(cè)惡意軟件的裝置。裝置50可以包括處理器70、用戶接口 72、通信接口 74和存儲(chǔ)器設(shè)備76,或者通過其他方式與之通信。存儲(chǔ)器設(shè)備76例如可以包括一個(gè)或更多易失性和/或非易失性存儲(chǔ)器。換句話說,存儲(chǔ)器設(shè)備76例如可以是電子存儲(chǔ)設(shè)備(例如計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)),其包括定義被配置成存儲(chǔ)可以通過機(jī)器(例如計(jì)算設(shè)備)獲取的數(shù)據(jù)(例如比特)的存儲(chǔ)器單元的門或其他結(jié)構(gòu)。存儲(chǔ)器 設(shè)備76可以被配置成存儲(chǔ)信息、數(shù)據(jù)、應(yīng)用、指令等等,以便允許所述裝置實(shí)施根據(jù)本發(fā)明 的示例性實(shí)施例的各項(xiàng)功能。舉例來說,存儲(chǔ)器設(shè)備76可以被配置成緩沖用于由處理器70 處理的輸入數(shù)據(jù)。附加地或替換地,存儲(chǔ)器設(shè)備76可以被配置成存儲(chǔ)用于由處理器70執(zhí) 行的指令。
處理器70可以通過多種不同方式來具體實(shí)現(xiàn)。舉例來說,處理器70可以被具體 實(shí)現(xiàn)為多種處理部件當(dāng)中的一種或更多種,比如協(xié)處理器、微處理器、控制器、數(shù)字信號(hào)處 理器(DSP)、伴有或不伴有DSP的處理元件或者各種其他處理設(shè)備,其中包括例如ASIC (專 用集成電路)之類的集成電路、FPGA (現(xiàn)場(chǎng)可編程門陣列)、微控制器單元(MCU)、硬件加速 器、專用計(jì)算機(jī)芯片、處理電路等等。在一個(gè)示例性實(shí)施例中,處理器70可以被配置成執(zhí)行 存儲(chǔ)在存儲(chǔ)器設(shè)備76中或者可由處理器70通過其他方式訪問的指令。替換地或附加地, 處理器70可以被配置成執(zhí)行硬編碼的功能。因此,不管是通過硬件或軟件方法還是其組合 配置的,處理器70都可以代表能夠在被相應(yīng)地配置的情況下施行根據(jù)本發(fā)明的實(shí)施例的 操作的實(shí)體(例如物理地具體實(shí)現(xiàn)在電路中)。因此,例如當(dāng)處理器70被具體實(shí)現(xiàn)為ASIC、 FPGA等時(shí),處理器70可以是用于實(shí)施這里所描述的操作的特別配置的硬件?;蛘咦鳛榱硪?個(gè)例子,當(dāng)處理器70被具體實(shí)現(xiàn)為軟件指令的執(zhí)行器時(shí),在執(zhí)行所述指令時(shí),其可以將處 理器70特別配置成施行這里所描述的算法和/或操作。但是在某些情況下,處理器70可 以是特定設(shè)備(例如移動(dòng)終端10或網(wǎng)絡(luò)設(shè)備)的處理器,所述特定設(shè)備通過用施行這里所描 述的算法和/或操作的指令進(jìn)一步配置處理器70而被適配成采用本發(fā)明的實(shí)施例。通過 執(zhí)行被提供給處理器70或者與處理器70的配置相關(guān)聯(lián)的指令或程序,處理器70可以導(dǎo)致 施行相應(yīng)的功能。處理器70特別可以包括被配置成支持處理器70的操作的時(shí)鐘、算術(shù)邏 輯單元(ALU)和邏輯門等等
與此同時(shí),通信接口 74可以是例如用硬件、軟件或者硬件與軟件的組合具體實(shí)現(xiàn) 的設(shè)備或電路之類的任何部件,其被配置成從/向網(wǎng)絡(luò)和/或與所述裝置通信的任何其他 設(shè)備或模塊接收和/或傳送數(shù)據(jù)。在這方面,通信接口 74例如可以包括天線(或多個(gè)天線) 以及支持硬件和/或軟件,以便允許與無線通信網(wǎng)絡(luò)進(jìn)行通信。在某些環(huán)境中,通信接口 74 可以替換地或者附加地支持有線通信。因此,通信接口 74例如可以包括用于支持通過電 纜、數(shù)字訂戶線(DSL)、通用串行總線(USB)或其他機(jī)制進(jìn)行通信的通信調(diào)制解調(diào)器和/或 其他硬件/軟件。
用戶接口 72可以與處理器70通信,以便在用戶接口 72處接收關(guān)于用戶輸入的指 示,和/或向用戶提供可聽、可視、機(jī)械或其他輸出。因此,用戶接口 72例如可以包括鍵盤、 鼠標(biāo)、操縱管、顯示器、觸摸屏、軟鍵、麥克風(fēng)、揚(yáng)聲器或者其他輸入/輸出機(jī)制。在其中將所 述裝置具體實(shí)現(xiàn)為服務(wù)器或某些其他網(wǎng)絡(luò)設(shè)備的一個(gè)示例性實(shí)施例中,用戶接口 72可以 被限制或去除。但是在其中將所述裝置具體實(shí)現(xiàn)為通信設(shè)備(例如移動(dòng)終端10或第二通信 設(shè)備20 )的一個(gè)實(shí)施例中,除了其他設(shè)備或元件之外用戶接口 72可以包括揚(yáng)聲器、麥克風(fēng)、 顯示器和鍵盤等等當(dāng)中的任一項(xiàng)或全部。在這方面,處理器70例如可以包括被配置成控制 用戶接口的一個(gè)或更多元件(比如揚(yáng)聲器、振鈴器、麥克風(fēng)、顯示器等等)的至少一些功能的 用戶接口電路。處理器70和/或包括處理器70的用戶接口電路可以被配置成通過存儲(chǔ)在 可由處理器70訪問的存儲(chǔ)器(例如存儲(chǔ)器設(shè)備76等等)上的計(jì)算機(jī)程序指令(例如軟件和/或固件)來控制用戶接口的一個(gè)或更多元件的一項(xiàng)或更多項(xiàng)功能。
在一個(gè)示例性實(shí)施例中,處理器70可以被具體實(shí)現(xiàn)為、包括或者通過其他方式控 制模式確定器80、聚類管理器82和惡意軟件檢測(cè)器84。因此,在一些實(shí)施例中,可以說處 理器70導(dǎo)致、指導(dǎo)或控制如這里所描述的可以歸于模式確定器80、聚類管理器82和/或惡 意軟件檢測(cè)器84的各項(xiàng)功能的執(zhí)行或發(fā)生。模式確定器80、聚類管理器82和惡意軟件檢 測(cè)器84可以分別是例如根據(jù)軟件操作或者以其他方式具體實(shí)現(xiàn)在硬件或者硬件與軟件的 組合中的設(shè)備或電路之類的任何部件(例如在軟件控制下操作的處理器70、被具體實(shí)現(xiàn)為 特別被配置成施行這里所描述的操作的ASIC或FPGA的處理器70或者其組合),從而將所 述設(shè)備或電路配置成分別施行這里所描述的模式確定器80、聚類管理器82和惡意軟件檢 測(cè)器84的相應(yīng)功能。因此,在其中采用軟件的實(shí)例中,執(zhí)行軟件的設(shè)備或電路(例如在一個(gè) 實(shí)例中是處理器70)構(gòu)成與這樣的部件相關(guān)聯(lián)的結(jié)構(gòu)。
在一個(gè)示例性實(shí)施例中,模式確定器80可以通常被配置成從多個(gè)惡意軟件樣本 或者從已知的惡意軟件實(shí)例資料庫(kù)確定惡意軟件模式集合。聚類管理器82可以被配置成 基于相應(yīng)的模式之間的共性對(duì)所述惡意軟件模式集合進(jìn)行聚集。實(shí)際上,聚類管理器82因 此可以被配置成基于所述模式的共性或相似性定義惡意軟件的聚類或族類。惡意軟件檢測(cè) 器84可以被配置成施行待分析的代碼與惡意軟件模式集合之間的比較,從而確定惡意軟 件模式是否與待分析的代碼匹配或類似和/或匹配或類似的程度。因此,惡意軟件檢測(cè)器 84可以被配置成基于所述比較來檢測(cè)或確定待分析的代碼是否是惡意軟件。在一些實(shí)施例 中,惡意軟件檢測(cè)器84還可以被配置成(響應(yīng)于確定待分析的代碼是惡意軟件)確定待分析 的代碼屬于哪一個(gè)惡意軟件族類或者與哪一個(gè)惡意軟件族類最緊密相關(guān)。
模式確定器80可以被配置成確定惡意軟件模式集合。在一個(gè)示例性實(shí)施例中,模 式確定器80可以被允許訪問存儲(chǔ)惡意軟件樣本的魯棒集合的貯存庫(kù)或資料庫(kù)(例如,被存 儲(chǔ)在存儲(chǔ)器設(shè)備76中或者某一其他可訪問的存儲(chǔ)器位置處)。因此,模式確定器80可以被 配置成對(duì)已知惡意軟件的可執(zhí)行代碼和/或元數(shù)據(jù)的貯存庫(kù)進(jìn)行參照。在某些情況下,如 果惡意軟件的源代碼恰好可用的話,則可以使用所述源代碼。
在一個(gè)示例性實(shí)施例中,模式確定器80可以被配置成通過對(duì)可執(zhí)行代碼進(jìn)行反 匯編以便產(chǎn)生可執(zhí)行二進(jìn)制碼的更高層級(jí)表示(例如匯編碼或更高級(jí)語言)而處理惡意軟 件樣本。隨后將所述代碼劃分成各個(gè)序列,從而可以將屬于相同函數(shù)或子例程的命令指派 給相同的序列??蛇x地還可以使用代碼的其他排序標(biāo)準(zhǔn)。舉例來說,可以把屬于相同條件 構(gòu)造(例如任何if-then-else或case類型構(gòu)造)或循環(huán)構(gòu)造(for或while類型構(gòu)造)的命 令指派給一個(gè)單獨(dú)的序列。在某些情況下,屬于相同的“基本塊”的命令(例如總是被順次 執(zhí)行的命令序列,從而例如沒有基本塊內(nèi)部的分支和基本塊外部的跳躍)可以被指派給一 個(gè)單獨(dú)的序列。在一個(gè)示例性實(shí)施例中,隨后進(jìn)一步對(duì)每一個(gè)代碼序列進(jìn)行預(yù)處理,從而形 成表示該序列的記錄。隨后可以處理所述序列中的每一條命令(指令、函數(shù)調(diào)用等等)。
在一個(gè)示例性實(shí)施例中,可以通過最初利用常用映射字典將命令翻譯成命令符號(hào) 來對(duì)命令進(jìn)行處理。可以丟棄特定于所分析的代碼事例的可能的有關(guān)命令參數(shù),比如對(duì)于 存儲(chǔ)器位置的索引等等。還可以利用所述常用映射字典將具有固定全局含義的命令參數(shù) (例如對(duì)于處理器寄存器的索引)翻譯成參數(shù)符號(hào)。隨后可以把命令符號(hào)與可能的參數(shù)符號(hào) 串聯(lián)。在一些實(shí)施例中,還可以把描述對(duì)于命令的參數(shù)計(jì)數(shù)的數(shù)字串聯(lián)到所述符號(hào)。隨后把最終串聯(lián)的符號(hào)添加到記錄中。一旦翻譯了序列中的所有命令之后,就可以通過去除記 錄中的重復(fù)符號(hào)而對(duì)所得到的符號(hào)記錄進(jìn)行處理。在某些情況下,可以丟棄重復(fù)的數(shù)量或 者將其與符號(hào)串聯(lián)(在進(jìn)行串聯(lián)時(shí)可以使得可能包含在符號(hào)中的參數(shù)計(jì)數(shù)保持可以與重復(fù) 符號(hào)計(jì)數(shù)清楚地區(qū)分)??梢园凑兆值渚幾腠樞蛟谟涗泝?nèi)部對(duì)所得到的各個(gè)符號(hào)進(jìn)行排序。 最后可以把經(jīng)過處理的記錄添加到與元數(shù)據(jù)關(guān)聯(lián)的惡意軟件代碼數(shù)據(jù)庫(kù)M,其中所述元數(shù) 據(jù)標(biāo)識(shí)出該記錄源自哪一個(gè)惡意軟件樣本。在一些實(shí)施例中,可以保留各個(gè)符號(hào)(即代碼中 的各條指令)的原始排序,從而可以不去除重復(fù)并且可以不對(duì)記錄重新排序。對(duì)于保留原始 排序的符號(hào)序列,可以應(yīng)用頻繁片斷挖掘,以便提取出各條指令的相對(duì)排序與之相關(guān)的模 式。因此,在一些實(shí)施例中,模式可以將各條指令的相對(duì)排序納入考慮。
一旦對(duì)所有惡意軟件樣本進(jìn)行了預(yù)處理并且惡意軟件代碼數(shù)據(jù)庫(kù)M包含來自所 有所期望的樣本的數(shù)據(jù)之后,就可以確定常見惡意軟件代碼模式。對(duì)于常見惡意軟件代碼 模式的確定可以通過對(duì)數(shù)據(jù)庫(kù)M執(zhí)行頻繁模式挖掘算法(例如Apriori)來實(shí)現(xiàn)。所述算法 可以在M中找到比起用戶指定的頻率閾值freqjhr更加頻繁地出現(xiàn)的符號(hào)組合。因此所 述頻繁的符號(hào)組合可以代表相應(yīng)的惡意軟件樣本中的典型命令模式。隨后可以把所得到的 代碼模式存儲(chǔ)到惡意軟件代碼模式數(shù)據(jù)庫(kù)P中。
在一些實(shí)施例中,可以基于所選標(biāo)準(zhǔn)對(duì)所得到的代碼模式進(jìn)行過濾,并且隨后采 用經(jīng)過過濾的模式子集。舉例來說,用戶可以被允許對(duì)模式進(jìn)行限制,從而只有閉合的頻繁 模式或者經(jīng)過過濾的頻繁模式被存儲(chǔ)在數(shù)據(jù)庫(kù)P中。如果頻繁模式P作為真子集的所有其 他模式都不具有與P相同的頻率,則可以說頻繁模式P是閉合的。換句話說,如果某一模式 關(guān)于頻率具有其自身的閉包,則該模式可以是閉合的。模式的頻率可以被定義為模式P出 現(xiàn)在其中的記錄的數(shù)量除以數(shù)據(jù)庫(kù)中的記錄總數(shù)。但是在某些情況下,模式頻率的定義可 以省略除以數(shù)據(jù)庫(kù)大小,并且頻率可以被定義為模式P出現(xiàn)在其中的記錄的數(shù)量。
在一些實(shí)施例中,可以按照替換方式細(xì)化惡意軟件代碼模式數(shù)據(jù)庫(kù)P。舉例來說, 在前面描述的處理之后,惡意軟件代碼模式數(shù)據(jù)庫(kù)P可以包括頻繁出現(xiàn)在惡意軟件程序中 的所有代碼模式。可能會(huì)出現(xiàn)這樣的情況,其中在惡意軟件代碼模式數(shù)據(jù)庫(kù)P中識(shí)別出的 一種或更多種模式恰好是在常規(guī)的或良性的程序中所存在或者甚至常見的模式。這一問題 也可以通過對(duì)良性程序的樣本施行模式提取過程(例如類似于前面描述的機(jī)制)來解決。隨 后可以通過從惡意軟件代碼模式數(shù)據(jù)庫(kù)P中去除良性程序的模式來對(duì)惡意軟件代碼模式 數(shù)據(jù)庫(kù)P進(jìn)行過濾。在進(jìn)行過濾之后,惡意軟件代碼模式數(shù)據(jù)庫(kù)P可以包括對(duì)于與惡意軟 件代碼相關(guān)聯(lián)的模式的更加精確的表示。
在一個(gè)示例性實(shí)施例中,如前所述,聚類管理器82可以被配置成基于相應(yīng)的模式 之間的共性或相似性來對(duì)惡意軟件模式集合進(jìn)行聚集,從而定義惡意軟件的各個(gè)族類。在 一些實(shí)施例中,基于每一個(gè)惡意軟件樣本m_k與之匹配的(最大)惡意軟件代碼模式集合將 其聚集到惡意軟件樣本群組中。舉例來說,每一個(gè)樣本m_k可以被指派給由惡意軟件代碼 模式數(shù)據(jù)庫(kù)P中的惡意軟件代碼模式集合P」中的c_j={p_l, p_2,...,p_n}所表示的惡意 軟件代碼聚類。
在一些示例性實(shí)施例中,每一個(gè)惡意軟件樣本m_k還可以基于與可能類似于該樣 本的實(shí)際模式集合c的模式集合c’的相似性接收次要聚類分類。為了確定可能有關(guān)的惡 意軟件代碼模式,可以計(jì)算C及其尺寸為I c1-Pdelta的真子集在惡意軟件代碼數(shù)據(jù)庫(kù)M中的出現(xiàn)頻率。在一些實(shí)施例中,Pdelta可以是具有值1,2,3...等等的用戶指定的參數(shù)。c 的出現(xiàn)頻率可以被定義為具有與c中的所有p_i匹配的M中的條目的不同惡意軟件樣本的 數(shù)目。
如果有c的子集c’,其在M中的出現(xiàn)頻率與c的出現(xiàn)頻率至多相差fdelta(fdelta 是用戶指定的參數(shù),其與所述出現(xiàn)頻率相比通??梢韵鄬?duì)較小),則c’可以被解釋為與c有 關(guān),并且m_k接收被指派為其次要聚類的c’。
惡意軟件檢測(cè)器84可以被配置成利用惡意軟件代碼模式以及已由模式確定器80 和聚類管理器82提供的相應(yīng)聚類(并且可能還有所可能采用的任何可選的次要聚類),以便 確定所分析的代碼樣本是否是惡意的。在這方面,例如可以按照類似于前面結(jié)合模式確定 器80描述符號(hào)記錄處理的方式將所分析的代碼樣本翻譯成符號(hào)記錄??梢园汛a樣本與 惡意軟件代碼模式數(shù)據(jù)庫(kù)P中的惡意軟件代碼模式進(jìn)行比較,并且可以確定與該樣本匹配 的所有模式P。響應(yīng)于惡意軟件代碼模式數(shù)據(jù)庫(kù)P中的惡意軟件代碼模式P與所分析的代 碼樣本的符號(hào)記錄相匹配,所述代碼樣本可以被認(rèn)為是潛在的惡意代碼。在某些情況下,可 以確定匹配模式的數(shù)目或程度,并且匹配模式的數(shù)目越多,越有可能可以認(rèn)為所述代碼樣 本實(shí)際上是惡意代碼。因此,例如,所分析的任何代碼樣本被認(rèn)為是惡意代碼的似然性可以 是樣本代碼與已知的惡意代碼模式之間的相似度數(shù)量的函數(shù)。但是盡管有時(shí)可以相對(duì)于閾 值或百分比來測(cè)量所述相似度數(shù)量,但是不一定要存在大于百分之五十的概率或匹配程度 才認(rèn)為樣本代碼可能是惡意的。相反,如果找到可靠的單一模式匹配,在某些情況下可能只 存在非常低程度的總體匹配。在關(guān)于代碼樣本是否為惡意代碼的確定之后,在某些情況下 隨后可以向系統(tǒng)的用戶顯示所述代碼樣本和相應(yīng)的惡意模式,和/或?qū)⑵漭敵鲆怨┻M(jìn)一步 處理。
在一個(gè)示例性實(shí)施例中,響應(yīng)于確定代碼樣本是惡意軟件,惡意軟件檢測(cè)器84還 可以被配置成確定代碼樣本所屬或者與之最緊密關(guān)聯(lián)的惡意軟件族類。在某些情況下,惡 意軟件檢測(cè)器84可以被配置成識(shí)別或確定所分析的樣本代碼潛在地或者最緊密地與之相 關(guān)的適當(dāng)聚類。為了實(shí)現(xiàn)這個(gè)目的,惡意軟件檢測(cè)器84可以把樣本代碼的模式與聚類管理 器82所定義的各個(gè)聚類進(jìn)行比較,以便找到與定義在樣本代碼中的模式最緊密地匹配的 聚類。在確定了聚類之后,可以向用戶顯示所確定的聚類以及屬于相同聚類的可能的其他 惡意軟件樣本,和/或?qū)⑵漭敵鲆怨┻M(jìn)一步處理。
正如可以從前面的描述可以看到的那樣,一些實(shí)施例可以提供一種基于惡意軟件 的代碼結(jié)構(gòu)來檢測(cè)惡意軟件的自動(dòng)化方法。因此可以允許一些實(shí)施例檢測(cè)惡意軟件,盡管 惡意軟件發(fā)生了變異或者惡意軟件作者對(duì)指令排序施加了改變以便規(guī)避傳統(tǒng)的基于校驗(yàn) 和的檢測(cè)技術(shù)。一些實(shí)施例還可以給出一種用以自動(dòng)確定特定惡意軟件樣本或檢測(cè)樣本屬 于哪一個(gè)類別或“惡意軟件族類”的機(jī)制。相應(yīng)地可以對(duì)于所有種類的計(jì)算機(jī)代碼改進(jìn)安 全性,其中例如包括匯編指令以及字節(jié)碼。
圖3是根據(jù)本發(fā)明的示例性實(shí)施例的方法和程序產(chǎn)品的流程圖。應(yīng)當(dāng)理解的是, 所述流程圖的每一個(gè)方框以及流程圖中的各個(gè)方框的組合可以通過多種部件來實(shí)施,比如 硬件、固件、處理器、電路和/或與執(zhí)行軟件相關(guān)聯(lián)的其他設(shè)備,其中所述軟件包括一條或 更多條計(jì)算機(jī)程序指令。舉例來說,前面描述的其中一個(gè)或更多規(guī)程可以由計(jì)算機(jī)程序指 令具體實(shí)現(xiàn)。在這方面,具體實(shí)現(xiàn)前面描述的規(guī)程的計(jì)算機(jī)程序指令可以由用戶終端或網(wǎng)絡(luò)設(shè)備的存儲(chǔ)器設(shè)備存儲(chǔ),并且由用戶終端或網(wǎng)絡(luò)設(shè)備中的處理器執(zhí)行。應(yīng)當(dāng)理解的是,任 何此類計(jì)算機(jī)程序指令都可以被加載到計(jì)算機(jī)或其他可編程裝置(例如硬件)上以便產(chǎn)生 一臺(tái)機(jī)器,從而使得在所述計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令創(chuàng)建用于實(shí)施在(多個(gè)) 流程圖方框中所指定的功能的部件。這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在能夠引導(dǎo)計(jì)算機(jī) 或其他可編程裝置按照特定方式運(yùn)作的計(jì)算機(jī)可讀存儲(chǔ)器中,從而使得存儲(chǔ)在所述計(jì)算機(jī) 可讀存儲(chǔ)器中的指令產(chǎn)生包括實(shí)施在(多個(gè))流程圖方框中指定的功能的指令部件的制品。 所述計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)或其他可編程裝置上以導(dǎo)致在所述計(jì)算機(jī)或 其他可編程裝置上施行一系列操作,以便產(chǎn)生計(jì)算機(jī)實(shí)施的處理,從而使得在所述計(jì)算機(jī) 或其他可編程裝置上執(zhí)行的指令實(shí)施在(多個(gè))流程圖方框中指定的功能。
相應(yīng)地,流程圖的各個(gè)方框支持用于施行指定功能的部件組合、用于施行指定功 能的操作組合以及用于施行指定功能的程序指令部件。還應(yīng)當(dāng)理解的是,流程圖的一個(gè)或 更多方框以及流程圖中的各個(gè)方框組合可以由施行指定功能的基于專用硬件的計(jì)算機(jī)系 統(tǒng)實(shí)施,或者由專用硬件與計(jì)算機(jī)指令的組合實(shí)施。
在這方面,如圖3中所示的根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法可以包括在操作120 中引導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合進(jìn)行比較,以及在操作130中基于所 述比較確定樣本代碼是否有可能是惡意軟件。所述方法還可以包括,在操作140中響應(yīng)于 確定樣本代碼有可能是惡意軟件,基于樣本代碼內(nèi)的模式確定樣本代碼與之相關(guān)聯(lián)的惡意 軟件聚類。
在一些實(shí)施例中,可以按照下面所描述的那樣對(duì)前面的特定操作進(jìn)行修改或進(jìn)一 步放大。此外在一些實(shí)施例中,還可以包括附加的可選操作(這方面的一個(gè)例子在圖3中用 虛線示出)。應(yīng)當(dāng)認(rèn)識(shí)到,下面的每一項(xiàng)修改、可選添加和放大可以單獨(dú)地或者與這里所描 述的任何其他特征相組合地與前面的操作包括在一起。在這方面,所述方法例如還可以包 括在操作100中,基于與多個(gè)已知的惡意軟件樣本相關(guān)聯(lián)的代碼模式確定所述預(yù)定的惡 意軟件模式集合。附加地或替換地,所述方法還可以包括在操作110中,基于所述預(yù)定的 惡意軟件模式集合中的各個(gè)已知惡意軟件樣本當(dāng)中的模式之間的相似性,將所述預(yù)定的惡 意軟件模式集合聚集到各個(gè)惡意軟件聚類中。因此可以基于所述模式自身的相似性來施行 聚集。但是在一些實(shí)施例中,對(duì)于模式的聚集可以是基于與所述模式有關(guān)的元數(shù)據(jù)。因此例 如如果某些惡意軟件模式僅僅在來自一個(gè)或少數(shù)幾個(gè)不同的惡意軟件族類的樣本中出現(xiàn), 則所述聚集可以是基于所述惡意軟件族類。類似地,在對(duì)模式進(jìn)行聚集時(shí)可以使用與所述 模式出現(xiàn)在其中的樣本有關(guān)的任何其他標(biāo)識(shí)元數(shù)據(jù)。在一個(gè)示例性實(shí)施例中,確定預(yù)定的 惡意軟件模式集合可以包括對(duì)于多個(gè)已知的惡意軟件樣本產(chǎn)生已知的惡意軟件樣本的可 執(zhí)行代碼的更高層級(jí)表示;基于排序標(biāo)準(zhǔn)將可執(zhí)行代碼劃分成各個(gè)序列;對(duì)各個(gè)序列進(jìn)行 處理從而為每一個(gè)序列形成一條符號(hào)記錄;對(duì)符號(hào)記錄進(jìn)行處理并且將符號(hào)記錄添加到惡 意軟件代碼的貯存庫(kù);基于頻繁出現(xiàn)的符號(hào)組合確定所述貯存庫(kù)的各個(gè)已知的惡意軟件樣 本之間的共同模式;以及將所述共同模式存儲(chǔ)為預(yù)定的惡意軟件模式集合。在某些情況下, 確定預(yù)定的惡意軟件模式集合可以包括基于頻繁出現(xiàn)的符號(hào)組合確定各個(gè)已知的惡意軟 件樣本之間的共同模式;以及基于已知的良性軟件樣本的模式對(duì)所述共同模式進(jìn)行過濾, 以便定義預(yù)定的惡意軟件模式集合。在一些實(shí)施例中,對(duì)預(yù)定的惡意軟件模式集合進(jìn)行聚 集可以包括將多個(gè)模式指派給對(duì)應(yīng)的聚類;以及將至少一個(gè)模式指派給除了其相應(yīng)聚類之外的次要聚類。在一個(gè)示例性實(shí)施例中,確定樣本代碼是否有可能是惡意軟件可以包括 確定樣本代碼與預(yù)定的惡意軟件模式集合之間的匹配模式的數(shù)目;以及基于所述數(shù)目確定 樣本代碼是惡意軟件的似然性。在一些實(shí)施例中,確定樣本代碼是否可能是惡意軟件還可 以包括響應(yīng)于樣本代碼可能是惡意軟件而向用戶提供輸出;和/或確定樣本代碼與之相 關(guān)聯(lián)的惡意軟件聚類還可以包括向用戶提供表明惡意軟件聚類的輸出。
在某些情況下,可以在一種涉及促進(jìn)對(duì)至少一個(gè)接口的訪問以便允許通過至少一 個(gè)網(wǎng)絡(luò)訪問至少一項(xiàng)服務(wù)的方法中實(shí)施前面描述的操作(100-140)連同任何修改。在這樣 的情況下,所述至少一項(xiàng)服務(wù)可以是至少施行操作100到140。
在一個(gè)示例性實(shí)施例中,一種用于施行前面圖3的方法的裝置可以包括被配置成 施行前面描述的一些或每一項(xiàng)操作(100-140)的處理器(例如處理器70)。所述處理器例如 可以被配置成通過施行硬件實(shí)施的邏輯功能、執(zhí)行所存儲(chǔ)的指令或者執(zhí)行用于施行每一項(xiàng) 操作的算法來施行操作(100-140)?;蛘撸鲅b置可以包括用于施行前面描述的每一項(xiàng)操 作的部件。在這方面,根據(jù)一個(gè)示例性實(shí)施例,用于施行操作100-140的部件的例子例如可 以包括處理器700、相應(yīng)的模式確定器80、聚類管理器82、惡意軟件檢測(cè)器84和/或用于執(zhí) 行指令或者執(zhí)行用于如前所述地處理信息的算法的設(shè)備或電路。
受益于在前面的描述和相關(guān)聯(lián)的附圖中給出教導(dǎo),本發(fā)明所屬領(lǐng)域的技術(shù)人員將 會(huì)想到這里闡述的本發(fā)明的許多修改和其他實(shí)施例。因此應(yīng)當(dāng)理解的是,本發(fā)明不限于所 公開的具體實(shí)施例,并且在所附權(quán)利要求書意圖包括各種修改和其他實(shí)施例。此外,雖然前 面的描述和相關(guān)聯(lián)的附圖在各個(gè)元件和/或各項(xiàng)功能的特定示例性組合的情境中描述了 各個(gè)示例性實(shí)施例,但是應(yīng)當(dāng)認(rèn)識(shí)到,在不背離所附權(quán)利要求書的范圍的情況下,可以由替 換實(shí)施例提供不同的元件和/或功能組合。在這方面,例如不同于前面明確描述的元件和/ 或功能組合也被設(shè)想為可以在其中一些所附權(quán)利要求中闡述。雖然這里采用了特定術(shù)語, 但是其僅僅是在一般的描述性意義下使用的,而不是為了進(jìn)行限制。
權(quán)利要求
1.一種方法,其包括弓I導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合的比較;基于所述比較確定樣本代碼是否有可能是惡意軟件;以及響應(yīng)于確定樣本代碼有可能是惡意軟件,基于樣本代碼內(nèi)的模式確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類。
2.根據(jù)權(quán)利要求1的方法,其中,確定預(yù)定的惡意軟件模式集合包括基于頻繁出現(xiàn)的符號(hào)組合確定已知惡意軟件樣本之間的共同模式;以及基于已知良性軟件樣本的模式對(duì)所述共同模式進(jìn)行過濾,以便定義預(yù)定的惡意軟件模式集合。
3.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括基于與多個(gè)已知惡意軟件樣本相關(guān)聯(lián)的代碼模式確定所述預(yù)定的惡意軟件模式集合。
4.根據(jù)權(quán)利要求3的方法,其中,確定所述預(yù)定的惡意軟件模式集合包括,對(duì)于多個(gè)已知惡意軟件樣本產(chǎn)生已知惡意軟件樣本的可執(zhí)行代碼的更高層級(jí)表示;基于排序標(biāo)準(zhǔn)將可執(zhí)行代碼劃分成多個(gè)序列;對(duì)所述多個(gè)序列進(jìn)行處理從而為每一個(gè)序列形成符號(hào)記錄;對(duì)符號(hào)記錄進(jìn)行處理并且將符號(hào)記錄添加到惡意軟件代碼的貯存庫(kù);基于頻繁出現(xiàn)的符號(hào)組合確定所述貯存庫(kù)的已知惡意軟件樣本之間的共同模式;以及引導(dǎo)所述共同模式的存儲(chǔ),作為所述預(yù)定的惡意軟件模式集合。
5.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括基于所述預(yù)定的惡意軟件模式集合中的已知惡意軟件樣本當(dāng)中的模式之間的相似性,將所述預(yù)定的惡意軟件模式集合聚集到惡意軟件聚類中。
6.根據(jù)權(quán)利要求5的方法,其中,對(duì)預(yù)定的惡意軟件模式集合進(jìn)行聚集包括將多個(gè)模式指派給相應(yīng)的聚類,以及將至少一個(gè)模式指派給除了其對(duì)應(yīng)的聚類之外的次要聚類。
7.根據(jù)權(quán)利要求5的方法,其中,基于相似性的聚集包括基于與模式所源自的樣本相關(guān)聯(lián)的元數(shù)據(jù)進(jìn)行聚集。
8.根據(jù)權(quán)利要求1的方法,其中,確定樣本代碼是否有可能是惡意軟件包括確定樣本代碼與預(yù)定的惡意軟件模式集合之間的匹配模式的數(shù)目,以及基于所述數(shù)目確定樣本代碼是惡意軟件的似然性。
9.根據(jù)權(quán)利要求1的方法,其中,確定樣本代碼是否有可能是惡意軟件還包括響應(yīng)于樣本代碼有可能是惡意軟件而向用戶提供輸出。
10.根據(jù)權(quán)利要求1的方法,其中,確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類還包括:向用戶提供表明所述惡意軟件聚類的輸出。
11.根據(jù)權(quán)利要求1的方法,其中,權(quán)利要求1的操作由至少一項(xiàng)服務(wù)施行,所述至少一項(xiàng)服務(wù)相應(yīng)地被配置成用于促進(jìn)對(duì)至少一個(gè)接口的訪問以便允許通過至少一個(gè)網(wǎng)絡(luò)訪問至少一項(xiàng)服務(wù)的方法的一部分。
12.一種裝置,包括至少一個(gè)處理器和包括計(jì)算機(jī)程序代碼的至少一個(gè)存儲(chǔ)器,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置成利用所述至少一個(gè)處理器使得所述裝置至少弓I導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合的比較;基于所述比較確定樣本代碼是否有可能是惡意軟件;以及響應(yīng)于確定樣本代碼有可能是惡意軟件,基于樣本代碼內(nèi)的模式確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類。
13.根據(jù)權(quán)利要求12的裝置,其中,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置成利用所述至少一個(gè)處理器使得所述裝置通過以下步驟確定所述預(yù)定的惡意軟件模式集合基于頻繁出現(xiàn)的符號(hào)組合確定已知惡意軟件樣本之間的共同模式;以及基于已知良性軟件樣本的模式對(duì)所述共同模式進(jìn)行過濾,以便定義所述預(yù)定的惡意軟件模式集合。
14.根據(jù)權(quán)利要求12的裝置,其中,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼還被配置成利用所述至少一個(gè)處理器使得所述裝置基于與多個(gè)已知惡意軟件樣本相關(guān)聯(lián)的代碼模式確定所述預(yù)定的惡意軟件模式集合。
15.根據(jù)權(quán)利要求14的裝置,其中,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置成利用所述至少一個(gè)處理器使得所述裝置通過對(duì)于多個(gè)已知惡意軟件樣本施行以下步驟來確定所述預(yù)定的惡意軟件模式集合產(chǎn)生已知惡意軟件樣本的可執(zhí)行代碼的更高層級(jí)表示;基于排序標(biāo)準(zhǔn)將可執(zhí)行代碼劃分成多個(gè)序列;對(duì)所述多個(gè)序列進(jìn)行處理從而為每一個(gè)序列形成符號(hào)記錄;對(duì)符號(hào)記錄進(jìn)行處理并且將符號(hào)記錄添加到惡意軟件代碼的貯存庫(kù);基于頻繁出現(xiàn)的符號(hào)組合確定所述貯存庫(kù)的已知惡意軟件樣本之間的共同模式;以及引導(dǎo)所述共同模式的存儲(chǔ),作為所述預(yù)定的惡意軟件模式集合。
16.根據(jù)權(quán)利要求12的裝置,其中,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置成利用所述至少一個(gè)處理器使得所述裝置基于所述預(yù)定的惡意軟件模式集合中的已知惡意軟件樣本當(dāng)中的模式之間的相似性,將所述預(yù)定的惡意軟件模式集合聚集到惡意軟件聚類中。
17.根據(jù)權(quán)利要求16的裝置,其中,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置成利用所述至少一個(gè)處理器使得所述裝置通過以下步驟對(duì)預(yù)定的惡意軟件模式集合進(jìn)行聚集將多個(gè)模式指派給相應(yīng)的聚類,以及將至少一個(gè)模式指派給除了其對(duì)應(yīng)的聚類之外的次要聚類。
18.根據(jù)權(quán)利要求12的裝置,其中,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置成利用所述至少一個(gè)處理器使得所述裝置通過以下步驟確定樣本代碼是否有可能是惡意軟件確定樣本代碼與預(yù)定的惡意軟件模式集合之間的匹配模式的數(shù)目,以及基于所述數(shù)目確定樣本代碼是惡意軟件的似然性。
19.根據(jù)權(quán)利要求12的裝置,其中,所述至少一個(gè)存儲(chǔ)器和計(jì)算機(jī)程序代碼被配置成利用所述至少一個(gè)處理器使得所述裝置確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類以進(jìn)一步包括向用戶提供表明所述惡意軟件聚類的輸出。
20.根據(jù)權(quán)利要求12的裝置,其中,所述裝置包括移動(dòng)終端,所述移動(dòng)終端包括用戶接口電路以便促進(jìn)對(duì)于所述裝置的至少一些功能的用戶控制。
21.一種計(jì)算機(jī)程序產(chǎn)品,包括其中存儲(chǔ)有計(jì)算機(jī)可執(zhí)行程序代碼指令的至少一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行程序代碼指令包括用于施行以下步驟的程序代碼指令`弓I導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合的比較;基于所述比較確定樣本代碼是否有可能是惡意軟件;以及響應(yīng)于確定樣本代碼有可能是惡意軟件,基于樣本代碼內(nèi)的模式確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類。
全文摘要
一種用以分析及檢測(cè)惡意軟件的方法,其可以包括引導(dǎo)樣本代碼內(nèi)的模式與預(yù)定的惡意軟件模式集合的比較,基于所述比較確定樣本代碼是否有可能是惡意軟件,以及響應(yīng)于確定樣本代碼有可能是惡意軟件,基于樣本代碼內(nèi)的模式確定樣本代碼與之相關(guān)聯(lián)的惡意軟件聚類。此外還提供了相應(yīng)的計(jì)算機(jī)程序產(chǎn)品和裝置。
文檔編號(hào)G06F21/56GK103038777SQ201180037165
公開日2013年4月10日 申請(qǐng)日期2011年3月22日 優(yōu)先權(quán)日2010年6月3日
發(fā)明者M·J·米耶蒂寧 申請(qǐng)人:諾基亞公司