关于python_mmdt:从1到2--实现简单恶意代码分类器(三)

需求场景设想这么一个需求:有一批文件需要判定是否属于恶意文件,并且需要给出恶意文件所属的家族类型。这个需求该怎么高效处理呢?处理过程又该怎么固化成我们自己的经验呢?当以后面临同样的需求时,能否复用之前的结果呢?我能想到的做法有以下三种:做法一:本地下载杀毒软件,使用杀毒软件对这批文件进行扫描,查看检测结果。做法二:将这些文件上传到诸如Virustotal之类的检测平台,查看检测结果。做法三:随机抽取样本分析,判定为恶意的,则提取yara规则,利用yara规则对剩余文件进行扫描,未扫出的文件继续人工
摘要由CSDN通过智能技术生成

需求场景
设想这么一个需求:有一批文件需要判定是否属于恶意文件,并且需要给出恶意文件所属的家族类型。这个需求该怎么高效处理呢?处理过程又该怎么固化成我们自己的经验呢?当以后面临同样的需求时,能否复用之前的结果呢?

我能想到的做法有以下三种:

做法一:本地下载杀毒软件,使用杀毒软件对这批文件进行扫描,查看检测结果。
做法二:将这些文件上传到诸如Virustotal之类的检测平台,查看检测结果。
做法三:随机抽取样本分析,判定为恶意的,则提取yara规则,利用yara规则对剩余文件进行扫描,未扫出的文件继续人工分析,继续提yara规则,如此反复,直到处理完成。
针对以上三种做法,分别讨论其优点和缺点:

做法一:
优点:处理方式简单快捷,误报率极低,处理效率高
缺点:单一杀软漏报率可能较高;在Linux/MacOS上安装、使用杀软不方便;处理过程很难固化为经验;有可能导致文件泄漏(联网使用杀软云查可能导致文件被厂商收集)
做法二:
优点:适用Windows/Linux/MacOS平台;检测误报率、漏报率都极低,结果丰富;处理效率高
缺点:有联网要求;有一定的代码开发工作;文件百分百泄漏
做法三:
优点:处理过程天然可固化为经验;适用任意平台;适用隔离网络;经验可积累,可复用;保证文件安全性
缺点:工作量极大,处理效率极低;
这里的需求场景也许太过定制化,但还是有一定的代表性的。针对以上的需求场景,python_mmdt工具的分类算法,可以很好的覆盖上述场景。

使用python_mmdt的做法,具有以下优点

处理方式简单、快捷、处理效率高
可打包为可执行文件,附带特征向量,跨平台适用Windows/Linux/MacOS
无联网要求,文件保密性高
处理过程可固化为经验,经验固化方式简单,处理结果复用方便
mmdt_hash大小固定,存储占用空间小
当然,有三个缺点不能不提:

准确率可能较低(依赖于判定分值的设定)
漏报率可能较高(依赖于判定分值的设定)
部分文件的mmdt_hash值没有意义,不能用作分类规则。
因此,可以在不同的场景使用不同的判定分值,判定分值越高,准确率越高;判定分值越低,漏报率越低。

代码项目地址
python_mmdt
版本:0.1.3
特性:实现简单分类器,项目附带基础敏感哈希特征库,可实现恶意样本匹配
基本介绍
使用pip安装python_mmdt之后,会向系统中添加如下命令:

mmdt-hash:计算指定文件的mmdt_hash值
mmdt-std:计算mmd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值