[发明专利]一种恶意代码家族聚类方法和系统有效
| 申请号: | 201910565940.8 | 申请日: | 2019-06-27 |
| 公开(公告)号: | CN110458187B | 公开(公告)日: | 2020-07-31 |
| 发明(设计)人: | 杨航锋;李树栋;吴晓波;韩伟红;范美华;付潇鹏;方滨兴;田志宏;殷丽华;顾钊铨;李默涵;仇晶;唐可可 | 申请(专利权)人: | 广州大学 |
| 主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F21/56 |
| 代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 李斌 |
| 地址: | 510006 广东省*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 恶意代码 家族 方法 系统 | ||
1.一种恶意代码家族聚类方法,其特征在于,包括下述步骤:
采用t-SNE算法对原始恶意代码执行序列进行降维可视化,具体包括下述步骤:
使用t-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;
构建模型,通过非线性函数变换将数据点映射到相应概率分布上,具体为:
通过在高维空间中构建数据点之间的概率分布P,使得相似的数据点有更高的概率被选择,不相似的数据点有较低的概率被选择;
在低维空间里重构所有数据点的概率分布Q,使得这两个概率分布尽可能相似,具体为:
令输入空间是X,输出空间为Y,假设含有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分布的密度函数逐渐接近标准正态分布,
优化后的梯度公式如下:
其中,令
使用K-means算法对恶意代码家族进行聚类,具体包括下述步骤:
确定分类个数K和聚类中心,具体为:通过t-SNE算法可视化出每一个恶意代码文件的特征,从图中确定聚类簇数K,确定聚类簇数K后使用K-means算法进行聚类处理;
通过计算对象与聚类中心的距离对所有对象进行簇划分;
重新计算新的聚类中心,判断是否满足中心点不再改变的条件,如果不满足,则返回通过计算对象与聚类中心的距离对所有对象进行簇划分的步骤,如果满足,则找到聚类中心点。
2.根据权利要求1所述恶意代码家族聚类方法,其特征在于,所述通过计算对象与聚类中心的距离对所有对象进行簇划分,具体为:
确定聚类簇数K后,k-means算法就是将n个数据点进行聚类,得到k个聚类,使得每个数据点到聚类中心的距离最小。
3.一种述恶意代码家族聚类系统,其特征在于,包括降维可视化模块和聚类模块,所述降维可视化模块,用于采用t-SNE算法对原始恶意代码执行序列进行降维可视化,所述聚类模块用于使用K-means算法对恶意代码家族进行聚类;
所述降维可视化模块包括数据点处理模块、模型建立模块以及训练模块,
所述数据点处理模块,用于使用t-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合;
所述模型建立模块,用于构建模型,通过非线性函数变换将数据点映射到相应概率分布上,具体为:
通过在高维空间中构建数据点之间的概率分布P,使得相似的数据点有更高的概率被选择,不相似的数据点有较低的概率被选择;
在低维空间里重构所有数据点的概率分布Q,使得这两个概率分布尽可能相似,具体为:
令输入空间是X,输出空间为Y,假设含有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分布的密度函数逐渐接近标准正态分布,
优化后的梯度公式如下:
其中,令
所述聚类模块包括分类个数和聚类中心确定模块、簇划分模块以及聚类中心重新计算模块;
所述分类个数和聚类中心确定模块,用于确定分类个数K和聚类中心,具体为:通过t-SNE算法可视化出每一个恶意代码文件的特征,从图中确定聚类簇数K,确定聚类簇数K后使用K-means算法进行聚类处理;
所述簇划分模块,用于通过计算对象与聚类中心的距离对所有对象进行簇划分;
所述聚类中心重新计算模块,用于重新计算新的聚类中心,判断是否满足条件,如果不满足,则返回通过计算对象与聚类中心的距离对所有对象进行簇划分的步骤,如果满足,则得出结论。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州大学,未经广州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910565940.8/1.html,转载请声明来源钻瓜专利网。





