一種excel宏表病毒的檢測方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機網(wǎng)絡安全技術(shù)領(lǐng)域,特別涉及一種excel宏表病毒的檢測方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前excel的宏病毒一般為兩種形式,一種是在excel中插入普通的宏代碼來實現(xiàn)惡意功能,另一種是利用excel的宏表來插入惡意代碼實現(xiàn)惡意功能。這兩種形式功能雖然似,但是惡意數(shù)據(jù)在excel中保存的形式是完全不一樣的,因此現(xiàn)有通過對文件宏代碼進行檢測的方式,無法檢測到宏表中添加的宏代碼。在excel中插入MS Excel4.0宏表,利用宏表插入惡意代碼,是通過在宏表的單元格中添加紅代碼,沿著同一列逐行添加,在代碼執(zhí)行過程中可以順序執(zhí)行到RETURN函數(shù),所以很多惡意代碼作者使用這樣的方式來編寫惡意代碼,早在Excel 2003等早期的版本中,在文檔中定義AUT0_0PEN名稱,就可以在Excel表格打開的時候自動執(zhí)行任意宏表的代碼,實現(xiàn)自我復制和對正常文檔的感染,新感染文件的宏表中雖然包含相同的代碼,但在不同文件中保存的形式不同,導致感染后的文件差別較大。因此這種類型的惡意代碼很難歸并檢測用特征,人工提取代價又比較高。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種excel宏表病毒的檢測方法及系統(tǒng),解決了宏表病毒無法進行歸一化檢測的問題。
[0004]一種excel宏表病毒的檢測方法,包括:
提取待檢測excel文檔中macro sheet substream流數(shù)據(jù);
通過根據(jù)微軟提供的excel文件格式文檔,自行編寫提取程序代碼,提取workbook數(shù)據(jù)流,進而提取其中可能存在的macro sheet substream流數(shù)據(jù);對于部分不包含macrosheet substream流數(shù)據(jù)的文件,則其不存在excel宏表病毒,可以通過現(xiàn)有的其他檢測手段進行檢測;
分析macro sheet substream流數(shù)據(jù),得到宏表中所有單元格的信息,并提取每個單元格的公式命令數(shù)據(jù);
提取每個公式命令數(shù)據(jù)中的token和公式長度;
計算所有token和公式長度的哈希值;
遍歷惡意excel宏表病毒特征庫,與所述哈希值匹配,匹配成功則所述待檢測excel文檔為惡意,否則非惡意。
[0005]所述的方法中,所述惡意excel宏表病毒特征庫,為根據(jù)已知惡意excel宏表病毒文檔得到的哈希值列表,即通過上述方法得到的哈希值列表。
[0006]—種excel宏表病毒的檢測系統(tǒng),包括:
數(shù)據(jù)提取模塊,用于提取待檢測excel文檔中macro sheet substream流數(shù)據(jù);
分析模塊,用于分析macro sheet substream流數(shù)據(jù),得到宏表中所有單元格的信息,并提取每個單元格的公式命令數(shù)據(jù);
特征提取模塊,用于提取每個公式命令數(shù)據(jù)中的token和公式長度;
計算模塊,用于計算所有token和公式長度的哈希值;
檢測模塊,用于遍歷惡意excel宏表病毒特征庫,與所述哈希值匹配,匹配成功則所述待檢測excel文檔為惡意,否則非惡意。
[0007]所述的系統(tǒng)中,所述惡意excel宏表病毒特征庫,為根據(jù)已知惡意excel宏表病毒文檔得到的哈希值列表。
[0008]本發(fā)明針對excel宏表病毒感染后結(jié)果數(shù)據(jù)的復雜性,在提取宏表公式后,對提取到的信息進行分析,保留了公式的token和公式長度,拋棄了其他信息,保證了同樣的宏表病毒感染多個不同excel文件后提取到的信息是一致的,這樣就實現(xiàn)了多個感染同樣宏表病毒的excel文件能夠提取到同樣的病毒特征,有效的實現(xiàn)了檢測用特征的歸一化,減少檢測用特征數(shù)量的同時,也提升了檢測速度。同時提取的結(jié)果信息具有一定的復雜性,能夠有效的防止誤報。
[0009]本發(fā)明方案的技術(shù)效果在于,由于檢測用特征來源于每條宏表病毒中每個單元格的命令,所以檢測的結(jié)果也更加準確,檢測的特征準確的命中了惡意代碼。相對于其他自動化提取特征的方法,本方法準確性更高,誤報率低。另外同樣的宏表病毒感染后的樣本能夠提取到一致的檢測特征,有效的實現(xiàn)了特征的歸一化,減少了特征數(shù)量,反病毒引擎匹配的次數(shù)也相應降低,所以同時提升了反病毒引擎工作的效率。
[0010]本發(fā)明提供了一種excel宏表病毒的檢測方法及系統(tǒng),包括:提取待檢測excel文檔中macro sheet substream流數(shù)據(jù);分析macro sheet substream流數(shù)據(jù),得到宏表中所有單元格的信息,并提取每個單元格的公式命令數(shù)據(jù);提取每個公式命令數(shù)據(jù)中的token和公式長度;計算所有token和公式長度的哈希值;遍歷惡意excel宏表病毒特征庫,與所述哈希值匹配,匹配成功則所述待檢測excel文檔為惡意,否則非惡意。通過本發(fā)明的方法,能夠有效的檢測宏表病毒,并提出了一種excel宏表病毒的歸一化檢測方法。能夠快速判斷excel的宏表中是否存在惡意代碼,同時有效減少特征數(shù)量。
【附圖說明】
[0011]為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0012]圖1為本發(fā)明一種excel宏表病毒的檢測方法實施例流程圖;
圖2為本發(fā)明一種excel宏表病毒的檢測系統(tǒng)實施例結(jié)構(gòu)不意圖。
【具體實施方式】
[0013]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明中技術(shù)方案作進一步詳細的說明。
[0014]本發(fā)明提供一種excel宏表病毒的檢測方法及系統(tǒng),解決了宏表病毒無法進行歸一化檢測的問題。
[0015]—種excel宏表病毒的檢測方法,如圖1所不,包括:
5101:提取待檢測excel文檔中macro sheet substream流數(shù)據(jù);
通過根據(jù)微軟提供的excel文件格式文檔,自行編寫提取程序代碼,提取workbook數(shù)據(jù)流,進而提取其中可能存在的macro sheet substream流數(shù)據(jù);對于部分不包含macrosheet substream流數(shù)據(jù)的文件,則其不存在excel宏表病毒,可以通過現(xiàn)有的其他檢測手段進行檢測;
5102:分析macro sheet substream流數(shù)據(jù),得到宏表中所有單元格的信息,并提取每個單元格的公式命令數(shù)據(jù);
5103:提取每個公式命令數(shù)據(jù)中的token和公式長度;
5104:計算所有token和公式長度的哈