Ember惡意軟件數據集的使用教程

    2018年4月份,網絡安全公司Endgame發佈了一款名爲EMBER的大型開源數據集。EMBER是一個包含了100多萬種良性和惡意PE文件(Windows可執行文件)集合,這是一種常見的惡意軟件隱藏格式。同時,針對該數據集,該公司同時在github上發佈瞭如何使用該數據集的一個教程貼。在該教程的指引下,我嘗試搭建了該項目的運行環境,併成功執行。可是過程當中依然遇到了一些問題,現整理問題以下。html

 

1. 運行 

pip install lief==0.83python

報錯:找不到lief
解決方案:
     更新源,即在終端下運行 pip install —upgrade
 
報錯:time out

解決方案:git

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

公司博文:https://www.endgame.com/blog/technical-blog/introducing-ember-open-source-classifier-and-dataset安全

相關文章
相關標籤/搜索