dshokeen200-maker/TotalWare

GitHub: dshokeen200-maker/TotalWare

一个基于Flask构建的自托管通用恶意软件分析平台,整合多格式静态/动态分析与多个威胁情报源,输出可解释的风险判定。

Stars: 0 | Forks: 0

# 🛡️ TotalWare — 通用恶意软件分析平台 TotalWare 是一个自托管的恶意软件分析平台,可扫描 **APK、EXE、PDF、Office、ZIP 和 PCAP** 文件,将深度静态分析、实时的 Android 动态沙箱和聚合的威胁情报结合在一起,提供一个单一的、可解释的风险判定。 使用 **Python + Flask** 构建。将其视为一个统一的分析编排器:它整合了 VirusTotal、MalwareBazaar、URLhaus、AbuseIPDB、Shodan 和 AlienVault OTX,加入了自身的深度静态/动态分析,并呈现出一个带有易于理解的原因和 MITRE ATT&CK 映射的清晰判定。 ## ✨ 功能 - **多格式扫描** — APK、EXE/DLL、PDF、Office(宏分析)、ZIP/RAR/7z、PCAP 和脚本。 - **深度 APK 分析** — 权限、组件、证书取证、重打包/篡改检测、可疑 API 检测、应用名与包名一致性检查,以及嵌入式密钥扫描(通过 androguard)。 - **动态沙箱** — 在带有 **Frida 反检测** 的本地 Android 模拟器中引爆 APK,以揭示实时 C2 流量;非 APK 文件使用 VirusTotal 云沙箱。 - **聚合威胁情报** — VirusTotal、MalwareBazaar、URLhaus、AbuseIPDB、Shodan、AlienVault OTX。 - **可解释的风险引擎** — 一个单一的加权评分(CLEAN → MALICIOUS)并附带确切原因,外加 **MITRE ATT&CK** 技术映射。 - **检测引擎** — YARA 规则、熵分析、模糊哈希(ssdeep 风格的变体检测)以及可疑字符串提取。 - **可视化** — IP 地理位置世界地图、文件↔IOC 关系图以及扫描间的差异对比。 - **AI 总结** — 为每次扫描提供简明英语的结论(Groq / Llama)。 - **完整的平台** — 用户账户(可选登录)、扫描历史、**带有密钥的 REST API**(限速)、带有投票功能的社区威胁流,以及团队/组织仪表板。 - **经过测试** — 自动化的 `pytest` 套件,涵盖风险引擎和数据库层。 ## 🧰 技术栈 | 层级 | 工具 | |---|---| | 后端 | Python, Flask, Flask-Login | | 数据库 | SQLAlchemy(本地使用 SQLite,已适配 Postgres) | | 静态分析 | androguard, yara-python, pefile, oletools, scapy, ppdeep | | 动态沙箱 | Android 模拟器 + Frida | | 威胁情报 | VirusTotal, MalwareBazaar, URLhaus, AbuseIPDB, Shodan, OTX | | AI | Groq (Llama) | | 前端 | HTML, CSS, JavaScript (Leaflet, vis-network) | ## 🚀 快速开始 ### 1. 克隆并安装 ``` git clone https://github.com/YOUR_USERNAME/TotalWare.git cd TotalWare pip install -r requirements.txt ``` ### 2. 配置 API 密钥 复制示例环境文件并填入你自己的(免费)API 密钥: ``` cp .env.example .env ``` 然后使用你的密钥(VirusTotal, AbuseIPDB, Shodan, OTX, abuse.ch, Groq)编辑 `.env`。 ### 3. 运行 ``` python app.py ``` 在浏览器中打开 **http://127.0.0.1:5000**。 ## 🔌 API 用法 从 **API 密钥** 页面生成一个 API 密钥,然后以编程方式扫描文件: ``` curl -X POST http://127.0.0.1:5000/api/v1/scan \ -H "Authorization: Bearer tw_live_your_key_here" \ -F "file=@sample.apk" ``` ``` { "filename": "sample.apk", "verdict": "MALICIOUS", "score": 100, "sha256": "…", "reasons": ["VirusTotal: 23/75 engines flag this as malicious", "Contacts known-malicious IP(s): …"], "scan_id": 42 } ``` 完整的 API 文档可在应用内的 `/docs` 路径下查看。 ## 🧪 测试 ``` pip install pytest pytest -v ``` 涵盖误报回归测试(合法应用保持 CLEAN,真正的恶意软件保持 MALICIOUS)以及完整的数据库层(用户、扫描、投票、API 密钥、组织)。 ## 📁 项目结构 ``` TotalWare/ ├── app.py # Flask app, routes, scan pipeline ├── modules/ # analysis modules │ ├── risk_engine.py # weighted, explainable scoring │ ├── apk_analyzer.py # androguard-based APK static analysis │ ├── dynamic_sandbox.py # Frida-based Android detonation │ ├── database.py # SQLAlchemy models + queries │ └── … # PE, PDF, Office, PCAP, threat intel, etc. ├── templates/ # web UI ├── yara_rules/ # YARA detection rules ├── sandbox/ # Frida anti-detect script ├── test_*.py # pytest suite └── requirements.txt ``` ## ⚠️ 局限性 - 检测依赖于第三方引擎(VirusTotal、MalwareBazaar 等);它是一个聚合器,而不是一个独立的 AV 引擎。 - 本地动态沙箱基于 x86 架构 — 仅包含 ARM 代码的加壳样本无法运行,且无法在典型的云主机上运行(非 APK 行为改用 VT 云沙箱)。 - 启发式风险引擎是人工调优的;偶尔会对异常但合法的文件出现判断失误。 - 作为作品集/学习项目构建 — 部分环节属于开发级别(单进程、内存限速、默认密钥)。未针对企业/生产环境进行安全加固。 ## 📝 许可证 本项目仅用于教育和作品集目的。
标签:DAST, IP 地址批量处理, Python Flask, 云安全监控, 威胁情报, 安全沙箱, 开发者工具, 恶意软件分析, 搜索语句(dork), 网络测绘, 逆向工具, 静态分析