可视化技术|从零开始学习恶意软件聚类可视化( 三 )


使用jaccard系数后 , 会生成一个归一化后的值 , 这样恶意软件样本之间的相似性比较可以放在相同的尺度上进行 。 一般取值在0~1.
代码实现如下
可视化技术|从零开始学习恶意软件聚类可视化
本文插图

这里我们默认设定 , Jaccard系数超过0.8则认为A与B相似
可视化技术|从零开始学习恶意软件聚类可视化
本文插图

首先存储所有从文件中提取的字符串到集合中 , 并将每个恶意软件通过add_node作为节点加入图中 。 然后遍历所有恶意软件对 , 计算其jaccard距离 , 如果值大于0.8 , 则在这两个恶意软件之间增加一条边 。
最后将dot文件保存 。
使用如下
python test.py ../data a.dot
参数分别为恶意软件所在文件夹和要保存的dot文件的位置
运行过程如下
可视化技术|从零开始学习恶意软件聚类可视化
本文插图

同样将dot文件解析为png图片后如下所示
可视化技术|从零开始学习恶意软件聚类可视化
本文插图

放大后
可视化技术|从零开始学习恶意软件聚类可视化
本文插图

以上图为例 , 可以看到恶意家族很好的聚类在了一起 。
这里要说明一下 , 我们用的样本是已经被Mandiant打好标签了的 , 而我们在聚类前是不知道上图中的五个文件同属于GREENCAT_s的 , 在聚类之后与Mandiant打好的标签进行比较 , 我们可以看出聚类的效果相当不错 。

  • 0x08
本文仅是针对安全中最简单的字符串(及域名)特征提取与数据科学结合在一起所在的抛砖引玉的工作 , 不过相信读者也就可以从中认识到在现在这个时代掌握数据科学对网络安全的重要性 。 本文代码主体来自http://www.malwaredatascience.com/ , 由于成文需要有部分改动 。
  • 0x09参考
1.《Malware data science--attack detection and attribution》
2.https://zhuanlan.zhihu.com/p/27241148
3.http://blog.sciencenet.cn/blog-404069-338143.html
  • 实验推荐
脚本病毒
https://www.hetianlab.com/expc.do?ec=562289a3-119c-4de7-9185-0e35c2b4a019
通过本实验的学习 , 了解脚本病毒的原理和攻击过程
本文系合天智汇原创 , 转载请注明出处 。

可视化技术|从零开始学习恶意软件聚类可视化
本文插图


推荐阅读