nlink-jp/cti-graph

GitHub: nlink-jp/cti-graph

一个本地优先的威胁情报攻击图分析平台,通过 STIX 2.1 数据构建加权攻击图并暴露安全分析结果。

Stars: 0 | Forks: 0

# cti-graph 本地优先的威胁情报攻击图分析平台。 灵感来自 [SAGE](https://github.com/sw33t-b1u/sage) —— 适配为 使用本地 SQLite 存储而非 Google Cloud Spanner。 ## 概述 cti-graph 摄取 STIX 2.1 威胁情报数据,构建带有加权 TTP 转换的攻击图,并通过 REST API 暴露分析结果。 ### 关键特性 - **STIX 2.1 摄取** — 解析数据包,使用 stix2 库验证,TLP 过滤 - **PIR 驱动的优先级** — 根据优先级情报需求过滤行为者并加权资产 - **FollowedBy 权重** — 四因素公式:基础概率 × 活动度 × 利用难易度 × 事件响应乘数 - ** choke-point 检测** — 通过关键性 × 行为者目标数量识别高风险资产 - **事件相似性** — 混合评分:Jaccard TTP 加上 BFS 转换覆盖 - **TTP→资产匹配** — 30+ ATT&CK 技术到资产标签的映射 - **REST API** — FastAPI 端点,支持 Bearer 令牌认证 - **外部集成** — OpenCTI、MITRE Caldera、Slack Webhooks ## 快速开始 ``` # 安装 uv sync # 初始化数据库 cti-graph init-db # 摄取 STIX 数据 cti-graph etl --bundle path/to/bundle.json cti-graph etl --bundle path/to/bundle.json --pir path/to/pir.json # 启动 API 服务器 cti-graph serve ``` ## CLI 命令 | 命令 | 描述 | |------|------| | `cti-graph init-db` | 创建带有图模式的 SQLite 数据库 | | `cti-graph etl --bundle FILE` | 摄取单个 STIX 数据包 | | `cti-graph etl --pir FILE` | 摄取并应用 PIR 过滤 | | `cti-graph serve` | 启动 FastAPI 分析服务器 | | `cti-graph version` | 显示版本信息 | ## API 端点 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/attack-paths?asset_id=...` | 到达资产的攻击路径 | | GET | `/choke-points?top_n=20` | 高风险 choke-point 资产 | | GET | `/actor-ttps?actor_id=...` | 行为者的 TTP 攻击流程 | | GET | `/asset-exposure` | 互联网暴露的资产风险 | | GET | `/similar-incidents?incident_id=...` | 相似事件搜索 | 设置 `CTI_GRAPH_API_TOKEN` 以启用 Bearer 令牌认证。 ## 配置 配置文件:`~/.config/cti-graph/config.toml` (可通过 `CTI_GRAPH_CONFIG` 环境变量覆盖) ``` [database] path = "" # default: ~/.local/share/cti-graph/graph.db [stix] landing_dir = "" # default: ~/.local/share/cti-graph/stix/ tlp_max = "amber" # red objects never stored [opencti] url = "" token_env = "OPENCTI_TOKEN" [caldera] url = "" api_key_env = "CALDERA_API_KEY" [notification] slack_webhook_env = "SLACK_WEBHOOK_URL" choke_point_threshold = 0.1 [api] host = "127.0.0.1" port = 8080 token_env = "CTI_GRAPH_API_TOKEN" ``` ## 图数据模型 **节点表(8 个):** ThreatActor、TTP、Vulnerability、MalwareTool、Observable、Incident、Asset、SecurityControl **边表(17 个):** Uses、UsesTool、Exploits、MalwareUsesTTP、FollowedBy、IncidentUsesTTP、Targets、TargetsAsset、HasVulnerability、ConnectedTo、ProtectedBy、IndicatesTTP、IndicatesActor、PIR、PirPrioritizesActor、PirPrioritizesTTP、PirWeightsAsset ## 开发 ``` make test # Run tests make lint # Check linting make format # Fix formatting make build # Build distribution ``` ## 许可证 Apache-2.0 —— 详情见 [LICENSE](LICENSE)。 本项目灵感来自 [SAGE](https://github.com/sw33t-b1u/sage), 根据 Apache-2.0 许可。
标签:AV绕过, Bearer Token, BFS, ETL, FastAPI, Jaccard, JavaCC, MITRE Caldera, OpenCTI, PIR, REST API, SEO词:STIX 2.1分析平台, SEO词:攻击图分析工具, SEO词:本地威胁情报平台, Slack Webhook, SQLite, STIX 2.1, TTP, TTP-Asset映射, 优先级情报需求, 关键节点检测, 外部集成, 威胁建模, 威胁情报, 安全分析平台, 安全可视化, 开发者工具, 攻击图分析, 攻击路径, 本地优先, 网络测绘, 逆向工具