可信文件数字签名的获取方法及装置的制作方法

文档序号:6380481阅读:186来源:国知局

专利名称::可信文件数字签名的获取方法及装置的制作方法
技术领域
:本发明涉及计算机安全
技术领域
,具体涉及一种可信文件数字签名的获取方法及>J-U装直。
背景技术
:随着计算机技术在社会生活中各个领域的广泛运用,恶意程序(是指任何故意创建用来执行未经授权并通常是有害行为的软件程序)也如同其附属品一样接踵而来。由于这些恶意程序所具有的感染性、复制性及破坏性,其已成为困扰计算机使用的一个重大问题。因此,在网络威胁飙升的今天,更新病毒特征码成为企业及网民每天必备的工作,从每周一次到每天一次,直至时刻更新。而传统杀毒软件是将病毒库放在本地客户端,在客户端进行文件的分析工作,在扫描过程中会反复在本地病毒库中进行比对,占用大量系统资源,并且随着病毒库的不断升级,病毒库的容量越来越大,分析文件时所耗费的时间也越来越长,让客户端计算机越用越慢,因此,反病毒行业必须寻找新的技术突破。“云安全(CloudSecurity)”计划即是网络时代信息安全的最新体现,它融合了并行处理、网格计算、未知病毒行为判断等新兴技术概念,将“云计算”的理念应用到了安全领域。“云安全”计划的实现是与其样本数据库的构建息息相关的,因此,如何有效的组织并维护样本数据库,成为业界亟待解决的问题。对于安全公司来说,收集可信任的可执行文件样本是一个非常重要的工作。现有技术是通过样本的数字签名来确定样本是否为可信任的样本,如果某一可执行文件样本的数字签名为可信文件数字签名,那么就确定该可执行文件样本为可信任的。因此,如何从大量的数字签名中获取可信文件数字签名就成为完成上述工作的一个非常重要的步骤。现有技术获取可信文件数字签名的方法主要有以下两种(一)人工审核方法;这种方法的优点是准确率高,但是审核速度慢、成本很高,召回率难以保证。尤其是当数字签名库越来越大的时候,人工审核变得越发的难以操作。(二)通过编辑距离算法计算得到字符串相似度,与已知可信文件数字签名的字符串相似度较高的数字签名可以确定为可信文件数字签名。这种方法很好的解决了当数字签名库很大时,人工操作难的问题。但是仍然存在这样的问题对于同一公司或机构的数字签名,通过编辑距离算法计算的字符串相似度往往很低,例如,“PoweriseDigitalTechnologiesCo.Ltd/PoweriseDigitalTechnologiesCo.Ltd.”和“Powerise”属于同一公司或机构的数字签名,通过编辑距离算法得到的字符串相似度就很低,尽管已知“PoweriseDigitalTechnologiesCo.Ltd/PoweriseDigitalTechnologiesCo.Ltd.”为可信文件数字签名,也不能确定“Powerise”也是可信文件数字签名。在这种情况下,获取可信文件数字签名的准确率会降低
发明内容鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的可信文件数字签名的获取方法和相应的可信文件数字签名的获取装置。根据本发明的一个方面,提供了一种可信文件数字签名的获取方法,包括收集多个可执行文件样本的数字签名;将多个数字签名分别进行分词操作处理,得到多个数字签名集合,其中每个数字签名集合包含至少一个单词;统计每个数字签名集合中每个单词的词频;根据数字签名集合中单词的词频和字符串长度,获取多个数字签名集合两两之间的字符串相似度;将字符串相似度高于设定阈值的数字签名集合聚为一类;根据同一类中已知可信文件数字签名的数量,确定该类中所有的数字签名是否为可信文件数字签名。根据本发明的另一方面,提供了一种可信文件数字签名的获取方法,包括获取可执行文件样本的数字签名;将数字签名进行分词操作处理,得到数字签名集合,数字签名集合包含至少一个单词;统计数字签名集合中每个单词的词频;根据数字签名集合中单词的词频和字符串长度,获取数字签名集合与已知的可信文件数字签名集合的字符串相似度;根据数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定数字签名是否为可信文件数字签名。根据本发明的一个方面,提供了一种可信文件数字签名的获取装置,包括收集模块,用于收集多个可执行文件样本的数字签名;分词处理模块,用于将多个数字签名分别进行分词操作处理,得到多个数字签名集合,其中每个数字签名集合包含至少一个单词;词频统计模块,用于统计每个数字签名集合中每个单词的词频;相似度获取模块,用于根据数字签名集合中单词的词频和字符串长度,获取多个数字签名集合两两之间的字符串相似度;聚类模块,用于将字符串相似度高于设定阈值的数字签名集合聚为一类;可信文件数字签名获取模块,用于根据同一类中已知可信文件数字签名的数量,确定该类中所有的数字签名是否为可信文件数字签名。根据本发明的另一方面,提供了一种可信文件数字签名的获取装置,包括签名获取模块,用于获取可执行文件样本的数字签名;分词处理模块,用于将数字签名进行分词操作处理,得到数字签名集合,数字签名集合包含至少一个单词;词频统计模块,用于统计数字签名集合中每个单词的词频;相似度获取模块,用于根据数字签名集合中单词的词频和字符串长度,获取数字签名集合与已知的可信文件数字签名集合的字符串相似度;可信文件数字签名获取模块,用于根据数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定数字签名是否为可信文件数字签名。根据本发明的提供的可信文件数字签名的获取方法及装置,将数字签名进行分词操作处理得到数字签名集合,根据数字签名集合中单词的词频和字符串长度,获取两个集合之间字符串相似度,根据字符串相似度来确定数字签名是否为可信文件数字签名。本发明提供的方案在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,与现有技术中单纯依赖编辑距离算法计算字符串相似度相比,利用本发明计算得到的两个集合的字符串相似度更能反映两个集合的相关程度,由此提高了获取可信文件数字签名的准确率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1示出了根据本发明一个实施例的可信文件数字签名的获取方法的流程图;图2示出了根据本发明另一个实施例的可信文件数字签名的获取方法的流程图;图3示出了根据本发明一个实施例的可信文件数字签名的获取装置的结构示意图;以及图4示出了根据本发明另一个实施例的可信文件数字签名的获取装置的结构示意图。具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。PE(PortableExecute,可移植的执行体)文件是微软Windows操作系统上的程序文件,它是是可执行文件的一种,常见的后缀为EXE、DLL、OCX、SYS、COM的文件都是PE文件。在以下实施例中,以PE文件作为例子,详细介绍可信文件数字签名的获取方法。但需要注意的是,本发明中可执行文件不仅限于是PE文件。图1示出了根据本发明一个实施例的可信文件数字签名的获取方法100的流程图。如图1所示,方法100始于步骤S101,其中收集多个PE文件样本的数字签名。根据系统处理能力,尽可能多的收集PE文件样本的数字签名,如收集3万多数字签名,其中有一部分数字签名为已知可信文件数字签名。所谓已知可信文件数字签名是指已经获知为可信任PE文件签名的数字签名。随后,方法100进入步骤S102,在步骤SlOl中收集到多个数字签名之后,在步骤S102中将多个数字签名分别进行分词操作处理,得到多个数字签名集合,其中每个数字签名集合包含至少一个单词。可选地,对于其中一个数字签名,首先去除该数字签名中的字符和标点符号;其次将数字签名的格式进行统一处理,例如将全半角的数字签名统一转化为半角,将大小写混合的数字签名统一转化为小写或大写;将多个空格制表符按一个来处理;对于中文,进行繁简体统一转换或编码统一转换等操作;最后,对于英文数字签名,以空格为分隔进行分词处理,对于中文数字签名,以单词为分隔进行分词处理。举例来说,“成都梦工厂公司”可分为“成都”、“梦工厂”和“公司”,这三个单词组成一个数字签名集合{成都,梦工厂,公司};“TEKTR0NIX,Inc.”可分为“tektronix”和“inc”,这两个单词组成一个数字签名集合{tektronix,inc}”;TektronixUKLtd.”可分为“tektronix”、“uk”和“ltd”,这三个单词组成一个数字签名集合{tektronix,uk,ltd}。随后方法100进入步骤S103,其中根据同义词对应表,将以不同形式出现的同义单词做归一化处理,这里是对步骤SlOl收集的3万多数字签名对应的数字签名集合中的单词统一进行归一化处理。该同义词对应表通过人工标注预先获得的。在数字签名中,存在一些固定的简写规则,例如corp和co.都是corporation的简写,ltd是limited的简写。需要将这些具有相同意义的单词之前的对应关系建立起来,这里使用人工标注或者机器标注的方法,预先建立同义词对应表,该同义词对应表中记录了同义单词之间的对应关系以及同义单词中哪个单词为归一化的单词。根据同义词对应表,将步骤S102中得到的每个数字签名集合中的单词做归一化处理。例如,数字签名集合{tektronix,uk,ltd}经过归一化处理后成为{tektronix,uk,limited}。应当注意的是,步骤S103是本方法的可选步骤。随后方法100进入步骤S104,在步骤S104中统计每个数字签名集合中每个单词的词频。所谓词频是指单词在所有数字签名集合中出现的频次。明显地,单词“limited”在所有数字签名集合中出现的频次会远高于单词“tektronix”。随后方法100进入获取多个数字签名集合两两之间的字符串相似度的步骤,该步骤包括如下步骤S105、步骤S106和步骤S107。在步骤S105中,对于多个数字签名集合中任意两个数字签名集合A和B,获取A和B的交集C。设A=Ia1,a2,···,aj,B=Od1,b2,···,bj,A与B的交集C=Ic1,c2,···,cj。例如,若A={tektronix,inc},B={tektronix,uk,limited},则A与B的交集C={tektronix}。在步骤S106中,根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子。设A中的单词%的词频为Freq(),字符串长度为Length(Bi),B中的单词匕的词频为Freq,字符串长度为Length(印,那么A的长度因子为mVacior—1.en^ih.{A)=VLengih{a)*(\jIreqiai))(I)f=lB的长度因子为fjl·'actor_1.en^ihiB)=^Lengihibi)*(i/J-'reqib,.))(2)应当注意的是,步骤S105和S106之间没有前后顺序关系,两个步骤可以同时执行、先执行步骤S106然后再执行步骤S105等,所有这些都在本发明的保护范围之内。在步骤S107中,根据A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。设C中的单词Ci的词频为Freq(Ci),字符串长度为Length(Ci),那么A和B的字符串相似度为,,.,^laciorLensihic)laciorl.ensihic),L、SimAB=(Y-=——5vl}+T-=——5vl})/2(3)iacior_Lengih(A)iacior_Lengih{B)/其中,Factor_Length(Ci)=Length(Ci)*(1/Freq(Ci))(4)由上述公式(I)-(4)可以看出,集合A和B中每个单词对SimAB的权重影响取决于该单词的词频和字符串长度。单词的词频越低,字符串长度越高,该单词对SimAB的权重影响越大;单词的词频越高,字符串长度越低,该单词对SimAB的权重影响越小。如果A和B的交集C中包含对SimAB权重影响越大的单词,那么最终计算得到的SimAB就越高。以单词“limited”和“tektronix”为例,“limited”的词频高于“tektronix”,但“limited”的字符串长度低于“tektronix”,那么“tektronix”对SimAB的权重影响高于“limited”。如果A和B的交集C中包含“tektronix”,则计算得到的SimAB就较高;如果A和B的交集C中包含“limited”而不包含“tektronix”,则计算得到的SimAB就较低。在步骤S107中计算得到多个数字签名集合两两之间的字符串相似度之后,方法100进入步骤S108,其中将字符串相似度高于设定阈值的数字签名集合聚为一类。设定阈值是人工确定的,可选地,设定阈值可以为0.85,如果A和B的字符串相似度高于0.85,那么A和B可聚为一类。随后方法100进入步骤S109,其中根据同一类中已知可信文件数字签名的数量,确定该类中所有数字签名是否为可信文件数字签名。由于在步骤SlOl中收集的数字签名中有一部分为已知可信文件数字签名,所以在每个聚类中都有可能存在一定数量的已知可信文件数字签名,如果某一类中已知可信文件数字签名的数量比较多,例如已知可信文件数字签名的数量过半,则可认为这一类的数字签名均为可信文件数字签名。可选地,预先设定已知可信文件数字签名占所有数字签名的比例阈值,如果在某一聚类中,已知可信文件数字签名占所有数字签名的比例高于该比例阈值,则确定这个聚类中所有的数字签名都为可信文件数字签名。本实施例提供了一种在收集到多个数字签名且已知其中一部分数字签名为可信文件数字签名的情况下,如何确定剩余另一部分数字签名是否为可信文件数字签名,从而建立可信文件数字签名数据库的方法。具体地,首先对多个数字签名分别进行分词操作处理,得到多个数字签名集合;根据单词的词频和字符串长度计算两两集合之间的字符串相似度。其中,两个集合中每个单词对最终计算得到的字符串相似度的权重影响取决于该单词的词频和字符串长度。将字符串相似度高于设定阈值的数字签名集合聚为一类,根据同一类中已知可信文件数字签名的数量,确定该类中所有数字签名是否为可信文件数字签名。由此可见,本方法在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,与现有技术中单纯依赖编辑距离算法计算字符串相似度相比,利用本方法计算得到的两个集合的字符串相似度更能反映两个集合的相关程度,由此提高了聚类的准确率,进一步提高了获取可信文件数字签名的准确率。以同一公司或机构的两个数字签名为例,公司名称对两个集合的字符串相似度的权重影响较大,显然同一公司或机构的两个数字签名集合的交集都会包含公司名称,那么利用本方法同一公司或机构的两个数字签名会被聚为一类。图2示出了根据本发明另一个实施例的可信文件数字签名的获取方法200的流程图。如图2所示,方法200始于步骤S201,其中获取某一PE文件样本的数字签名,该数字签名为待确认的数字签名。随后,方法200进入步骤S202,在步骤S201中获取待确认的数字签名之后,在步骤S202中将该数字签名进行分词操作处理,得到数字签名集合,其中该数字签名集合包含至少一个单词。可选地,首先去除该数字签名中的字符和标点符号;其次将数字签名的格式进行统一处理,例如将全半角的数字签名统一转化为半角,将大小写混合的数字签名统一转化为小写或大写;将多个空格制表符按一个来处理;对于中文,进行繁简体统一转换或编码统一转换等操作;最后,对于英文数字签名,以空格为分隔进行分词处理,对于中文数字签名,以单词为分隔进行分词处理。举例来说,“成都梦工厂公司”可分为“成都”、“梦工厂”和“公司”,这三个单词组成一个数字签名集合{成都,梦工厂,公司}TEKTRONIX,Inc.”可分为“tektronix”和“inc”,这两个单词组成一个数字签名集合{tektronix,inc}”;TektronixUKLtd.”可分为“tektronix”、“uk”和“ltd”,这三个单词组成一个数字签名集合{tektronix,uk,ltd}。随后方法200进入步骤S203,其中根据同义词对应表,将以不同形式出现的同义单词做归一化处理,这里是对步骤S201获取的待确认的数字签名对应的数字签名集合中的单词进行归一化处理。该同义词对应表通过人工标注或者机器标注预先获得的。在数字签名中,存在一些固定的简写规则,例如corp和co.都是corporation的简写,ltd是limited的简写。需要将这些具有相同意义的单词之前的对应关系建立起来,这里使用人工标注的方法,预先建立同义词对应表,该同义词对应表中记录了同义单词之间的对应关系以及同义单词中哪个单词为归一化的单词。根据同义词对应表,将步骤S202中得到的数字签名集合中的单词做归一化处理。例如,数字签名集合{tektronix,uk,ltd}经过归一化处理后成为{tektronix,uk,limited}。应当注意的是,步骤S203是本方法的可选步骤。随后方法200进入步骤S204,在步骤S204中统计数字签名集合中每个单词的词频。所谓词频是指单词在所有已知的可信文件数字签名集合中出现的频次。随后方法200进入获取数字签名集合与已知的可信文件数字签名集合的字符串相似度的步骤,该步骤包括如下步骤S205、步骤S206和步骤S207。在步骤S205中,对于数字签名集合A和已知的可信文件数字签名集合B,获取A和B的交集C。设A=Ia1,a2,···,aj,B=Od1,b2,···,bj,A与B的交集C=Ic1,c2,···,cj。例如,若A={tektronix,inc},B={tektronix,uk,limited},则A与B的交集C={tektronix}。在步骤S206中,根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子。设A中的单词%的词频为Freq(),字符串长度为Length(Bi),B中的单词匕的词频为Freq,字符串长度为Length(印,那么A的长度因子为m权利要求1.一种可信文件数字签名的获取方法,包括收集多个可执行文件样本的数字签名;将多个数字签名分别进行分词操作处理,得到多个数字签名集合,其中每个数字签名集合包含至少一个单词;统计每个数字签名集合中每个单词的词频;根据数字签名集合中单词的词频和字符串长度,获取多个数字签名集合两两之间的字符串相似度;将字符串相似度高于设定阈值的数字签名集合聚为一类;根据同一类中已知可信文件数字签名的数量,确定该类中所有的数字签名是否为可信文件数字签名。2.根据权利要求I所述的方法,所述单词的词频是该单词在所有数字签名集合中出现的频次。3.根据权利要求I或2所述的方法,所述多个数字签名集合中任意两个数字签名集合中每个单词对这两个数字签名集合的字符串相似度的权重影响取决于该单词的词频和字符串长度。4.根据权利要求I至3任一项所述的方法,所述获取多个数字签名集合两两之间的字符串相似度包括对于多个数字签名集合中任意两个数字签名集合A和B,获取A和B的交集C;根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子;根据所述A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。5.根据权利要求I至4任一项所述的方法,在所述统计每个数字签名集合中每个单词的词频之前还包括根据同义词对应表,将以不同形式出现的同义单词做归一化处理。6.根据权利要求I至5任一项所述的方法,所述将多个数字签名分别进行分词操作处理,得到多个数字签名集合包括去除数字签名中的字符和标点符号;将数字签名的格式进行统一处理;对于英文数字签名,以空格为分隔进行分词处理;对于中文数字签名,以单词为分隔进行分词处理。7.一种可信文件数字签名的获取装置,包括收集模块,用于收集多个可执行文件样本的数字签名;分词处理模块,用于将多个数字签名分别进行分词操作处理,得到多个数字签名集合,其中每个数字签名集合包含至少一个单词;词频统计模块,用于统计每个数字签名集合中每个单词的词频;相似度获取模块,用于根据数字签名集合中单词的词频和字符串长度,获取多个数字签名集合两两之间的字符串相似度;聚类模块,用于将字符串相似度高于设定阈值的数字签名集合聚为一类;可信文件数字签名获取模块,用于根据同一类中已知可信文件数字签名的数量,确定该类中所有的数字签名是否为可信文件数字签名。8.根据权利要求7所述的装置,所述单词的词频是该单词在所有数字签名集合中出现的频次。9.根据权利要求7或8所述的装置,所述多个数字签名集合中任意两个数字签名集合中每个单词对这两个数字签名集合的字符串相似度的权重影响取决于该单词的词频和字符串长度。10.根据权利要求7至9任一项所述的装置,所述相似度获取模块包括第一获取单元,用于对于多个数字签名集合中任意两个数字签名集合A和B,获取A和B的交集C;第二获取单元,用于根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子;第三获取单元,用于根据所述A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。11.根据权利要求7至10任一项所述的装置,还包括归一化处理模块,用于根据同义词对应表,将以不同形式出现的同义单词做归一化处理。12.根据权利要求7至11任一项所述的装置,所述分词处理模块包括去除单元,用于去除数字签名中的字符和标点符号;格式处理单元,用于将数字签名的格式进行统一处理;分词处理单元,用于对于英文数字签名,以空格为分隔进行分词处理;对于中文数字签名,以单词为分隔进行分词处理。13.—种包括上述权利要求7-12任一项所述的可信文件数字签名的获取装置的服务端设备。全文摘要本发明公开了一种可信文件数字签名的获取方法及装置。其中一种方法包括收集多个可执行文件样本的数字签名;将多个数字签名分别进行分词操作处理,得到多个数字签名集合,每个数字签名集合包含至少一个单词;统计每个数字签名集合中每个单词的词频;根据数字签名集合中单词的词频和字符串长度,获取多个数字签名集合两两之间的字符串相似度;将字符串相似度高于设定阈值的数字签名集合聚为一类;根据同一类中已知可信文件数字签名的数量,确定该类中所有的数字签名是否为可信文件数字签名。本发明提供的方案在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,因此更能反映两个集合的相关程度,由此提高了获取可信文件数字签名的准确率。文档编号G06F21/64GK102982291SQ20121043602公开日2013年3月20日申请日期2012年11月5日优先权日2012年11月5日发明者张超旭,于春功申请人:北京奇虎科技有限公司,奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1