午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

用于惡意軟件檢測(cè)的系統(tǒng)和方法

文檔序號(hào):6595349閱讀:531來源:國知局

專利名稱::用于惡意軟件檢測(cè)的系統(tǒng)和方法用于惡意軟件檢測(cè)的系統(tǒng)和方法相關(guān)申請(qǐng)的交叉引用本申請(qǐng)要求2009年8月28日遞交的美國專利申請(qǐng)No.12/550,025的遞交日的權(quán)益,該美國專利申請(qǐng)No.12/550,025要求2008年8月四日遞交的美國臨時(shí)專利申請(qǐng)No.61/092,848的優(yōu)先權(quán)。二進(jìn)制文件時(shí)常在很多計(jì)算設(shè)備之間進(jìn)行傳送。接收二進(jìn)制文件的計(jì)算設(shè)備通常不知道該文件的來源或者其接收的代碼是否安全。為了確保計(jì)算設(shè)備的安全性,可以對(duì)二進(jìn)制文件進(jìn)行反匯編來確定該文件是否包含諸如病毒、蠕蟲、特洛伊木馬和/或類似的惡意軟件。通常,反匯編器將二進(jìn)制文件從機(jī)器語言翻譯為匯編語言。一些反匯編器是交互式的,并且允許熟練程序員對(duì)于反匯編器如何分析文件做出注解、修正、闡述或者決定。例如,反匯編器可以在出現(xiàn)新的函數(shù)或者特定代碼段時(shí)發(fā)出信號(hào)。當(dāng)所標(biāo)識(shí)的動(dòng)作發(fā)生時(shí),可以對(duì)該代碼的特定段加標(biāo)簽以供今后參考。然而,對(duì)未知的可執(zhí)行文件(executable)進(jìn)行分析可能是一個(gè)耗時(shí)的過程,其通常是由特殊訓(xùn)練的人員來手動(dòng)進(jìn)行的,或者通過使用統(tǒng)計(jì)方法自動(dòng)進(jìn)行。
發(fā)明內(nèi)容在描述本方法之前,應(yīng)當(dāng)理解本發(fā)明并不限于所描述的特定系統(tǒng)、方法或協(xié)議,因?yàn)樗鼈兛梢愿淖?。本文所使用的術(shù)語僅用于描述特定實(shí)施方案的目的,并且其并不意圖限制本公開的范圍。必須注意,如本文及所附權(quán)利要求書中所使用的,除非上下文另外明確指出,否則單數(shù)形式“一”(“a”和“an”)和“所述”包括復(fù)數(shù)指稱。除非另外定義,否則本文使用的所有技術(shù)和科學(xué)術(shù)語具有本領(lǐng)域普通技術(shù)人員所普遍理解的含義。使用在這里,術(shù)語“包括”意味著“包括但不限于”。在一實(shí)施方案中,一種自動(dòng)識(shí)別惡意軟件的方法可以包括通過專家系統(tǒng)知識(shí)庫接收來自二進(jìn)制文件的匯編語言序列;識(shí)別來自所述接收的匯編語言序列的指令序列;以及通過所述專家系統(tǒng)知識(shí)庫將所述指令序列歸類為有威脅的、無威脅的或不可歸類的,所述歸類操作通過應(yīng)用所述專家系統(tǒng)知識(shí)庫中的一個(gè)或更多個(gè)規(guī)則到所述指令序列來進(jìn)行。如果所述指令序列被歸類為有威脅的,可以發(fā)送信息到代碼分析部件并可以通知使用者所述二進(jìn)制文件包含惡意軟件。所述信息可以包括以下內(nèi)容中的一項(xiàng)或更多項(xiàng)所述指令序列;標(biāo)簽,所述標(biāo)簽包括這樣的指示,即所述指令序列是有威脅的;以及針對(duì)所述指令序列的至少一部分對(duì)來自所述二進(jìn)制文件中的一個(gè)或更多個(gè)其他匯編語言序列進(jìn)行搜索的請(qǐng)求。在一實(shí)施方案中,一種自動(dòng)識(shí)別惡意軟件的方法可以包括通過專家系統(tǒng)知識(shí)庫接收來自二進(jìn)制文件的匯編語言序列;識(shí)別來自所述接收的匯編語言序列的指令序列;以及通過所述專家系統(tǒng)知識(shí)庫將所述指令序列歸類為有威脅的、無威脅的或不可歸類的,所述歸類操作通過應(yīng)用所述專家系統(tǒng)知識(shí)庫中的一個(gè)或更多個(gè)規(guī)則到所述指令序列來進(jìn)行。如果所述指令序列被歸類為無威脅的,可以發(fā)送信息到代碼分析部件并可以請(qǐng)求第二指令序列。所述信息可以包括以下內(nèi)容中的一項(xiàng)或更多項(xiàng)所述指令序列;以及標(biāo)簽,所述標(biāo)簽包括這樣的指示,即所述指令序列是無威脅的。在一實(shí)施方案中,一種自動(dòng)識(shí)別惡意軟件的方法可以包括通過專家系統(tǒng)知識(shí)庫接收來自二進(jìn)制文件的匯編語言序列;識(shí)別來自所述接收的匯編語言序列的指令序列;以及通過所述專家系統(tǒng)知識(shí)庫將所述指令序列歸類為有威脅的、無威脅的或不可歸類的,所述歸類操作通過應(yīng)用所述專家系統(tǒng)知識(shí)庫中的一個(gè)或更多個(gè)規(guī)則到所述指令序列來進(jìn)行。如果所述指令序列被歸類為不可歸類的,所述方法可以包括發(fā)送重新分析所述匯編語言序列的請(qǐng)求到代碼分析部件請(qǐng)求;接收新指令序列,所述新指令序列對(duì)應(yīng)于所述重新分析的匯編語言序列;以及歸類所述新指令序列為有威脅的、無威脅的或不可歸類的。在一實(shí)施方案中,一種自動(dòng)識(shí)別惡意軟件的方法可以包括通過代碼分析部件分析二進(jìn)制文件來生成匯編語言序列和相應(yīng)的指令序列;發(fā)送所述指令序列到專家系統(tǒng)知識(shí)庫;以及從所述專家系統(tǒng)知識(shí)庫接收與所述指令序列相關(guān)聯(lián)的歸類信息。如果所述歸類信息將所述指令序列標(biāo)識(shí)為有威脅的,所述方法可以包括從所述二進(jìn)制文件識(shí)別一個(gè)或更多個(gè)其他匯編語言序列,所示二進(jìn)制文件包括所述指令序列的至少一部分,以及發(fā)送所述已識(shí)別的匯編語言序列的至少一個(gè)到所述專家系統(tǒng)知識(shí)庫。如果所述歸類信息將所述指令序列識(shí)別為無威脅的,所述方法可以包括發(fā)送第二指令序列到所述專家系統(tǒng)知識(shí)庫。如果所述歸類信息將所述指令序列識(shí)別為不可歸類的,所述方法可以包括重新分析所述匯編語言序列來產(chǎn)生新指令序列,以及發(fā)送所述新指令序列到所述專家系統(tǒng)知識(shí)庫。在一實(shí)施方案中,一種用于自動(dòng)識(shí)別惡意軟件的系統(tǒng)可以包括代碼分析部件,所述代碼分析部件被配置為從二進(jìn)制文件識(shí)別匯編語言序列,其中所述匯編語言序列包括一個(gè)或更多個(gè)指令序列;以及專家系統(tǒng)知識(shí)庫,所述專家系統(tǒng)知識(shí)庫與所述代碼分析部件通信。所述專家系統(tǒng)知識(shí)庫可以被配置為使用一個(gè)或更多個(gè)規(guī)則來歸類所述指令序列為有威脅的、無威脅的或不可歸類的。參照以下描述和附圖,將清楚本發(fā)明的方面、特征、益處和優(yōu)點(diǎn),在附圖中圖1圖示根據(jù)一實(shí)施方案的示例性惡意軟件檢測(cè)系統(tǒng)。圖2圖示根據(jù)一實(shí)施方案的示例性專家系統(tǒng)知識(shí)庫。圖3圖示根據(jù)一實(shí)施方案的用于檢測(cè)和分析惡意軟件的示例性方法的流程圖。圖4圖示根據(jù)一實(shí)施方案、可以用于包含或?qū)崿F(xiàn)程序指令的示例性系統(tǒng)的框圖。圖5和圖6圖示根據(jù)一實(shí)施方案的示例性指令序列。具體實(shí)施例方式在描述本方法之前,應(yīng)當(dāng)理解本發(fā)明并不限于所描述的特定系統(tǒng)、方法或協(xié)議,因?yàn)樗鼈兛梢愿淖?。本文所使用的術(shù)語僅用于描述特定實(shí)施方案的目的,并且其并不意圖限制本公開的范圍。如本文及所附權(quán)利要求書中所使用的,除非上下文另外明確指出,否則單數(shù)形式“一”(“a”和“an”)和“所述”包括復(fù)數(shù)指稱。除非另外定義,否則本文使用的所有技術(shù)和科學(xué)術(shù)語具有本領(lǐng)域普通技術(shù)人員所普遍理解的含義。使用在這里,術(shù)語“包括”意味著“包括但不限于”。為了以下描述的目的,“節(jié)點(diǎn)”指匯編語言序列內(nèi)處理器所執(zhí)行的指令序列?!皡R編語言”指一種計(jì)算機(jī)編程語言,其實(shí)現(xiàn)數(shù)字機(jī)器碼的符號(hào)表示?!皡R編語言序列”指以匯編語言所編寫的節(jié)點(diǎn)序列?!岸M(jìn)制文件”指包括以二進(jìn)制格式編碼的數(shù)據(jù)的計(jì)算機(jī)文件。可執(zhí)行文件是一類二進(jìn)制文件。“惡意軟件”是設(shè)計(jì)來干擾、潛入或損害計(jì)算機(jī)系統(tǒng)的有惡意的軟件。惡意軟件的例子包括病毒、蠕蟲、特洛伊木馬、廣告軟件、間諜軟件、后門和/或類似軟件?!皩<蚁到y(tǒng)”是一種人工智能軟件和/或固件,其被設(shè)計(jì)來在特定問題領(lǐng)域模擬人們的決策過程。圖1圖示根據(jù)一實(shí)施方案的惡意軟件檢測(cè)系統(tǒng)。惡意軟件檢測(cè)系統(tǒng)可以包括代碼分析部件100、專家系統(tǒng)知識(shí)庫200和/或連接器邏輯部件150。在一實(shí)施方案中,代碼分析部件100、專家系統(tǒng)知識(shí)庫200和/或連接器邏輯部件150可以使用軟件、硬件或軟件和硬件的組合來實(shí)現(xiàn)。在一實(shí)施方案中,代碼分析部件100、專家系統(tǒng)知識(shí)庫200和/或連接器邏輯部件150可以駐留在同一計(jì)算設(shè)備上??商鎿Q地,代碼分析部件100、專家系統(tǒng)知識(shí)庫200和/或連接器邏輯部件150可以以彼此通信的方式駐留在不同計(jì)算設(shè)備上。在一實(shí)施方案中,代碼分析部件100可以分析例如但不限于可執(zhí)行文件的二進(jìn)制文件。在一實(shí)施方案中,代碼分析部件100可以以靜態(tài)或者動(dòng)態(tài)方式分析二進(jìn)制文件。靜態(tài)分析可以包括分析并非當(dāng)前正在執(zhí)行的二進(jìn)制文件。相比之下,動(dòng)態(tài)分析可以包括在二進(jìn)制文件正在執(zhí)行時(shí)分析該二進(jìn)制文件。在一實(shí)施方案中,代碼分析部件可以使用硬件、軟件或硬件和軟件的組合來實(shí)現(xiàn)。在一實(shí)施方案中,代碼分析部件100可以包括反匯編器、調(diào)試器、解編譯器和/或類似部件。例如,代碼分析部件100可以是諸如IDAPro的反匯編器。代碼分析部件可以分析二進(jìn)制文件來創(chuàng)建一匯編語言序列。在一實(shí)施方案中,匯編語言序列可以包括二進(jìn)制文件的人類可讀表示。代碼分析部件100可以包括可以用來從二進(jìn)制文件創(chuàng)建匯編語言序列的內(nèi)部規(guī)則和/或操作。代碼分析部件100可以分析匯編語言序列來確定一指令序列。在一實(shí)施方案中,代碼分析部件100可以與外部設(shè)備交互來分析二進(jìn)制文件。例如,如下討論的,代碼分析部件100可以與專家系統(tǒng)知識(shí)庫200通信。如圖1所圖示的,惡意軟件檢測(cè)系統(tǒng)可以包括專家系統(tǒng)知識(shí)庫200。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫200可以包括人類在特定領(lǐng)域中的專業(yè)知識(shí)的表征。例如,專家系統(tǒng)知識(shí)庫200可以包括信息、數(shù)據(jù)、規(guī)則等來對(duì)經(jīng)驗(yàn)豐富的計(jì)算機(jī)分析師的知識(shí)和實(shí)踐進(jìn)行建模。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫200可以使用C語言集成生產(chǎn)系統(tǒng)(“CLIPS”)來實(shí)現(xiàn)——CLIPS是一種可以用于創(chuàng)建專家系統(tǒng)的編程語言和軟件工具。圖2圖示根據(jù)一實(shí)施方案的專家系統(tǒng)知識(shí)庫。專家系統(tǒng)知識(shí)庫200可以包括內(nèi)部規(guī)則和/或操作。在一實(shí)施方案中,這些內(nèi)部規(guī)則和/或操作可以被應(yīng)用到來自匯編語言序列的指令序列,以確定所述匯編語言序列是否包含惡意軟件。在一實(shí)施方案中,所述內(nèi)部規(guī)則和/或操作可以表示人類專業(yè)知識(shí)的編碼。在一實(shí)施方案中,領(lǐng)域?qū)<?05可以填入到(populate)專家系統(tǒng)知識(shí)庫200。領(lǐng)域?qū)<铱梢詾椋幌抻?,具有分析惡意軟件的專業(yè)知識(shí)的人。在一實(shí)施方案中,領(lǐng)域?qū)<?05可以是這樣的計(jì)算設(shè)備,其被配置來為專家系統(tǒng)知識(shí)庫200提供可以表示人類專業(yè)知識(shí)的編碼的內(nèi)部規(guī)則和/或操作。例如,一計(jì)算設(shè)備可以自動(dòng)地為專家系統(tǒng)知識(shí)庫200提供對(duì)一條或更多條內(nèi)部規(guī)則和/或操作的更新、改進(jìn)等。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫200可以填入有二進(jìn)制文件結(jié)構(gòu)210。二進(jìn)制文件結(jié)構(gòu)可以是這樣的模板,其描繪二進(jìn)制文件的一個(gè)或更多個(gè)部分,,和/或描繪二進(jìn)制文件中多個(gè)部分的序列。二進(jìn)制文件結(jié)構(gòu)210可以用于分析文件結(jié)構(gòu)是否恰當(dāng)。例如,可以分析二進(jìn)制文件結(jié)構(gòu)210來確定該文件上的頭部是否符合一協(xié)議。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫200可以填入有蠕蟲界定操作215。蠕蟲界定操作215可以識(shí)別這樣的指令序列所述指令序列復(fù)制匯編語言序列。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫200可以填入有特洛伊木馬界定操作220。特洛伊木馬界定操作220可以識(shí)別匯編語言序列中這樣的指令序列所述指令序列與一個(gè)或更多個(gè)特洛伊木馬相關(guān)聯(lián)。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以填入有病毒界定操作225。病毒界定操作225可以識(shí)別匯編語言序列中的自我復(fù)制的指令序列。專家系統(tǒng)知識(shí)庫200可以包括可附加和/或可替換的操作?;仡^參照?qǐng)D1,惡意軟件檢測(cè)系統(tǒng)可以包括連接器邏輯部件150。連接器邏輯部件150可以使能(enable)代碼分析部件100和專家系統(tǒng)知識(shí)庫200之間的通信。在一實(shí)施方案中,從代碼分析部件100發(fā)送的匯編語言序列可以呈專家系統(tǒng)知識(shí)庫200不能直接處理的格式。代碼分析部件100可以將該匯編語言序列傳送到連接器邏輯部件150。連接器邏輯部件150可以將指令序列轉(zhuǎn)換為專家系統(tǒng)知識(shí)庫200可以處理的格式。連接器邏輯部件150可以將新近轉(zhuǎn)換的指令序列發(fā)送到專家系統(tǒng)知識(shí)庫200。類似地,連接器邏輯部件可以從專家系統(tǒng)知識(shí)庫200獲得信息。連接器邏輯部件可以將來自專家系統(tǒng)知識(shí)庫200的信息轉(zhuǎn)換為代碼分析部件100可讀的格式,并且將經(jīng)轉(zhuǎn)換的信息傳輸?shù)酱a分析部件。圖3描繪根據(jù)一實(shí)施方案、用于檢測(cè)和分析惡意軟件的方法的流程圖。二進(jìn)制文件可以被代碼分析部件接收。代碼分析部件可以分析該文件來獲得匯編語言序列和指令序列。代碼分析部件可以經(jīng)由連接器邏輯部件將所述匯編語言序列連同所述指令序列發(fā)送到專家系統(tǒng)知識(shí)庫。專家系統(tǒng)知識(shí)庫可以接收300所述匯編語言序列。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以從所述匯編語言序列識(shí)別305所述指令序列。專家系統(tǒng)知識(shí)庫可以應(yīng)用內(nèi)部操作和/或規(guī)則來對(duì)所述指令序列進(jìn)行歸類315。在一實(shí)施方案中,歸類可以被用來確定該指令序列是否包含惡意軟件。例如,在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以將所述指令序列歸類為無威脅的315、有威脅的330或者不可歸類的345。在本公開的范圍內(nèi)可以使用附加和/或可替換的歸類。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以使用一條或更多條內(nèi)部規(guī)則和/或操作來遍歷所接收指令序列的節(jié)點(diǎn)和分支。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫向所接收的指令序列應(yīng)用一組優(yōu)先規(guī)則(precedentialrule)。優(yōu)先規(guī)則集中的每條規(guī)則可以具有相對(duì)于該集合中其他優(yōu)先規(guī)則的排序。在一實(shí)施方案中,所述規(guī)則可以基于每條規(guī)則與指令序列之間的匹配次數(shù)來排序。例如,與一規(guī)則的匹配準(zhǔn)則最類似的指令序列可以導(dǎo)致該規(guī)則被賦予針對(duì)給定遍歷的最高優(yōu)先級(jí)(priority)。可替換地,與一規(guī)則的匹配準(zhǔn)則最不類似的指令序列可以導(dǎo)致該規(guī)則被賦予針對(duì)給定遍歷的最低優(yōu)先級(jí)。CLIPS提供諸如復(fù)雜度策略和簡單度策略的沖突解決策略,所述復(fù)雜度策略和簡單度策略分別向最多和最少次特定匹配賦予優(yōu)先權(quán)(precedence)。在一實(shí)施方案中,這樣的策略可以被采用來對(duì)與指令序列最特定匹配的那些規(guī)則進(jìn)行排序。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以向指令序列應(yīng)用與最高優(yōu)先權(quán)相關(guān)聯(lián)的規(guī)則。在一實(shí)施方案中,來自所述規(guī)則組的一條或更多條額外的優(yōu)先規(guī)則可以按照它們的優(yōu)先權(quán)次序應(yīng)用到指令序列,直到所述指令序列被歸類或者直到已經(jīng)應(yīng)用了所有優(yōu)先規(guī)則。在應(yīng)用一條或多條規(guī)則時(shí),如果專家系統(tǒng)知識(shí)庫從頭到尾遍歷指令序列,則該指令序列可以被歸類為無威脅的315。例如,圖5圖示根據(jù)一實(shí)施方案的示例性指令序列。如果專家系統(tǒng)知識(shí)庫能夠從頭(指令1505)到尾(指令8510)遍歷整個(gè)指令序列500,則該指令序列500可以被歸類為無威脅的。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以向代碼分析部件傳輸320信息,所述信息表明所述指令序列是無威脅的。在一實(shí)施方案中,所述信息可以包括附于所述指令序列、指示所述指令序列為無威脅的標(biāo)簽。在一實(shí)施方案中,響應(yīng)于將指令序列歸類為無威脅的,專家系統(tǒng)知識(shí)庫可以從代碼分析部件請(qǐng)求325具有新指令序列的新匯編序列來進(jìn)行分析。在一實(shí)施方案中,如果專家系統(tǒng)知識(shí)庫不能遍歷指令序列的每條指令,則專家系統(tǒng)知識(shí)庫可以將該指令序列歸類為有威脅的330。例如,專家系統(tǒng)知識(shí)庫可以通過遍歷指令序列的指令來分析該指令序列,以確定是否存在惡意軟件。例如,循環(huán)可能是惡意軟件的指示標(biāo)志(indicator)。如果在遍歷期間專家系統(tǒng)知識(shí)庫到達(dá)一其已經(jīng)分析過的指令,則專家系統(tǒng)知識(shí)庫可以確定該指令序列形成循環(huán)。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以將具有一個(gè)或更多個(gè)循環(huán)的指令序列歸類為有威脅的。圖6圖示出根據(jù)一實(shí)施方案的示例性指令序列。如圖6所圖示的,指令序列600可以被歸類為有威脅的,因?yàn)樗◤闹噶?605到指令4610的循環(huán)。在一實(shí)施方案中,可以指示惡意軟件或其他惡性行為的其他活動(dòng)可以包括加密/解密例程、復(fù)制代碼、按鍵記錄、獨(dú)立發(fā)起網(wǎng)絡(luò)通信、與已知惡意方或可疑網(wǎng)絡(luò)主機(jī)通信等等。這樣,包括這些活動(dòng)之一或更多的指令序列可以被歸類為有威脅的。在本公開的范圍內(nèi),附加和/或可替換的活動(dòng)可以來指示惡意軟件。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以向代碼分析部件傳輸335信息,所述信息表明所述指令序列是有威脅的。所述信息可以經(jīng)由連接器邏輯部件發(fā)送到代碼分析部件,所述連接器邏輯部件可以將所述信息翻譯為代碼分析部件可讀的形式。在一實(shí)施方案中,所述信息可以包括附于所述指令序列、指示所述指令序列為有威脅的標(biāo)簽。在一實(shí)施方案中,所述信息可以包括對(duì)其他匯編語言序列進(jìn)行搜索來查找之前曾分析340過的指令序列的至少一部分的請(qǐng)求。例如,代碼分析部件可以對(duì)其他匯編語言序列進(jìn)行搜索來查找在前一實(shí)施例中討論的循環(huán)。在一實(shí)施方案中,代碼分析部件可以使用其內(nèi)部操作和/或規(guī)則來翻譯和/或分析所述信息,以確定指令序列的至少一部分是否存在于匯編語言序列內(nèi)部。如果代碼分析部件找到相同的指令序列或者指令序列的一部分,則代碼分析部件可以將相關(guān)的匯編語言序列和指令序列發(fā)送給專家系統(tǒng)知識(shí)庫。在一實(shí)施方案中,專家系統(tǒng)知識(shí)庫可以確定345指令序列是否是不可歸類的。如果專家系統(tǒng)知識(shí)庫不能確定指令序列是否是有威脅的,則該指令序列可以被標(biāo)識(shí)為不可歸類的。例如,創(chuàng)建了二進(jìn)制文件的程序員可能曾故意使用方法來模糊該文件的功用,妨礙代碼分析部件發(fā)出正確的指令序列。這樣,代碼分析部件可能經(jīng)由連接器邏輯部件向?qū)<蚁到y(tǒng)知識(shí)庫發(fā)送非完整或者荒謬的指令序列。專家系統(tǒng)知識(shí)庫可以使用其內(nèi)部規(guī)則和/或操作分析指令序列的每個(gè)節(jié)點(diǎn)?;谄浞治?,專家系統(tǒng)知識(shí)庫可以向代碼分析部件傳輸350請(qǐng)求來重新解釋特定節(jié)點(diǎn)或者一系列節(jié)點(diǎn)。例如,專家系統(tǒng)知識(shí)庫可以請(qǐng)求代碼分析部件針對(duì)特定節(jié)點(diǎn)生成新的指令序列。在一實(shí)施方案中,所述請(qǐng)求可以包括針對(duì)代碼分析部件的在分析匯編序列時(shí)可替換的考量因素。例如,在某些情況下,代碼分析部件可能不能夠恰當(dāng)?shù)胤治鰠R編序列。這樣,專家系統(tǒng)知識(shí)庫可能有必要向代碼分析部件提供允許分析繼續(xù)下去的信息。例如,專家系統(tǒng)知識(shí)庫可以檢測(cè)出一非正確的指令序列應(yīng)當(dāng)被更改或忽略以允許分析繼續(xù)下去。在一實(shí)施方案中,該信息可以被包括在給代碼分析部件的請(qǐng)求中。在一實(shí)施方案中,代碼分析部件可以使用其內(nèi)部規(guī)則和/或操作來分析匯編語言序列和指令序列。專家系統(tǒng)知識(shí)庫可以經(jīng)由連接器邏輯部件從代碼分析部件接收345經(jīng)分析的匯編語言序列和新的指令序列。專家系統(tǒng)知識(shí)庫可以遍歷該新的指令序列來確定其歸類。圖4描繪根據(jù)一實(shí)施方案、可以用于包含或者實(shí)現(xiàn)程序指令的示例性系統(tǒng)的框圖。參照?qǐng)D4,總線400充當(dāng)將硬件其他圖示組件進(jìn)行互連的主信息通道。CPU405可以是系統(tǒng)的中央處理單元,進(jìn)行執(zhí)行程序所需的運(yùn)算和邏輯操作。只讀存儲(chǔ)器(R0M)410和隨機(jī)訪問存儲(chǔ)器(RAM)415可以構(gòu)成示例性存儲(chǔ)器設(shè)備或儲(chǔ)存介質(zhì)??刂破?20將一個(gè)或更多個(gè)可選的盤驅(qū)動(dòng)接口到系統(tǒng)總線400。這些盤驅(qū)動(dòng)可以包括例如外部或內(nèi)部DVD驅(qū)動(dòng)425、⑶ROM驅(qū)動(dòng)430或硬盤驅(qū)動(dòng)435。如之前指示的,這些各種盤驅(qū)動(dòng)和盤控制器是可選的設(shè)備。程序指令可以儲(chǔ)存在ROM410和/或RAM415中??蛇x地,程序指令可以儲(chǔ)存在例如應(yīng)驅(qū)動(dòng)、致密盤、數(shù)字盤、存儲(chǔ)器的計(jì)算機(jī)可讀儲(chǔ)存介質(zhì)或任何其他實(shí)體記錄介質(zhì)上??蛇x顯示接口面440可以允許來自總線400的信息以音頻、圖形或者字母數(shù)字形式顯示在顯示器445上。可以使用各種通信端口450進(jìn)行與外部設(shè)備的通信。除了標(biāo)準(zhǔn)的計(jì)算機(jī)型部件外,所述硬件還可以包括接口455,該接口455允許從諸如鍵盤460的輸入設(shè)備或者諸如鼠標(biāo)、遙控器、觸摸板或觸摸屏、指點(diǎn)設(shè)備和/或游戲桿的其他輸入設(shè)備465接收數(shù)據(jù)。應(yīng)當(dāng)意識(shí)到,上述公開的各種和其他特征以及功能或者其替換方案可以合乎期望地組合成很多其他不同的系統(tǒng)或應(yīng)用。還有,本領(lǐng)域技術(shù)人員可以后續(xù)作出各種當(dāng)前未預(yù)見或者未料想到的替換方案、修改、改動(dòng)或其改進(jìn),所附實(shí)施方案也意圖包括這些替換方案、修改、改動(dòng)或其改進(jìn)。權(quán)利要求1.一種自動(dòng)識(shí)別惡意軟件的方法,所述方法包括通過專家系統(tǒng)知識(shí)庫接收來自二進(jìn)制文件的匯編語言序列;識(shí)別來自所述接收的匯編語言序列的指令序列;通過所述專家系統(tǒng)知識(shí)庫將所述指令序列歸類為有威脅的、無威脅的或不可歸類的,所述歸類操作通過應(yīng)用所述專家系統(tǒng)知識(shí)庫中的一個(gè)或更多個(gè)規(guī)則到所述指令序列來進(jìn)行;如果所述指令序列被歸類為有威脅的,發(fā)送信息到代碼分析部件,其中所述信息包括以下內(nèi)容中的一項(xiàng)或更多項(xiàng)所述指令序列;標(biāo)簽,所述標(biāo)簽包括這樣的指示,即所述指令序列是有威脅的;以及針對(duì)所述指令序列的至少一部分對(duì)來自所述二進(jìn)制文件中的一個(gè)或更多個(gè)其他匯編語言序列進(jìn)行搜索的請(qǐng)求;以及通知使用者所述二進(jìn)制文件包含惡意軟件。2.如權(quán)利要求1的方法,其中應(yīng)用一個(gè)或更多個(gè)規(guī)則的操作包括應(yīng)用由C語言集成生產(chǎn)系統(tǒng)語言寫成的一個(gè)或更多個(gè)規(guī)則。3.如權(quán)利要求1的方法,其中歸類所述指令序列的操作包括以下內(nèi)容中的一項(xiàng)或更多項(xiàng)應(yīng)用一個(gè)或更多個(gè)規(guī)則到所述指令序列來判定所述二進(jìn)制文件的二進(jìn)制文件結(jié)構(gòu)是否恰當(dāng);應(yīng)用一個(gè)或更多個(gè)蠕蟲界定操作來判定所述指令序列是否包括復(fù)制所述匯編語言序列中的一個(gè)或更多個(gè)指令;應(yīng)用一個(gè)或更多個(gè)特洛伊木馬界定操作來判定所述指令序列是否包括與一個(gè)或更多個(gè)特洛伊木馬相關(guān)聯(lián)的一個(gè)或更多個(gè)指令;以及應(yīng)用一個(gè)或更多個(gè)病毒界定操作來判定所述指令序列是否包括一個(gè)或更多個(gè)自我復(fù)制指令。4.如權(quán)利要求1的方法,其中應(yīng)用一個(gè)或更多個(gè)規(guī)則的操作包括應(yīng)用優(yōu)先規(guī)則的集合到所述指令序列,其中所述優(yōu)先規(guī)則的集合包括多個(gè)優(yōu)先規(guī)則,其中每個(gè)優(yōu)先規(guī)則與相對(duì)于所述集合中其他優(yōu)先規(guī)則的優(yōu)先權(quán)相關(guān)聯(lián)。5.如權(quán)利要求4的方法,其中應(yīng)用優(yōu)先規(guī)則的集合的操作包括按優(yōu)先權(quán)順序應(yīng)用所述優(yōu)先規(guī)則到所述指令序列,直至所述指令序列被歸類或每個(gè)優(yōu)先規(guī)則都已經(jīng)被應(yīng)用。6.如權(quán)利要求4的方法,其中應(yīng)用優(yōu)先規(guī)則的集合的操作包括通過將優(yōu)先權(quán)給予具有匹配于所述指令序列的更高次數(shù)的規(guī)則,來排序所述優(yōu)先規(guī)則。7.如權(quán)利要求1的方法,其中歸類所述指令序列的操作包括如果所述指令序列不能被從頭到尾遍歷,則歸類所述指令序列為有威脅的。8.如權(quán)利要求1的方法,其中,針對(duì)所述指令序列中每個(gè)節(jié)點(diǎn),歸類所述指令序列的操作包括遍歷所述節(jié)點(diǎn);判定所述節(jié)點(diǎn)是否在先前已經(jīng)被遍歷;以及如果所述節(jié)點(diǎn)在先前已被遍歷,歸類所述指令序列為有威脅的。9.如權(quán)利要求1的方法,其中歸類所述指令序列的操作包括如果所述指令序列包含以下內(nèi)容中的一項(xiàng)或更多項(xiàng),歸類所述指令序列為有威脅的加密例程;解密例程;以及用于復(fù)制所述指令序列的至少一部分的一個(gè)或更多個(gè)指令。10.一種自動(dòng)識(shí)別惡意軟件的方法,所述方法包括通過專家系統(tǒng)知識(shí)庫接收來自二進(jìn)制文件的匯編語言序列;識(shí)別來自所述接收的匯編語言序列的指令序列;通過所述專家系統(tǒng)知識(shí)庫將所述指令序列歸類為有威脅的、無威脅的或不可歸類的,所述歸類操作通過應(yīng)用所述專家系統(tǒng)知識(shí)庫中的一個(gè)或更多個(gè)規(guī)則到所述指令序列來進(jìn)行;如果所述指令序列被歸類為無威脅的,發(fā)送信息到代碼分析部件,其中所述信息包括以下內(nèi)容中的一項(xiàng)或更多項(xiàng)所述指令序列;以及標(biāo)簽,所述標(biāo)簽包括這樣的指示,即所述指令序列是無威脅的;以及請(qǐng)求第二指令序列。11.如權(quán)利要求10的方法,其中歸類所述指令序列的操作包括如果所述專家系統(tǒng)遍歷所述指令序列全體,則歸類所述指令序列為無威脅的。12.一種自動(dòng)識(shí)別惡意軟件的方法,所述方法包括通過專家系統(tǒng)知識(shí)庫接收來自二進(jìn)制文件的匯編語言序列;識(shí)別來自所述接收的匯編語言序列的指令序列;通過所述專家系統(tǒng)知識(shí)庫將所述指令序列歸類為有威脅的、無威脅的或不可歸類的,所述歸類操作通過應(yīng)用所述專家系統(tǒng)知識(shí)庫中的一個(gè)或更多個(gè)規(guī)則到所述指令序列來進(jìn)行;以及,如果所述指令序列被歸類為不可歸類的發(fā)送重新分析所述匯編語言序列的請(qǐng)求到代碼分析部件請(qǐng)求;接收新指令序列,所述新指令序列對(duì)應(yīng)于所述重新分析的匯編語言序列;以及歸類所述新指令序列為有威脅的、無威脅的或不可歸類的。13.一種自動(dòng)識(shí)別惡意軟件的方法,所述方法包括通過代碼分析部件分析二進(jìn)制文件來生成匯編語言序列和相應(yīng)的指令序列;發(fā)送所述指令序列到專家系統(tǒng)知識(shí)庫;從所述專家系統(tǒng)知識(shí)庫接收與所述指令序列相關(guān)聯(lián)的歸類信息;如果所述歸類信息將所述指令序列標(biāo)識(shí)為有威脅的從所述二進(jìn)制文件識(shí)別一個(gè)或更多個(gè)其他匯編語言序列,所示二進(jìn)制文件包括所述指令序列的至少一部分,以及發(fā)送所述已識(shí)別的匯編語言序列的至少一個(gè)到所述專家系統(tǒng)知識(shí)庫;如果所述歸類信息將所述指令序列識(shí)別為無威脅的,發(fā)送第二指令序列到所述專家系統(tǒng)知識(shí)庫;以及如果所述歸類信息將所述指令序列識(shí)別為不可歸類的重新分析所述匯編語言序列來產(chǎn)生新指令序列,以及發(fā)送所述新指令序列到所述專家系統(tǒng)知識(shí)庫。14.如權(quán)利要求13的系統(tǒng),其中分析二進(jìn)制文件的操作包括靜態(tài)分析所述二進(jìn)制文件和動(dòng)態(tài)分析所述二進(jìn)制文件中的一個(gè)或更多個(gè)。15.一種用于自動(dòng)識(shí)別惡意軟件的系統(tǒng),所述系統(tǒng)包括代碼分析部件,所述代碼分析部件被配置為從二進(jìn)制文件識(shí)別匯編語言序列,其中所述匯編語言序列包括一個(gè)或更多個(gè)指令序列;以及專家系統(tǒng)知識(shí)庫,所述專家系統(tǒng)知識(shí)庫與所述代碼分析部件通信,其中所述專家系統(tǒng)知識(shí)庫被配置為使用一個(gè)或更多個(gè)規(guī)則來歸類所述指令序列為有威脅的、無威脅的或不可歸類的。16.如權(quán)利要求15的系統(tǒng),進(jìn)一步包括連接器邏輯部件,所述連接器邏輯部件與所述代碼分析部件和所述專家系統(tǒng)知識(shí)庫通信,其中所述連接器邏輯部件被配置來使所述代碼分析部件和所述專家系統(tǒng)知識(shí)庫之間能夠通信。17.如權(quán)利要求16的系統(tǒng),其中所述連接器邏輯部件被配置為實(shí)現(xiàn)以下內(nèi)容中的一項(xiàng)或更多項(xiàng)轉(zhuǎn)換所述指令序列到所述專家系統(tǒng)知識(shí)庫可處理的格式;以及轉(zhuǎn)換從所述專家系統(tǒng)知識(shí)庫接收的信息到所述代碼分析部件可處理的格式。18.如權(quán)利要求14的系統(tǒng),其中所述專家系統(tǒng)知識(shí)庫被填入以下內(nèi)容中的一項(xiàng)或更多項(xiàng)C語言集成生產(chǎn)系統(tǒng)規(guī)則;二進(jìn)制文件結(jié)構(gòu);蠕蟲界定操作;特洛伊木馬界定操作;以及病毒界定操作。19.如權(quán)利要求14的系統(tǒng),其中所述專家系統(tǒng)知識(shí)庫被配置來通過以下內(nèi)容中的一項(xiàng)或更多項(xiàng)來歸類所述指令序列應(yīng)用一個(gè)或更多個(gè)規(guī)則到所述指令序列來判定所述二進(jìn)制文件的二進(jìn)制文件結(jié)構(gòu)是否恰當(dāng);應(yīng)用一個(gè)或更多個(gè)蠕蟲界定操作來判定所述指令序列是否包括復(fù)制所述匯編語言序列中的一個(gè)或更多個(gè)指令;應(yīng)用一個(gè)或更多個(gè)特洛伊木馬界定操作來判定所述指令序列是否包括與一個(gè)或更多個(gè)特洛伊木馬相關(guān)的一個(gè)或更多個(gè)指令;以及應(yīng)用一個(gè)或更多個(gè)病毒界定操作來判定所述指令序列是否包括一個(gè)或更多個(gè)自我復(fù)制指令。20.如權(quán)利要求14的系統(tǒng),其中所述專家系統(tǒng)知識(shí)庫被配置為應(yīng)用優(yōu)先規(guī)則的集合到所述指令序列,其中所述優(yōu)先規(guī)則的集合包括多個(gè)優(yōu)先規(guī)則,其中每個(gè)優(yōu)先規(guī)則與相對(duì)于所述集合中其他優(yōu)先規(guī)則的優(yōu)先權(quán)相關(guān)聯(lián)。21.如權(quán)利要求20的系統(tǒng),其中所述專家系統(tǒng)知識(shí)庫進(jìn)一步被配置為按優(yōu)先權(quán)順序應(yīng)用所述優(yōu)先規(guī)則到所述指令序列,直至所述指令序列被歸類或每個(gè)優(yōu)先規(guī)則都已經(jīng)被應(yīng)用。22.如權(quán)利要求20的系統(tǒng),其中所述專家系統(tǒng)知識(shí)庫進(jìn)一步被配置為通過將優(yōu)先權(quán)給予具有匹配于所述指令序列的更高次數(shù)的規(guī)則,來排序所述優(yōu)先規(guī)則。全文摘要一種自動(dòng)識(shí)別惡意軟件的方法可以包括通過專家系統(tǒng)知識(shí)庫接收來自二進(jìn)制文件的匯編語言序列;識(shí)別來自所述接收的匯編語言序列的指令序列;以及通過所述專家系統(tǒng)知識(shí)庫將所述指令序列歸類為有威脅的、無威脅的或不可歸類的,所述歸類操作通過應(yīng)用所述專家系統(tǒng)知識(shí)庫中的一個(gè)或更多個(gè)規(guī)則到所述指令序列來進(jìn)行。如果所述指令序列被歸類為有威脅的,可以發(fā)送信息到代碼分析部件并可以通知使用者所述二進(jìn)制文件包含惡意軟件。所述信息可以包括以下內(nèi)容中的一項(xiàng)或更多項(xiàng)所述指令序列;標(biāo)簽,所述標(biāo)簽包括這樣的指示,即所述指令序列是有威脅的;以及針對(duì)所述指令序列的至少一部分對(duì)來自所述二進(jìn)制文件中的一個(gè)或更多個(gè)其他匯編語言序列進(jìn)行搜索的請(qǐng)求。文檔編號(hào)G06F21/00GK102203791SQ200980142930公開日2011年9月28日申請(qǐng)日期2009年8月31日優(yōu)先權(quán)日2008年8月29日發(fā)明者R·希克斯申請(qǐng)人:Avg技術(shù)捷克有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1