重要:由于缺少测试数据,部分结论可能不正确。更多更准确的结论,还需要进行大量实验。
mmdt(Mathematics Malware Detected Tools)是一款基于数学方法的最简单的类“机器学习”工具。该工具通过数学方法对目标对象进行处理,生成相应的标准“指纹”,通过对指纹的处理,实现“机器学习”中的“分类”、“聚类”方法。
并在此基础上,从“分类”衍生出恶意代码检测功能,从“聚类”衍生出恶意代码同源样本挖掘功能。
备注:
工具特点如下:
可参考著名工具ssdeep的目的及意义。
该工具相对于ssdeep的优势:
通过压缩算法对文件进行缩放,生成标准文件、使用哈希函数对标准文件进行处理,得到“分片”哈希(指纹)。详细内容参见后续论文(撰写论文中)。
(原理不够,表情包凑。
在完全一样的约束条件下,能推论出一个特解。我的状态:
弱化(减少)约束条件之后,面对新的数学问题时,我的状态:
在群里请教大佬数学问题时,我的状态:
主配置文件,用于配置执行相关功能时的参数选项。
标签配置文件,用于分类(扫描)时,将id转成对应的字符串,节约存储空间。详细使用参考使用场景
参数意义见main.ini
本段落主要说明工具的用法以及怎么用。不同的使用场景需要配置不同的参数。
目前考虑到使用场景具体包括:
对有标签样本提取特征,生成指纹,融入特征库。
执行命令如下:
执行命令:
输出检出情况。
执行命令:
对51个文件,共计9个大类进行聚类,执行命令:
结果如下:
51个样本聚类数量29类。从截图信息可以看出,mmdt_000是CVE-2018-0802类型,共计8个样本
用于计算文件间的相似度。
./mmdt -f 2 -c /Users/ddvv/gitcode/mmdt/tmp/test/Gandcrab/Gandcrab_2 -t /Users/ddvv/gitcode/mmdt/tmp/test/All/
结果如下:
...
./mmdt -f 2 -c /Users/ddvv/gitcode/mmdt/tmp/test/CVE-2018-0802/CVE-2018-0802_1 -t /Users/ddvv/gitcode/mmdt/tmp/test/All/
结果如下:
对ssdeep中不同commit间的engine.cpp源码进行相似度计算,原始差异如下图:
执行命令(归一化标准设置为500),
./mmdt -f 2 -n 500 -c /Users/ddvv/gitcode/mmdt/tmp/test/source/engine_new.cpp -t /Users/ddvv/gitcode/mmdt/tmp/test/source/engine_old.cpp
相似度计算结果如下:
对webshell进行相似度计算,原始差异如下图:
执行命令(归一化标准设置为默认100),
./mmdt -f 2 -c /Users/ddvv/gitcode/mmdt/tmp/test/webshell/php1 -t /Users/ddvv/gitcode/mmdt/tmp/test/webshell/
相似度计算结果如下:
对宏代码进行相似度计算,原始差异如下图:
执行命令(归一化标准设置为默认100),
./mmdt -f 2 -c /Users/ddvv/gitcode/mmdt/tmp/test/Macros/Macros_3 -t /Users/ddvv/gitcode/mmdt/tmp/test/Macros/
相似度计算结果如下:
通过一些参数优化等方式,有可能也能利用在相似图像查找上面。
原图如下:
执行命令(归一化标准设置为210),
./mmdt -f 2 -k 3 -n 210 -c /Users/ddvv/gitcode/mmdt/tmp/test/Img/img1.jpeg -t /Users/ddvv/gitcode/mmdt/tmp/test/Img/
相似度计算结果如下:
对314个恶意样本使用同一参数(见main.ini文件),进行测试统计(样本来源参考malware-samples和APT-Sample)。
RS比率=规则/样本数量比率
可推导出的结论包括:
主要还是如下两个原因:
出于两方面的原因考虑:
会。比如考虑支持以下一些场景和功能:
Github -- ddvv
解压码:mmdt
引用自woffffcibei,感谢大牛贡献数据
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2019-11-9 22:05
被大大薇薇编辑
,原因: 添加附件