Ember恶意软件数据集的使用教程
Posted evankuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ember恶意软件数据集的使用教程相关的知识,希望对你有一定的参考价值。
2018年4月份,网络安全公司Endgame发布了一款名为EMBER的大型开源数据集。EMBER是一个包含了100多万种良性和恶意PE文件(Windows可执行文件)集合,这是一种常见的恶意软件隐藏格式。同时,针对该数据集,该公司同时在github上发布了如何使用该数据集的一个教程贴。在该教程的指引下,我尝试搭建了该项目的运行环境,并成功执行。但是过程中依然遇到了一些问题,现整理问题如下。
1. 运行
pip install lief==0.83
报错:找不到lief
解决方案:
更新源,即在终端下运行 pip install —upgrade
报错:time out
解决方案:
pip --default-timeout=100 install -U Pillow
2. 还是找不到lief
原因:lief还没有加入到python底层库中,因此搜索该库源文件,直接安装
解决方案:
google lief python,出来github链接
在终端下运行 pip install https://github.com/lief-project/packages/raw/lief-master-latest/pylief-0.8.3.dev.zip
3. 运行
python train_ember.py [/path/to/dataset]
找不到pqdm
解决方案:
google pqdm github,
在终端下运行 pip install -e git+https://github.com/tqdm/[email protected]#egg=tqdm
注:
[/path/to/dataset]是解压后的数据集所在的文件夹(注意:不是单个文件)路径,例如,我将数据集解压后,重命名为ember_data,并且放在了与train_ember.py同一层的目录文件,那么我就执行 python train_ember.py ember_data/
(下同)
4. 上一步安装完后,出现如下提示
ember 0.1.0 requires lightgbm==2.1.0, which is not installed.
ember 0.1.0 has requirement numpy==1.14.2, but you‘ll have numpy 1.13.3 which is incompatible.
ember 0.1.0 has requirement pandas==0.22.0, but you‘ll have pandas 0.20.3 which is incompatible.
ember 0.1.0 has requirement numpy==1.14.2, but you‘ll have numpy 1.13.3 which is incompatible.
ember 0.1.0 has requirement pandas==0.22.0, but you‘ll have pandas 0.20.3 which is incompatible.
ember 0.1.0 has requirement tqdm==4.21.0, but you‘ll have tqdm 4.23.2 which is incompatible.
原因:已经安装的包版本不兼容
解决
重新安装,采用
pip install -v lightgbm==2.1.0
pip install -v numpy==1.14.2
pip install -v tqdm==4.21.0
Conda install pandas=0.22.0
其中pandas采用conda安装的原因是pip一直time out,后来发现conda安装真的是快,建议直接用这个安装。
5. 训练样本
【源说明见下图】
报错:unrecognized arguments
分析原因:文件路径写错
解决方案:
将解压后的数据集(重命名为ember_data)放到train_ember.py同一级目录下,运行python train_ember.py ember_data/
最后结果:
6. 运行 classify_binaries.py 文件
【源说明见下图】
[/path/to/model] 是在上一步训练过程生成的model.txt文件,在第五步中我将数据集文件夹放到与train_ember.py同级的地方,同样的,他们也与classify_binaries.py同级
那么,就运行如下代码
python classify_binaries.py -m ember_data/model.txt
【说明】
不知道为什么,model.txt就是看不到,但是通过搜索可以搜到。不过这不影响用代码去找到它。
【运行结果】(有错误)
显示没有二进制文件,问题还是找不到我的model.txt文件
这时候用终端进入ember_dataset目录下,输入 ll (英文字母第12个字母)
可以刷新所有的文件,然后关闭文件夹,重新打开就有了
【再次运行】
终端回到scripts目录下
python classify_binaries.py -m ember_data/model.txt
还是不行,先跳过此步
7. 继续运行
在scripts目录下(train_ember.py文件)打开终端,进入python3环境下
import ember ember.create_vectorized_features("ember_dataset/") ember.create_metadata(“ember_dataset/")
【说明】
ember_dataset/ 是数据集目录
源教程是
/data/ember/ ,这个路径不是同级下的,因此执行这类代码的时候一定要十分注意。
……
继续执行剩下代码,都没有出现问题
……
8. 随便放一个exe文件到指定目录,检测它的安全性
源github链接(数据集 + 教程+ 源码):https://github.com/endgameinc/ember
公司博文:https://www.endgame.com/blog/technical-blog/introducing-ember-open-source-classifier-and-dataset