jisoncj/malware-detector
GitHub: jisoncj/malware-detector
基于Python的多引擎静态恶意软件分析系统,整合YARA、机器学习和VirusTotal等七种检测引擎,配合Flask Web界面提供文件上传、实时扫描和风险评分功能。
Stars: 0 | Forks: 0
# Malware Detector
一个基于 Python 的多引擎静态恶意软件分析系统,构建于 Kali Linux 之上。
使用七个互补的检测引擎以及一个 Machine Learning 模型,检测 PE 可执行文件、PDF 文件、Office 文档、ZIP 压缩包和 Bash 脚本中的威胁。
## 功能特性
- 基于哈希的检测(MD5 / SHA-256),比对已知恶意软件数据库
- Shannon 熵分析 + shellcode 字节模式检测
- 二进制十六进制签名扫描(Metasploit eggs、NOP sleds、shellcode stubs)
- YARA 模式匹配,包含 19 条自定义规则
- 使用 pefile 进行 PE 头异常评分
- VirusTotal API 集成(哈希查找 + 自动文件上传)
- 针对 PDF、Office(OLE/OOXML/RTF)、ZIP 和 Bash 文件的专用扫描器
- Machine Learning 分类(Random Forest — 31 个特征,97% 准确率)
- 使用 strace 进行动态沙箱分析(可选,仅限 Linux)
- 0–100 风险评分,并附带 CLEAN / SUSPICIOUS / MALICIOUS 判定结果
- Flask Web 仪表板,支持拖放上传和实时进度显示
- 每次扫描输出 JSON 报告
## 安装说明
### 前置条件
- Kali Linux(或任何基于 Debian 的 Linux)
- Python 3.10+
### 安装依赖
```
sudo apt install python3 python3-pip yara strace -y
pip3 install requests colorama yara-python pefile flask scikit-learn numpy pandas joblib psutil --break-system-packages
```
### 添加你的 VirusTotal API 密钥
在 https://www.virustotal.com → Profile → API Key 获取免费密钥
打开 `virustotal.py` 并将 `PASTE_YOUR_FREE_API_KEY_HERE` 替换为你的密钥。
### 训练 ML 模型(运行一次)
```
python3 ml_trainer.py
```
## 运行说明
### 命令行界面
```
# 扫描单个文件
python3 scanner.py shell.exe
# 扫描目录
python3 scanner.py /home/kali/Downloads/
# 使用 dynamic sandbox analysis 扫描(仅限 shell scripts / Python)
python3 scanner.py --sandbox test_malicious.sh
```
### Web UI
```
python3 app.py
```
在浏览器中打开 **http://localhost:5000**
- 将任意文件拖放到上传区域,或输入文件路径
- 观察实时进度条,所有 7 个引擎将依次运行
- 查看带有严重性徽章、引擎评分条和 ML 预测的检查结果
- 下载完整的 JSON 报告或在浏览器中查看
## 风险评分
| 分数 | 判定结果 | 含义 |
|-------|---------|---------|
| 0 – 19 | CLEAN | 未发现显著威胁 |
| 20 – 49 | SUSPICIOUS | 存在某些迹象 — 建议审查 |
| 50 – 100 | MALICIOUS | 检测到高置信度威胁 |
## 检测能力
| 文件类型 | 专用模块 | 主要威胁 |
|-----------|-----------------|-------------|
| .exe .dll | pe_analyzer | PE 异常、shellcode、导入表 |
| .pdf | pdf_scanner | JavaScript、自动打开、CVE 漏洞利用 |
| .doc .docx | doc_scanner | VBA 宏、OLE、模板注入 |
| .zip .jar | zip_scanner | 炸弹、双扩展名、多语言文件 |
| .sh .bash | bash_scanner | 反向 shell、挖矿、持久化 |
## 测试结果
- **shell.exe** (msfvenom reverse_tcp):得分 85/100 — MALICIOUS — 经 VirusTotal 55/72 个引擎确认
- **Report.pdf** (干净文档):得分 5/100 — CLEAN
- **29 个测试用例通过**:在单元、集成和系统测试中达到 100% 通过率
## 使用技术
Python 3、Flask、YARA、pefile、scikit-learn、VirusTotal API v3、Chart.js、Kali Linux
## 实习项目
于 **Cyber Echelon**(喀拉拉邦 Thrissur 西堡)的网络安全实习期间开发。
实习生:Jison C J — 23BBCCCE062
院系:计算机科学与信息技术
大学:Yenepoya (Deemed to be University),Bengaluru 校区
标签:AMSI绕过, Apex, Ask搜索, DeepSeek, DNS信息、DNS暴力破解, DNS 反向解析, Flask, Office文档分析, PDF检测, pefile, PE头分析, PE文件分析, Python, VirusTotal, Web界面, YARA规则, 二进制扫描, 云安全监控, 全栈安全应用, 分类器, 哈希校验, 多引擎分析, 威胁检测, 恶意脚本检测, 拖拽上传, 文件扫描, 无后门, 机器学习, 沙箱分析, 熵值分析, 网络安全, 随机森林, 隐私保护, 静态分析