Skip to content

结合cuckoo沙箱调用及报告处理实现基于API调用序列和网络流量的恶意代码检测

Notifications You must be signed in to change notification settings

Wind-Enchanter/malware_detection

Repository files navigation

malware_detection

毕设随记,防止遗忘 🐱‍👓

任务

技术路线选择&架构设计

构建数据集(2022.3.19完成)

训练模型(2022.4.10完成)

模块整合&界面(04.23:发现Ubuntu是32位的,没法安Tensorflow,只能重新搭建环境,工期++)

系统部署到Ubuntu(04.26完成) 系统测试与优化

写论文

文件组成

  • /cuckoo_report_analyzer (生成API调用数据集)

    /report 集中保存cuckoo产生的报告,格式[num]_report.json

    /storage 集中保存split_reports.py处理的结果process.json,每个文件保存在以[exe_name]命名的子文件夹下

    move_report.py 收集(批量移动到/report)cuckoo SandBox运行样本产生的报告report.json

    main.py 处理单个report.json,从中分出process.json到./storage/[exe_name]/文件夹

    split_reports.py 批量处理report.json,从中分出process.json到./storage/[exe_name]/文件夹

  • /api_reader (生成API调用数据集)

    api.csv 保存api函数与数字的对应关系,用以索引

    LIST.TXT 存放样本的名称,用来生成process.json文件路径

    本文件产生方式:

# 在/cuckoo_report_analyzer/storage/目录下
DIR *.*  /B >LIST.TXT
# 然后手动删除LIST.TXT中的“LIST.TXT”和“test.bat”
# 复制LIST.TXT到/api_reader
**main.py** 将LIST.TXT列举的文件夹中的json文件提取为索引好的api数字序列,保存到test_test.csv中

**main_1.py** 以xx.exe为参数,可以输出索引好的api数字序列,并保存到csv文件
  • /classification_api(训练模型A时使用)

    /archive/dynamic_api_call_sequence_per_malware_100_0_306.csv

    数据集,格式:hash, api_num[0:99], if_malware

    behavioral-malware-detection-with-cnn-lstm.ipynb

    jupyter notebook运行,注意修改数据集路径

behavioral-malware-detection-based-on-api-calls_model.h5

​ 保存训练好的模型

newer-api-calls_model.h5

​ 最新保存训练好的模型,据测试具有良好的效果

  • /classification_traffic(训练模型B时使用)

    使用王伟创建的数据集及配套工具,生成对应图片数据

    https://github.com/echowei/DeepTraffic

    修改train.ipynb文件中数据路径

  • predict_api.py(使用模型A进行预测)

​ 输入:processes.json文件路径

​ 输出:预测的结果

  • predict_traffic.py(使用模型B进行预测)

​ 输入:流量图片路径

​ 输出:预测的结果

  • main.py

​ 系统界面,在windows测试可行

  • main_ubuntu.py

​ 适合Ubuntu的系统界面,

​ 和main.py的区别是文件路径不同,以及可以动态调用cuckoo

  • log.csv 日志文件
  • temp.csv 临时文件,作为读API和输入模型的中转

About

结合cuckoo沙箱调用及报告处理实现基于API调用序列和网络流量的恶意代码检测

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published