abfatnassi/malware-behavior-analyzer

GitHub: abfatnassi/malware-behavior-analyzer

一款零上传、纯浏览器运行的恶意软件静态分析教育平台,提供哈希计算、PE 解析、IOC 提取、OSINT 链接生成和 MITRE ATT&CK 映射功能。

Stars: 0 | Forks: 0

# 🛡️ Malware Behavior Analyzer

Version Client-side MITRE Privacy License

## 🌐 在线演示 👉 **[https://abfatnassi.github.io/malware-behavior-analyzer/](https://abfatnassi.github.io/malware-behavior-analyzer/)** ## 🎯 概念 **Malware Behavior Analyzer (MBA)** 是一个静态 Web 平台,可以**直接在浏览器中**分析可疑文件: - 🔬 **静态分析**:Shannon 熵、PE 解析、字符串和 IOC 提取 - 🌐 **OSINT 调查**:生成指向 VT、MalwareBazaar、OTX、ThreatFox 的直接链接 - 🎯 **MITRE ATT&CK 映射**:自动将行为与已知技术进行关联 - 📄 **可导出报告**:样式美观的 HTML + 用于 SIEM 集成的 JSON - 🔒 **隐私优先设计**:任何文件都不会离开您的浏览器 所有这一切都在一个灵感源自 **SOC 操作员控制台** 的界面中呈现:绿色荧光终端、CRT 扫描线、粗野主义美学。 ## ✨ 为什么选择这个静态版本? | 优势 | 详情 | |----------|--------| | 🔒 **完全隐私** | 您的样本**绝不会被上传**到互联网 | | ⚡ **无需服务器** | 没有需要维护的基础设施,没有托管成本 | | 🌐 **随处部署** | GitHub Pages、Netlify、S3,甚至本地文件 | | 🚀 **即时响应** | 无冷启动,无网络延迟 | | ♻️ **可复现** | 相同的代码在任何地方都会产生相同的结果 | ## ✨ 功能特性 ### 🔬 静态分析 (纯 JavaScript) - ✅ 通过 Web Crypto API 计算 **MD5, SHA-1, SHA-256** 哈希 - ✅ **Shannon 熵**(检测加壳/加密) - ✅ **PE 头解析**(节区、机器类型、时间戳) - ✅ 提取 **ASCII 和 Unicode (UTF-16LE) 字符串** - ✅ 提取 **IOC**:URL、IP、域名、电子邮件、注册表、比特币地址 - ✅ 检测**可疑关键词**(mimikatz、powershell、ransom 等) - ✅ 计算教学性**威胁评分**(0-100) - ✅ 自动检测**文件类型**(PE、ELF、PDF、ZIP 等) ### 🌐 OSINT 调查 - ✅ 指向 **VirusTotal** 的直接链接 - ✅ 指向 **MalwareBazaar** (Abuse.ch) 的直接链接 - ✅ 指向 **Hybrid Analysis** 的直接链接 - ✅ 指向 **AlienVault OTX** 的直接链接 - ✅ 指向 **ThreatFox** 的直接链接 - ✅ 在 Google 中搜索哈希值 ### 🎯 MITRE ATT&CK 映射 - ✅ 将 **40+ 个 Windows API** 映射到 MITRE 技术 - ✅ 通过**特征字符串**检测(`powershell -enc`、`.onion` 等) - ✅ 计算 **Cyber Kill Chain 覆盖率** - ✅ 评估**复杂程度**(基础 → 类 APT) ### 📄 报告 - ✅ 导出**独立 HTML**(SOC 主题,可直接阅读) - ✅ 导出 **JSON**(兼容 SIEM,可用于集成脚本) - ✅ 通过 Blob API 直接下载(无需服务器) ### 🎨 界面 - ✅ 带有**持久化统计数据**(localStorage)的仪表板 - ✅ **拖放**上传本地文件 - ✅ 分析期间的**动画终端**(打字机效果) - ✅ 5 个步骤的**可视化流水线** - ✅ **SOC 操作员**美学(绿色荧光、CRT 扫描线) - ✅ 轻量级:**仅需单个 HTML 文件 + 原生 JS + Alpine.js (15kb)** ## 🚀 部署到 GitHub Pages ### 方法 1 — 通过 GitHub 界面(推荐) 1. 将代码推送到 GitHub 2. 进入仓库 → **Settings** → **Pages** 3. 在 **Source** 下,选择: - Branch:`main` - Folder:`/ (root)` 4. 点击 **Save** 5. 等待 1-2 分钟 6. 您的网站将可以在 `https://.github.io/malware-behavior-analyzer/` 访问 ### 方法 2 — 本地测试 无需安装!只需在浏览器中打开 `index.html`: ``` # Linux/macOS open index.html # Windows start index.html ``` 或者使用任何静态服务器托管该文件夹: ``` # Python 3 python -m http.server 8000 # Node.js npx serve . # PHP php -S localhost:8000 ``` 然后访问 `http://localhost:8000` ## 📁 结构 ``` malware-behavior-analyzer/ ├── index.html # Page principale (entry point) ├── css/ │ └── style.css # Theme SOC complet ├── js/ │ ├── app.js # Logique principale (Alpine.js) │ ├── static-analyzer.js # Analyse statique │ ├── mitre-mapper.js # Mapping MITRE ATT&CK │ ├── osint-lookup.js # Génération liens OSINT │ └── report-generator.js # Export HTML/JSON ├── docs/ │ ├── ARCHITECTURE.md │ └── LEGAL.md ├── LICENSE └── README.md ``` ## 🧠 工作原理 ### 分析流水线(5 个步骤) ``` ┌──────────────────┐ │ USER drops file │ └────────┬─────────┘ ▼ ┌─────────────────────────────────────────────────┐ │ 1. STATIC ANALYSIS │ │ • FileReader API → Uint8Array │ │ • Web Crypto API → MD5/SHA-1/SHA-256 │ │ • Shannon entropy calculation │ │ • PE header parsing (offset 0x3C) │ │ • String extraction (ASCII + UTF-16LE) │ │ • IOC extraction (regex) │ └────────┬────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────┐ │ 2. OSINT LINKS │ │ • Build URLs to VT, MB, Hybrid, OTX, etc. │ │ • User clicks to open in new tabs │ └────────┬────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────┐ │ 3. SANDBOX (skipped — client-side limitation) │ │ • Behavior inferred from static analysis │ └────────┬────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────┐ │ 4. MITRE MAPPING │ │ • API patterns → ATT&CK techniques │ │ • String patterns → ATT&CK techniques │ │ • Compute kill chain coverage │ └────────┬────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────┐ │ 5. REPORT GENERATION │ │ • Render HTML report (Blob API) │ │ • Render JSON report (Blob API) │ │ • User downloads via │ └─────────────────────────────────────────────────┘ ``` ### 判定结果计算(启发式) | 指标 | 分数 | |-----------|--------| | 熵 > 7.2(加壳) | +30 | | 检测到比特币地址 | +30 | | 5 个以上可疑关键词 | +25 | | 1-4 个可疑关键词 | +10 | | 5 个以上 URL(可能的 C2) | +15 | | 3 个以上外部 IP | +10 | | 具有异常熵的 PE 节区 | +15 | **级别**:低(<20) · 中等(20-50) · 高(50-75) · 严重(75-100) ## ⚠️ 静态版本的局限性 对用户保持透明: | 功能 | 状态 | 原因 | |---------|--------|----------| | **动态沙箱** | ❌ 不可用 | 需要服务器 VM (CAPE/Cuckoo) | | **YARA 扫描** | ❌ 不可用 | yara-python = C 语言库,无法在浏览器中移植 | | **直接调用 VT/MB API** | ❌ 被 CORS 阻止 | 解决方案:直接链接 | | **原生 PDF 导出** | ❌ 有限制 | 解决方案:从 HTML 中 Ctrl+P | | **完整 PE 解析** | ⚠️ 基础 | 主要头信息 + 节区,无详细的 IAT/exports | 有关包含 YARA、CAPE 沙箱和 API 调用的**完整服务器版本**,请参见 `flask-server` 分支。 ## 🔒 隐私 - ✅ **任何文件都不会被发送到互联网** - ✅ **无 Cookie,无追踪器** - ✅ **不在浏览器之外存储任何数据** - ✅ **100% 透明的源代码** - ⚠️ 统计数据(分析计数器)存储在 `localStorage` 中 —— 纯本地存储 您可以通过 DevTools(Network 选项卡)验证您的文件**没有发出任何网络请求**。 ## 🤝 贡献 欢迎贡献!扩展项目的建议: - **添加检测规则**:`js/static-analyzer.js` → `SUSPICIOUS_KEYWORDS` - **添加 MITRE 技术**:`js/mitre-mapper.js` → `API_TO_TECHNIQUE` 或 `STRING_TO_TECHNIQUE` - **添加 OSINT 来源**:`js/osint-lookup.js` → `buildLinks()` ## 📚 参考 - [MITRE ATT&CK Framework](https://attack.mitre.org/) - [VirusTotal](https://www.virustotal.com/) - [MalwareBazaar (Abuse.ch)](https://bazaar.abuse.ch/) - [Web Crypto API (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API) - [PE Format Documentation](https://docs.microsoft.com/en-us/windows/win32/debug/pe-format) ## 📜 许可证 本项目基于 **MIT** 许可证 —— 参见 [`LICENSE`](LICENSE)。 ## 👤 作者 **Hakim** — 网络安全工程师与威胁情报研究员

Built with ❤️ for defensive cybersecurity research
▸ Stay curious. Stay defensive.

标签:Client-side分析, CTF安全, DAST, DeepSeek, DNS 反向解析, IOC提取, MITRE ATT&CK映射, OSINT情报收集, PE文件解析, SIEM集成, SOC控制台, Web安全, 云安全监控, 多模态安全, 威胁情报, 安全可视化, 安全运营中心, 开发者工具, 恶意软件分析, 数据可视化, 数据展示, 无线安全, 本地文件分析, 沙箱分析, 熵值分析, 红队, 纯前端分析, 网络威胁狩猎, 网络安全审计, 网络安全教育, 网络映射, 自定义脚本, 蓝队分析, 零上传隐私保护, 静态分析