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

2018年4月份,网络安全公司Endgame发布了一款名为EMBER的大型开源数据集。EMBER是一个包含了100多万种良性和恶意PE文件(Windows可执行文件)集合,这是一种常见的恶意软件隐藏格式。同时,针对该数据集,该公司同时在github上发布了如何使用该数据集的一个教程贴。在该教程的指引下,我尝试搭建了该项目的运行环境,并成功执行。但是过程中依然遇到了一些问题,现整理问题如下。

1. 运行

pip install lief==0.83

报错:找不到lief

解决方案:

更新源,即在终端下运行 pip install —upgrade

报错:time out

解决方案:

设置超时时间 https://www.cnblogs.com/xiaoduc-org/p/5958973.html

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 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

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

时间: 2024-10-08 10:56:41

Ember恶意软件数据集的使用教程的相关文章

利用基于压缩的图挖掘技术进行基于行为的恶意软件检测技术

利用基于压缩的图挖掘进行基于行为的恶意软件检测技术 摘要——基于行为的检测方法通常用来处理经过了静态混淆的恶意软件的威胁.这种方法通常使用图来代表进程或者系统的行为,通常使用基于频率的挖掘技术,从恶意软件图的数据集中提取特征模式.分子挖掘领域最近的研究表明,基于频率的图挖掘算法通常会寻找高辨识度模式的次最优方法.我们提出了一种恶意软件检测的方法,使用基于量化数据流图的压缩挖掘方法,来获得精确度较高的检测模型.我们在一组大型多样的恶意软件数据集上的实验显示,我们的方法在比基于频率的检测模型高出了6

Using lists in Android [带翻译]

Using lists inAndroid (ListView) – Tutorial 原文地址:http://www.vogella.com/tutorials/AndroidListView/article.html 申明:本译文参考谷歌和原文协作翻译,有很小一部分是意译方便理解.如有错误请联系(邮箱:[email protected]QQ:190951132 添加请表明是本文读者)更正. 拉尔斯· 沃格尔 Version4.6 Copyright? 2010,2011,2012,2013,

基于Apache Spark机器学习的客户流失预测

流失预测是个重要的业务,通过预测哪些客户可能取消对服务的订阅来最大限度地减少客户流失.虽然最初在电信行业使用,但它已经成为银行,互联网服务提供商,保险公司和其他垂直行业的通用业务. 预测过程是大规模数据的驱动,并且经常结合使用先进的机器学习技术.在本篇文章中,我们将看到通常使用的哪些类型客户数据,对数据进行一些初步分析,并生成流失预测模型 - 所有这些都是通过Spark及其机器学习框架来完成的. 使用数据科学更好地理解和预测客户行为是一个迭代过程,其中涉及: 1.发现和模型创建: 分析历史数据.

Kaggle初学者五步入门指南,七大诀窍助你享受竞赛

Kaggle 是一个流行的数据科学竞赛平台,已被谷歌收购,参阅<业界 | 谷歌云官方正式宣布收购数据科学社区 Kaggle>.作为一个竞赛平台,Kaggle 对于初学者来说可能有些难度.毕竟其中的一些竞赛有高达 100 万美元的奖金池和数百位参赛者.顶级的团队在处理机场安全提升或卫星数据分析等任务上拥有数十年积累的经验.为了帮助初学者入门 Kaggle,EliteDataScience 近日发表了一篇入门介绍文章,解答了一些初学者最常遇到的问题.机器之心对这篇文章进行了编译介绍,另外也增加了一

[枫叶学院] Unity3d高级开发教程 工具集(一) 哈希列表——强大的自定义数据集

在日常开发中,数据集合是我们必不可少的重要工具之一.在C#中,.Net Framework也为我们提供了种类繁多,功能多样的数据集工具.在此,我基于List<T> 和 HashTable制作了一个功能强大的数据集,我将其命名为HashList.他集二者的优势于一身,既支持数组索引的操作,同时也支持键值对操作.我更在此基础上封装了一些常用的工具函数,使其能够极大的方便我们日常开发中的数据管理. HashList 核心功能如下: 1.类型安全的数据集合,省去了强制转换的繁冗操作 2.根据数组索引,

BI之SSAS完整实战教程5 -- 详解多维数据集结构

之前简单介绍过多维数据集(Cube)的结构. 原来计划将Cube结构这部分内容打散,在实验中穿插讲解, 考虑到结构之间不同的部分都有联系,如果打散了将反而不好理解,还是直接一次性全部讲完. 本篇我们将详解Cube结构, 介绍Cube结构的每个部分,让大家对Cube结构能有总体的把握. 由于多维数据集的结构和MDX有很强的联系, 因此会有部分内容涉及到MDX,大家只要大概能看懂就行了,后续会有专门的MDX 专题. 文章提纲 概述 度量值和度量值组 维度 总结 概述 SQL Server Analy

BI之SSAS完整实战教程3 -- 创建第一个多维数据集.docx

上一篇我们已经完成了数据源的准备工作,现在我们就开始动手,创建第一个多维数据集(Cube). 文章提纲 使用多维数据集向导创建多维数据集 总结Cube设计器简介 维度细化 总结 一.使用向导创建多维数据集 在Analysis Services中,可以通过3种方法构建多维数据集:自上而下,自下而上或者基于一个空多维数据集. 一般我们从现有的关系数据库自下而上构建. 在自下而上方式中,需要一个DSV作为多维数据集的构建基础. AS中的多维数据集(Cube)包括两部分: 1. 一个或多个度量值组,其数

深度学习入门教程UFLDL学习实验笔记二:使用向量化对MNIST数据集做稀疏自编码

今天来做UFLDL的第二个实验,向量化.我们都知道,在matlab里面基本上如果使用for循环,程序是会慢的一逼的(可以说基本就运行不下去)所以在这呢,我们需要对程序进行向量化的处理,所谓向量化就是将matlab里面所有的for循环用矩阵运算的方法实现,在这里呢,因为之前的实验我已经是按照向量化的形式编写的代码,所以这里我只把我对代码修改的部分发上来供大家参考吧.本文为本人原创,参考了UFLDL的教程,是我自己个人对于这一系列教程的理解以及自己的实验结果.非盈利性质网站转载请在文章开头处著名本文

ArcGIS教程:创建网络数据集(一)

在本练习中,您将使用地理数据库 San Francisco 中的街道要素和转弯要素创建一个网络数据集.您还可以加入历史交通流量数据,以便求解取决于时间的路径. 创建网络数据集 步骤: 单击开始 > 所有程序 > ArcGIS > ArcCatalog 10.1 启动 ArcCatalog. 启用 ArcGIS Network Analyst 扩展模块. 单击自定义 > 扩展模块. 将打开扩展模块 对话框. 选中 Network Analyst. 单击关闭. 在标准工具 工具条上,单