一种病毒特征码提取的方法和装置
技术领域
本发明涉及通信技术领域,尤其涉及一种病毒特征码提取的方法和装置。
背景技术
计算机网络技术的飞速发展,尤其是互联网的应用变得越来越广泛,在带来了前所未有的海量的信息的同时,也使得计算机病毒的传播更加便捷。计算机病毒生成工具的出现后网络信息的安全性更是受到极大威胁。这些恶意程序一旦发作就会对计算机系统造成破坏,轻则篡改文件、影响系统稳定与执行效率、窃取信息,重则导致系统瘫痪,甚至破坏系统硬件部分,严重威胁到信息安全。
目前普遍使用的杀毒软件技术大多只能检测和查杀已知类型的恶意程序,使用的最广泛的检测方法就是特征码技术。现有的特征码提取技术主要是由反病毒工程师通过对恶意程序的逆向工程以及其它分析,手动或者半手动提取得到。
在实现本发明的过程中,发明人发现现有技术中存在以下缺点:
现有技术中,一旦有新的病毒或病毒变种出现就需要由反病毒工程师手动或者半手动提取该病毒的特征码,再通过升级的方式更新用户计算机上杀毒软件的病毒特征库,用于这个过程是通过手动或者半手动的方式完成的,所以会耗费大量的人力、物力、尤其是时间,病毒特征码的提取效率较低。
发明内容
本发明实施例提供了一种病毒特征码提取的方法和装置,以提高病毒特征码的提取效率。
本发明实施例提供了一种病毒特征码提取的方法,包括以下步骤:
对病毒样本进行分类;
所述对病毒样本进行分类包括:
通过运行所述病毒样本采集所述病毒样本的行为,根据所述病毒样本的行为将所述病毒样本分类为感染型病毒样本和非感染型病毒样本;
扫描所述非感染型病毒样本,获得所述非感染型病毒样本文件导入表中导入函数的数量,根据所述导入函数的数量将所述非感染型病毒样本分类为非感染加壳型病毒样本和非感染非加壳型病毒样本;
扫描正常文件和所述正常文件被所述感染型病毒样本感染后的被感染文件,获得所述正常文件和所述被感染文件的入口点信息,根据所述入口点信息将所述感染型病毒样本分类为修改入口点的感染型病毒样本和不修改入口点的感染型病毒样本;
其中,所述根据所述导入函数的数量将所述非感染型病毒样本分类为非感染加壳型病毒样本和非感染非加壳型病毒样本包括:将所述导入函数的数量小于预先设定的阈值的所述非感染型病毒样本分类为非感染加壳型病毒样本;将所述导入函数的数量不小于预先设定的阈值的所述非感染型病毒样本分类为非感染非加壳型病毒样本;
其中,所述根据所述入口点信息将所述感染型病毒样本分类为修改入口点的感染型病毒样本和不修改入口点的感染型病毒样本包括:若被所述感染型病毒样本感染后的被感染文件的入口点与所述正常文件的入口点不同,则将所述感染型病毒样本分类为修改入口点的感染型病毒样本;若被所述感染型病毒样本感染后的被感染文件的入口点与所述正常文件的入口点相同,则将所述感染型病毒样本分类为不修改入口点的感染型病毒样本;
根据所述病毒样本的分类结果提取所述病毒样本的特征码;
其中,所述根据所述病毒样本的分类结果提取所述病毒样本的特征码包括:从非感染非加壳型病毒样本入口点后绕过编译器字符串提取一段或多段字符串并记录所述字符串的位置信息,将所述字符串和所述字符串的位置信息作为非感染非加壳型病毒样本的特征码;
从设定的提取位置提取非感染加壳型病毒样本的一段或多段字符串,对所述字符串进行散列计算,将进行散列计算后的字符串作为非感染加壳型病毒样本的特征码;
对比被修改入口点的感染型病毒样本感染的多个被感染文件入口点后的字符串,利用相似算法计算所述多个被感染文件的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为修改入口点的感染型病毒样本的特征码;
对比正常文件及所述正常文件被不修改入口点的感染型病毒样本感染后的多个被感染文件,利用相似算法计算所述多个被感染文件中比所述正常文件新增加的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为所述不修改入口点的感染型病毒样本的特征码。
本发明实施例提供了一种病毒特征码提取装置,包括:
分类单元,用于对病毒样本进行分类;
提取单元,用于根据所述分类单元得到的病毒样本的分类结果提取所述病毒样本的特征码;
其中,所述分类单元包括:
行为分析子单元,用于通过运行所述病毒样本采集所述病毒样本的行为,根据所述病毒样本的行为将所述病毒样本分类为感染型病毒样本和非感染型病毒样本;
第一扫描子单元,用于扫描所述非感染型病毒样本,获得所述非感染型病毒样本文件导入表中导入函数的数量,根据所述导入函数的数量将所述非感染型病毒样本分类为非感染加壳型病毒样本和非感染非加壳型病毒样本;
所述提取单元包括:
第一提取子单元,用于从非感染非加壳型病毒样本入口点后绕过编译器字符串提取一段或多段字符串并记录所述字符串的位置信息,将所述字符串和所述字符串的位置信息作为非感染非加壳型病毒样本的特征码;
第二提取子单元,用于从设定的提取位置提取非感染加壳型病毒样本的一段或多段字符串,对所述字符串进行散列计算,将进行散列计算后的字符串作为非感染加壳型病毒样本的特征码;
所述分类单元还包括:
第二扫描子单元,用于扫描正常文件和所述正常文件被所述感染型病毒样本感染后的被感染文件,获得所述正常文件和所述被感染文件的入口点信息,根据所述入口点信息将所述感染型病毒样本分类为修改入口点的感染型病毒样本和不修改入口点的感染型病毒样本;
所述提取单元还包括:
第三提取子单元,用于对比被修改入口点的感染型病毒样本感染的多个被感染文件入口点后的字符串,利用相似算法计算所述多个被感染文件的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为修改入口点的感染型病毒样本的特征码;
第四提取子单元,用于对比正常文件及所述正常文件被不修改入口点的感染型病毒样本感染后的多个被感染文件,利用相似算法计算所述多个被感染文件中比所述正常文件新增加的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为不修改入口点的感染型病毒样本的特征码。
本发明的实施例中,通过对病毒文件的分类并根据分类结果提取病毒特征码,提高了病毒特征码的提取效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中一种病毒特征码提取的方法流程图;
图2是本发明实施例中一种病毒特征码提取装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种病毒特征码提取的方法,如图1所示,包括以下步骤:
步骤101,对病毒样本进行分类。将病毒样本分类为非感染加壳型病毒样本、非感染非加壳型病毒样本、修改入口点的感染型病毒样本和不修改入口点的感染型病毒样本。
运行病毒样本并采集病毒样本的行为,根据采集到的病毒样本行为判断该病毒样本是否具有感染性。如果该病毒样本具有感染正常文件的行为,则确定该病毒样本为感染性病毒样本;若该病毒样本具有破坏或恶意修改正常文件的异常行为但不具有感染正常文件的行为,则确定该病毒样本为非感染性病毒样本。
静态扫描病毒文件,获得病毒文件导入表中导入函数的数量,入口点信息等,根据上述信息对病毒样本进行进一步分类。
对非感染型病毒,由于加壳后的病毒文件会隐藏导入表的信息,使导入表中包含较少的导入函数信息,因而需要通过对非感染型病毒文件的静态扫描获得病毒样本文件导入表中导入函数的数量,并将其与预先设定的阈值比较,将导入函数的数量小于预先设定的阈值的非感染型病毒样本分类为非感染加壳型病毒样本,将所述导入函数的数量不小于预先设定的阈值的非感染型病毒样本分类为非感染非加壳型病毒样本。
对感染型病毒样本,通过静态扫描获得正常文件以及正常文件被感染型病毒样本感染后的被感染文件的入口点信息,并对二者进行比较,若被所述感染型病毒样本感染后的被感染文件的入口点与所述正常文件的入口点不同,则将所述感染型病毒样本分类为修改入口点的感染型病毒样本;若被所述感染型病毒样本感染后的被感染文件的入口点与所述正常文件的入口点相同,则将所述感染型病毒样本分类为不修改入口点的感染型病毒样本。
步骤102,根据所述病毒样本的分类结果提取所述病毒样本的特征码。
对非感染非加壳病毒特征码,其提取方法为从病毒样本文件入口点后绕过编译器字符串信息提取一段或几段字符串并记录所述字符串的位置信息,将所述字符串和所述字符串的位置信息作为该病毒样本的特征码。之所以绕过编译器信息,主要是由于每个编译器都会生成一些代码,而相同的编译器生成的不同文件这些代码都是几乎一样的,所以特征码不能选在这些地方。比如有这样一段编译器特征码:
{″0103080D121314191A1C1D1E1F20212227282A2B303133″,″6A68E8BF8BC7E889658BF4893E56FF158B4E890D8B46A3″,″Microsoft Visual C++7.0″,0},
表示入口点之后第一个,第三个,第八个...字节处的代码为6A,68,E8...。如果一个非感染非加壳病毒文件的入口点后满足以上特征码,则说明这个非感染非加壳病毒文件是由“Microsoft Visual C++7.0”编译生成的,如果要提取它的特征码,就要避开该编译器产生的信息,然后提取一段或多段字符串和字符串的位置信息。
对非感染加壳病毒特征码,由于病毒已加壳,则病毒文件本身的字符串已被加密,不能作为特征码。提取方法为忽略病毒样本文件的结构,根据用户预先设定的提取位置从病毒文件提取一段或多段字符串,对所述字符串进行散列计算,将进行散列计算后的字符串作为病毒样本的特征码。
对修改入口点的感染型病毒特征码,对被该种类型的病毒样本感染的被感染文件而言,入口点后的字符串即为新增的病毒特征码,但由于有些修改入口点的感染型病毒会在每次复制自身的时候改变字符串,因而,需要对多个被感染文件进行对比分析来获得特征码。提取方法为对比被修改入口点的感染型病毒样本感染的多个被感染文件入口点后的字符串,利用相似算法计算多个被感染文件的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为所述修改入口点的感染型病毒样本的特征码。
对不修改入口点的感染型病毒特征码,该种类型的病毒样本不会修改正常文件的入口点。提取方法为对比正常文件及所述正常文件被所述不修改入口点的感染型病毒样本感染后的多个被感染文件,利用相似算法计算所述多个被感染文件中比所述正常文件新增加的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为所述不修改入口点的感染型病毒样本的特征码。
在提取病毒的特征码之后,可以将获得的特征码保存入数据库。在特征码入库的过程中,可以将特征码及其相关信息如:病毒类型、病毒名称等一起存入数据库。
本发明的实施例中,通过对病毒文件的分类并根据分类结果提取病毒特征码,提高了病毒特征码的提取效率。
本发明实施例提供了一种病毒特征码提取装置,如图2所示,包括:
分类单元201,用于对病毒样本进行分类;
提取单元202,用于根据所述分类单元得到的病毒样本的分类结果提取所述病毒样本的特征码;
其中,所述分类模块201包括:
行为分析子单元203,用于通过运行所述病毒样本采集所述病毒样本的行为,根据所述病毒样本的行为将所述病毒样本分类为感染型病毒样本和非感染型病毒样本;
第一扫描子单元204,用于扫描所述非感染型病毒样本,获得所述非感染型病毒样本文件导入表中导入函数的数量,根据所述导入函数的数量将所述非感染型病毒样本分类为非感染加壳型病毒样本和非感染非加壳型病毒样本;
第二扫描子单元205,用于扫描正常文件和所述正常文件被所述感染型病毒样本感染后的被感染文件,获得所述正常文件和所述被感染文件的入口点信息,根据所述入口点信息将所述感染型病毒样本分类为修改入口点的感染型病毒样本和不修改入口点的感染型病毒样本。
其中,所述提取单元202包括:
第一提取子单元206,用于从所述非感染非加壳型病毒样本入口点后绕过编译器字符串提取一段或多段字符串并记录所述字符串的位置信息,将所述字符串和所述字符串的位置信息作为所述非感染非加壳型病毒样本的特征码;
第二提取子单元207,用于从设定的提取位置提取所述非感染加壳型病毒样本的一段或多段字符串,对所述字符串进行散列计算,将进行散列计算后的字符串作为所述非感染加壳型病毒样本的特征码;
第三提取子单元208,用于对比被所述修改入口点的感染型病毒样本感染的多个被感染文件入口点后的字符串,利用相似算法计算所述多个被感染文件的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为所述修改入口点的感染型病毒样本的特征码;
第四提取子单元209,用于对比正常文件及所述正常文件被所述不修改入口点的感染型病毒样本感染后的多个被感染文件,利用相似算法计算所述多个被感染文件中比所述正常文件新增加的字符串的相似度,提取相似度大于设定的阈值的字符串的相同部分作为公共字符串,用通配符替换相似度大于设定的阈值的字符串的不同部分,将所述公共字符串和所述通配符作为所述不修改入口点的感染型病毒样本的特征码。
本发明的实施例中,通过对病毒文件的分类并根据分类结果提取病毒特征码,提高了病毒特征码的提取效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。