anpa1200/adversarygraph

GitHub: anpa1200/adversarygraph

一款结合大语言模型的自托管威胁情报分析平台,用于将威胁报告映射至 MITRE ATT&CK 并进行 APT 对比与检测差距分析。

Stars: 19 | Forks: 2

# AdversaryGraph ![AdversaryGraph AI 横幅](https://static.pigsec.cn/wp-content/uploads/repos/cas/e1/e19ef7632c2a6389872958fbe930139f2b45b12fc16c5d9ff0392143ef0e467f.png) **自托管的、AI 辅助的 CTI 到检测的工作台,用于 ATT&CK 映射、Evidence-to-Detection Graph 推理、IOC 丰富、CVE 库关联、恶意软件分析分类、资产攻击面审查、攻击模拟和 SIEM 验证。** [![CI](https://github.com/anpa1200/adversarygraph/actions/workflows/ci.yml/badge.svg)](https://github.com/anpa1200/adversarygraph/actions/workflows/ci.yml) [![发布](https://img.shields.io/badge/release-v5.7.0-blue)](VERSION) [![安全策略](https://img.shields.io/badge/security-policy-blue)](SECURITY.md) [![路线图](https://img.shields.io/badge/roadmap-public-blue)](ROADMAP.md) [![许可证](https://img.shields.io/badge/license-personal%20use%20only-orange)](LICENSE) 当前版本:**v5.7.0**。此版本添加了报告/研究收集工作流,具有关联报告审查、源文本保留、确定性标签以及一个研究上传控件,该控件既可以存储研究,也可以使用 AI 对其进行解析。请参阅[版本矩阵](docs/version-matrix.md)、[v5.7 发布说明](docs/release-notes/v5.7.0.md)、[研究分析指南](docs/research-analysis-guide.md)以及[已发布的 v5 文章](https://medium.com/@1200km/adversarygraph-v5-0-from-cti-mapping-to-attack-simulation-and-siem-validation-21873b2a6c39)。 ## 功能简介 AdversaryGraph 帮助分析人员将威胁报告、IOC 证据、CVE 漏洞背景、恶意软件分析线索、资产清单和验证遥测数据转化为经过审查的 ATT&CK/ATLAS 映射和检测工程工作项。 核心功能: - AI 辅助的报告提取,支持文本、PDF、DOCX 和 TXT。 - ATT&CK/ATLAS Navigator,具有参与者、活动、部门和比较叠加功能。 - IOC 库、IOC 调查枢纽、VirusTotal 查询和 feed 管理。 - CVE 库支持 NVD 和 CISA KEV 同步、CVSS 评分/CWE/CPE 存储,以及严格的 APT-TTP-IOC-CVE 关联。 - 从 CMDB、扫描器、云、CSV、JSON 和主机名/IP 清单进行资产攻击面映射。 - 恶意软件分析工作流由隔离的 MalwareGraph 服务提供支持,用于静态分类、字符串、脱壳/去混淆支持、调试器风格的审查和 AI 摘要。 - 攻击模拟用于 TTP 优先的实验室场景、真实的被攻击服务器遥测、SIEM 转发、连贯的 AI 辅助 kill-chain 演练和攻击链图审查。 - Evidence-to-Detection Graph 用于保留从证据到声明、行为、ATT&CK、所需遥测、候选检测、规则、验证场景、SIEM 结果和分析人员决策的完整推理链。 - 可观测性仪表板包含 API 请求指标、最近 traces、脱敏的 log tails、兼容 Prometheus 的指标以及健康/自检视图。 - 运营、Pipeline、检测积压、调查报告、导出和 API 工作流。 ## 它不是什么 AdversaryGraph 不是受管的 SaaS,不是多租户安全平台,也不能替代分析人员的验证。LLM 映射、生成的检测、参与者相似性、恶意软件分析发现和合成 SIEM 遥测都是分析人员辅助输出。 攻击模拟有两种不同的遥测模式: - **真实实验室遥测:** 由批准的 Docker 实验室装置(例如 `attack-lab-web` 和 `attack-lab-endpoint`)产生。 - **合成 AI 遥测:** 为 SIEM 解析器/规则练习而生成的源形状事件。这验证了字段处理和关联逻辑,而不是真实的漏洞利用行为。 请参阅[验证与局限性](docs/validation-and-limitations.md)、[攻击模拟](docs/attack-simulation.md)和 [SIEM 转发安全](docs/attack-simulation-siem-forwarding-security.md)。 ## Evidence-to-Detection Graph AdversaryGraph 保留了从原始证据到已验证检测结果的完整推理链: ``` Evidence -> Claim -> Behavior -> ATT&CK Technique -> Required Telemetry -> Detection Candidate -> Detection Rule -> Validation Scenario -> SIEM Result -> Analyst Decision ``` 这有助于分析人员了解哪些是已被证明的、哪些是推断的、需要什么遥测、存在哪些检测、哪些已被验证以及哪些仍需审查。AI 生成的图节点和边在分析人员审查之前均为草稿。 请参阅 [docs/evidence-to-detection-graph.md](docs/evidence-to-detection-graph.md)。 ## 快速开始 ``` git clone https://github.com/anpa1200/adversarygraph.git cd adversarygraph cp .env.example .env ``` 编辑 `.env` 并设置强大的本地密钥。添加至少一个 LLM 提供商密钥,或配置本地兼容 OpenAI 的 endpoint。 ``` docker compose up -d --build ./scripts/selftest.sh ``` 打开: - Frontend: `http://localhost:3000` - API 健康状态: `http://localhost:3000/api/health` - API 文档: `http://localhost:3000/docs` 默认的 Compose 部署将公共 UI 和参考文档绑定到 localhost,并将 API、Redis、恶意软件分析服务和实验室装置保留在内部 Compose 网络上。 本地配置存储在 `.env` 中;默认的持久化数据库是 `${ADVERSARYGRAPH_DB_DIR:-./data/postgres}`。在删除数据目录或 Docker volumes 之前,请参阅[本地存储和权限](docs/local-storage-and-permissions.md)。 ## 文档 | 需求 | 链接 | |---|---| | 商业信任包 | [商业信任](https://1200km.com/adversarygraph-docs/commercial-trust/) | | 架构图 | [架构图](https://1200km.com/adversarygraph-docs/architecture/) | | 案例研究和验证示例 | [案例研究和验证示例](https://1200km.com/adversarygraph-docs/case-studies-validation/) | | 比较页面 | [比较概览](https://1200km.com/adversarygraph-docs/comparisons/overview/) | | 审查者指南 | [docs/reviewer-guide.md](docs/reviewer-guide.md) | | 版本历史 | [docs/version-matrix.md](docs/version-matrix.md) | | ATT&CK/STIX 数据模型 | [docs/attack-data-model.md](docs/attack-data-model.md) | | CVE 库 | [docs/cve-cvss-intelligence.md](docs/cve-cvss-intelligence.md) | | Evidence-to-Detection Graph | [docs/evidence-to-detection-graph.md](docs/evidence-to-detection-graph.md) | | 安全策略 | [SECURITY.md](SECURITY.md) | | 安全威胁模型 | [docs/security-threat-model.md](docs/security-threat-model.md) | | 生产就绪情况 | [docs/production-readiness.md](docs/production-readiness.md) | | 本地存储和权限 | [docs/local-storage-and-permissions.md](docs/local-storage-and-permissions.md) | | 加固的 Docker Compose 配置 | [docker-compose.prod.yml](docker-compose.prod.yml) | | Kubernetes Helm chart | [helm/adversarygraph/README.md](helm/adversarygraph/README.md) | | 部署规模设定 | [docs/deployment-sizing.md](docs/deployment-sizing.md) | | 备份和恢复 | [docs/backup-restore.md](docs/backup-restore.md) | | 升级指南 | [docs/upgrade-guide.md](docs/upgrade-guide.md) | | 验证和局限性 | [docs/validation-and-limitations.md](docs/validation-and-limitations.md) | | 公共演示隐私 | [docs/public-demo-privacy.md](docs/public-demo-privacy.md) | | 平台指南 | [docs/adversarygraph-platform-guide.md](docs/adversarygraph-platform-guide.md) | | 用户指南 | [docs/user-guide.md](docs/user-guide.md) | | 研究分析指南 | [docs/research-analysis-guide.md](docs/research-analysis-guide.md) | | 管理员指南 | [docs/admin-guide.md](docs/admin-guide.md) | | 身份验证和用户管理 | [docs/authentication-and-users.md](docs/authentication-and-users.md) | | 可观测性和安全验证 | [docs/observability-security-validation.md](docs/observability-security-validation.md) | | 攻击模拟 | [docs/attack-simulation.md](docs/attack-simulation.md) | | SIEM 转发安全 | [docs/attack-simulation-siem-forwarding-security.md](docs/attack-simulation-siem-forwarding-security.md) | | 资产攻击面映射 | [docs/asset-attack-surface.md](docs/asset-attack-surface.md) | | 恶意软件分析指南 | [docs/malware-analysis-guide.md](docs/malware-analysis-guide.md) | | 恶意软件分析边界 | [docs/malware-analysis-boundary.md](docs/malware-analysis-boundary.md) | | 演示数据集 | [demo/README.md](demo/README.md) | | Issue 分类 | [docs/issue-triage.md](docs/issue-triage.md) | 官方公共页面: - 项目主页: - 文档: - 实时情报工作区: - Medium 归档: ## 架构 ``` React frontend -> FastAPI API -> PostgreSQL for stored analyses, cases, feeds, CVEs, mappings, and operations -> Redis/Celery for background sync, feed collection, and RetroHunt jobs -> LLM providers selected by the operator -> MalwareGraph service for isolated malware-analysis workflows -> Attack lab fixtures for authorized simulation telemetry ``` 主平台存储结构化的 CTI 和工作流数据。恶意软件样本由 MalwareGraph 边界处理。攻击模拟实验室目标是独立的 fixture 容器,因此遥测数据来自正在被测试的目标类别。 ## 安全边界 - 不要将机密数据上传到公共演示。 - 不要将默认的 Compose stack 直接暴露在互联网上。 - 对于受控的生产部署,请使用 TLS、身份验证、受限网络、备份、监控和密钥轮换。 - 原生的用户名/密码登录、基于角色的访问、用户管理和受信任的反向代理身份验证记录在[身份验证和用户管理](docs/authentication-and-users.md)中。 - 在审查之前,将 LLM 输出和生成的检测视为不受信任的。 - 仅将批准的实验室目标用于攻击模拟。 - 仅在一次性隔离配置文件中保留恶意软件 runtime 执行。 ## 验证 本地验证命令: ``` ./scripts/check-version-consistency.sh docker compose config --quiet docker compose -f docker-compose.yml -f docker-compose.dev.yml config --quiet cd backend && PYTHONPATH=. DB_PASS=ci_test_password LOG_DIR=/tmp/adversarygraph-test-logs python -m pytest cd frontend && npm ci && npm run build && npm audit --audit-level=high make security-scan ``` CI 运行后端测试、后端 lint、后端 SAST、后端依赖审计、前端构建、前端依赖审计、Docker Compose 验证、Docker 镜像构建、容器扫描、密钥扫描和版本一致性检查。 ## 许可证 个人使用许可证。请参阅 [LICENSE](LICENSE)。
标签:ATT&CK, D3.js, 人工智能, 后端开发, 威胁情报, 安全分析, 安全运营, 开发者工具, 扫描框架, 用户模式Hook绕过, 网络威胁情报