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值的取值范围,减少计算开支,增加聚类准确度。本专利技术的另一目的在于,提供一种恶意代码家族聚类系统。为了达到上述第一目的,本专利技术采用以下技术方案 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。