ellipse2v/SecOpsTM
GitHub: ellipse2v/SecOpsTM
一个基于 Python 的端到端 STRIDE 威胁建模框架,通过 Markdown 定义架构并自动完成威胁识别、MITRE ATT&CK 映射与报告生成。
Stars: 12 | Forks: 1
# 集成 MITRE ATT&CK 的 STRIDE 威胁分析框架
## 概述
本项目是一个基于 Python 的端到端 STRIDE 威胁建模和分析框架,并集成了 MITRE ATT&CK 映射。它使您能够:
- **在 Markdown 中对系统架构进行建模** (`threatModel_Template/threat_model.md`),包括边界、参与者、服务器、数据和数据流。
- **自动识别每个组件和数据流的 STRIDE 威胁**。
- **将威胁映射到 MITRE ATT&CK 技术**,以提供可操作的、真实世界的上下文。
- **计算严重程度**,使用可定制的基础分数、目标乘数、协议调整和 VOC 风险信号(CVE、CWE、网络暴露、D3FEND 缓解措施)。
- **生成详细的报告**(HTML、JSON)和**可视化图表**(DOT、SVG、HTML),并附带威胁高亮显示。
- **⛓️ 攻击链分析**:自动识别跨数据流链接威胁的多步骤攻击路径;显示在 HTML 报告的专用部分中。
- **信任边界可视化**:受信任区域呈现为绿色实线,不受信任区域呈现为红色虚线——内置于 DOT/SVG 输出中,并在 HTML 图表中提供交互式严重性热力图叠加层。
- **生成 MITRE ATT&CK Navigator 层**以可视化识别出的技术。
- **生成优化的攻击流图**,用于关键目标(篡改、欺骗、信息泄露、否认)。
- **扩展和自定义**所有的映射、计算和报告逻辑。
- **作为基于 Web 的编辑器运行**,进行实时、交互式的威胁建模。
- **AI 增强的威胁分析(混合模式)**:来自三个独立引擎——pytm 规则引擎、组件级 LLM 和跨模型 RAG 流水线(ChromaDB + HuggingFace)——的威胁在报告生成前会自动去重并统一。边界对象也会被分析为 AI 目标。支持 Ollama(离线)、Gemini、OpenAI、Mistral 以及任何兼容 LiteLLM 的提供商。在 `config/ai_config.yaml` 中进行配置。
- **纯 CLI 与 CI 集成**:在执行 `pip install -e .` 后会提供 `secopstm` 命令。使用 `--output-format json --stdout` 可将结构化输出通过管道传输到仪表板或 SIEM,而无需启动服务器。
- **版本化的 JSON 输出**:每次 JSON 导出都会标记 `schema_version: "1.0"` 并根据 `threat_analysis/schemas/v1/threat_model_report.schema.json` 进行验证。
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/Apache-2.0)
[](https://github.com/yourusername/cybersec-mapping/graphs/commit-activity)
## ✨ 新的交互式功能
该框架的 Web 界面已进行了重大更新,以提供更强大且无缝的威胁建模体验。
### 交互式图表
生成的图表(无论是在实时编辑器中还是在导出的 HTML 报告中)都不是静态图像。它们是完全交互式的 SVG,允许您:
- **点击高亮**:点击任何元素(节点或连接)以使其及其直接关系高亮显示。图表的其余部分会淡出,使您能够专注于选定的组件。
- **切换选择**:再次点击同一元素或图表背景以清除选择。
- **子模型导航**:在生成的项目报告中,代表子模型的元素具有独特的悬停效果并且可以点击,从而便于在复杂架构的不同部分之间进行导航。
### 交互式图例
- **过滤连接**:图表图例现在是交互式的。点击某个协议(例如 HTTPS、TCP)可以即时显示或隐藏使用该协议的所有数据流,从而便于分析数据流的特定部分。
### 强大的项目生成
- **“全部生成”**功能旨在处理具有嵌套子模型的复杂项目。
- 如果您的项目包含多个威胁模型文件,它会智能地检测是否有任何被引用的子模型当前未在编辑器中打开,并提示您选择项目的根目录。这确保了所有必需的文件都能被找到并包含在内,从而完整准确地生成所有报告和图表。
### 简单服务器模式
- 集成的 Web 服务器可以通过指定项目目录的路径来启动(`--project path/to/your/project`)。它将自动在该项目中查找所有的 `*.md` 威胁模型文件,并在标签页中打开它们,以便随时进行编辑。
[](https://github.com/ellipse2v/cybersec-mapping/graphs/commit-activity)
## 📚 完整文档
有关功能、用法和高级自定义的详细信息,请参阅我们在 [docs](docs/index.md) 目录中的完整文档。
## 快速开始 / 安装
1. **克隆仓库:**
git clone https://github.com/ellipse2v/SecOpsTM.git
cd SecOpsTM
2. **安装 Python 依赖项:**
pip install -e .
此步骤完成后,您的环境中将可以使用 `secopstm` 命令。
3. **安装 Graphviz(用于图表生成):**
- Windows: [https://graphviz.org/download/](https://graphviz.org/download/)
- macOS: `brew install graphviz`
- Linux: `sudo apt-get install graphviz`
安装后,请重启您的终端或 IDE。
### 基本 CLI 用法
```
# 完整分析 — 输出为 output/ 目录中的 HTML + JSON + SVG
secopstm --model-file threatModel_Template/threat_model.md
# 仅 JSON,输出到 stdout — 适用于 CI pipelines
secopstm --model-file model.md --stdout
# JSON 输出到特定文件
secopstm --model-file model.md --output-format json --output-file report.json
# 启动 web 编辑器
secopstm --server
```
## 路线图
## [路线图链接](docs/Roadmap.md)
## 许可证
## Apache License 2.0。详见 [LICENSE](LICENSE)。
## 作者
ellipse2v
标签:AI安全分析, Attack Flow, CAPEC, ChromaDB, CISA项目, Cloudflare, D3FEND, DevSecOps, GPT, HTML报告, HuggingFace, IP 地址批量处理, LLM, LNA, MITRE ATT&CK, Navigator Layer, Python, RAG, STRIDE威胁建模, SVG报告, Unmanaged PE, 上游代理, 严重性评分, 信任边界, 反取证, 后端开发, 威胁建模即代码, 威胁情报, 安全可视化, 安全合规, 安全架构, 安全评估, 开发者工具, 攻击链分析, 无后门, 混合模式, 漏洞管理, 系统架构, 网络代理, 网络安全, 自动化安全分析, 逆向工具, 隐私保护