专利名称:对非病毒文件自动提取特征的方法和装置的制作方法
技术领域:
本发明涉及计算机杀毒软件领域,尤其涉及一种对非病毒文件自动提取特征的方
法和装置。
背景技术:
杀毒软件在计算机上进行病毒扫描需要花费大量的时间,还会占用大量的系统资
源,这是因为病毒识别是一个复杂的过程。考虑到大多数计算上的文件都是一样的,并且都
是非病毒文件(即白文件)居多,例如操作系统的文件、常用软件的文件,如果能够在进行
病毒文件识别之前高效的识别出这些白文件,避免进行复杂的病毒识别过程,杀毒软件的 性能将得到很大的提升,扫描过程花费较短的时间,占用较少的系统资源。目前对白文件的
一般识别方法为基于白文件的二进制数据,提取出白特征(即非病毒特征);然后,在对文
件进行病毒扫描时,通过匹配白特征来识别白文件。目前常用的提取白特征的方法为对于
一个白文件,计算整个文件数据的HASH值来作为特征值。此方法具有以下不足 (1)识别白文件的效率不高。因为需要对整个文件计算HASH值,所以在白文件识
别时,会占用大量的系统资源(包括磁盘IO和CPU等),花费大量的时间。在整个病毒扫描
过程中表现为,自身扫描速度变慢,影响计算机上其他程序的正常运行。 (2)—条白特征只能识别一个白文件。面对大量的白文件,这样会导致产生大量的
白特征。特征数量变的庞大了,扫描速度也会变慢。
发明内容
本发明的第一目的是克服现有技术中的不足,提供一种对非病毒文件自动提取特 征的方法,使用该方法提取的非病毒特征可识别大量的非病毒文件,而且使用该非病毒特 征进行文件识别时的扫描速度快。 本发明的第二目的是提供一种执行上述对非病毒文件自动提取特征方法的装置。
为了实现上述第一目的,采用以下技术方案对非病毒文件自动提取特征的方法, 在非病毒文件中选取N个适合提取非病毒特征的固定位置,每个固定位置分配一个位置ID 号,以其中M个固定位置的位置ID号和这M个固定位置所对应的特征值作为非病毒特征; 所述特征值是指以某个所述固定位置为起点,取长度为L的一段二进制数据来计算的HASH 值;其中N^2,M^2且M《N,LX)。
进一步的技术方案是,
所述M值为2。
再进一步的技术方案是, 所述非病毒特征还需要与病毒文件原始特征集合中的原始特征进行比对,如果比 对结果为一致,则以非病毒文件中另外2个固定位置的位置ID号和这2个固定位置所对应 的特征值作为非病毒特征再进行比对,直到遇到比对结果不一致的非病毒特征;所述病毒 文件的原始特征中包括该病毒文件中所有N个固定位置的位置ID号和这N个固定位置所对应的特征值。
为了实现上述第二目的,采用以下技术方案对非病毒文件自动提取特征的装置 包括服务器端和客户端;
服务端包括 病毒文件原始特征集合,其中包含大量病毒文件的原始特征,原始特征中包括该
病毒文件中所有N个固定位置的位置ID号和这N个固定位置所对应的特征值; 特征碰撞检测模块,用于判断来自客户端的非病毒特征是否与病毒文件原始特征
集合中的任意一个原始特征中的M个数组一致; 通信模块,用于实现服务端与客户端的信息交互。 客户端包括 特征提取模块,在非病毒文件中选取N个适合提取非病毒特征的固定位置,每个 固定位置分配一个位置ID号,以其中M个固定位置的位置ID号和这M个固定位置所对应 的特征值作为非病毒特征;所述特征值是指以某个所述固定位置为起点,取长度为L的一 段二进制数据来计算的HASH值;其中N^2,M^2且M《N,LX);
通信模块,用于实现客户端与服务端的信息交互。 上述对非病毒文件自动提取特征的方法和装置的原理是,以非病毒文件中某些适 合提取非病毒特征的固定位置作为起点,计算从该起点开始长度为L的一段二进制数据的 HASH值,将固定位置ID号和该固定位置的特征值作为一组特征,选取这样的特征两组(或 者更多)作为非病毒特征,这样提取的非病毒特征与现有的计算整个非病毒文件的HASH值 相比,大大提高了文件扫描的速度;而且可以用一个非病毒特征匹配大量的相似或者相同 的非病毒文件。
具体实施例方式
本发明对非病毒文件自动提取特征的方法是针对现有的非病毒文件进行提取合 适的非病毒特征,以便于使用该特征进行排除非病毒文件,该非病毒特征一般要求其准确 性和高效性。所说的准确性是指这种非病毒特征应该为非病毒文件所有,不应该涵盖病毒 文件。所说的高效性是指使用一个非病毒特征最好能够匹配多个相同或相似的非病毒文 件。 本发明对非病毒文件自动提取特征的方法是,在非病毒文件中选取N个适合提取 非病毒特征的固定位置,每个固定位置分配一个位置ID号。这里所说的固定位置是指,基 于对非病毒文件的认知和经验而获知的非病毒特征代码经常出现的位置,比如对于可执行 文件来说,可以选择文件头、文件尾、文件中部、第一个节开始位置、PE头、资源开始位置等 等,至于选几个这样的位置,具体选哪个位置并不需要硬性规定。也就是说N的取值只要大 于或等于2即可。在为每个位置分配ID号时,可以根据优先级别分配ID号,比如说PE头 位置为非病毒代码最易出现的位置,那么就可以将PE头位置的ID号设为l,其他以此类推。 这些固定位置选定以后,以其中M个固定位置的位置ID号和这M个固定位置所对应的特征 值作为非病毒特征,以M = 2,所选的固定位置是ID1和ID3为例,非病毒特征就是两个数 组(1,ID1位置对应的特征值)和(3,ID3位置对应的特征值);本申请文件中所说的特征 值是指以某个所述固定位置为起点,取长度为L的一段二进制数据来计算的HASH值;比如IDl位置所对应的特征值就是,以IDl位置为起点,取长度为L的一段二进制数据来计算的 HASH值,L应大于零,最好L小于4k。 M > 2且M《N, M的最佳取值是2,因为,M的取值越 大,非病毒特征的数组越多,该非病毒特征所能匹配的非病毒文件数量也越少,后续扫描非 病毒文件的速度也会变慢。 为了确保采用上述方法提取的非病毒特征的准确性,还可以对上述非病毒特征与 病毒文件原始特征集合中的原始特征进行比对,如果比对结果为一致,则以非病毒文件中 另外M个(上例为2个)固定位置的位置ID号和这M个(上例为2个)固定位置所对应 的特征值作为非病毒特征再进行比对,直到遇到比对结果不一致的非病毒特征;这里所说 的病毒文件的原始特征中包括该病毒文件中所有N个固定位置的位置ID号和这N个固定 位置所对应的特征值。 如果某个固定位置之后的文件长度小于L,则将不足部分补入任意一个预设的默 认值。这个值之所以可以使任意值,是因为,作为病毒文件的原始特征的提取方式和非病毒 文件的非病毒特征提取方式完全相同,如果有病毒文件的原始特征与所提取的非病毒文件 的特征相同,那么该病毒文件的原始特征也是需要补入相同的默认值,并不影响比对结果。
下面以一个非病毒可执行文件为例,介绍本发明方法的具体流程。假设N = 5, M =2, L = 512字节;文件头位置的位置ID为ID2,文件中部的位置ID为IDl,第一个节开 始位置的位置ID为ID4, PE头的位置ID为ID5,资源开始位置的位置ID为ID3。需要说 明的是,病毒文件原始特征集合中的原始特征也是对其中的所有病毒文件采用同样的位置 划分方式,且位置ID的划分也必须是一致的,且L的取值也是一样的。S卩,病毒文件原始 特征集合中某原始特征是五个数组(1, IDl位置对应的特征值)、(2, ID2位置对应的特征 值)、 、 (5, ID5位置对应的特征值)。 a.计算非病毒文件在ID号为1的固定位置(即文件头位置)上的特征值,将ID 号1和ID号为1的固定位置所对应的特征值作为非病毒特征的第一特征值(两个数组中 的第一个);假设P为第二特征值所在固定位置的ID号,设置P = 2,并执行步骤b ;
b.如果P大于N(即5),则跳转到步骤e,否则继续执行本步骤;计算非病毒文件 在ID号为P的固定位置上的特征值,将ID号P和ID号为P的固定位置所对应的特征值作 为非病毒特征的第二特征值(两个数组中的第二个);执行步骤c ; c.以当前第一特征值和第二特征值构成非病毒特征;然后发送非病毒特征到服 务端,请求执行特征碰撞检测;服务端接收到请求后,只要有一个病毒文件的原始特征中的 两个数组与所述非病毒特征一致(这里所说的一致是指与非病毒特征中的两个数组均一 致,每个数组一致包括ID号和该ID号所对应的固定位置上的特征值均一致),则判断该非 病毒特征是不可取的,将P的值加l,并跳回执行步骤b ;如果没有病毒文件的原始特征与所 述非病毒特征一致,则该非病毒特征是可行的,执行步骤d ;
d.提取特征成功,输出非病毒特征提取结果,流程结束;
e.提取特征失败,流程结束。 在上述方法中,将非病毒特征的两个数组中的一个固定,即ID为1的位置是确定 要取的,这样便于程序执行,理论上讲,选用其他组合也可以,比如ID2和ID3,但这种变形 可以通过改变对固定位置的ID编号设置来实现。 按照上述步骤,如果出现特征提取失败的情况(即跳转到步骤e),这是因为该非病毒文件上所有的非病毒特征组合都会误报病毒文件为非病毒文件。为了应对这种情况, 提高本发明装置与方法的处理能力,采用如下方案则将该非病毒文件的整个文件的HASH
值作为非病毒特征。 对非病毒文件自动提取特征的装置包括服务器端和客户端;
服务端包括 病毒文件原始特征集合,其中包含大量病毒文件的原始特征,原始特征中包括该
病毒文件中所有N个固定位置的位置ID号和这N个固定位置所对应的特征值; 特征碰撞检测模块,用于判断来自客户端的非病毒特征是否与病毒文件原始特征
集合中的任意一个原始特征中的M个数组一致; 通信模块,用于实现服务端与客户端的信息交互。
客户端包括 特征提取模块,在非病毒文件中选取N个适合提取非病毒特征的固定位置,每个 固定位置分配一个位置ID号,以其中M个固定位置的位置ID号和这M个固定位置所对应 的特征值作为非病毒特征;所述特征值是指以某个所述固定位置为起点,取长度为L的一 段二进制数据来计算的HASH值;其中N^2,M^2且M《N,LX);
通信模块,用于实现客户端与服务端的信息交互。 以上实施例仅用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的 任何修改或局部替换,应涵盖在本发明的权利要求范围当中。
权利要求
对非病毒文件自动提取特征的方法,其特征在于,在非病毒文件中选取N个适合提取非病毒特征的固定位置,每个固定位置分配一个位置ID号,以其中M个固定位置的位置ID号和这M个固定位置所对应的特征值作为非病毒特征;所述特征值是指以某个所述固定位置为起点,取长度为L的一段二进制数据来计算的HASH值;其中N≥2,M≥2且M≤N,L>0。
2. 根据权利要求l所述的对非病毒文件自动提取特征的方法,其特征在于,所述M值为2。
3. 根据权利要求2所述的对非病毒文件自动提取特征的方法,其特征在于,所述非病 毒特征还需要与病毒文件原始特征集合中的原始特征进行比对,如果比对结果为一致,则 以非病毒文件中另外2个固定位置的位置ID号和这2个固定位置所对应的特征值作为非 病毒特征再进行比对,直到遇到比对结果不一致的非病毒特征;所述病毒文件的原始特征 中包括该病毒文件中所有N个固定位置的位置ID号和这N个固定位置所对应的特征值。
4. 根据权利要求3所述的对非病毒文件自动提取特征的方法,其特征在于,如果某个 固定位置之后的文件长度小于L,则将不足部分补入任意一个预设的默认值。
5 根据权利要求2所述的对非病毒文件自动提取特征的方法,其特征在于,具体步骤为a. 计算非病毒文件在ID号为1的固定位置上的特征值,将ID号1和ID号为1的固定 位置所对应的特征值作为非病毒特征的第一特征值;假设P为第二特征值所在固定位置的 ID号,设置P = 2,并执行步骤b ;b. 如果P大于N,则跳转到步骤e,否则继续执行本步骤;计算非病毒文件在ID号为P 的固定位置上的特征值,将ID号P和ID号为P的固定位置所对应的特征值作为非病毒特 征的第二特征值;执行步骤c;c. 以当前第一特征值和第二特征值构成非病毒特征;然后发送非病毒特征到服务端, 请求执行特征碰撞检测;服务端接收到请求后,只要有一个病毒文件的原始特征中的两个 数组与所述非病毒特征一致,则判断该非病毒特征是不可取的,将P的值加l,并跳回执行 步骤b ;如果没有病毒文件的原始特征与所述非病毒特征一致,则该非病毒特征是可行的, 执行步骤d ;d. 提取特征成功,输出非病毒特征提取结果,流程结束;e. 提取特征失败,流程结束。
6. 根据权利要求5所述的对非病毒文件自动提取特征的方法,其特征在于,具体步骤为如果提取特征失败,则将该非病毒文件的整个文件的HASH值作为非病毒特征。
7. 根据权利要求1-6中任意一项所述的对非病毒文件自动提取特征的方法,其特征在 于,所述L < 4K。
8. 对非病毒文件自动提取特征的装置,其特征在于,包括服务器端和客户端;服务端包括病毒文件原始特征集合,其中包含大量病毒文件的原始特征,原始特征中包括该病毒文件中所有N个固定位置的位置ID号和这N个固定位置所对应的特征值;特征碰撞检测模块,用于判断来自客户端的非病毒特征是否与病毒文件原始特征集合中的任意一个原始特征中的M个数组一致;通信模块,用于实现服务端与客户端的信息交互; 客户端包括特征提取模块,在非病毒文件中选取N个适合提取非病毒特征的固定位置,每个固定 位置分配一个位置ID号,以其中M个固定位置的位置ID号和这M个固定位置所对应的特 征值作为非病毒特征;所述特征值是指以某个所述固定位置为起点,取长度为L的一段二 进制数据来计算的HASH值;其中N^2,M^2且M《N,LX);通信模块,用于实现客户端与服务端的信息交互。
9. 根据权利要求8所述的对非病毒文件自动提取特征的装置,其特征在于,所述M值为2。
10. 根据权利要求8所述的对非病毒文件自动提取特征的装置,其特征在于,所述L < 4K。
全文摘要
本发明涉及计算机杀毒软件领域,尤其涉及一种对非病毒文件自动提取特征的方法和装置。对非病毒文件自动提取特征的方法,在非病毒文件中选取N个适合提取非病毒特征的固定位置,每个固定位置分配一个位置ID号,以其中M个固定位置的位置ID号和这M个固定位置所对应的特征值作为非病毒特征;所述特征值是指以某个所述固定位置为起点,取长度为L的一段二进制数据来计算的HASH值;其中N≥2,M≥2且M≤N,L>0。上述方法大大提高了文件扫描的速度;而且可以用一个非病毒特征匹配大量的相似或者相同的非病毒文件。
文档编号G06F21/00GK101710374SQ20091021386
公开日2010年5月19日 申请日期2009年12月12日 优先权日2009年12月12日
发明者刘海峰, 包德荣, 彭宁, 梅银明, 邱锐锋, 钟东 申请人:珠海市君天电子科技有限公司