恶意软件的聚类方法及装置、计算机装置及可读存储介质与流程

文档序号:12964203阅读:328来源:国知局
恶意软件的聚类方法及装置、计算机装置及可读存储介质与流程

本发明涉及网络安全领域,具体涉及一种恶意软件的聚类方法及装置、计算机装置及可读存储介质。



背景技术:

恶意软件是指在计算机系统上执行恶意任务的病毒、蠕虫和特洛伊木马的程序,通过破坏软件进程来实施控制。当前,恶意软件泛滥严重,这些恶意软件包含各种恶意行为,引发用户的隐私泄露、经济损失等安全问题。大量的恶意软件都是基于某一特定样本的变种,其功能、行为上都具有很大的相似性,对恶意软件进行聚类,对于恶意软件的分析及检测具有重要作用。

现有技术关注于恶意软件产生的网络流量的相似性,一般通过获取恶意软件产生的网络流量,并根据网络流量特征对恶意软件进行聚类,比如根据提取的http请求消息中的uri的相似性对恶意软件进行分类。

但是在对恶意软件网络流量的检测过程中,恶意软件产生的网络流量对聚类的有效性具有很大的偶然性,因此,完全基于网络流量特征进行的恶意软件聚类,得到的聚类结果准确性较低。



技术实现要素:

本发明提供一种恶意软件的聚类方法及装置、计算机装置及可读存储介质,用于解决现有技术提供的恶意软件聚类方法准确性低的问题。

本发明实施例的一方面提供了一种恶意软件的聚类方法,包括:

选取多个恶意软件作为样本;

获取所述样本的威胁情报;

从所述样本的威胁情报中提取所述样本的威胁情报特征;

根据所述样本的聚类特征对所述样本进行聚类,所述样本的聚类特征包括所述样本的威胁情报特征。

结合第一方面,在第一方面的第一种可能的实现方式中,在根据所述样本的聚类特征对所述样本进行聚类之前,所述方法还包括:

获取样本产生的网络流量;

从所述样本的网络流量中提取所述样本的网络流量特征;

所述样本的特征还包括所述样本对应的网络流量特征。

结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述样本的聚类特征对所述样本进行聚类包括:

利用所述样本的聚类特征按照备选聚类数目对所述样本进行聚类,得到备选聚类结果;

根据所述样本的威胁情报特征计算所述备选聚类结果的聚类效果指标;

选择聚类效果指标最优的备选聚类结果作为最终的聚类结果。

结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述样本的威胁情报包括多个杀毒软件对所述样本的扫描结果;

所述样本的威胁情报特征为所述多个杀毒软件对所述样本的威胁情报特征的集合,所述多个杀毒软件中目标杀毒软件对所述样本的威胁情报特征为从所述目标杀毒软件对所述样本的扫描结果中提取的、与恶意属性相关的描述文本。

结合第一方面的第三种可能的实现方式中,在第一方面的第四种可能的实现方式中,所述根据所述样本的威胁情报特征计算所述备选聚类结果的聚类效果指标包括:

计算样本i和样本j的威胁情报特征中同一杀毒软件的威胁情报特征之间的子距离,组成距离集合,样本i和样本j为所述样本中的不同样本;

计算所述距离集合中所有子距离的均值,作为样本i和样本j之间的距离;

利用样本i和样本j之间的距离计算所述备选聚类结果的聚类效果指标。

本发明实施例的第二方面提供了一种恶意软件的聚类装置,包括:

选取模块,用于选取多个恶意软件作为样本;

情报获取模块,用于获取所述样本的威胁情报;

第一提取模块,用于从所述样本的威胁情报中提取所述样本的威胁情报特征;

聚类模块,用于根据所述样本的聚类特征对所述样本进行聚类,所述样本的聚类特征包括所述样本的威胁情报特征。

结合第二方面,在第二方面的第一种可能的实现方式中,所述装置还包括:

流量获取模块,用于获取样本产生的网络流量;

第二提取模块,用于从所述样本的网络流量中提取所述样本的网络流量特征;

所述样本的特征还包括所述样本对应的网络流量特征。

结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述聚类模块包括:

聚类单元,用于利用所述样本的聚类特征按照备选聚类数目对所述样本进行聚类,得到备选聚类结果;

计算单元,用于根据所述样本的威胁情报特征计算所述备选聚类结果的聚类效果指标;

选择单元,用于选择聚类效果指标最优的备选聚类结果作为最终的聚类结果。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述样本的威胁情报包括多个杀毒软件对所述样本的扫描结果;

所述样本的威胁情报特征为所述多个杀毒软件对所述样本的威胁情报特征的集合,所述多个杀毒软件中目标杀毒软件对所述样本的威胁情报特征为从所述目标杀毒软件对所述样本的扫描结果中提取的、与恶意属性相关的描述文本。

结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述计算单元包括:

第一计算子单元,用于计算样本i和样本j的威胁情报特征中同一杀毒软件的威胁情报特征之间的子距离,组成距离集合,样本i和样本j为所述样本中的不同样本;

第二计算子单元,用于计算所述距离集合中所有子距离的均值,作为样本i和样本j之间的距离;

第三计算子单元,用于利用样本i和样本j之间的距离计算所述备选聚类结果的聚类效果指标。

本发明实施例的第三方面提供了一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式的步骤。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明选取多个恶意软件作为样本,并获取关于样本的威胁情报,根据威胁情报特征对样本进行聚类,和现有技术中恶意软件聚类基于的网络流量具有偶然性不同,本发明聚类方法基于威胁情报,威胁情报通常是对样本进行全面分析得出的结论,因此本发明提供的恶意软件聚类方法能够提高聚类结果的准确性。

附图说明

图1是本发明恶意软件的聚类方法一个实施例示意图;

图2是本发明恶意软件的聚类方法另一个实施例示意图;

图3是本发明恶意软件的聚类方法另一个实施例示意图;

图4是本发明恶意软件的聚类装置一个实施例示意图;

图5是本发明恶意软件的聚类装置另一个实施例示意图;

图6是本发明计算机装置一个实施例示意图。

具体实施方式

本发明实施例提供了一种恶意软件的聚类方法及装置、计算机装置及可读存储介质,用于提高聚类结果的准确性。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

请参阅图1,本发明恶意软件的聚类方法一个实施例包括:

101、选取多个恶意软件作为样本;

可以选取多个恶意软件作为聚类的样本,选取的恶意软件越多、类型越广,聚类的效果越好。

102、获取样本的威胁情报;

选取多个恶意软件作为样本之后,可以通过互联网或其他渠道广泛抓取针对样本的威胁情报,对威胁情报的一种经常被引用的定义为:威胁情报是针对安全威胁、威胁者、利用、恶意软件、漏洞和危害指标,所收集的用于评估和应用的数据集,也就是说,威胁情报可以帮助用户识别安全威胁。常见的威胁情报可以来源于杀毒软件扫描信息、安全研究人员发布的针对恶意软件样本的分析报告等。

103、从样本的威胁情报中提取样本的威胁情报特征;

获取到样本的威胁情报之后,可以从样本的威胁情报中提取样本的威胁情报特征。

104、根据样本的聚类特征对样本进行聚类。

获取关于样本的威胁情报之后,可以根据样本的聚类特征对样本进行聚类,样本的聚类特征包括样本的威胁情报特征,采用的聚类算法可以为层次聚类或k-means算法等。

本发明实施例选取多个恶意软件作为样本,并获取关于样本的威胁情报,根据威胁情报对样本进行聚类,和现有技术中聚类基于的网络流量具有偶然性不同,本发明聚类方法基于威胁情报,威胁情报通常是对样本进行全面分析得出的结论,因此本发明提供的恶意软件聚类方法能够提高聚类结果的准确性。

为了进一步提高聚类结果的准确性,可以结合样本产生的网络流量和关于样本的威胁情报,对样本进行聚类。请参阅图2,本发明恶意软件的聚类方法另一个实施例包括:

201、选取多个恶意软件作为样本;

可以选取多个恶意软件作为聚类的样本,选取的恶意软件越多、类型越广,聚类的效果越好。

202、获取样本产生的网络流量;

选取多个样本之后,可以将收集到的样本在沙箱环境中运行,之后可以捕获样本在沙箱环境运行的过程中产生的网络流量。网络流量的存在形式通常为pcap文件,pcap文件格式是常用的数据包存储格式,包括wireshark在内的主流抓包软件都可以生成这种格式的数据包。

上述获取样本的网络流量的方法仅作为举例,此处不对本方案中样本的网络流量的来源做限制。也就是说,本步骤收集的样本的网络流量可以如上所述,是来自在隔离环境中运行恶意软件后捕获的网络流量,在实际使用中,本步骤收集的样本的网络流量也可以是来自于从互联网中直接搜集到的恶意软件的网络流量,或者还可以通过其它方式获取。

网络流量中常见的数据为http消息,因此本发明实施例中可以根据不同样本产生的http消息的相似性分析样本产生的网络流量的相似性,对于收集到的样本的网络流量,可以从中提取http消息,可以理解的是,一个样本在运行过程中可能产生多条http消息。为了提高聚类效率,可以从提取到的http消息中过滤掉白名单中的http消息。白名单中的http消息可以为白名单域名对应的http消息,还可以为白名单资源对应的http消息。白名单域名主要指“www.bing.com”等知名网站的域名,白名单资源可以指http请求的资源类型为“.jpg”等。

203、获取关于样本的威胁情报;

选取多个样本之后,可以获取针对样本的威胁情报。对威胁情报的一种经常被引用的定义为:威胁情报是针对安全威胁、威胁者、利用、恶意软件、漏洞和危害指标,所收集的用于评估和应用的数据集。也就是说,威胁情报可以帮助用户识别安全威胁。

关于获取针对样本的威胁情报的方法,作为举例,可以利用杀毒软件或杀毒网站对样本进行检测,比如可以利用virustotal网站对样本进行检测,得到virustotal扫描结果。virustotal是一个提供免费的可疑文件分析服务的网站,该网站可以使用多种反病毒引擎对用户上传的文件进行检测,以判断文件是否被病毒,蠕虫,木马,以及各类恶意软件感染。获取到的威胁情报可以为杀毒软件或杀毒网站对样本的扫描结果。

或者,关于获取针对样本的威胁情报的方法,作为举例,还可以获取来自外部的针对样本的描述文本,包括但不限定于从互联网上广泛获取的恶意软件分析报告中的关于样本的恶意属性的描述文本,经常用到的恶意软件分析报告可以为分析网络安全的博客文章。

关于威胁情报的具体形式,可以将威胁情报理解为针对样本的恶意属性的描述文本,作为举例,威胁情报可以为:该样本属于名为“trojan[ransom]/win32.foreign”的恶意软件家族,该家族的恶意软件为木马病毒,具体为一种勒索软件,样本的运行平台是windows,样本的具体行为是根据用户所处地域不同而伪装成用户所在地的执法机构,声称用户触犯法律,迫使用户支付赎金。

可以理解的是,优选的是,针对一个样本获取多个杀毒软件对该样本的威胁情报和/或多个恶意软件分析报告对该样本的威胁情报,可以提高聚类的准确性。

204、分别从网络流量和威胁情报中提取聚类特征;

获取到样本产生的网络流量和针对样本的威胁情报之后,为了提高聚类效率,可以分别从网络流量和威胁情报中提取聚类特征。每个样本的聚类特征包括两部分,一部分是网络流量特征,另一部分是威胁情报特征。

在本发明实施例中,网络流量以http消息为例,因此网络流量特征指http消息特征。样本的http消息特征可以有多种选取方法,只要有利于将http消息具有相似性的恶意软件归为一类即可,比如可以选择http消息中的user-agent、uri和method等对应的字符串组成的集合(或者理解为组成的多维向量)作为http消息特征。一种可能的http消息特征为:{user-agent:“wget”,uri:“/yourpath/filename.htm?stove=10&path=32&id=4”,method:“get”}。由于一个样本通常会产生多个http消息,因此一个样本通常对应于多个http消息特征。

威胁情报特征可以为全部或部分威胁情报,只要有利于表明样本的恶意属性即可,样本的恶意属性可以包括样本是否为恶意软件、和/或样本所属的恶意软件的类型等,比如样本为病毒或蠕虫或木马等。由于以杀毒软件对样本的扫描结果作为样本的威胁情报,格式统一,便于分析比较,因此,优选的,是采用杀毒软件对样本的扫描结果作为样本的威胁情报。为了提高效率,优选的,是从杀毒软件对样本的扫描结果中提取与恶意属性相关的描述文本作为该杀毒软件对样本的威胁情报特征,比如,可以从威胁情报中按照关键词或者根据语义分析来提取相关描述文本。另外,假设一个样本的威胁情报包括多个杀毒软件对该样本的威胁情报(即全部或部分扫描结果),那么一个样本的威胁情报特征可以指多个杀毒软件对该样本的威胁情报特征组成的集合(或者理解为组成的多维向量)。一个样本的一种可能的威胁情报特征为:{瑞星扫描结果,360扫描结果,金山扫描结果}。因此,可以理解为,一个样本对应于一个威胁情报特征。

205、利用聚类特征对样本进行聚类。

提取各个样本的聚类特征之后,可以利用聚类特征对样本进行聚类,采用的聚类算法可以为层次聚类或k-means算法等。

对样本进行聚类最重要的是要明确两个样本相似程度高低的评估标准,或者说需要首先确定计算两个样本之间距离的方法,两个样本之间的距离越小则两个样本的相似程度越高,反之,则说明两个样本的相似程度越低。本发明实施例可以利用样本的聚类特征之间的距离来代表样本之间的距离,由于聚类特征包括http消息特征和威胁情报特征,因此,两个样本的聚类特征的距离应该为两个样本的http消息特征的距离与威胁情报特征的距离的和。由于http消息特征和威胁情报特征对于分析样本之间的相似性的重要性可能不同,因此,可以为两个特征添加不同的计算权重,比如,http消息特征的计算权重为40%,威胁情报特征的计算权重为60%,那么两个样本的聚类特征的距离=http消息特征的距离*40%+威胁情报特征的距离*60%。

关于两个http消息特征之间的距离以及两个威胁情报特征之间的距离的计算方法,可以采用计算编辑距离的方法。编辑距离是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数,一般来说,编辑距离越小,两个字符串的相似度越高。由于http消息特征和威胁情报特征均包括多个独立的字符串,因此http消息特征间或威胁情报特征间的编辑距离可以为多个字符串间的编辑距离的平均值。以http消息为例,假设http消息特征包括method、user-agent、uri中的path和参数key列表,由于http请求消息中的不同字符串对于分析同家族恶意软件的网络流量相似性的重要性不同,一般情况下,method、user-agent、uri中的path和参数key列表的重要性依次减弱,因此,可以为各个字符串添加计算权重。假设上述4个字符串的权重依次为50%、30%、15%和5%,若特征字符串包括method、user-agent、uri中的path和参数key列表中对应的字符串,那么两个http消息之间的编辑距离可以为:method字符串的编辑距离×50%+user-agent字符串的编辑距离×30%+path字符串的编辑距离×15%+key列表字符串的编辑距离×5%。若两个http消息之间的编辑距离越小,则判定这两个http消息的相似度越高,两个样本之间的相似度越高,反之,则判定这两个http消息的相似度越低,而两个样本之间的相似度也越低。同理,若假设威胁情报特征包括瑞星扫描结果、360扫描结果和金山扫描结果,三者的权重依次为50%、30%和20%,那么两个威胁情报特征之间的编辑距离=瑞星扫描结果间的编辑距离*50%+360扫描结果间的编辑距离*30%+金山扫描结果间的编辑距离*20%。对于威胁情报特征,由于包括关于样本的恶意属性的描述文本,因此,也可以通过语义分析来比较两个威胁情报特征在语义上的匹配程度,匹配度越高,则表明两个威胁情报特征的相似度越高,反之,则表明相似度越低。

由于每个样本通常对应于多个http消息特征,因此可以采用平均距离来计算两个样本的http消息特征之间的距离。作为举例,假设样本a包括http消息-a1、http消息-a2、……、http消息-am,样本b包括http消息-b1、http消息-b2、……、http消息-bn,m和n为正整数,那么样本a和样本b的http消息之间的平均距离的计算过程可以为:

首先计算http消息-a1与样本b中所有http消息的距离,选取最小的距离作为http消息-a1与样本b的http消息的距离-a1,按照相同的方法,可以分别计算http消息-a2、……、http消息-am与样本b的http消息的距离,得到距离-a2、……、距离-am。之后可以计算http消息-b1与样本a中所有http消息的距离,选取最小的距离作为http消息-b1与样本a的http消息的距离-b1,按照相同的方法,可以分别计算http消息-b2、……、http消息-bn与样本a的http消息的距离,得到距离-b2、……、距离-bn。那么样本a与样本b之间的距离可以为(距离-a1+距离-a2+……+距离-am+距离-b1+距离-b2+……+距离-bn)/(m+n)。

聚类是一种非监督学习技术,其目的是将目标样本分成若干个类,并且保证每个类内的样本尽量的接近,并且属于不同类的样本间的距离尽量的远。但是,对于非监督学习技术,有必要对其效果进行评估,比如,选择不同的聚类数目进行聚类,对不同聚类结果的效果进行评价,并选择最优的聚类结果。请参阅图3,本发明恶意软件的聚类方法另一个实施例包括:

301、选取多个恶意软件作为样本;

302、获取样本产生的网络流量;

303、获取针对样本的威胁情报;

304、分别从网络流量和威胁情报中提取聚类特征;

步骤301至步骤304与图2对应的实施例中步骤201至步骤204相同,此处不再赘述。

305、确定多个备选聚类数目;

当前已有多种聚类算法,最基本的聚类算法包括k-means算法和层次聚类算法等。对于大多数聚类算法而言,如何选取聚类数目是一个非常重要的问题。比如,对于层次聚类,由于层次聚类需要首先得到聚类树,之后想要将样本分为多少个类都可以直接根据聚类树来得到结果,改变聚类数目不需要再次计算样本的归属,可以根据聚类过程中每次合并的两个临时类别的距离来作大概判断,当选取的聚类数目比较合理时,样本的分类应是十分显然的,就是假设样本被分为k个类别,那么不同类别的样本之间的距离应该远大于类别内的样本之间的距离。但是对于k-means算法,需要用户事先给出聚类数目,而这个聚类往往是很难判断的。

由于聚类数目的选取对于聚类结果的准确性有非常重要的作用,因此可以确定多个备选聚类数目,并按照多个备选聚类数目对样本进行聚类,得到多个聚类结果。对于层次聚类,可以根据上述判断方法选取几个比较合理的聚类数目作为备选聚类数目;对于k-means算法,由于难以给出几个较合理的聚类数目,因此可以根据经验选取所有可能的聚类数目。

306、从多个备选聚类数目中选择第一数目,并利用聚类特征按照第一数目对样本进行聚类,得到第一备选聚类结果;

确定多个备选聚类数目之后,可以从多个备选聚类数目中选择某个数目,为了描述方便,将选择的数目称作第一数目,之后利用聚类特征按照第一数目对样本进行聚类,得到第一备选聚类结果,采用的聚类算法可以为层次聚类或k-means算法等。

对样本进行聚类最重要的是要明确两个样本相似程度高低的评估标准,或者说需要首先确定计算两个样本之间距离的方法,两个样本之间的距离越小则两个样本的相似程度越高,反之,则说明两个样本的相似程度越低。本发明实施例可以利用样本的聚类特征之间的距离来代表样本之间的距离,由于聚类特征包括http消息特征和威胁情报特征,因此,两个样本的聚类特征的距离应该为两个样本的http消息特征的距离与威胁情报特征的距离的和。由于http消息特征和威胁情报特征对于分析样本之间的相似性的重要性可能不同,因此,可以为两个特征添加不同的计算权重,比如,http消息特征的计算权重为40%,威胁情报特征的计算权重为60%,那么两个样本的聚类特征的距离=http消息特征的距离*40%+威胁情报特征的距离*60%。

关于两个http消息特征之间的距离以及两个威胁情报特征之间的距离的计算方法,可以采用计算编辑距离的方法。编辑距离是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数,一般来说,编辑距离越小,两个字符串的相似度越高。由于http消息特征和威胁情报特征均包括多个独立的字符串,因此http消息特征间或威胁情报特征间的编辑距离可以为多个字符串间的编辑距离的平均值。以http消息为例,假设http消息特征包括method、user-agent、uri中的path和参数key列表,由于http请求消息中的不同字符串对于分析同家族恶意软件的网络流量相似性的重要性不同,一般情况下,method、user-agent、uri中的path和参数key列表的重要性依次减弱,因此,可以为各个字符串添加计算权重。假设上述4个字符串的权重依次为50%、30%、15%和5%,若特征字符串包括method、user-agent、uri中的path和参数key列表中对应的字符串,那么两个http消息之间的编辑距离可以为:method字符串的编辑距离×50%+user-agent字符串的编辑距离×30%+path字符串的编辑距离×15%+key列表字符串的编辑距离×5%。若两个http消息之间的编辑距离越小,则判定这两个http消息的相似度越高,两个样本之间的相似度越高,反之,则判定这两个http消息的相似度越低,而两个样本之间的相似度也越低。同理,若假设威胁情报特征包括瑞星扫描结果、360扫描结果和金山扫描结果,三者的权重依次为50%、30%和20%,那么两个威胁情报特征之间的编辑距离=瑞星扫描结果间的编辑距离*50%+360扫描结果间的编辑距离*30%+金山扫描结果间的编辑距离*20%。对于威胁情报特征,由于包括关于样本的恶意属性的描述文本,因此,也可以通过语义分析来比较两个威胁情报特征在语义上的匹配程度,匹配度越高,则表明两个威胁情报特征的相似度越高,反之,则表明相似度越低。

由于每个样本通常对应于多个http消息特征,因此可以采用平均距离来计算两个样本的http消息特征之间的距离。作为举例,假设样本a包括http消息-a1、http消息-a2、……、http消息-am,样本b包括http消息-b1、http消息-b2、……、http消息-bn,m和n为正整数,那么样本a和样本b的http消息之间的平均距离的计算过程可以为:

首先计算http消息-a1与样本b中所有http消息的距离,选取最小的距离作为http消息-a1与样本b的http消息的距离-a1,按照相同的方法,可以分别计算http消息-a2、……、http消息-am与样本b的http消息的距离,得到距离-a2、……、距离-am。之后可以计算http消息-b1与样本a中所有http消息的距离,选取最小的距离作为http消息-b1与样本a的http消息的距离-b1,按照相同的方法,可以分别计算http消息-b2、……、http消息-bn与样本a的http消息的距离,得到距离-b2、……、距离-bn。那么样本a与样本b之间的距离可以为(距离-a1+距离-a2+……+距离-am+距离-b1+距离-b2+……+距离-bn)/(m+n)。

307、根据威胁情报特征计算第一备选聚类结果的聚类效果指标;

利用聚类特征按照第一数目对样本进行聚类,得到第一备选聚类结果之后,可以根据威胁情报特征计算第一备选聚类结果的聚类效果指标。聚类效果指标用于衡量聚类结果的优劣,常用的聚类效果指标包括:compactness(紧密性)、separation(间隔性)(sp)、davies-bouldinindex(分类适确性指标,简称dbi)、dunnvalidityindex(邓恩指数,简称dvi)等。各项聚类效果指标一般是样本间的距离的不同统计结果,只是统计的方法不同,因此无论计算哪一项聚类效果指标,都首先要明确样本间的距离。

现有技术中,通常是利用样本产生的网络流量特征间的距离来代表样本间的距离,比如,利用两个样本产生的http消息间的距离来代表两个样本间的距离。但是,这种方法完全取决于在检测过程中样本产生的网络流量特征对分类的有效性,具有很大的偶然性,因此,根据网络流量特征计算聚类结果的聚类效果指标准确性较低。

为了改善上述问题,在本发明实施例中,根据威胁情报特征计算备选聚类结果的聚类效果指标。具体的,可以如步骤306所述,以两个样本的http消息特征的距离和威胁情报特征的距离的均值(均值包括各项权重不同时的加权平均值)来代表两个样本间的距离,比如两个样本的距离=http消息特征的距离*40%+威胁情报特征的距离*60%,这里的距离可以指编辑距离。或者,由于威胁情报特征的准确性更高,因此,可以只利用两个样本的威胁情报特征间的距离来代表两个样本间的距离。假设威胁情报特征包括瑞星扫描结果、360扫描结果和金山扫描结果,三者的权重依次为50%、30%和20%,那么样本i和样本j之间的距离=dij-瑞星*50%+dij-360*30%+dij-金山*20%,dij-瑞星指瑞星杀毒软件样本i和样本j扫描结果的距离,dij-360指360杀毒软件对样本i和样本j扫描结果的距离,dij-金山指金山杀毒软件对样本i和样本j扫描结果的距离。这里的距离可以指编辑距离,也可以指语义距离,还可以指其他距离,此处不做具体限定。

确定了样本间的距离的计算方法之后,可以根据威胁情报特征计算第一备选聚类结果的聚类效果指标。下面以聚类效果指标为dbi为例,简单描述计算过程:

1)计算第一分类结果中各个类的分散度的值s:

计算公式为:xj表示第i类中第j个数据点;ai表示第i类的中心;ti表示第i类中数据点的个数;q取1表示:各点到中心的距离的均值,q取2时表示:各点到中心距离的标准差,它们都可以用来衡量分散程度。

2)计算类间的距离值mij:

计算公式为:aki表示第i类的中心点的第k个属性的值,mij则就是第i类与第j类中心的距离。

3)计算类间的相似度的值rij:

计算公式为:用于衡量第i类与第j类的相似度。

4)计算dbi指数

计算公式为:ri=max(rij),ri为第i类与其他类的相似度中最大的相似度的值。

308、遍历多个备选聚类数目,并重复步骤306至步骤307,得到多个备选聚类结果以及各个备选聚类结果的聚类效果指标;

选择一个聚类数目,重复步骤306至步骤307便能得到一个备选聚类结果以及该备选聚类结果的聚类效果指标。遍历所有备选聚类数目,重复执行步骤306至步骤307,便可以得到多个备选聚类结果以及各个备选聚类结果的聚类效果指标。

309、选择聚类效果指标最优的备选聚类结果作为最终的聚类结果。

由于分类个数的不同,聚类效果指标很可能也不同,对于dbi而言,r值越小,表明分类效果越好。因此可以从所有备选聚类结果中选择聚类效果指标最优的备选聚类结果作为最终的聚类结果,对于dbi而言,就是选择r值最小的备选聚类结果作为最终的聚类结果。

上面对本发明实施例中恶意软件的聚类方法进行了描述,下面对本发明实施例中的装置进行描述。

请参阅图4,本发明实施例中恶意软件的聚类装置的一个实施例包括:

选取模块41,用于选取多个恶意软件作为样本;

情报获取模块42,用于获取样本的威胁情报;

第一提取模块43,用于从样本的威胁情报中提取样本的威胁情报特征;

聚类模块44,用于根据样本的聚类特征对样本进行聚类,样本的聚类特征包括样本的威胁情报特征。

请参阅图5,恶意软件的聚类装置另一个实施例包括:

选取模块51,用于选取多个恶意软件作为样本;

流量获取模块52,用于获取样本产生的网络流量;

情报获取模块53,用于获取样本的威胁情报;

第一提取模块54,用于从样本的威胁情报中提取样本的威胁情报特征;

第二提取模块55,用于从样本的网络流量中提取样本的网络流量特征;

聚类模块56,用于根据样本的聚类特征对样本进行聚类,样本的聚类特征包括样本的威胁情报特征。

聚类模块56包括:

聚类单元561,用于利用样本的聚类特征按照备选聚类数目对样本进行聚类,得到备选聚类结果;

计算单元562,用于根据样本的威胁情报特征计算备选聚类结果的聚类效果指标;

选择单元563,用于选择聚类效果指标最优的备选聚类结果作为最终的聚类结果。

计算单元562包括:

第一计算子单元5621,用于计算样本i和样本j的威胁情报特征中同一杀毒软件的威胁情报特征之间的子距离,组成距离集合,样本i和样本j为样本中的不同样本;

第二计算子单元5622,用于计算距离集合中所有子距离的均值,作为样本i和样本j之间的距离;

第三计算子单元5623,用于利用样本i和样本j之间的距离计算备选聚类结果的聚类效果指标。

本发明实施例还提供了一种计算机装置6,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机装置6可以为包括任意终端设备或服务器设备。

参考图6,计算机装置6包括:电源610、存储器620、处理器630以及存储在存储器中并可在处理器上运行的计算机程序。所述处理器630执行计算机程序时实现上述各个信息处理方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块或单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器620中,并由所述处理器630执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机装置6中的执行过程。例如,参照图4对应的实施例,所述计算机程序可以被分割成选取模块41、情报获取模块42以及聚类模块43,各模块具体功能如下:

选取模块41,用于选取多个恶意软件作为样本;

情报获取模块42,用于获取样本的威胁情报;

第一提取模块43,用于从样本的威胁情报中提取样本的威胁情报特征;

聚类模块44,用于根据样本的聚类特征对样本进行聚类,样本的聚类特征包括样本的威胁情报特征。

本领域技术人员可以理解,图6中示出的结构并不构成对计算机装置6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

所述存储器620可用于存储所述计算机程序和/或模块,所述处理器630通过运行或执行存储在所述存储器620内的计算机程序和/或模块,以及调用存储在存储器620内的数据,实现所述计算机装置6的各种功能。所述存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述计算机装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1