当前位置: 首页 > 专利查询>广州大学专利>正文

一种恶意代码家族聚类方法和系统技术方案

技术编号:22565686 阅读:19 留言:0更新日期:2019-11-16 12:16
本发明专利技术公开了一种恶意代码家族聚类方法及系统,方法包括采用T‑SNE算法对原始恶意代码执行序列进行降维可视化,具体为:使用T‑SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;构建模型,通过非线性函数变换将数据点映射到相应概率分布上;对构建的模型进行训练,通过计算低维空间的条件概率,从而计算损失函数的梯度;使用K‑means算法对恶意代码家族进行聚类,具体为:确定分类个数K和聚类中心;通过计算对象与聚类中心的距离对所有对象进行簇划分;重新计算新的聚类中心,判断是否满足条件。系统包括降维可视化模块和聚类模块。通过本发明专利技术不仅降低了如何确定K‑means算法中k的难题,还提高了恶意代码家族聚类的准确性。

A malicious code family clustering method and system

The invention discloses a malicious code family clustering method and system, the method includes using t \u2011 SNE algorithm to reduce dimension and visualize the execution sequence of the original malicious code, specifically: using t \u2011 SNE algorithm to model the distribution of each data point's near neighbors, wherein the near neighbors refer to the set of data points close to each other; building the model, mapping the data points to On the corresponding probability distribution, train the constructed model, and calculate the gradient of loss function by calculating the conditional probability of low-dimensional space; use K \u2011 means algorithm to cluster malicious code family, specifically: determine the number of classification K and cluster center; cluster all objects by calculating the distance between objects and cluster center; recalculate the new cluster center, Judge whether the conditions are met. The system includes dimension reduction visualization module and clustering module. The invention not only reduces the problem of how to determine K in K \u2011 means algorithm, but also improves the accuracy of malicious code family clustering.

【技术实现步骤摘要】
一种恶意代码家族聚类方法和系统
本专利技术属于恶意代码分析的
,涉及一种恶意代码家族聚类方法和系统。
技术介绍
K-means算法是经典的聚类算法之一,在利用K-means算法进行聚类时,需要预先设定聚类的类簇个数,即k。然而,在实际应用中数据集往往规模庞大,面对结构分布复杂的数据,人们很难事先确定类簇个数,当预先设定的类簇个数和实际类簇个数差距过大时,聚类效果会大大降低:当选择远小于实际类簇个数的k时,会将不同类的数据点聚类为同一类,导致类簇区分度过低;当选择远大于实际类簇个数的k时,会将同类的数据点聚类为不同类,导致丢失数据点之间的关联。在现有技术中,确定k值的方法通常从后验信息着手,测试所有可能k值的聚类效果,利用统计分析等技术,分析聚类结果的类内相似度、类间相似度,从大量聚类结果中选择最优聚类效果对应的k值。然而,由于缺乏对数据结构分布的整体把握,面对庞大的数据量,在测试过程中k的可能取值范围一般较大,这导致测试计算量庞大,且耗费大量计算资源。因此,使用一些技术创新方法来寻找和确定最优的k值是非常必要的。
技术实现思路
本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种恶意代码家族聚类方法,采用T-SNE算法可视化恶意代码家族特征确定家族簇数,然后使用K-means算法对恶意代码家族进行家族聚类,从而缩小k值的取值范围,减少计算开支,增加聚类准确度。本专利技术的另一目的在于,提供一种恶意代码家族聚类系统。为了达到上述第一目的,本专利技术采用以下技术方案:本专利技术提供的一种恶意代码家族聚类方法,包括下述步骤:采用T-SNE算法对原始恶意代码执行序列进行降维可视化,具体包括下述步骤:使用T-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;构建模型,通过非线性函数变换将数据点映射到相应概率分布上;对构建的模型进行训练,通过计算低维空间的条件概率,从而计算损失函数的梯度;使用K-means算法对恶意代码家族进行聚类,具体包括下述步骤:确定分类个数K和聚类中心;通过计算对象与聚类中心的距离对所有对象进行簇划分;重新计算新的聚类中心,判断是否满足中心点不再改变的条件,如果不满足,则返回通过计算对象与聚类中心的距离对所有对象进行簇划分的步骤,如果满足,则找到聚类中心点。作为优选的技术方案,所述通过非线性函数变换将数据点映射到相应概率分布上的,包括下述步骤:通过在高维空间中构建数据点之间的概率分布,使得相似的数据点有更高的概率被选择,不相似的数据点有较低的概率被选择;在低维空间里重构所有数据点的概率分布Q,使得这两个概率分布尽可能相似。作为优选的技术方案,还包括计算相似度的步骤,具体为:令输入空间是X∈Rn,输出空间为Y∈Rt,t<<n,假设含有m个样本数据{x(1),x(2),…,x(m)},其中x(i)∈X,降维后的数据为{y(1),y(2),…,y(m)},y(i)∈Y,SNE是先将欧几里得距离转化为条件概率来表达点与点之间的相似度,即首先是计算条件概率pj|i,其正比于x(i)和x(j)之间的相似度,pj|i的计算公式为:在这里引入了一个参数σi,对于不同的数据点x(i)取值亦不相同,并设置pi|i=0,对于低维度下的数据点y(i),通过条件概率qj|i来刻画y(i)与y(j)之间的相似度,qj|i的计算公式为:同理,设置qi|i=0。作为优选的技术方案,如果pi|j=qi|j成立,则通过优化两个分布之间的KL散度构造出的损失函数为:其中,Pi表示在给定高维数据点x(i)时,其他所有数据点的条件概率分布;Qi则表示在给定低维数据点y(i)时,其他所有数据点的条件概率分布;从损失函数可以看出,当pj|i较大qj|i较小时,惩罚较高;而pj|i较小qj|i较大时,惩罚较低。作为优选的技术方案,还包括对损失函数的梯度进行优化的步骤:首先通过在高维空间中使用高斯分布将距离转换为概率分布,然后在低维空间中,使用更加偏重长尾分布的方式来将距离转换为概率分布,使得高维度空间中的中低等距离在映射后能够有一个较大的距离;使用t分布替换高斯分布之后qij的变化如下:此外,随着自由度的逐渐增大,t分布的密度函数逐渐接近标准正态分布,优化后的梯度公式如下:作为优选的技术方案,步骤(1.3)中,对构建的模型进行训练具体为:数据准备:{x(1),x(2),…,x(m)},其中x(i)∈Rn;初始化困惑度参数用于求解σ,迭代次数T、学习率η和动量α(t);开始优化,具体为:计算高维空间中的条件概率pj|i;令使用正态分布随机初始化Ym×k矩阵;从t=1,2,…,T进行迭代计算低维空间中的条件概率qij;计算损失函数C(y(i))对y(i)的梯度;更新输出Y。作为优选的技术方案,所述确定分类个数K和聚类中心,具体为:通过t-SNE算法可视化出每一个恶意代码文件的特征,从而确定聚类簇数K,确定聚类簇数K后使用K-means算法进行聚类处理。作为优选的技术方案,所述通过计算对象与聚类中心的距离对所有对象进行簇划分,具体为:确定聚类簇数K后,k-means算法就是将n个数据点进行聚类,得到k个聚类,使得每个数据点到聚类中心的距离最小。为了达到上述第二目的,本专利技术采用以下技术方案:本专利技术提供的一种述恶意代码家族聚类系统,包括降维可视化模块和聚类模块,所述降维可视化模块,用于采用T-SNE算法对原始恶意代码执行序列进行降维可视化,所述聚类模块用于使用K-means算法对恶意代码家族进行聚类;所述降维可视化模块包括数据点处理模块、模型建立模块以及训练模块,所述数据点处理模块,用于使用T-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;所述模型建立模块,用于构建模型,通过非线性函数变换将数据点映射到相应概率分布上;所述训练模块,用于对构建的模型进行训练,通过计算低维空间的条件概率,从而计算损失函数的梯度;所述聚类模块包括分类个数和聚类中心确定模块、簇划分模块以及聚类中心重新计算模块;所述分类个数和聚类中心确定模块,用于确定分类个数K和聚类中心;所述簇划分模块,用于通过计算对象与聚类中心的距离对所有对象进行簇划分;所述聚类中心重新计算模块,用于重新计算新的聚类中心,判断是否满足条件,如果不满足,则返回通过计算对象与聚类中心的距离对所有对象进行簇划分的步骤,如果满足,则得出结论。作为优选的技术方案,所述模型构建模块包括高维空间处理模块和低维空间处理模块;所述高维空间处理模块,用于通过在高维空间中构建数据点之间的概率分布P,使得相似的数据点有更高的概率被选择,不相似的数据点本文档来自技高网...

【技术保护点】
1.一种恶意代码家族聚类方法,其特征在于,包括下述步骤:/n采用T-SNE算法对原始恶意代码执行序列进行降维可视化,具体包括下述步骤:/n使用T-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;/n构建模型,通过非线性函数变换将数据点映射到相应概率分布上;/n对构建的模型进行训练,通过计算低维空间的条件概率,从而计算损失函数的梯度;/n使用K-means算法对恶意代码家族进行聚类,具体包括下述步骤:/n确定分类个数K和聚类中心;/n通过计算对象与聚类中心的距离对所有对象进行簇划分;/n重新计算新的聚类中心,判断是否满足中心点不再改变的条件,如果不满足,则返回通过计算对象与聚类中心的距离对所有对象进行簇划分的步骤,如果满足,则找到聚类中心点。/n

【技术特征摘要】
1.一种恶意代码家族聚类方法,其特征在于,包括下述步骤:
采用T-SNE算法对原始恶意代码执行序列进行降维可视化,具体包括下述步骤:
使用T-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;
构建模型,通过非线性函数变换将数据点映射到相应概率分布上;
对构建的模型进行训练,通过计算低维空间的条件概率,从而计算损失函数的梯度;
使用K-means算法对恶意代码家族进行聚类,具体包括下述步骤:
确定分类个数K和聚类中心;
通过计算对象与聚类中心的距离对所有对象进行簇划分;
重新计算新的聚类中心,判断是否满足中心点不再改变的条件,如果不满足,则返回通过计算对象与聚类中心的距离对所有对象进行簇划分的步骤,如果满足,则找到聚类中心点。


2.根据权利要求1所述恶意代码家族聚类方法,其特征在于,所述通过非线性函数变换将数据点映射到相应概率分布上的,包括下述步骤:
通过在高维空间中构建数据点之间的概率分布P,使得相似的数据点有更高的概率被选择,不相似的数据点有较低的概率被选择;
在低维空间里重构所有数据点的概率分布Q,使得这两个概率分布尽可能相似。


3.根据权利要求2所述恶意代码家族聚类方法,其特征在于,还包括计算相似度的步骤,具体为:
令输入空间是X∈Rn,输出空间为Y∈Rt,t<<n,假设含有m个样本数据{x(1),x(2),…,x(m)},其中x(i)∈X,降维后的数据为{y(1),y(2),…,y(m)},y(i)∈Y,SNE是先将欧几里得距离转化为条件概率来表达点与点之间的相似度,即首先是计算条件概率pj|i,其正比于x(i)和x(j)之间的相似度,pj|i的计算公式为:



在这里引入了一个参数σi,对于不同的数据点x(i)取值亦不相同,并设置pi|i=0,对于低维度下的数据点y(i),通过条件概率qj|i来刻画y(i)与y(j)之间的相似度,qj|i的计算公式为:



同理,设置qi|i=0。


4.根据权利要求3所述恶意代码家族聚类方法,其特征在于,如果pi|j=qi|j成立,则通过优化两个分布之间的KL散度构造出的损失函数为:



其中,Pi表示在给定高维数据点x(i)时,其他所有数据点的条件概率分布;Qi则表示在给定低维数据点y(i)时,其他所有数据点的条件概率分布;从损失函数可以看出,当pj|i较大qj|i较小时,惩罚较高;而pj|i较小qj|i较大时,惩罚较低。


5.根据权利要求4所述恶意代码家族聚类方法,其特征在于,还包括对损失函数的梯度进行优化的步骤:
首先通过在高维空间中使用高斯分布将距离转换为概率分布,然后在低维空间中,使用更加偏重长尾分布的方式来将距离转换为概率分布,使得高维度空间中的中低等距离在映射后能够有一个较大的距离;
使用t分布替换高斯分布之后qij的变化如下:

...

【专利技术属性】
技术研发人员:杨航锋李树栋吴晓波韩伟红范美华付潇鹏方滨兴田志宏殷丽华顾钊铨李默涵仇晶唐可可
申请(专利权)人:广州大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1