专利名称:基于lzw压缩算法的未知恶意代码检测方法
技术领域:
本发明涉及一种基于LZW压縮算法的未知恶意代码检测方法的评估。属于信息安 全领域。
背景技术:
随着计算机和互联网络技术的快速发展与广泛应用,计算机网络系统的安全受到 严重的挑战,来自计算机病毒和黑客攻击及其他方面的威胁越来越大。计算机恶意代码是 计算机安全中很难根除的威胁。 目前,存在着多种计算机恶意代码防治技术,其中未知恶意代码的检测技术可以 发现未知的恶意代码,有效地改善查杀总是落后于新病毒产生这一现状。未知恶意代码检 测已成为计算机安全领域的主要研究课题之一。 国内外现有的未知恶意代码检测方法主要有基于K-近邻的未知恶意代码检测、 基于支持向量机的未知恶意代码检测、基于贝叶斯原理的未知恶意代码检测、基于关联规 则的未知恶意代码检测、受免疫启发的未知恶意代码检测、基于决策树的未知恶意代码检 测、基于行为检测的未知恶意代码检测等方法。但是这些方法已经研究了很多年,技术已经 基本成熟,对于各种方法本身存在的缺点仍然无法克服。所以需要一种新的未知恶意代码 检测方法来完善未知恶意代码检测领域的不足。以上提到的未知恶意代码检测方法中最知 名的、也是理论基础最好的应是基于贝叶斯原理的未知恶意代码检测。虽然基于贝叶斯原 理的未知恶意代码检测方法能够很好的检测出有明显单词结构的未知恶意代码,但是对于 可执行文件这类没有明显单词结构的未知恶意代码检测效果不是很理想。为了改善这方面 的不足,使检测方法对于任意文件都能有效地检测出来。发明人提出并实现了一种基于LZW 压縮算法的未知恶意代码检测方法。LZW压縮算法由Lemple-Ziv-Welch三人共同创造,用 他们的名字命名。它采用了一种先进的串表压縮,将每个第一次出现的串放在一个串表中, 用一个数字来表示串,压縮文件只存贮数字,则不存贮串,从而使文件的压縮效率得到较大 的提高。采用这种压縮算法的未知恶意代码检测方法,能够克服基于贝叶斯原理的未知恶 意代码检测方法对于没有明显单词结构的未知恶意代码检测效果不理想的缺点。
发明内容
本发明的目的,就在于克服上述基于贝叶斯原理的未知恶意代码检测方法的不 足,提供一种能够有效检测出各类未知恶意代码的方法,即基于LZW压縮算法的未知恶意 代码检测方法。
本发明的特征在于依次包括以下步骤 首先进行文件的学习将学习集中样本文件通过定长编码模块将样本集中的非文 本文件转换为有明显单词结构的文本文件。将转换后的文件经过LZW字典生成模块,进行 压縮字典的生成。并根据样本集是正常代码集或恶意代码集保存为相应的正常代码字典或 恶意代码字典,并将两类字典保存到数据库中。
3
然后进行待测文件的分类预测将待测文件通过定长编码模块将待测文件中的 非文本文件转换为有明显单词结构的文本文件,并将保存在数据库中的字典集读取到内存 中。根据正常代码字典与恶意代码字典,对经过处理的待测文件进行压縮处理。
最后评估结果根据压縮率判断文件的类别,正常文件类或恶意代码文件类。设正 常代码字典压縮待测文件得到压縮率为A,恶意代码字典压縮待测文件得到压縮率为B,则 如果A > B,判断待测文件为正常文件;如果A < B,判断待测文件为恶意代码文件。
压縮率(R)=(压縮前文件大小_压縮后文件大小)/压縮前文件大小X 100%
本发明的优势在于,基于LZW压縮算法的未知恶意代码检测方法能够有效地弥补 基于贝叶斯原理的未知恶意代码检测方法对于可执行文件这类没有明显单词结构的未知 恶意代码检测效果不理想的缺点。 1.适应能力强。由于本方法是基于字节的,可以对任何类型的文件进行特征学习 和分析。 2.可以克服特征组合产生的变化结果。例如两个正常字符串特征组合在一起时 可能就是恶意代码的特征,其他的检测算法不能够识别出来,但是本方法可以检测出来。
图1是本发明实现基于LZW压縮算法的未知恶意代码检测方法的流程图。
具体实施例方式
下面结合附图1具体介绍本发明的实现方法的步骤 参见附图l,本发明是一种基于LZW压縮算法的未知恶意代码检测方案。该方案包 含两个主要部分,即样本文件的学习与待测文件的分类预测。首先,分析恶意代码结构,抽 取最能代表其特性的部分。然后,对所抽取的部分利用压縮算法,按照其类别建立符合其统 计特性的相应压縮字典(正常代码/恶意代码字典)。最后,通过判断利用正常代码/恶意 代码字典对待测文件进行压縮得到的不同压縮率,依据最小描述原则将其归类为能取得最 好压縮率的类别,从而达到检测未知恶意代码的目的。 首先进行文件的学习,将学习集中样本文件通过定长编码模块将样本集中的非文 本文件转换为有明显单词结构的文本文件,如原文件部分代码为"騵+A"这类乱码,转换后 结构为"F27B1041"这类有单词结构的文本文件。将转换后的文件经过LZW字典生成模块, 进行压縮字典的生成。判断是否还有未学习的文件,如果还有则继续进行学习,否则判断学 习样本是否为恶意代码,如果是则打开恶意代码字典数据库,如果不是,则打开正常字典数 据库。保存压縮字典,将字符串按照顺序保存入数据库。 然后进行待测文件的分类预测,将待测文件通过定长编码模块将待测文件中的非
文本文件转换为有明显单词结构的文本文件,并将保存在数据库中的字典集读取到内存
中。将特征字典经过HASH散列模块。可以优化压縮待测文件的速度。例如,字符串A78B4C经过HASH散列模块后,形成(653654543, A78B4C)这样的MAP
集,以后对待测文件进行压縮时可以不用逐个匹配字符串,而是用由字符串得到的哈希值
作为索引,快速地查找到字符串。压縮待测文件,根据正常代码字典与恶意代码字典,对经
过处理的待测文件进行压縮处理。
最后评估结果。根据压縮率判断文件的类别,正常文件类或恶意代码文件类。设 正常代码字典压縮待测文件得到压縮率为A,恶意代码字典压縮待测文件得到压縮率为B, 则如果A > B,判断待测文件为正常文件;如果A < B,判断待测文件为恶意代码文件。
压縮率(R)=(压縮前文件大小_压縮后文件大小)/压縮前文件大小X 100 %
例如,原文件大小为15K,正常代码字典压縮后为12KB,恶意代码字典压縮后为 IOKB,则压縮率RI二 (15-12)/15 = 20%, R2 = (15-10)/15 = 33. 3%
Rl < R2,所以将此原文件判断为恶意代码文件。
权利要求
基于LZW压缩算法的未知恶意代码检测方法,其特征在于,包括以下步骤首先进行文件的学习将学习集中样本文件通过定长编码模块将样本集中的非文本文件转换为有明显单词结构的文本文件;将转换后的文件经过LZW字典生成模块,进行压缩字典的生成;并根据样本集是正常代码集或恶意代码集保存为相应的正常代码字典或恶意代码字典,并将两类字典保存到数据库中;然后进行待测文件的分类预测将待测文件通过定长编码模块将待测文件中的非文本文件转换为有明显单词结构的文本文件,并将保存在数据库中的字典集读取到内存中;根据正常代码字典与恶意代码字典,对经过处理的待测文件进行压缩处理;最后评估结果根据压缩率判断文件的类别,正常文件类或恶意代码文件类;设正常代码字典压缩待测文件得到压缩率为A,恶意代码字典压缩待测文件得到压缩率为B,则如果A>B,判断待测文件为正常文件;如果A<B,判断待测文件为恶意代码文件;压缩率=(压缩前文件大小-压缩后文件大小)/压缩前文件大小×100%。
全文摘要
本发明是一种利用压缩算法来检测未知恶意代码的方法,它利用LZW压缩算法提取出的特征字典,通过将待测文件用特征字典进行压缩,并根据压缩率来预测文件的类别。首先,分析恶意代码结构,抽取最能代表其特性的部分。然后,对所抽取的部分利用压缩算法,按照其类别建立符合其统计特性的相应压缩字典(正常代码/恶意代码字典)。最后,通过判断利用正常代码/恶意代码字典对待测文件进行压缩得到的不同压缩率,依据最小描述原则将其归类为能取得最好压缩率的类别,从而达到检测未知恶意代码的目的。
文档编号G06F21/00GK101763481SQ20101003417
公开日2010年6月30日 申请日期2010年1月15日 优先权日2010年1月15日
发明者刘宏楠, 李健, 杨震, 段立娟, 赖英旭 申请人:北京工业大学