[发明专利]一种恶意代码家族聚类方法和系统有效
| 申请号: | 201910565940.8 | 申请日: | 2019-06-27 |
| 公开(公告)号: | CN110458187B | 公开(公告)日: | 2020-07-31 |
| 发明(设计)人: | 杨航锋;李树栋;吴晓波;韩伟红;范美华;付潇鹏;方滨兴;田志宏;殷丽华;顾钊铨;李默涵;仇晶;唐可可 | 申请(专利权)人: | 广州大学 |
| 主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F21/56 |
| 代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 李斌 |
| 地址: | 510006 广东省*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 恶意代码 家族 方法 系统 | ||
本发明公开了一种恶意代码家族聚类方法及系统,方法包括采用T‑SNE算法对原始恶意代码执行序列进行降维可视化,具体为:使用T‑SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;构建模型,通过非线性函数变换将数据点映射到相应概率分布上;对构建的模型进行训练,通过计算低维空间的条件概率,从而计算损失函数的梯度;使用K‑means算法对恶意代码家族进行聚类,具体为:确定分类个数K和聚类中心;通过计算对象与聚类中心的距离对所有对象进行簇划分;重新计算新的聚类中心,判断是否满足条件。系统包括降维可视化模块和聚类模块。通过本发明不仅降低了如何确定K‑means算法中k的难题,还提高了恶意代码家族聚类的准确性。
技术领域
本发明属于恶意代码分析的技术领域,涉及一种恶意代码家族聚类方法和系统。
背景技术
K-means算法是经典的聚类算法之一,在利用K-means算法进行聚类时,需要预先设定聚类的类簇个数,即k。然而,在实际应用中数据集往往规模庞大,面对结构分布复杂的数据,人们很难事先确定类簇个数,当预先设定的类簇个数和实际类簇个数差距过大时,聚类效果会大大降低:当选择远小于实际类簇个数的k时,会将不同类的数据点聚类为同一类,导致类簇区分度过低;当选择远大于实际类簇个数的k时,会将同类的数据点聚类为不同类,导致丢失数据点之间的关联。
在现有技术中,确定k值的方法通常从后验信息着手,测试所有可能k值的聚类效果,利用统计分析等技术,分析聚类结果的类内相似度、类间相似度,从大量聚类结果中选择最优聚类效果对应的k值。然而,由于缺乏对数据结构分布的整体把握,面对庞大的数据量,在测试过程中k的可能取值范围一般较大,这导致测试计算量庞大,且耗费大量计算资源。因此,使用一些技术创新方法来寻找和确定最优的k值是非常必要的。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种恶意代码家族聚类方法,采用t-SNE算法可视化恶意代码家族特征确定家族簇数,然后使用K-means算法对恶意代码家族进行家族聚类,从而缩小k值的取值范围,减少计算开支,增加聚类准确度。
本发明的另一目的在于,提供一种恶意代码家族聚类系统。
为了达到上述第一目的,本发明采用以下技术方案:
本发明提供的一种恶意代码家族聚类方法,包括下述步骤:
采用t-SNE算法对原始恶意代码执行序列进行降维可视化,具体包括下述步骤:
使用t-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;
构建模型,通过非线性函数变换将数据点映射到相应概率分布上;
对构建的模型进行训练,通过计算低维空间的条件概率,从而计算损失函数的梯度;
使用K-means算法对恶意代码家族进行聚类,具体包括下述步骤:
确定分类个数K和聚类中心;
通过计算对象与聚类中心的距离对所有对象进行簇划分;
重新计算新的聚类中心,判断是否满足中心点不再改变的条件,如果不满足,则返回通过计算对象与聚类中心的距离对所有对象进行簇划分的步骤,如果满足,则找到聚类中心点。
作为优选的技术方案,所述通过非线性函数变换将数据点映射到相应概率分布上的,包括下述步骤:
通过在高维空间中构建数据点之间的概率分布P,使得相似的数据点有更高的概率被选择,不相似的数据点有较低的概率被选择;
在低维空间里重构所有数据点的概率分布Q,使得这两个概率分布尽可能相似。
作为优选的技术方案,还包括计算相似度的步骤,具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州大学,未经广州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910565940.8/2.html,转载请声明来源钻瓜专利网。





