可视化技术|从零开始学习恶意软件聚类可视化( 二 )
本文插图
打开net.png如下所示
本文插图
最简单的可视化方法就是这么简单 , 当然还可以加上其他参数 , 使得绘出的图中添加边或节点的属性、颜色 , 线段粗细等等 。
- 0x04
本文插图
如果从二进制文件中提取处了域名 , 将调用add_node将其添加为节点 , 然后在恶意软件节点与提取出的域名之间建立边 。
这样画出来的网络就是我们的第一张图 , 图中可以体现恶意软件之间的聚类以及从中提取出的域名 。 另外 , 可以画出两种图 , 一张显示恶意软件之间的关系 , 一张用于显示域名之间的关系 。 所以需要添加以下代码
本文插图
- 0x05
python test.py ../data a.dot b.dot c.dot
参数依次为恶意文件所在文件夹的路径 , 以及三张图的dot文件保存位置
运行中的过程如下
本文插图
然后分别将dot文件解析为png格式的文件
第一张图如下所示
本文插图
部分放大的局部如下
本文插图
蓝色椭圆为域名 , 黑色椭圆为恶意样本 。 图中将所有从中提取new.new域名的文件都连在了一起 。
B.png效果如下
本文插图
可以很明显看到 , 将恶意样本根据共享的回连域名特征聚类在一起
【可视化技术|从零开始学习恶意软件聚类可视化】C.png如下所示
本文插图
可以看到 , 上图体现了域名之间的关系 。
- 0x06
首先自然就是提取字符串的函数
本文插图
这里为了进一步提高效率 , 可以在提取字符串之前 , 先判断文件是否为可执行文件 , 判断函数的逻辑很简单 , 就是看最开始的magic byte是否为MZ
本文插图
- 0x07
这里给出的方法是使用Jaccard系数 。
Jaccard系数是一种量化相似性的方法 。 其计算公式如下
本文插图
即两个集合A和B交集元素的个数在A、B并集中所占的比例
举个简单的例子:
比如A和B对于三本书的评价为A(1,1,0)和B(1,0,1) 。 PS:1代表喜欢 , 0代表不喜欢 。 可以得到J ≈ 0.3 , 这就说明两人相似度不高
推荐阅读
- 技术编程|后台权限管理设计思路:三种模型分析
- |苹果开始向 Experian 报告 Apple Card 信用档案
- 技术编程|如何利用数据库进行世界史研究
- 青年|西安邮电大学与安康汉滨区深度合作,研发适合毛绒玩具全产业链实用技术
- 无人科技,电池技术|盘点几种常见的无人机电池
- |反击开始!华为正式起诉美三巨头,网友:一挑三
- 技术编程|无服务器调研,部署REST API是最普遍用例
- 京东,折叠屏手机|围绕柔性屏的技术、特性、应用、产业化进行了非常专业的解读
- 云计算|腾讯云小微首次技术开放日,揭秘AI语音背后的奥秘
- iQOO手机|“快稳双全”!120W超快闪充技术炫技,十五分钟充满电量
