JavierMun/WhoIsWhoAPT

GitHub: JavierMun/WhoIsWhoAPT

基于 MITRE ATT&CK 和 OpenCTI 的 APT 组织行为相似度分析引擎,帮助安全团队通过 TTP 配置文件比对实现威胁归因和组织关系探索。

Stars: 11 | Forks: 2

# WhoIsWhoAPT [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badges/) ## 关于

**WhoIsWhoAPT** 是一款威胁情报分析工具,可帮助恶意软件分析师、威胁猎手 和研究人员基于 **MITRE ATT&CK®** (https://attack.mitre.org/) 和/或 **OpenCTI** 中的战术、技术和程序 (TTP) 对 APT 组织(高级持续性威胁)进行关联分析, 获取它们的关系指数。它还允许您将自己的 TTP 集合与已知的威胁行为者进行比较, 探索所有组织间的全局相似性,并从 Navigator 层或 OpenCTI 报告构建自定义配置文件。 希望您能发现我的工具很有用。如果您想报告任何错误、添加/建议新功能或提出任何问题,请随时在 LinkedIn 上联系我。

linkedin My LinkedIn

## 截图 **比较 — 行为者与所有行为者** ![Compare actor](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d41ef1557d223653.png) **比较 — 自定义 TTP 配置文件(事件响应)** ![Compare custom profile](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fc3b10d475223701.png) **比较 — 综合指标(TTP + 行业 + 国家)** ![Compare holistic](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/67cd6d31cc223709.png) **探索 — 行为者关系图** ![Explore graph](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4aea49b9f9223718.png) **探索 — 相似度热力图** ![Explore heatmap](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8c0e93f308223726.png) **探索 — 全员对比配对排名** ![Explore all-vs-all](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/483af3384d223734.png) ## 功能 **比较 (Compare)** — 根据与任何输入配置文件的行为相似度对威胁行为者进行排名: - 多种指标:Jaccard、加权 Jaccard、战术加权、软件加权、综合指标 - 战术范围分析(按 Initial Access、Execution、Persistence 等过滤) - 每个结果自动生成洞察(顶级战术、共享行业、罕见技术) - 富化过滤:在评分前按行业或国家/地区预先过滤候选对象 - 技术细分:共享 / 仅输入 / 仅目标,每行可折叠 **TTP 配置文件** — 构建自定义配置文件并像任何行为者一样进行比较: - 手动输入、ATT&CK Navigator 导入或 OpenCTI 报告导入 - 富化元数据:目标行业、国家/地区、CVE、动机 - 保存并在分析中重复使用 - 检查自定义和内置行为者的完整配置文件详细信息 **探索 (Explore)** — 跨所有行为者的全局相似性分析: - 带有 PNG 导出功能的相似度热力图 - 带有缩放、平移、拖拽和 PNG 导出功能的力导向网络图 - 带有阈值滑块的全员对比配对排名 - 图和热力图上的富化过滤 **已保存的分析** — 持久化并重新查看比较结果: - 带名称保存、重新运行、检查、删除 - 带有富化过滤徽章的分页列表 **数据源**: - MITRE ATT&CK(内置,首次运行时自动加载) - OpenCTI(可选,在设置中配置 URL + API token) ## 安装说明 ### 前置条件 - [Docker](https://docs.docker.com/get-docker/) 和 Docker Compose ### 快速开始 ``` git clone https://github.com/JavierMun/WhoIsWhoAPT.git cd WhoIsWhoAPT docker compose up --build ``` 在浏览器中打开 **http://localhost:5173**。 首次启动时,后端会自动下载并提取 MITRE ATT&CK 数据集(约 30 秒)。无需手动加载数据。 ## 配置 所有配置均通过环境变量进行(参见 `.env.example`)。 | Variable | Default | Description | |---|---|---| | `WHOISWHOAPT_ENVIRONMENT` | `development` | 运行环境 | | `WHOISWHOAPT_LOG_LEVEL` | `INFO` | 日志详细程度 | | `WHOISWHOAPT_DATABASE_URL` | `sqlite:////data/whoiswhoapt.db` | SQLite 路径(容器内) | | `WHOISWHOAPT_SETTINGS_FILE` | `/data/config.json` | 持久化设置路径 | | `WHOISWHOAPT_CORS_ORIGINS` | `["http://localhost:5173"]` | 允许的前端来源 | 要进行覆盖,请在运行 `docker compose up` 之前将 `.env.example` 复制到 `.env` 并进行编辑。 ### OpenCTI(可选) 在应用中,转到 **Settings → Source → OpenCTI** 并输入您的实例 URL 和 API token。点击 **Test connection**,然后点击 **Save**,最后点击 **Load data**。 该工具支持带有 pycti `7.260430.0` 的 OpenCTI 7.x。 ## 架构 ``` frontend/ React + Vite + TypeScript (port 5173) backend/ FastAPI + SQLite (port 8000) ``` 前端在启动时将 API 调用代理到后端;对于本地 Docker 使用,无需手动配置 API URL。 **后端技术栈:** FastAPI · SQLAlchemy · SQLite · mitreattack-python · pycti · APScheduler **前端技术栈:** React · Vite · TypeScript · D3-force · Lucide ## 开发(不使用 Docker) ### 后端 ``` cd backend python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt -r requirements-dev.txt uvicorn app.main:app --reload --port 8000 ``` ### 前端 ``` cd frontend npm install VITE_API_BASE_URL=http://localhost:8000 npm run dev ``` 在 Docker 外部需要 `VITE_API_BASE_URL` 变量,以便前端直接访问本地后端(在 Docker 中它会自动代理)。 ### 测试 ``` cd backend pytest ``` ``` cd frontend npm run build # type-check + build npm run lint ``` ## 许可证 AGPL-3.0 — 参见 [LICENSE](LICENSE)。
标签:APT组织分析, Cloudflare, DAST, DNS解析, Jaccard指数, MITRE ATT&CK, OpenCTI, TTP画像, 关系图谱, 基线检查, 威胁建模, 威胁情报, 开发者工具, 开源项目, 恶意软件分析, 攻击者识别, 相似度热力图, 网络安全, 自动化攻击, 行为相似性分析, 请求拦截, 逆向工具, 防御态势评估, 隐私保护