ChronoCoders/proteus
GitHub: ChronoCoders/proteus
基于 Rust 和 Python 构建的高性能恶意软件静态分析引擎,融合启发式算法、机器学习和 YARA 规则实现零日威胁的高精度检测。
Stars: 2 | Forks: 0
# PROTEUS
**使用 Rust 和 Python 构建的高级零日静态分析引擎**
[功能特性](#features) • [快速开始](#quick-start) • [仪表盘](#web-dashboard) • [文档](https://github.com/ChronoCoders/proteus/wiki) • [贡献指南](#contributing) • [许可证](#license)
**高级零日静态分析引擎**
Proteus 是一款使用 Rust 和 Python 构建的高性能恶意软件分析工具,旨在通过静态分析、启发式算法和机器学习检测零日威胁。
## 功能特性
### 核心分析
- **PE/ELF 二进制分析** - 深度检查 Windows 和 Linux 可执行文件
- **熵值计算** - 检测加壳/加密恶意软件(节区级别粒度)
- **启发式评分** - 具有可配置阈值的智能威胁评估
- **字符串提取** - ASCII 和宽字符串分析,支持模式检测
- **IOC 检测** - 自动提取 URL、IP、注册表键、文件路径
- **高性能** - Rust 驱动的核心,通过 Rayon 进行并行处理
- **批处理** - 高效扫描整个目录
### 检测引擎
- **ML 检测** - 随机森林(96% 准确率)+ 孤立森林异常检测
- **YARA 引擎** - 40+ 行业标准检测规则
- **勒索软件**:WannaCry, Ryuk, Maze, Locky 家族
- **RAT 检测**:NanoCore, njRAT, DarkComet, Quasar, AsyncRAT
- **银行木马**:Emotet, TrickBot, Dridex, Zeus, Formbook, AgentTesla
- **加壳检测**:UPX, ASPack, Themida, VMProtect, PECompact, MPRESS
- **可疑行为**:代码注入、凭据转储、键盘记录器、浏览器数据窃取
- **多层分析** - 结合启发式 + ML + YARA 以实现最大准确性
### 高级功能
- **ML 就绪** - 用于机器学习的特征提取管道
- **特征工程** - 16+ 特征,包括熵、导入、导出、字符串
- **检测指标** - 内置准确率、精确率、召回率追踪
- **可扩展** - 用于自定义分析器的模块化架构
## Web 仪表盘
Proteus v0.3.0 包含一个现代 Web 界面,便于分析。
### 启动仪表盘
1. **启动 API 服务器:**
# Windows
.\venv\Scripts\activate
python -m uvicorn server:app --reload --port 8000
# Linux/Mac
source venv/bin/activate
python -m uvicorn server:app --reload --port 8000
2. **打开浏览器:**
访问 `http://localhost:8000`
### 功能
- **拖放分析**:即时上传 PE/ELF 文件
- **实时统计**:监控系统健康状况、规则计数和检测率
- **历史记录**:本地存储追踪过往扫描
- **可视化报告**:美观地展示熵、威胁评分和指标
## 检测指标(真实世界数据集)
| 指标 | 数值 |
|--------|-------|
| 测试准确率 | 96.22% |
| 精确率(恶意) | 95% |
| 召回率(恶意) | 97% |
| F1-Score | 0.96 |
| 误报率 | 0.97% |
| 训练数据集 | 1,190 个样本 |
| 真实恶意软件样本 | 576 |
| 干净样本 | 614 |
## 快速开始
### 前置条件
- **Rust** 1.83+ ([安装](https://rustup.rs/))
- **Python** 3.10+ ([安装](https://www.python.org/downloads/))
- **Windows** 10/11 或 **Linux**
- **YARA** 4.5+(可选,Rust 构建需要)
- **MalwareBazaar API**(可选,用于数据集收集 - 包含在代码中)
### 安装
```
git clone https://github.com/ChronoCoders/proteus.git
cd proteus
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
maturin develop --release
```
### 基本用法
**分析单个文件:**
```
python cli.py file C:\path\to\sample.exe
```
**使用 ML 预测进行分析:**
```
python cli.py file C:\path\to\sample.exe --ml
```
**使用 YARA 规则进行分析:**
```
python cli.py file C:\path\to\sample.exe --yara
```
**完整分析(启发式 + ML + YARA):**
```
python cli.py file C:\path\to\sample.exe --ml --yara
```
**包含字符串的完整分析:**
```
python cli.py file C:\path\to\sample.exe --ml --yara --strings
```
**仅字符串分析:**
```
python cli.py strings C:\path\to\sample.exe
```
**批量扫描目录:**
```
python cli.py dir C:\path\to\samples --output results.json
```
### 收集真实恶意软件数据集
**从 MalwareBazaar 收集恶意软件样本(默认:每个标签 50 个样本,共约 500 个):**
```
python malware_collector.py
```
**自定义样本数量收集:**
```
# 每个 tag 收集 100 个样本(共约 1000 个)
python malware_collector.py --samples=100
# 每个 tag 收集 20 个样本(共约 200 个)
python malware_collector.py --samples=20
```
**启用详细调试模式:**
```
python malware_collector.py --verbose
```
**组合选项:**
```
python malware_collector.py --samples=100 --verbose
```
**功能:**
- 自动 AES 加密 ZIP 提取
- 失败下载的重试逻辑(每个样本 2 次尝试)
- 实时进度追踪
- 优雅的中断处理(Ctrl+C 保存进度)
- 元数据持久化(恢复能力)
- 10 个恶意软件类别:勒索软件、木马、RAT、窃密器、后门、加载器、挖矿、银行、间谍软件、蠕虫
**收集统计:**
- 默认:约 500 个样本,耗时约 17 分钟
- 大规模:约 1000 个样本,耗时约 33 分钟
- 自定义:通过 `--samples=N` 配置
### 构建测试数据集
```
python test_dataset_builder.py
```
### 训练 ML 模型
```
python ml_trainer.py
```
## 文档
### 示例输出
```
╔═══════════════════════════════════════╗
║ PROTEUS v0.2.0 ║
║ Zero-Day Static Analysis Engine ║
╚═══════════════════════════════════════╝
[*] Analysis: suspicious.exe
[+] Type: PE
[+] Entropy: 7.85
[+] Threat Score: 66.00/100
[+] Verdict: MALICIOUS
[!] Suspicious Indicators:
- VirtualAlloc
- CreateRemoteThread
- WriteProcessMemory
[*] YARA Scan:
[!] YARA Matches: 3
Rule: Suspicious_Code_Injection
Severity: HIGH
Family: suspicious
Rule: Emotet_Trojan
Severity: CRITICAL
Family: trojan
Rule: UPX_Packer
Severity: MEDIUM
Family: packer
[*] ML Analysis:
[+] ML Prediction: MALICIOUS
[+] Confidence: 100.00%
[+] Probabilities:
Clean: 0.00%
Malicious: 100.00%
[*] String Analysis:
[+] Total strings: 342
[+] Encoded strings: 15
[!] URLs (2):
http://malicious-c2.com/payload
https://evil.net/download
[!] Suspicious strings (8):
cmd.exe /c powershell
Disable-WindowsDefender
keylogger.dll
```
### 架构
```
proteus/
├── src/ # Rust core engine
│ ├── lib.rs # Module entry point
│ ├── pe_parser.rs # PE file parsing (goblin)
│ ├── elf_parser.rs # ELF file parsing
│ ├── entropy.rs # Shannon entropy calculation
│ ├── heuristics.rs # Threat scoring algorithms
│ ├── string_extractor.rs # String analysis engine
│ └── python_bindings.rs # PyO3 FFI bindings
├── python/ # Python orchestration
│ ├── __init__.py
│ ├── analyzer.py # Main analyzer class
│ ├── ml_detector.py # ML model integration
│ ├── yara_engine.py # YARA rule engine
│ ├── config.py # Configuration management
│ ├── validators.py # Security validators
│ └── rate_limiter.py # API rate limiting
├── yara_rules/ # YARA detection rules
│ ├── ransomware.yar # Ransomware signatures
│ ├── rats.yar # RAT detection
│ ├── trojans.yar # Banking trojans
│ ├── packers.yar # Packer detection
│ └── suspicious_behavior.yar # Behavioral analysis
├── cli.py # Command-line interface
├── malware_collector.py # MalwareBazaar dataset collector
├── ml_trainer.py # ML training pipeline
├── test_dataset_builder.py # Dataset generation
├── requirements.txt # Python dependencies
├── Cargo.toml # Rust dependencies
└── pyproject.toml # Python project configuration
```
### 特征提取
Proteus 每个样本提取 16+ 个特征:
**二进制特征:**
- 全局熵
- 节区数量
- 最大节区熵
- 导入数量
- 导出数量
- 可疑 API 数量
**字符串特征:**
- 字符串总数
- URL 数量
- IP 数量
- 注册表键数量
- 可疑关键词数量
- 文件路径数量
- 编码字符串数量
- 编码比率
- 可疑比率
### 威胁检测模式
**高熵指标:**
- 熵 > 7.8:可能加壳/加密
- 熵 > 7.5:可疑压缩
- 熵 > 7.2:熵值较高
**可疑 API (PE):**
```
VirtualAlloc, VirtualProtect, WriteProcessMemory,
CreateRemoteThread, LoadLibrary, GetProcAddress,
WinExec, ShellExecute, URLDownloadToFile,
CreateProcess, OpenProcess, ReadProcessMemory,
SetWindowsHookEx, GetAsyncKeyState, InternetOpen
```
**可疑符号 (ELF):**
```
execve, system, fork, ptrace, mprotect,
mmap, dlopen, socket, bind
```
**可疑关键词(字符串):**
```
cmd, powershell, eval, exec, system, shell,
download, upload, exploit, payload, inject,
keylog, screenshot, webcam, ransomware,
encrypt, bitcoin, miner, bypass, disable
```
## 开发
### 构建和测试
```
maturin develop
maturin develop --release
cargo test
python -m pytest
cargo clippy
mypy .
```
### 贡献
欢迎贡献!请:
1. Fork 本仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开 Pull Request
### 代码风格
- **Rust:** 遵循 `rustfmt` 和 `clippy` 建议
- **Python:** 遵循 PEP 8,必须有类型提示
- **代码中无注释**(首选自文档化代码)
- 使用依赖项的最新稳定版本
## 路线图
### v0.2.0(当前)
- [x] YARA 规则引擎(40+ 检测规则)
- [x] 勒索软件、RAT、木马、加壳检测
- [x] 可疑行为分析
- [x] CLI --yara 标志集成
- [x] 多层检测(启发式 + ML + YARA)
### v0.3.0(当前)
- [x] **Web 仪表盘** - 具有实时统计和拖放分析的现代 SPA
- [x] **沙箱集成** - Docker 化动态分析环境
- [x] **真实 ML 模型** - 基于 1000+ 真实样本训练的随机森林
- [x] **深度静态分析** - Imphash、Rich Header 和 Authenticode 支持
- [x] **API 服务器** - 用于程序化扫描的 FastAPI 后端
### v0.4.0(计划)
- [ ] 高级加壳检测增强
- [ ] 数字签名验证
- [ ] PE 资源节分析
- [ ] 使用更大的真实世界数据集(1000+ 样本)重新训练 ML 模型
- [ ] 通过 CLI 支持自定义 YARA 规则
### v0.5.0(未来)
- [ ] HTML 报告生成
- [ ] REST API 服务器
- [ ] Web 仪表盘
- [ ] 实时监控
- [ ] PCAP 分析集成
- [ ] 行为监控(动态分析)
## 性能
**基准测试(Intel i7, 16GB RAM):**
- 单文件分析:~50ms
- 批处理(100 个文件):~3 秒
- 字符串提取:~20ms
- ML 预测:~5ms
- YARA 扫描:~100ms
## 局限性
**当前版本(v0.2.0):**
- ML 模型需要在收集的真实世界样本上进行训练
- 无动态分析能力
- 侧重 Windows(PE 分析比 ELF 更成熟)
- 数据集收集需要 MalwareBazaar API 访问权限
**推荐用途:**
- 教育目的
- 研究项目
- 恶意软件分析培训
- 大型系统中的静态分析组件
- 用于 ML 训练的数据集收集
## 安全与法律
**重要提示:**
- 始终在隔离环境(虚拟机/沙箱)中分析恶意软件
- 未经适当测试,请勿在生产系统上使用
- 遵守当地关于持有和分析恶意软件的法律
- 本工具仅供教育和研究目的使用
**免责声明:**
作者不对本工具的滥用负责。用户需自行确保其使用符合适用的法律和法规。
## 许可证
MIT 许可证 - 详情见 [LICENSE](LICENSE) 文件
版权所有 (c) 2025 ChronoCoders
## 作者
**ChronoCoders 团队**
- 高级静态分析引擎
- ML 集成
- YARA 规则引擎
- 性能优化
## 致谢
- **goblin** - 优秀的二进制解析库
- **PyO3** - 无缝的 Rust-Python 集成
- **Rayon** - 让并行处理变得简单
- **scikit-learn** - ML 算法
- **pyzipper** - AES 加密 ZIP 提取
- **MalwareBazaar** - 真实世界恶意软件样本库
- **YARA** - 行业标准恶意软件检测框架
## 更多资源
- [文档](https://github.com/ChronoCoders/proteus/wiki)
- [API 参考](https://github.com/ChronoCoders/proteus/wiki/API)
- [示例](https://github.com/ChronoCoders/proteus/tree/main/examples)
- [贡献指南](CONTRIBUTING.md)
**如果您觉得 Proteus 有用,请给仓库一个 Star!**
**发现了 Bug?** [提出 Issue](https://github.com/ChronoCoders/proteus/issues)
**有功能请求?** [发起讨论](https://github.com/ChronoCoders/proteus/discussions)
标签:DeepSeek, DNS信息、DNS暴力破解, DNS 反向解析, ELF二进制分析, IOC提取, PE文件分析, RAT检测, Rust安全工具, YARA规则, 二进制分析, 云安全运维, 入侵检测系统, 加壳检测, 勒索软件防护, 反病毒引擎, 可视化界面, 启发式扫描, 威胁情报, 安全数据湖, 密钥泄露防护, 开发者工具, 无服务器架构, 机器学习安全, 熵值分析, 病毒查杀, 网络安全, 逆向工具, 隐私保护, 静态分析引擎