____ _ _ _____ _
| __ ) ___ | | __| | | ___|_ _| | ___ ___ _ __
| _ \ / _ \| |/ _` |_____| |_ / _` | |/ __/ _ \| '_ \
| |_) | (_) | | (_| |_____| _| (_| | | (_| (_) | | | |
|____/ \___/|_|\__,_| |_| \__,_|_|\___\___/|_| |_|
毕方智能云沙箱
毕方智能云沙箱(Bold-Falcon)是一个开源的自动化恶意软件分析系统。 它用于自动运行和分析文件,并收集全面的分析结果,概述恶意软件在独立操作系统中运行时所做的工作。 我们的工作是二次开发开源cuckoo沙箱,包括更新项目结构,重写整个前端的用户交互和添加基于机器学习的检测模块, 使恶意软件分析系统可以思考。
说明文档
https://powerlzy.github.io/Bold-Falcon/
开发文档
https://boldfalcon.readthedocs.io
开源资料
- cuckoo Cuckoo Sandbox is an automated dynamic malware analysis system
- cuckoo-modified Modified edition of cuckoo
- cuckooDroid CuckooDroid - Automated Android Malware Analysis with Cuckoo Sandbox.
- docker-cuckoo Cuckoo Sandbox Dockerfile
- cuckooautoinstall Auto Installer Script for Cuckoo Sandbox
- cuckooML CuckooML: Machine Learning for Cuckoo Sandbox
- Panda-Sandbox Cuckoo python3 (Unfinished)
- HaboMalHunter HaboMalHunter is a sub-project of Habo Malware Analysis System
源码分析
项目结构更新
- 整理工程目录打包lib:(common,core),Modules(辅助功能、虚拟机、处理、签名、机器学习模型检测)
- 省略\CWD目录:添加 analyzer、db、examples、Mal_sample、sample_data、storage、log等目录
主要更新内容
- 学习内容
- Yara规则、ssdeep
- DLL注入、动态信息提取原理
- 用Github Page快速创建项目文档网站
- 动态牌子
- 创建Bold-Falcon logo
- pypi上传模块,pip安装
- Python-Sphinx 自动生成Python项目文档
- Sphinx-readthedocs
- requirements.txt 整理
- Frog:create an image and add an image and a host to the Fog server
- 设计文档
- 参考文献记录(设计依据)
- 国内沙箱深度调研
- 图标+起名
- 家族签名模块
- cuckoo 社区签名库
- cuckoo的行为签名
- 添加挖矿+使用自定义签名
- 机器学习模块
- 数据集:kaggle microsoft 10000个软件、挖矿软件 6000个;
- 报告显示内容:模型检测图展示、使用特征展示、预测威胁得分;
- 静态检测引擎:string、malconv;
- 动态检测引擎:API调用序列;
- 定义基类Dectection、Instance等;
- 添加Smaple——malware,200个json report样本;
- 后期需求
- 环境打包,Docker\shells安装
- blog解析文档编写
- 虚拟机管理:libvirt+高并发虚拟机
- 沙箱内存管理:MemScrimper: Time- and Space-Efficient Storage of Malware Sandbox Memory Dumps (2018 DIVMA)
- 3.3.5 REST API(Cuckoo docs) wsgi应用程序
常见问题
- Machine * status gurumeditation
- 找到虚拟机安装目录下VBox.log日志文件
- 在日志文件中找到ProcessID,
kill - 9 ProcessID
- python 2/3 joblib.dump() 和 joblib.load()
- 不同python版本的pickle.dump()和pickle.load()是可以相互转换和支持的
- 在python3中,您应该使用较低的协议号来编写pickle数据
pickle.dump(your_object, your_file, protocol=2)
- Pytorch Cpu 导入 Gpu 训练的模型
model.load(model_path, map_location='cpu')
- Sphinx-readthedocs 开发文档自动生成
sphinx-quickstart
sphinx-apidoc -o ./source ../Bold-Falcon
python -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html