拖入任何文件、URL、IP、域名或图像。SecFlow 将其路由至专用分析器,借助 AI 推理发现结果,并自动生成包含 YARA 规则、SIGMA 规则以及可导出 PDF 的专业安全报告。
SecFlow 是一款开源自动化威胁分析流水线,专为安全分析师、SOC 团队和研究人员打造。相比于手动运行零散工具并关联结果,SecFlow 能够:
| 特性 | 详情 |
|---|---|
| AI 驱动的路由 | Groq qwen/qwen3-32b 在每轮分析后决定下一个分析器——无需手动配置 |
| 5 个专用分析器 | 恶意软件 · 隐写分析 · 侦察 · Web 漏洞 · 宏/Office |
| 智能首轮 | 第一轮使用 file + python-magic 确定性规则——仅在类型不明确时调用 AI |
| 下载并分析 | 追踪 IOC——下载原始输出中发现的载荷,并通过正确分析器进行分析 |
| YARA 规则生成 | 每次分析自动生成 2–5 条可部署的 YARA 规则,每条规则均引用产生它的确切证据 |
| SIGMA 规则生成 | 自动生成 2–4 条适用于 Splunk / Elastic / Sentinel 的 SIGMA 规则——覆盖不同日志源 |
| MITRE ATT&CK 映射 | 每条发现映射到真实 TTP ID,附带战术名称 |
| 双报告格式 | HTML 报告(浏览器打印为 PDF)+ 结构化 JSON 报告(可直接喂给 AI 进行进一步分析) |
| React 仪表板 | 完整前端 UI——提交分析、查看实时流水线进度、按分析器浏览结果 |
| VirusTotal 集成 | 恶意软件和宏分析器均通过 VT API v3 查询 70+ 杀毒引擎 |
| 可配置循环深度 | 3、4 或 5 轮——若 AI 判定无更多信号则提前退出 |
| 独立模式 | 每个分析器微服务暴露独立 REST API——可单独使用 |
User Input (file / URL / IP / domain / image) │ ▼ ┌────────────────────────────────┐ │ Input Classifier │ file + python-magic → deterministic rule │ (Rule-based, pass 1 only) │ unknown type? → Groq AI fallback └───────────────┬────────────────┘ │ first analyzer selected ▼ ┌────────────────────────────────────────────────────────┐ │ Analyzer Loop (N = 3 / 4 / 5 passes) │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Run Analyzer (HTTP → Docker microservice) │ │ │ │ Malware · Steg · Recon · Web · Macro │ │ │ └───────────────┬──────────────────────────────────┘ │ │ │ findings + raw_output │ │ ┌───────────────▼──────────────────────────────────┐ │ │ │ AI Routing Engine (Groq qwen/qwen3-32b) │ │ │ │ IOC extraction → next_tool + target │ │ │ └───────────────┬──────────────────────────────────┘ │ │ │ │ │ ┌───────┴──────────────────┐ │ │ next tool null │ │ │ │ │ │ │ Download HTTP payloads │ │ │ from raw_output → re-analyze │ │ └──────────────── repeat ────────────────────┘│ └─────────────────┬──────────────────────────────────────┘ │ ▼ ┌────────────────────────────────┐ │ Findings Store │ All passes · all findings accumulated └───────────────┬────────────────┘ │ ▼ ┌────────────────────────────────────────────┐ │ Threat Intelligence Engine │ │ (Groq llama-3.3-70b-versatile) │ │ ├─ Threat Summary + MITRE ATT&CK TTPs │ │ ├─ YARA Detection Rules (2–5 rules) │ │ └─ SIGMA SIEM Rules (2–4 rules) │ └───────────────┬────────────────────────────┘ │ ▼ ┌────────────────────────────────┐ │ PWNDoc HTML Report │ Groq summary → browser-rendered HTML │ │ One-click Export PDF button └────────────────────────────────┘
---
## 快速开始
### 前提条件
- Docker + Docker Compose
- Groq 和 VirusTotal 的 API 密钥(免费套餐可用)
### 1. 克隆仓库```bash
git clone https://github.com/aradhyacp/SecFlow.git
cd SecFlow/backend
cp .env.example .env
编辑 `.env` 文件并填入你的密钥:```env
# Required
GROQ_API_KEY=your_groq_api_key_here
VIRUSTOTAL_API_KEY=your_vt_api_key_here
# Optional — unlock additional OSINT capabilities
NUMVERIFY_API_KEY=your_numverify_key # Phone number lookups
THREATFOX_API_KEY=your_threatfox_key # Higher ThreatFox rate limits
ipAPI_KEY=your_ipapi_key # Higher ip-api.com rate limits
# Pipeline control
MAX_PASSES=3 # 3 | 4 | 5
docker compose up -d
这会启动6个容器:
| 服务 | 端口 | 角色 |
|---|---|---|
| `orchestrator` | `5000` | 流水线控制器 — 主入口点 |
| `malware-analyzer` | `5001` | Ghidra 反编译 + VirusTotal |
| `steg-analyzer` | `5002` | binwalk + zsteg + steghide + ExifTool |
| `recon-analyzer` | `5003` | ip-api + ThreatFox + OSINT |
| `web-analyzer` | `5005` | HTTP 漏洞扫描器 + 标头审计 |
| `macro-analyzer` | `5006` | oletools (olevba) + VirusTotal |
> **注意:** 首次启动可能需要几分钟 — 恶意软件分析器会下载 Ghidra 12.0.1(约 500 MB),并且需要 JDK 21 JVM。
### 4. 运行你的第一次分析
**分析一个文件:**```bash
curl -X POST http://localhost:5000/api/smart-analyze \
-F "file=@/path/to/suspicious.exe" \
-F "passes=3"
分析一个URL、IP或域名:```bash
curl -X POST http://localhost:5000/api/smart-analyze
-H "Content-Type: application/json"
-d '{"target": "192.168.1.100", "passes": 3}'
**响应:**```json
{
"job_id": "a1b2c3d4",
"findings": [...],
"report_paths": {
"json": "/api/report/a1b2c3d4/json",
"html": "/api/report/a1b2c3d4/html"
}
}
在浏览器中打开 http://localhost:5000/api/report/<job_id>/html 查看完整报告并导出为PDF。
cd ../frontend npm install npm run dev
打开 `http://localhost:5173` — React 仪表盘可让你提交分析、实时查看管道进度,并按分析器浏览结果。
---
## 分析器
### 恶意软件分析器 — 端口 5001
采用三层方法分析可执行文件和二进制文件:
- **Ghidra 12.0.1**(通过 `pyghidra`)— 将所有函数完整反编译为 C 伪代码
- **`objdump -d`** — 汇编级反汇编
- **VirusTotal API v3** — 70+ 反病毒引擎检测、行为标签、文件信誉
**支持格式:** `exe`、`dll`、`so`、`elf`、`bin`、`o`、`out` · 最大 50 MB · 需要 4 GB RAM(Ghidra JVM)
---
### 隐写分析器 — 端口 5002
使用多种方法检测图像中隐藏的数据:
- **binwalk** — 检测并提取二进制偏移处的嵌入文件
- **foremost** — 从原始二进制流中恢复文件
- **zsteg** — PNG/BMP 中的 LSB 隐写检测
- **steghide** — 基于密码的 JPEG/BMP 隐写检测
- **ExifTool** — 元数据提取与异常检测
**提取嵌入的存档并将其排队等待下一个管道轮次的重新分析**。
**支持格式:** PNG、JPG、BMP、GIF、TIFF、WebP
---
### 侦察分析器 — 端口 5003
对网络标识符执行威胁情报和开源情报(OSINT)分析:
**扫描模式**(IP / 域名):
| 模块 | 来源 | 检查内容 |
|---|---|---|
| `ipapi` | ip-api.com | 国家、ISP、ASN、地理位置 |
| `talos` | Cisco Talos 黑名单 | IP 信誉 / 黑名单 |
| `tor` | Tor 项目出口列表 | Tor 出口节点检测 |
| `tranco` | Tranco 排名列表 | 域名流行度排名 |
| `threatfox` | abuse.ch ThreatFox | 活跃 IOC / 恶意软件关联 |
**足迹模式**(电子邮件 / 电话 / 用户名):
- **电子邮件** — XposedOrNot 泄露数据库(泄露次数、严重性、密码风险)
- **电话** — NumVerify 运营商 + 国家 + 线路类型验证
- **用户名** — Sagemode 多线程跨社交平台资料发现
---
### Web 漏洞分析器 — 端口 5005
审计 URL 和 Web 端点:
- 安全头部分析(CSP、HSTS、X-Frame-Options 等)
- 技术指纹识别(服务器、框架、CMS)
- HTTP 响应分析与重定向链追踪
- 针对常见错误配置的基本漏洞扫描
---
### 宏 / Office 分析器 — 端口 5006
分解 Office 文档以查找恶意宏: