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规则, 二进制分析, 云安全运维, 入侵检测系统, 加壳检测, 勒索软件防护, 反病毒引擎, 可视化界面, 启发式扫描, 威胁情报, 安全数据湖, 密钥泄露防护, 开发者工具, 无服务器架构, 机器学习安全, 熵值分析, 病毒查杀, 网络安全, 逆向工具, 隐私保护, 静态分析引擎