專利名稱:一種文件宏病毒的檢測(cè)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及計(jì)算機(jī)安全技術(shù)領(lǐng)域,特別是涉及ー種文件宏病毒的檢測(cè)方法和裝置。
背景技術(shù):
宏語言是ー類編程語言,其全部或多數(shù)計(jì)算是由擴(kuò)展宏完成的。宏語言在文本處理程序中應(yīng)用普遍,主要用來擴(kuò)展文本處理程序的功能,例如,Microsoft OfficeN采用宏語言實(shí)現(xiàn)對(duì)表格進(jìn)行動(dòng)態(tài)計(jì)算、設(shè)計(jì)交互窗ロ等宏功能。但是,病毒制作者也有可能利用宏語言功能強(qiáng)大、開發(fā)簡(jiǎn)單的優(yōu)點(diǎn),將其用于開發(fā)宏病毒。
宏病毒是ー種寄存在文檔或模板的宏中的計(jì)算機(jī)病毒。一旦打開這樣的文檔,其中的宏就會(huì)被執(zhí)行,于是宏病毒就會(huì)被激活,轉(zhuǎn)移到計(jì)算機(jī)上,并駐留在Normal模板上。從此以后,所有自動(dòng)保存的文檔都會(huì)“感染”上這種宏病毒,而且如果其他用戶打開了感染病毒的文檔,宏病毒又會(huì)轉(zhuǎn)移到他的計(jì)算機(jī)上。由于宏病毒藏于數(shù)據(jù)文件內(nèi),且其使用的腳本語法靈活多變,完成ー個(gè)功能有很多種寫法,故識(shí)別ー個(gè)文件是否有宏病毒非常困難?,F(xiàn)有的反病毒軟件所采用的反病毒方法幾乎都是依賴于病毒特征碼。由于計(jì)算機(jī)病毒通常都具有各自的身份等特征,當(dāng)一種計(jì)算機(jī)病毒出現(xiàn)后,首先找到該病毒具有的特征,依據(jù)該特征對(duì)該特征所表征的病毒進(jìn)行搜尋和處理;即現(xiàn)有技術(shù)對(duì)于已知宏病毒有一定的檢測(cè)能力。但是,由于宏病毒感染、發(fā)作在先,反毒在后;而宏語言是ー種腳本,稍作修改即可產(chǎn)生變種,甚至可以傳播過程中修改自身,每傳播一次就變化一次;故現(xiàn)有技術(shù)很難跟上宏病毒變化的速度,對(duì)未知宏病毒基本無檢測(cè)能力,反病毒效果較差??傊枰绢I(lǐng)域技術(shù)人員迫切解決的ー個(gè)技術(shù)問題就是如何能夠提高對(duì)未知宏病毒的檢測(cè)能力。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供ー種文件宏病毒的檢測(cè)方法和裝置,能夠提聞對(duì)文件宏病韋的檢測(cè)能力。為了解決上述問題,本發(fā)明實(shí)施例公開了ー種文件宏病毒的檢測(cè)方法,包括將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配;其中,所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼;依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒。優(yōu)選的,所述將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配的步驟,進(jìn)一歩包括在所述待檢測(cè)文件的宏代碼中存在匹配成功的行為代碼時(shí)得到匹配成功的匹配結(jié)果,以及,在所述待檢測(cè)文件的宏代碼中不存在匹配成功的行為代碼時(shí),得到匹配失敗的匹配結(jié)果;則所述依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒的步驟,進(jìn)一歩包括在所述匹配結(jié)果為匹配失敗時(shí),判別所述待檢測(cè)文件未感染宏病毒;在所述匹配結(jié)果為匹配成功時(shí),依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒。優(yōu)選的,所述依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒的步驟,進(jìn)一歩包括判斷所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼是否符合預(yù)設(shè)的危險(xiǎn)性條件,若是,則判別所述待檢測(cè)文件感染宏病毒,否則,判別所述待檢測(cè)文件未感染宏病毒?!?yōu)選的,所述預(yù)設(shè)的危險(xiǎn)性條件包括如下條件中的ー項(xiàng)或多項(xiàng)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)系數(shù)超過預(yù)設(shè)的危險(xiǎn)系數(shù)閾值;所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)等級(jí)超過預(yù)設(shè)的危險(xiǎn)等級(jí);待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的單個(gè)行為代碼,或者,出現(xiàn)了預(yù)設(shè)的行為代碼組合。優(yōu)選的,本發(fā)明實(shí)施例通過如下步驟構(gòu)造所述行為代碼庫(kù)收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼;將所述行為代碼保存至行為代碼庫(kù)。優(yōu)選的,所述收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼的步驟,進(jìn)一歩包括收集宏病毒樣本;依據(jù)宏代碼的語法,對(duì)所述宏病毒樣本的宏代碼進(jìn)行語義分析,從中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。優(yōu)選的,所述行為代碼包括函數(shù)名、函數(shù)變量名或者函數(shù)語句。優(yōu)選的,所述方法還包括 針對(duì)待檢測(cè)ExceI文件的工作表,若其自定義名稱中存在ExceI保留名稱,則判別所述待檢測(cè)Excel文件感染宏病毒。另ー方面,本發(fā)明實(shí)施例還公開了ー種文件宏病毒的檢測(cè)裝置,包括匹配模塊,用于將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配;其中,所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼;及判別模塊,用于依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒。優(yōu)選的,所述匹配模塊進(jìn)一歩包括匹配成功子模塊,用于在所述待檢測(cè)文件的宏代碼中存在匹配成功的行為代碼時(shí)得到匹配成功的匹配結(jié)果;以及匹配失敗子模塊,用于在所述待檢測(cè)文件的宏代碼中不存在匹配成功的行為代碼時(shí),得到匹配失敗的匹配結(jié)果;則所述判別模塊進(jìn)ー步包括第一判別子模塊,用于在所述匹配結(jié)果為匹配失敗時(shí),判別所述待檢測(cè)文件未感染宏病毒;
第二判別子模塊,用于在所述匹配結(jié)果為匹配成功時(shí),依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒。優(yōu)選的,所述第二判別子模塊進(jìn)一歩包括判斷単元,用于判斷所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼是否符合預(yù)設(shè)的危險(xiǎn)性條件,若是,則判別所述待檢測(cè)文件感染宏病毒,否則,判別所述待檢測(cè)文件未
感染宏病毒。優(yōu)選的,所述預(yù)設(shè)的危險(xiǎn)性條 件包括如下條件中的ー項(xiàng)或多項(xiàng)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)系數(shù)超過預(yù)設(shè)的危險(xiǎn)系數(shù)閾值;所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)等級(jí)超過預(yù)設(shè)的危險(xiǎn)等級(jí);待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的單個(gè)行為代碼,或者,出現(xiàn)了預(yù)設(shè)的行為代碼組合。優(yōu)選的,所述裝置還包括用于構(gòu)造所述行為代碼庫(kù)的構(gòu)造模塊,所述構(gòu)造模塊包括收集子模塊,用于收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼;保存子模塊,用于將所述行為代碼保存至行為代碼庫(kù)。優(yōu)選的,所述收集子模塊進(jìn)一歩包括 樣本收集單元,用于收集宏病毒樣本;分析提取單元,用于依據(jù)宏代碼的語法,對(duì)所述宏病毒樣本的宏代碼進(jìn)行語義分祈,從中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。優(yōu)選的,所述行為代碼包括函數(shù)名、函數(shù)變量名或者函數(shù)語句。優(yōu)選的,所述裝置還包括工作表檢測(cè)模塊,用于針對(duì)待檢測(cè)Excel文件的工作表,若其自定義名稱中存在Excel保留名稱,則判別所述待檢測(cè)Excel文件感染宏病毒。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)相對(duì)于現(xiàn)有技術(shù)依賴于已知宏病毒的特征碼進(jìn)行文件宏病毒的檢測(cè),本發(fā)明實(shí)施例基干“實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼是相對(duì)固定的”這ー規(guī)律進(jìn)行文件宏病毒的檢測(cè),所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼;由于無論已知宏病毒還是未知宏病毒都會(huì)遵循該規(guī)律,故無論宏病毒如何變化及變化的速度如何,這ー規(guī)律都是不變的,故本發(fā)明實(shí)施例將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配,能夠?qū)ξ粗瓴《揪邆湟欢ǖ臋z測(cè)能力,因此能夠提高未知宏病毒的檢測(cè)能力,且具備較好的反病毒效果。
圖I是本發(fā)明實(shí)施例ー種文件宏病毒的檢測(cè)方法實(shí)施例的流程圖;圖2是本發(fā)明實(shí)施例ー種文件宏病毒的檢測(cè)裝置實(shí)施例的結(jié)構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明實(shí)施例作進(jìn)ー步詳細(xì)的說明。現(xiàn)有技術(shù)依賴宏病毒的特征碼進(jìn)行宏病毒的檢測(cè),對(duì)于已知宏病毒有一定的檢測(cè)能力;但是,由于宏病毒感染、發(fā)作在先,反毒在后;而宏語言是ー種腳本,稍作修改即可產(chǎn)生變種,甚至可以傳播過程中修改自身,每傳播一次就變化一次;故現(xiàn)有技術(shù)很難跟上宏病毒變化的速度,對(duì)未知宏病毒基本無檢測(cè)能力,反病毒效果較差。本發(fā)明實(shí)施例發(fā)明人在研究中發(fā)現(xiàn)如下規(guī)律宏病毒的行為(下面簡(jiǎn)稱宏病毒行為)是相對(duì)固定的,實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼也是相對(duì)固定的;如果能夠獲知實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼,則將待檢測(cè)文件的宏代碼與所獲知的行為代碼進(jìn)行匹配,即可檢測(cè)所述待檢測(cè)文件是否感染宏病毒。由于本發(fā)明實(shí)施例不是依賴于已知宏病毒的特征碼進(jìn)行文件宏病毒的檢測(cè),而是 基干“實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼是相對(duì)固定的”這ー規(guī)律進(jìn)行文件宏病毒的檢測(cè);而無論已知宏病毒還是未知宏病毒都會(huì)遵循該規(guī)律,故無論宏病毒如何變化及變化的速度如何,其都能對(duì)未知宏病毒具備一定的檢測(cè)能力,因此能夠具備較好的反病毒效果。參照?qǐng)D1,示出了本發(fā)明實(shí)施例ー種文件宏病毒的檢測(cè)方法實(shí)施例的流程圖,具體可以包括步驟101、將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配;其中,所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼;本發(fā)明實(shí)施例可以針對(duì)各種帶有宏功能的文件,檢測(cè)其是否感染宏病毒;例如,帶有宏功能的文件的一個(gè)典型例子是Microsoft Office文件,Microsoft Office文件通常采用宏語言實(shí)現(xiàn)對(duì)表格進(jìn)行動(dòng)態(tài)計(jì)算、設(shè)計(jì)交互窗ロ等宏功能。當(dāng)然Microsoft Office文件并不作為本發(fā)明實(shí)施例的應(yīng)用限制。宏代碼也即用宏語言開發(fā)的代碼,在實(shí)際應(yīng)用中,可以在讀取待檢測(cè)文件后,獲取相應(yīng)的宏代碼。在此舉一個(gè)宏語言的例子,VBA (Visual Basic for Applications)是一種Visual Basic的一種宏語言,主要能用來擴(kuò)展Windows的應(yīng)用程式功能,特別是MicrosoftOffice軟件。當(dāng)然VBA并不作為本發(fā)明實(shí)施例的應(yīng)用限制,實(shí)際上,C的宏語言、ARC宏語言(ARC Macro Language)等其它宏語言開發(fā)的宏代碼也可以適用于本發(fā)明實(shí)施例。假設(shè)待檢測(cè)文件為Microsoft Word文件,且該Microsoft Word文件使用VBA開發(fā)了宏代碼以實(shí)現(xiàn)相應(yīng)的擴(kuò)展功能,則在實(shí)際應(yīng)用中,可以讀取該Microsoft Word文件,并在Microsoft Word的Visual Basic編輯器中找到相應(yīng)的宏代碼。本發(fā)明實(shí)施例中,行為代碼庫(kù)就是用于存儲(chǔ)實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼的ー個(gè)容器,其可用各種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。作為行為代碼庫(kù)的存儲(chǔ)內(nèi)容,行為代碼也即實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼,為簡(jiǎn)便起見,下面的行為代碼均可表示實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。在實(shí)際應(yīng)用中,可以通過如下步驟構(gòu)造所述行為代碼庫(kù)收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼;將所述行為代碼保存至行為代碼庫(kù)。并且,如果不斷地收集行為代碼,并保存至行為代碼庫(kù),即可得到不斷更新的行為代碼庫(kù)。 在本發(fā)明實(shí)施例的一種優(yōu)選實(shí)施例中,所述收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼的步驟,可以進(jìn)一歩包括
子步驟Al、收集宏病毒樣本;子步驟A2、依據(jù)宏代碼的語法,對(duì)所述宏病毒樣本的宏代碼的語義進(jìn)行分析,從中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。本發(fā)明實(shí)施例中的宏病毒樣本應(yīng)滿足如下條件1、含有宏代碼;2、被確認(rèn)為宏病毒;這樣,宏病毒樣本的表現(xiàn)形式可以為文件。在實(shí)際應(yīng)用中,可以不斷收集上述表現(xiàn)形式的宏病毒樣本。通??梢园春瓴《舅诘乃拗鳎瑢⒑瓴《緲颖緞澐譃榧拇嬖赪ord中的(只有VBA腳本的)和寄存在Excel中的(其中又 包括VBA腳本的,和存在工作表中的Macro4. O類型的)宏病毒樣本等種類??梢园凑疹悇e對(duì)其進(jìn)行收集。在實(shí)際應(yīng)用中,對(duì)于反病毒軟件掃描出的、確定感染宏病毒的文件,可以直接將其作為宏病毒文件。在本發(fā)明實(shí)施例的一種示例中,還可以通過用戶反饋的方式收集宏病毒樣本。例如,用戶可以將懷疑感染宏病毒但反病毒軟件掃描不出的文件,并上傳至服務(wù)器,這里的上傳的途徑可以是反病毒軟件的客戶端,服務(wù)器可以指反病毒軟件的服務(wù)器;這樣,服務(wù)器能夠收集全部或部分客戶端上傳的宏病毒樣本,并對(duì)其進(jìn)行分析。當(dāng)然,用戶也可以通過其它途徑反饋宏病毒樣本,例如,Web端的上傳接ロ等等,本發(fā)明實(shí)施例對(duì)具體的上傳途徑不加以限制。在具體實(shí)現(xiàn)中,可以首先獲取所述宏病毒樣本的宏代碼,然后對(duì)其進(jìn)行分析。對(duì)于文件形式的宏病毒樣本,可以讀取宏病毒文件,并從中找到相應(yīng)的宏代碼;具體可以參照上面獲取Microsoft Word文件的例子可以讀取該Microsoft Word文件,并在MicrosoftWord的Visual Basic編輯器中找到相應(yīng)的宏代碼。欲從所述宏病毒樣本的宏代碼中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼,需要首先獲取特定的宏病毒行為,因?yàn)檐浖_發(fā)中代碼就是實(shí)現(xiàn)一定功能的代碼,如果獲取了具體的宏病毒行為,那么就能夠找到用于實(shí)現(xiàn)特定的宏病毒行為這個(gè)功能所需的行為代碼。本發(fā)明實(shí)施例發(fā)明人經(jīng)過對(duì)大量Microsoft Off ice的宏病毒樣本的研究,得到如下特定的宏病毒行為I、修改注冊(cè)表的行為,目的降低安全等級(jí)設(shè)置或?qū)⑨尫诺目蓤?zhí)行文件寫入開機(jī)啟動(dòng)項(xiàng)等;2、傳播行為,其利用感染模版進(jìn)行傳播,其中,不同的Microsoft office會(huì)有不同的感染模版,例如WindowS7系統(tǒng),默認(rèn)情況下Microsoftfford 的感染模板文件是 C: \Users\用戶名\AppData\Roaming\Microso;rt\Temp丄ates\normal. dotExcel 的感染模板目錄C:\Users\用戶名\AppData\Roaming\Microsoft\Excel\xlstart 和 Excel 安裝目錄 \off ice 11 \xlstart3、感染行為用戶打開安全文件,自己往安全文件里面復(fù)制.給用戶郵件聯(lián)系人發(fā)送包括病毒文件的郵件等4、發(fā)作時(shí)行為,包括4. I、在某個(gè)時(shí)間段彈窗;
4. 2、重復(fù)復(fù)制工作表,影響軟件正常使用4. 3、釋放可執(zhí)行文件,具體可以包括創(chuàng)建文件、寫文件、執(zhí)行文件等等。需要說明的是,上述特定的宏病毒行為是針對(duì)Microsoft Office研究得到的,其只是作為本發(fā)明實(shí)施例的ー種示例,并不作為本發(fā)明實(shí)施例的實(shí)施限制。在具體實(shí)現(xiàn)中,可以針對(duì)所述宏病毒樣本的宏代碼,依據(jù)其語法對(duì)其語義進(jìn)行分祈,從中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。例如,在本發(fā)明實(shí)施例的ー種應(yīng)用示例中,所述分析過程可以包括遍歷所述宏病毒樣本的宏代碼,逐函數(shù)、逐語句或者逐變量進(jìn)行分析,看其是否用于實(shí)現(xiàn)特定的宏病毒行為這個(gè)功能,若是,則可以將其提取出來,并進(jìn)行下一函數(shù)、語句或變量的分析,否則進(jìn)行下一函數(shù)、語句或變量的分析??傊?,本 領(lǐng)域技術(shù)人員可以使用各種技術(shù)或策略,判斷函數(shù)、語句或變量是否用于實(shí)現(xiàn)特定的宏病毒行為這個(gè)功能,本發(fā)明實(shí)施例對(duì)具體的判斷方式不加以限制。在經(jīng)過分析和提取后,本發(fā)明實(shí)施例的行為代碼具體可以包括函數(shù)名、函數(shù)變量名或者函數(shù)語句。在本發(fā)明實(shí)施例的一種優(yōu)選實(shí)施例中,本發(fā)明實(shí)施例的行為代碼可為字符串形式。這樣,在文件宏病毒的檢測(cè)過程中,將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配的過程就涉及字符串的處理操作。在本發(fā)明實(shí)施例的一種應(yīng)用示例中,可以讀取待檢測(cè)文件的宏代碼,得到ー個(gè)大的字符串,然后在這個(gè)大的字符串中查找給定字符串,其中給定字符串就是所述行為代碼庫(kù)中存儲(chǔ)的行為代碼,若查找成功,則表示匹配成功,若查找失敗,則進(jìn)行下ー給定字符串的查找,直至所述行為代碼庫(kù)中存儲(chǔ)的給定字符串查找完畢。步驟102、依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒。在本發(fā)明實(shí)施例的一種優(yōu)選實(shí)施例中,所述將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配的步驟,可以進(jìn)一歩包括在所述待檢測(cè)文件的宏代碼中存在匹配成功的行為代碼時(shí)得到匹配成功的匹配結(jié)果,以及,在所述待檢測(cè)文件的宏代碼中不存在匹配成功的行為代碼時(shí),得到匹配失敗的匹配結(jié)果;則所述依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒的步驟,可以進(jìn)一歩包括步驟BI、在所述匹配結(jié)果為匹配失敗時(shí),判別所述待檢測(cè)文件未感染宏病毒;步驟B2、在所述匹配結(jié)果為匹配成功時(shí),依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒。在本發(fā)明實(shí)施例的另ー種優(yōu)選實(shí)施例中,所述步驟B2依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒的步驟,可以進(jìn)一歩包括判斷所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼是否符合預(yù)設(shè)的危險(xiǎn)性條件,若是,則判別所述待檢測(cè)文件感染宏病毒,否則,判別所述待檢測(cè)文件未感染宏病毒。在本發(fā)明實(shí)施例的再一種優(yōu)選實(shí)施例中,所述預(yù)設(shè)的危險(xiǎn)性條件具體可以包括如下條件中的ー項(xiàng)或多項(xiàng)危險(xiǎn)性條件Cl、所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)系數(shù)超過預(yù)設(shè)的危險(xiǎn)系數(shù)閾值;關(guān)于如何獲取待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)系數(shù),在實(shí)際中,可針對(duì)所述行為代碼庫(kù)中各行為代碼預(yù)設(shè)相應(yīng)的危險(xiǎn)系數(shù);或者,為了減輕設(shè)置的工作量,可對(duì)所述行為代碼庫(kù)中各行為代碼進(jìn)行分類,并針對(duì)每個(gè)類別預(yù)設(shè)相應(yīng)的危險(xiǎn)系數(shù)??梢岳斫?,本領(lǐng)域技術(shù)人員采用的分類依據(jù)可以是多祥化的,在申請(qǐng)的ー種優(yōu)選實(shí)施例中,可以病毒行為的種類作為分類依據(jù),例如,針對(duì)“修改注冊(cè)表”的行為對(duì)應(yīng)類別預(yù)設(shè)的危險(xiǎn)系數(shù)為10,“傳播行為”對(duì)應(yīng)類別的危險(xiǎn)系數(shù)為5,“感染行為”對(duì)應(yīng)類別的危險(xiǎn)系數(shù)為8等等。參照上例,由于病毒行為有可能被細(xì)分,故可針對(duì)被細(xì)分的病毒行為預(yù)設(shè)相應(yīng)的危險(xiǎn)系數(shù),例如,在感染行為這個(gè)大類別中,可以針對(duì)“復(fù)制工作表”的行為對(duì)應(yīng)類別預(yù)設(shè)的危險(xiǎn)系數(shù)為5,可以針對(duì)“執(zhí)行文件”的行為對(duì)應(yīng)類別預(yù)設(shè)的危險(xiǎn)系數(shù)為10,等等。
當(dāng)然,上述只是作為示例;實(shí)際上,本領(lǐng)域技術(shù)人員得到的病毒行為是各種各樣的,并且可以根據(jù)各種病毒行為的危險(xiǎn)程度,分別對(duì)相應(yīng)的類別預(yù)設(shè)不同的危險(xiǎn)系數(shù),本發(fā)明實(shí)施例對(duì)具體的危險(xiǎn)系數(shù)不加以限制。在實(shí)際應(yīng)用中,所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼可能不止ー個(gè),此時(shí),可以對(duì)多個(gè)行為代碼的危險(xiǎn)系數(shù)進(jìn)行求平均、加權(quán)平均、疊加等處理,得到綜合的危險(xiǎn)系數(shù),再將綜合的危險(xiǎn)系數(shù)與預(yù)設(shè)的危險(xiǎn)系數(shù)閾值進(jìn)行比較。本領(lǐng)域技術(shù)人員可以根據(jù)宏病毒檢出率或宏病毒誤殺率的指標(biāo),預(yù)設(shè)危險(xiǎn)系數(shù)閾值。例如,如果欲達(dá)到較高的宏病毒檢出率,可以預(yù)設(shè)較小的危險(xiǎn)系數(shù)閾值;又如,如果欲達(dá)到較低的宏病毒誤殺率,可以預(yù)設(shè)較高的危險(xiǎn)系數(shù)閾值等等。危險(xiǎn)性條件C2、所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)等級(jí)超過預(yù)設(shè)的危險(xiǎn)等級(jí);行為代碼的危險(xiǎn)系數(shù)和危險(xiǎn)等級(jí)同樣用于反映行為代碼的危險(xiǎn)程度,二者的區(qū)別之ー在于,危險(xiǎn)系數(shù)用更具體的數(shù)值描述,而危險(xiǎn)等級(jí)可用簡(jiǎn)便的數(shù)值或文字描述;例如,危險(xiǎn)系數(shù)的取值范圍可以為
,而危險(xiǎn)等級(jí)的取值范圍可以為[1,5]或者[1,3],或者,危險(xiǎn)等級(jí)的文字范圍為[低級(jí)、中級(jí)、高級(jí)]等等。關(guān)于如何獲取待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)等級(jí),在實(shí)際中,可針對(duì)所述行為代碼庫(kù)中各行為代碼預(yù)設(shè)相應(yīng)的危險(xiǎn)等級(jí);或者,為了減輕設(shè)置的工作量,可對(duì)所述行為代碼庫(kù)中各行為代碼進(jìn)行分類,并針對(duì)每個(gè)類別預(yù)設(shè)相應(yīng)的危險(xiǎn)等級(jí)。對(duì)于危險(xiǎn)性條件C2而言,由于其采用的分類依據(jù)及預(yù)設(shè)的危險(xiǎn)等級(jí)與危險(xiǎn)性條件Cl相似,故相互參照即可,在此不作贅述。危險(xiǎn)性條件C3、待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的單個(gè)行為代碼,或者,出現(xiàn)了預(yù)設(shè)的行為代碼組合。危險(xiǎn)性條件C3可以規(guī)定只要待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的單個(gè)行為代碼,就可以判別所述待檢測(cè)文件感染宏病毒。在實(shí)際中,可以將某些宏病毒行為對(duì)應(yīng)的函數(shù)名作為預(yù)設(shè)的單個(gè)行為代碼。例如,一旦待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了如下函數(shù)名中的ー個(gè),則可以判別所述待檢測(cè)文件感染宏病毒l=runblackice
2=inf ectdocument3=infectnormal4=Empirical在具體實(shí)現(xiàn)中,還可以依據(jù)宏病毒行為對(duì)應(yīng)的行為代碼,預(yù)設(shè)行為代碼組合,如果待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的行為代碼組合,則可判別其感染
宏病毒。在本發(fā)明實(shí)施例的一種應(yīng)用示例中,宏病毒行為對(duì)應(yīng)的行為代碼可用阿拉伯?dāng)?shù)字編號(hào)如下l=fi Iesystemobject2 =wcripting. shell3=createob ject4=Application. 0nKey"%{F5=normal. dot6=bookl. xls7=startup. xls8=normal. xlm9=normal. xlm10=normal. dotIl=Open12=for13=as14=writef ile15=createf ile16=Private Declare Function17=lib18=infectnormal19=く! !blackice〉20= (ml) — (m2) — (m3)21=System. PrivateProfileString22=HKEY—CURRENT—USER23=shell24=Shell25=NormalTemplate. VBProject. VBComponents26=Application. StartupPath那么,可以根據(jù)這些行為代碼對(duì)應(yīng)宏病毒行為的危險(xiǎn)程度,預(yù)設(shè)如下行為代碼組合,并分別用阿拉伯?dāng)?shù)字編號(hào)1=3,22=3,I3=21,22
4=16, 175=256=11, 12, 13總之,本發(fā)明實(shí)施例基干“實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼是相對(duì)固定的”這ー規(guī)律進(jìn)行文件宏病毒的檢測(cè);無論已知宏病毒還是未知宏病毒都會(huì)遵循該規(guī)律,故無論宏病毒如何變化及變化的速度如何,其都能對(duì)未知宏病毒具備一定的檢測(cè)能力,因此能夠具備較好的反病毒效果。可以理解,本領(lǐng)域技術(shù)人員可以根據(jù)不斷出現(xiàn)的宏病毒樣本,對(duì)實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼進(jìn)行增加、刪除、修改等更新操作。本發(fā)明實(shí)施例發(fā)明人經(jīng)研究發(fā)現(xiàn),對(duì)于Excel文件而言,其除了遵循“實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼是相對(duì)固定的”這ー規(guī)律外,還具有一種特有的宏病毒寄存方式,那就是,宏病毒代碼有可能通過自定義名稱(如autoopen, autoclose等)寄存在工作表中?!白远x名稱”是Excel的ー種功能?!白远x名稱”的ー種形式為用戶自己寫了ー個(gè)公式,給公式起了個(gè)名稱,因此叫自定義名稱,一般這些公式只有用戶主動(dòng)運(yùn)行時(shí)才會(huì)執(zhí)行。例如,自定義名稱可以為公式的名稱,且公式內(nèi)容指向工作表的某単元格,這樣,在打開Excel文件時(shí),単元格中的內(nèi)容可當(dāng)做程序執(zhí)行,于是宏病毒就會(huì)被激活,轉(zhuǎn)移到計(jì)算機(jī)上。但是,Excel會(huì)保留ー些自定義名稱,以下簡(jiǎn)稱Excel保留名稱。如Auto_0pen、Auto_Close、Print_Area、Auto_Active 等等。Excel保留名稱相對(duì)于自定義名稱的區(qū)別之ー在于,如果Excel文件的工作表的自定義名稱中存在Excel保留名稱,則自定義名稱寄存的公式等宿主中很有可能感染宏病毒,且宿主的運(yùn)行不再依賴于用戶的主動(dòng)運(yùn)行,而是可以在某種或某些種事件發(fā)生時(shí)執(zhí)行。例如自定義名稱為Auto_0pen的公式,會(huì)在Ex cel文件打開的時(shí)候自動(dòng)執(zhí)行,則宏病毒就會(huì)利用此功能執(zhí)行起來。針對(duì)上述規(guī)律,在本發(fā)明實(shí)施例的一種優(yōu)選實(shí)施例中,所述方法還可以包括針對(duì)待檢測(cè)Excel文件的工作表,若其自定義名稱中存在Excel保留名稱,則判別所述待檢測(cè)Excel文件感染宏病毒。這里,Excel保留名稱可以對(duì)宏病毒樣本進(jìn)行分析得到,本發(fā)明實(shí)施例對(duì)具體的分析的方式不加以限制。另外,Excel文件的工作表的屬性通常包括可見、隱藏、絕對(duì)隱藏屬性;在ー個(gè)エ作表的屬性為隱藏時(shí),可以首先通過“取消隱藏”命令獲取相應(yīng)的內(nèi)容,進(jìn)ー步查看內(nèi)容中是否存在Excel保留名稱,若是,則可判別所述待檢測(cè)Excel文件感染宏病毒。需要說明時(shí),在判別待檢測(cè)文件感染宏病毒的情況下,可以不將該待檢測(cè)文件中的宏代碼刪除,以清除宏病毒。另外,可以在反病毒軟件中集成本發(fā)明實(shí)施例的文件宏病毒的檢測(cè)功能,這樣,如果用戶使用反病毒軟件進(jìn)行文件宏病毒的檢測(cè),可以將感染宏病毒的文件作為宏病毒樣本上傳至服務(wù)器端。與前述方法實(shí)施例相應(yīng),本發(fā)明實(shí)施例還公開了ー種文件宏病毒的檢測(cè)裝置,參照?qǐng)D2所示的結(jié)構(gòu)圖,具體可以包括
匹配模塊201,用于將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配;其中,所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼;及判別模塊202,用于依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒。在本發(fā)明實(shí)施例的一種優(yōu)選實(shí)施例中,所述匹配模塊202可以進(jìn)一歩包括匹配成功子模塊,用于在所述待檢測(cè)文件的宏代碼中存在匹配成功的行為代碼時(shí)得到匹配成功的匹配結(jié)果;以及匹配失敗子模塊,用于在所述待檢測(cè)文件的宏代碼中不存在匹配成功的行為代碼時(shí),得到匹配失敗的匹配結(jié)果;則所述判別模塊202可以進(jìn)一歩包括第一判別子模塊,用于在所述匹配結(jié)果為匹配失敗時(shí),判別所述待檢測(cè)文件未感·染宏病毒;第二判別子模塊,用于在所述匹配結(jié)果為匹配成功時(shí),依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒。在本發(fā)明實(shí)施例的另ー種優(yōu)選實(shí)施例中,所述第二判別子模塊可以進(jìn)ー步包括判斷単元,用于判斷所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼是否符合預(yù)設(shè)的危險(xiǎn)性條件,若是,則判別所述待檢測(cè)文件感染宏病毒,否則,判別所述待檢測(cè)文件未感染宏病毒。在本發(fā)明實(shí)施例中,優(yōu)選的是,所述預(yù)設(shè)的危險(xiǎn)性條件具體可以包括如下條件中的ー項(xiàng)或多項(xiàng)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)系數(shù)超過預(yù)設(shè)的危險(xiǎn)系數(shù)閾值;所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)等級(jí)超過預(yù)設(shè)的危險(xiǎn)等級(jí);待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的單個(gè)行為代碼,或者,出現(xiàn)了預(yù)設(shè)的行為代碼組合。在本發(fā)明實(shí)施例的一種優(yōu)選實(shí)施例中,所述裝置還可以包括用于構(gòu)造所述行為代碼庫(kù)的構(gòu)造模塊,所述構(gòu)造模塊具體可以包括收集子模塊,用于收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼;保存子模塊,用于將所述行為代碼保存至行為代碼庫(kù)。在本發(fā)明實(shí)施例的另ー種優(yōu)選實(shí)施例中,所述收集子模塊可以進(jìn)一歩包括樣本收集単元,用于收集宏病毒樣本;分析提取單元,用于依據(jù)宏代碼的語法,對(duì)所述宏病毒樣本的宏代碼進(jìn)行語義分祈,從中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。在本發(fā)明實(shí)施例中,優(yōu)選的是,所述行為代碼具體可以包括函數(shù)名、函數(shù)變量名或者函數(shù)語句。在本發(fā)明實(shí)施例的一種優(yōu)選實(shí)施例中,所述裝置還可以包括工作表檢測(cè)模塊,用于針對(duì)待檢測(cè)Excel文件的工作表,若其自定義名稱中存在Excel保留名稱,則判別所述待檢測(cè)Excel文件感染宏病毒。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備 的處理器以產(chǎn)生ー個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖ー個(gè)流程或多個(gè)流程和/或方框圖ー個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖ー個(gè)流程或多個(gè)流程和/或方框圖ー個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖ー個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。以上對(duì)本發(fā)明實(shí)施例所提供的ー種文件宏病毒的檢測(cè)方法和裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明實(shí)施例的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明實(shí)施例的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明實(shí)施例的限制。
權(quán)利要求
1.ー種文件宏病毒的檢測(cè)方法,其特征在于,包括 將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配;其中,所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼; 依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒。
2.如權(quán)利要求I所述的方法,其特征在于,所述將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配的步驟,進(jìn)一歩包括 在所述待檢測(cè)文件的宏代碼中存在匹配成功的行為代碼時(shí)得到匹配成功的匹配結(jié)果,以及,在所述待檢測(cè)文件的宏代碼中不存在匹配成功的行為代碼時(shí),得到匹配失敗的匹配結(jié)果; 則所述依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒的步驟,進(jìn)一歩包括 在所述匹配結(jié)果為匹配失敗時(shí),判別所述待檢測(cè)文件未感染宏病毒; 在所述匹配結(jié)果為匹配成功時(shí),依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒。
3.如權(quán)利要求2所述的方法,其特征在于,所述依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒的步驟,進(jìn)一歩包括 判斷所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼是否符合預(yù)設(shè)的危險(xiǎn)性條件,若是,則判別所述待檢測(cè)文件感染宏病毒,否則,判別所述待檢測(cè)文件未感染宏病毒。
4.如權(quán)利要求3所述的方法,其特征在于,所述預(yù)設(shè)的危險(xiǎn)性條件包括如下條件中的ー項(xiàng)或多項(xiàng) 所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)系數(shù)超過預(yù)設(shè)的危險(xiǎn)系數(shù)閾值; 所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)等級(jí)超過預(yù)設(shè)的危險(xiǎn)等級(jí); 待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的單個(gè)行為代碼,或者,出現(xiàn)了預(yù)設(shè)的行為代碼組合。
5.如權(quán)利要求I至4中任一項(xiàng)所述的方法,其特征在于,通過如下步驟構(gòu)造所述行為代碼庫(kù) 收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼; 將所述行為代碼保存至行為代碼庫(kù)。
6.如權(quán)利要求5所述的方法,其特征在干,所述收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼的步驟,進(jìn)一歩包括 收集宏病毒樣本; 依據(jù)宏代碼的語法,對(duì)所述宏病毒樣本的宏代碼進(jìn)行語義分析,從中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。
7.如權(quán)利要求I至4中任一項(xiàng)所述的方法,其特征在于,所述行為代碼包括函數(shù)名、函數(shù)變量名或者函數(shù)語句。
8.如權(quán)利要求I至4中任一項(xiàng)所述的方法,其特征在于,還包括 針對(duì)待檢測(cè)Excel文件的工作表,若其自定義名稱中存在Excel保留名稱,則判別所述待檢測(cè)Excel文件感染宏病毒。
9.ー種文件宏病毒的檢測(cè)裝置,其特征在于,包括匹配模塊,用于將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配;其中,所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼;及 判別模塊,用于依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒。
10.如權(quán)利要求9所述的裝置,其特征在于,所述匹配模塊進(jìn)一歩包括 匹配成功子模塊,用于在所述待檢測(cè)文件的宏代碼中存在匹配成功的行為代碼時(shí)得到匹配成功的匹配結(jié)果;以及 匹配失敗子模塊,用于在所述待檢測(cè)文件的宏代碼中不存在匹配成功的行為代碼吋,得到匹配失敗的匹配結(jié)果; 則所述判別模塊進(jìn)ー步包括 第一判別子模塊,用于在所述匹配結(jié)果為匹配失敗時(shí),判別所述待檢測(cè)文件未感染宏病毒; 第二判別子模塊,用于在所述匹配結(jié)果為匹配成功時(shí),依據(jù)所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼,判別所述待檢測(cè)文件是否感染宏病毒。
11.如權(quán)利要求10所述的裝置,其特征在于,所述第二判別子模塊進(jìn)一歩包括 判斷単元,用于判斷所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼是否符合預(yù)設(shè)的危險(xiǎn)性條件,若是,則判別所述待檢測(cè)文件感染宏病毒,否則,判別所述待檢測(cè)文件未感染宏病毒。
12.如權(quán)利要求11所述的裝置,其特征在于,所述預(yù)設(shè)的危險(xiǎn)性條件包括如下條件中的ー項(xiàng)或多項(xiàng) 所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)系數(shù)超過預(yù)設(shè)的危險(xiǎn)系數(shù)閾值; 所述待檢測(cè)文件的宏代碼中匹配成功的行為代碼的危險(xiǎn)等級(jí)超過預(yù)設(shè)的危險(xiǎn)等級(jí); 待檢測(cè)文件的宏代碼中匹配成功的行為代碼出現(xiàn)了預(yù)設(shè)的單個(gè)行為代碼,或者,出現(xiàn)了預(yù)設(shè)的行為代碼組合。
13.如權(quán)利要求9至12中任一項(xiàng)所述的裝置,其特征在于,還包括用于構(gòu)造所述行為代碼庫(kù)的構(gòu)造模塊,所述構(gòu)造模塊包括 收集子模塊,用于收集實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼; 保存子模塊,用于將所述行為代碼保存至行為代碼庫(kù)。
14.如權(quán)利要求13所述的裝置,其特征在于,所述收集子模塊進(jìn)一歩包括 樣本收集単元,用于收集宏病毒樣本; 分析提取單元,用于依據(jù)宏代碼的語法,對(duì)所述宏病毒樣本的宏代碼進(jìn)行語義分析,從中提取相應(yīng)的實(shí)現(xiàn)固定的宏病毒行為所需的行為代碼。
15.如權(quán)利要求9至12中任一項(xiàng)所述的裝置,其特征在于,所述行為代碼包括函數(shù)名、函數(shù)變量名或者函數(shù)語句。
16.如權(quán)利要求9至12中任一項(xiàng)所述的裝置,特征在于,還包括 工作表檢測(cè)模塊,用于針對(duì)待檢測(cè)Excel文件的工作表,若其自定義名稱中存在Excel保留名稱,則判別所述待檢測(cè)Excel文件感染宏病毒。
全文摘要
本發(fā)明實(shí)施例提供了一種文件宏病毒的檢測(cè)方法和裝置,其中的方法具體包括將待檢測(cè)文件的宏代碼與行為代碼庫(kù)中的行為代碼進(jìn)行匹配;其中,所述行為代碼用于表示實(shí)現(xiàn)固定的宏病毒行為所需的宏代碼;依據(jù)匹配結(jié)果判別所述待檢測(cè)文件是否感染宏病毒。本發(fā)明實(shí)施例能夠提高對(duì)文件宏病毒的檢測(cè)能力。
文檔編號(hào)G06F21/00GK102841999SQ20121024666
公開日2012年12月26日 申請(qǐng)日期2012年7月16日 優(yōu)先權(quán)日2012年7月16日
發(fā)明者禹建文 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司