mahvil17/Argus-Static-Malware-Analysis-Threat-Intelligence-Platform
GitHub: mahvil17/Argus-Static-Malware-Analysis-Threat-Intelligence-Platform
Argus 是一个纯静态的 Windows PE 文件恶意软件分析平台,通过解析、YARA 扫描、启发式评分与 Gemini LLM 自动生成带 ATT&CK 映射的分析报告。
Stars: 1 | Forks: 0
# Argus – 静态恶意软件分析与威胁情报平台
Argus 是一个用于 Windows PE 文件(`.exe`、`.dll`、`.sys`、`.ocx`、`.scr`、`.cpl`、`.bin`)的全栈静态恶意软件分析平台。样本**绝不会被执行** —— 每一个发现都来源于解析磁盘上的文件:头信息、导入表、字符串、YARA 规则以及透明的启发式评分引擎。随后,LLM (Google Gemini) 会将结构化的发现转化为一份可读的、分析师范式的报告,并附带 MITRE ATT&CK 映射。
本项目作为作品集构建,旨在演示一套完整的 DFIR 风格的分流处理流水线:二进制解析 → 检测 → 评分 → LLM 报告 → 可用的仪表板 —— 这与真实 SOC/事件响应工具中使用的工作流模式完全一致。
[LinkedIn 视频](https://www.linkedin.com/posts/mahvil-9b0333289_cybersecurity-malwareanalysis-dfir-ugcPost-7484178472827883522-dhx2/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAEX-gNQBCPlfCjjg1EBxwLXn83Gxdz6YUgQ)
## 演示
### 干净的基准样本
一个微不足道的、良性的已编译 `.exe` (`hello.exe`),用于在已知安全的二进制文件上验证端到端的流水线。其返回结果为低风险,AI 报告也能正确识别出被标记的项目(未签名的二进制文件、占位用的版本信息字符串)为误报。

### 真实恶意软件样本 — 完整演练
一个经过验证的 [RedLineStealer](https://bazaar.abuse.ch/sample/7fc964fe47e08d13c158f808d0d68f3f2b9341dfb1ba6fb2a48690fe27e22682/) 样本,来源于 [MalwareBazaar](https://bazaar.abuse.ch/) (abuse.ch),**仅进行静态分析,绝不执行**。Argus 在分析的每一个标签页中都将其标记为高风险:
**Overview** — 风险评分、文件识别、区段表。

**Findings & Imports** — 启发式分析结果及其背后的证据,以及该样本导入的 DLL/API。

**Strings & IOCs** — 提取出的字符串并分类为威胁指标(IP、URL 等)。

**YARA / ATT&CK** — 匹配到的 YARA 规则,映射至 MITRE ATT&CK 的技术 ID 和战术。

**AI Report** — 完整的由 Gemini 生成的分析师报告:执行摘要、行为分析、ATT&CK 表格、风险评估和建议操作。


## 架构
```
┌─────────────┐ ┌───────────────────┐ ┌──────────────────────────┐
│ React SPA │─────▶│ Django REST API │─────▶│ Analysis pipeline (core) │
│ (Vite) │◀─────│ (jobs, storage) │◀─────│ pefile · yara · Gemini │
└─────────────┘ └───────────────────┘ └──────────────────────────┘
│
▼
Optional VirusTotal hash lookup
```
## 功能说明
1. **PE 解析** (`analyzer/core/pe_parser.py`) — 头信息、区段、熵、导入/导出表、签名状态、加壳启发式分析、哈希 (MD5/SHA-1/SHA-256)。直接从内存字节中解析,而不是通过内存映射的文件句柄,因此在 Windows、macOS 和 Linux 上表现一致。
2. **字符串提取** (`string_extractor.py`) — ASCII/UTF-16 字符串,并被分类为 IOCs:URL、IP、域名、注册表项、文件路径、PowerShell 命令、base64 数据块。
3. **YARA 扫描** (`yara_scanner.py` + `rules/generic_indicators.yar`) — 通用的、非特定家族的初筛规则(加壳器、LOLBins、勒索提示语、注入 API、凭证访问字符串)。将你自己的 `.yar`/`.yara` 文件放入 `analyzer/rules/` 中即可扩展检测覆盖范围。
4. **启发式评分** (`heuristics.py`) — 透明的、基于规则的评分 (0–100),来源于 API 组合、熵和字符串模式。每一条发现都会准确列出触发它的证据 —— 没有任何黑盒评分。
5. **MITRE ATT&CK 映射** (`mitre_mapping.py`) — 从内部发现标签到技术 ID/战术的静态查找表,因此结果能够与其他安全工具使用相同的通用语言。
6. **VirusTotal 富化** (`vt_client.py`,可选) — **仅进行 SHA-256 哈希查找**;绝不会将二进制文件本身上传给第三方。
7. **LLM 报告生成** (`llm_report.py`) — 将结构化的分析结果(绝非原始二进制文件)发送给 Gemini 以生成 Markdown 格式的报告:执行摘要、文件概述、行为分析、ATT&CK 表格、风险评估、建议操作。
以上所有流程均由 `analyzer/core/orchestrator.py::run_full_analysis()` 进行编排。
## 项目结构
```
backend/ Django project
config/ settings, urls, wsgi
analyzer/ the "analyzer" app
core/ framework-agnostic analysis engine (pure Python)
pe_parser.py PE structure parsing
string_extractor.py string + IOC extraction
yara_scanner.py YARA rule matching
heuristics.py scoring engine
mitre_mapping.py ATT&CK technique lookup
vt_client.py VirusTotal hash-lookup client
llm_report.py Gemini report generation
orchestrator.py ties the whole pipeline together
rules/ YARA rule files
models.py AnalysisJob
views.py upload / list / detail / report-download endpoints
frontend/ React + Vite + Tailwind SPA
src/
api/client.js axios client
components/ RiskGauge, badges, upload panel, tabs
pages/ Dashboard, JobDetail
hooks/ polling hooks for job list / job detail
docs/
screenshots/ demo screenshots referenced in this README
```
## 在本地运行
### 后端
```
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # then fill in GEMINI_API_KEY (required for AI reports)
python manage.py migrate
python manage.py runserver
```
在大多数平台上,`yara-python` 不需要单独安装 libyara(它内置了编译好的版本);如果 `pip install yara-python` 在你的操作系统上安装失败,请先通过你的包管理器安装 `libyara`。
### 前端
```
cd frontend
npm install
npm run dev
```
访问 `http://localhost:5173`。
## 配置说明
所有密钥仅保留在服务端的 `backend/.env` 中(已被 gitignore —— 永远不会提交)。前端无法看到它们。
| 变量 | 用途 |
|---|---|
| `GEMINI_API_KEY` | 生成 AI 分析师报告所必需的。免费 Key 获取:[aistudio.google.com/apikey](https://aistudio.google.com/apikey) |
| `ANALYSIS_LLM_MODEL` | 用于生成报告的 Gemini 模型(请注意,模型名称经常变动) |
| `VIRUSTOTAL_API_KEY` | 可选;启用“使用 VirusTotal 进行富化”复选框 |
| `MAX_UPLOAD_SIZE_MB` | 上传大小上限,默认 100 MB |
| `CORS_ALLOWED_ORIGINS` | 允许调用 API 的前端源 |
## 使用真实样本进行测试
- **良性基准:** 任何合法的已编译 Windows 二进制文件均可,例如 `notepad.exe`,或者一个简单编译的 "hello world" 程序。
- **已知恶意样本:** [MalwareBazaar](https://bazaar.abuse.ch/) (abuse.ch 的一个项目) 托管了大量经过验证、已标记的恶意软件样本,专门用于此类研究/测试用途。样本下载格式为 AES 加密的 `.zip` 文件(密码:`infected`),这样是为了避免它们在传输过程中被标记 —— 请使用 [7-Zip](https://www.7-zip.org/) 解压它们,因为 Windows 内置的 zip 支持无法处理 AES 加密的压缩包。**永远不要执行下载的样本** —— 只能将其传递给 Argus 进行静态分析,最好将其放在一个已被本地杀毒软件扫描排除的文件夹中(以免它在 Argus 读取之前就被隔离),并且最理想的情况是在一个隔离的虚拟机中进行。
- **EICAR 测试文件:** 行业标准的杀毒软件测试字符串,可用于确认你的杀毒软件设置是否生效,但请注意,它*不是*一个有效的 PE 文件,因此 Argus 会以 `Not a valid PE file` 错误正确地拒绝它,而不是给出风险评分 —— 这是预期的、有意为之的行为(Argus 仅针对 PE 文件格式设计)。
## 生产环境注意事项
本项目目前采用基于同步请求的后台线程进行分析,这对于演示或小团队来说还可以,但不适用于生产环境的并发处理。对于生产环境:
- 将 `analyzer/views.py` 中的后台 `threading.Thread` 替换为真正的任务队列(Celery + Redis/RabbitMQ,或 Django-Q)。
- 对上传的样本实施访问控制;它们可能是活跃的恶意软件。
- 在隔离的容器/虚拟机中运行分析工作进程,除了你明确允许的 VirusTotal/Gemini endpoint 之外,不进行任何出站网络访问。
- 将 SQLite 替换为 Postgres。
- 将应用部署在 gunicorn/uvicorn + 反向代理 (nginx) 之后,并配置 TLS。
- 添加身份验证(此基础脚本项目发布时不包含用户认证/多租户功能)。
## 已知限制
提前明确说明本项目的范围,因为这关系到如何正确看待本项目:
- **仅限静态分析** — 无动态/行为分析,无沙箱,无执行监控。仅在运行时才会暴露恶意行为的样本(例如通过动态字符串解密)无法被完全刻画。
- **单租户,无身份验证** — 这是一个演示基础框架,不是多用户的生产级服务。
- **内置的小型 YARA 规则集** — 刻意设计为通用/防御性,而不是全面的商业规则源。请使用你自己精选的规则扩展 `analyzer/rules/` 以获得真实的覆盖范围。
- **开发服务器,线程化后台任务** — 并非真正的任务队列;适合演示,但不适合并发的生产负载。
## 安全说明
- 样本**仅进行静态分析** — 此流水线中的任何环节都不会执行、解包或模拟运行该二进制文件。
- LLM 报告生成步骤仅将结构化的、已提取的发现结果发送给 Gemini API — 绝不包含原始二进制文件。
- 内置的 YARA 规则和启发式逻辑具有刻意的通用性/防御性;在生产环境中,请使用你自己精选或商业化的规则源扩展 `analyzer/rules/` 以实现全面覆盖。
## 技术栈
**后端:** Django, Django REST Framework, `pefile`, `yara-python`, Gemini API
**前端:** React, Vite, Tailwind CSS
**检测:** 自定义启发式评分引擎,YARA,MITRE ATT&CK 映射
标签:DNS信息、DNS暴力破解, DNS 反向解析, masscan, Windows PE文件分析, YARA规则, 大语言模型报告, 威胁情报平台, 安全运营中心/DFIR工具, 网络安全审计, 逆向工具, 静态恶意软件分析