码迷,mamicode.com
首页 > 其他好文 > 详细

Ember恶意软件数据集的使用教程

时间:2018-05-08 21:02:33      阅读:611      评论:0      收藏:0      [点我收藏+]

标签:2.0   water   执行   英文   软件   ack   并且   它的   import   

    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/tqdm.git@master#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 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

Ember恶意软件数据集的使用教程

标签:2.0   water   执行   英文   软件   ack   并且   它的   import   

原文地址:https://www.cnblogs.com/EvanKuo/p/9010609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!