一种样本相似度的检测方法及装置的制造方法_3

文档序号:9471435阅读:来源:国知局
[0070] 本发明实施例还提供一种样本相似度的检测装置,如图3所示,该检测装置主要 包括:布隆过滤器构建单元100、字符串集合提取单元200、样本特征生成单元300及相似度 计算单元400等。
[0071] 在本发明实施例中,首先通过上述的布隆过滤器构建单元100获取待检测的样 本,并根据该样本构建布隆过滤器。在此实施例中,该样本可以包括但不限于:计算机病毒 文件、计算机木马文件、计算机恶意软件。在具体实施时,该布隆过滤器构建单元100可根 据该样本及对样本进行转换的实际需求构建不同的布隆过滤器,不同的布隆过滤器中的位 数组的大小、哈希函数等可能均不相同。布隆过滤器是一种基于二进制向量和一系列随机 函数的数据结构,通常用于检查一个元素是否在一个集合中,它的优点是空间效率和查询 时间都远远超过一般的算法。
[0072] 上述的字符串集合提取单元200,用于对样本的所有常用信息进行提取,并将提取 到的所有常用信息生成字符串形式的字符串集合S1= (S1,S2,…,Sn)。上述样本的常用信 息例如是该样本的调用函数名称、字符串信息、数值常量等。此处所述的该样本的调用函数 名称、字符串信息、数值常量,是指该样本(例如计算机病毒文件)对计算机系统进行的篡 改行为或未经许可的操作等的过程中,所调用的计算机系统中的函数,或是所调用或篡改 的计算机系统中的字符串信息、数值常量等信息。
[0073] 然后,样本特征生成单元300将该字符串集合SjP入一个建立好的布隆过滤器 中。布隆过滤器是一种基于二进制向量和一系列随机函数的数据结构,通常用于检查一个 元素是否在一个集合中,它的优点是空间效率和查询时间都远远超过一般的算法。布隆过 滤器的容量可根据样本的字符串集合的个数进行设定,以确保布隆过滤器能够容纳该样 本,并对样本的字符串集合3 1进行字符串转换过程。
[0074] 将上述的字符串集合Si加入该布隆过滤器bloom,add(Si) =bloom.Bitarray中, 其中,i= 1,2,…n。该布隆过滤器的二进制位串bloom.Bitarray就是该样本的样本特 征。在一实施例中,该布隆过滤器可包含一个长度为m的位数组array和k个映射函数。 首先,将该位数组array的各个位置为0,如图2A所示。对于有n个元素的集合Si=(Si,S2,…,Sn),通过k个映射函数(f\,f2, ...,fk),将集合S1中的每个元素Sj映射为k个值 fe,g2,…,gk),然后在将位数组array中相对应的array[gj,array[g2],…,array[gj 置为1。因此可得该元素所对应的布隆过滤函数所生成的二进制位串如图2B所示。
[0075] 在计算机应用过程中,由于黑客或者存在恶意目的的使用者会通过恶意程序(即 上文所述的样本中的一种,例如计算机病毒文件、计算机木马文件、计算机恶意软件等),对 一般用户的计算机进行恶意的攻击行为。因此,为了防范此种情况,大多数计算机用户都选 择安装例如是杀毒软件类的防御程序对计算机进行保护。而在恶意程序与这类防御程序的 攻防过程中,恶意程序为了更好地提高自身的稳定性以及隐蔽性,会衍生出各种不同的程 序变种,这就为防御程序的防御过程增加了难度。因此,对各种类型的恶意程序进行识别和 准确分类,能够使得防御程序能够更加高效、准确地对恶意程序进行检测和处理。而在本发 明实施例中,对上文所述的样本进行识别和分类的基础,则是通过上述的相似度计算单元 400来计算样本的相似度。
[0076] 在本发明实施例中,当经过上述字符串集合提取单元200及样本特征生成单元 300计算出样本对应的样本特征后,S卩可通过上述的相似度计算单元400计算样本的样本 特征与基准样本特征之间的相似度。
[0077] 具体地,在本发明实施例中,是通过汉明距离来表征上述的相似度。汉明距离是 指两个等长的字符串对应位置的不同字符的个数。换句话说,汉明距离是将一个字符串变 换成另外一个字符串所需要替换的字符个数。例如,二进制位串1011101与1001001之间 的汉明距离是2。在本发明实施例中,对于样本A及基准样本B,根据它们各自的样本特征 bloomjPbloomB来计算样本A的样本特征和基准样本B的基准样本特征之间的汉明距离:
[0078] Distance(A,B) =hamming_distance(bloomA.Bittarry,bloomB.Bittary) 〇 通过 上述计算获得的汉明距离即是样本A的样本特征和基准样本B的基准样本特征之间的相似 度。
[0079] 如图4所示,在本发明实施例的样本相似度的检测装置中,在通过上述相似度计 算单元400计算获取了样本的样本特征和基准样本特征之间的相似度之后,该样本相似度 的检测装置还可包含用于根据该相似度对样本进行分类的分类单元500,。
[0080] 在对诸如恶意程序等的样本进行分类的过程中,可以根据该样本的应用环境、应 用地区、程序家族等的不同,将样本分为多个类别,从而针对各个类别采取相应的检测和防 御措施。而针对每一类别,则分别设定有一个上述的基准样本特征,用以对各个类别进行定 义,并作为对新的样本进行分类的标准。当检测或提取到一个新的样本后,可通过计算新的 样本与各个基准样本特征之间的相似度,来对该新的样本进行类别的划分。
[0081] 具体地,如图5所示,该分类单元500包括:距离判断模块501及分类模块502。其 中,该距离判断模块501用于判断样本的样本特征与基准样本特征之间的汉明距离与一预 设的阈值距离之间的大小关系。
[0082] 上述的分类模块502则用于当该汉明距离小于该阈值距离时,即可将该样本划分 到与该基准样本相同的类别中。
[0083] 需要说明的是,在本实施例中所采用的计算相似度的算法为汉明距离算法,但在 实际应用中,也可通过例如编辑距离(LevenshteinDistance)算法等的相似度算法进行计 算,本发明并不以此为限。
[0084] 并且,在实际应用中,对于一个新的样本的样本特征,也可能会与多个类别的基准 样本特征之间的相似度均小于该预设的阈值距离,在这种情况下,可将该新的样本划分为 多个类别。例如,当一个样本中既存在钓鱼网站相关的常用信息,又存在木马软件的常用信 息,则可将该样本同时划分到钓鱼网站类别和木马软件类别中,而并非只能将该样本划分 为一个类别。通过上述举例也可看出,如果仅将样本限制于一个类别中,有时也并不能够准 确地定义该样本,从而导致后续针对样本的分析、检测和防御等操作并不能有效地实施。因 此,在本发明实施例的样本相似度的检测方法中,并不限定可将该样本划分的类别的个数, 而是可根据样本具体的样本特征来将该样本划分到一个或者多个类别中。
[0085] 在对样本进行分类后,可执行如下操作:分类完成后,可提示管理员分类结束,并 显示分类结果,供管理员查看针对该样本的具体的分类信息。而对于进行分类的样本,可按 其划分的类别存储至相应类别的数据库中,并更新相应的数据库信息。具体地,例如检测到 一样本为一计算机病毒软件,则可根据该计算机病毒软件的名称、恶意攻击行为等将其划 分至某一病毒软件家族中,并更新该病毒软件家族的病毒库,从而为后续的病毒检测、防御 提供更加全面、准确的病毒软件信息。
[0086] 通过本发明实施例的样本相似度的检测装置,利用布隆过滤器的优异的空间效 率,将通过布隆过滤器生成的二进制位串作为样本的样本特征,根据该样本特征来计算样 本的相似度,还可进一步根据该相似度对样本进行类别的划分,能够节省样本特征的存储 空间,并可提高样本的特征计算、相似度计算及分类过程的效率。
[0087] 本发明的实施例公开了:
[0088]AU-种样本相似度的检测方法,其特征在于,所述的检测方法包括:
[0089] 获取一待检测的样本,并根据所述样本构建布隆过滤器;
[0090] 提取所述样本中的字符串集合;
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1