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` 进行验证。 [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![许可证](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![维护状态](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/yourusername/cybersec-mapping/graphs/commit-activity) ## ✨ 新的交互式功能 该框架的 Web 界面已进行了重大更新,以提供更强大且无缝的威胁建模体验。 ### 交互式图表 生成的图表(无论是在实时编辑器中还是在导出的 HTML 报告中)都不是静态图像。它们是完全交互式的 SVG,允许您: - **点击高亮**:点击任何元素(节点或连接)以使其及其直接关系高亮显示。图表的其余部分会淡出,使您能够专注于选定的组件。 - **切换选择**:再次点击同一元素或图表背景以清除选择。 - **子模型导航**:在生成的项目报告中,代表子模型的元素具有独特的悬停效果并且可以点击,从而便于在复杂架构的不同部分之间进行导航。 ### 交互式图例 - **过滤连接**:图表图例现在是交互式的。点击某个协议(例如 HTTPS、TCP)可以即时显示或隐藏使用该协议的所有数据流,从而便于分析数据流的特定部分。 ### 强大的项目生成 - **“全部生成”**功能旨在处理具有嵌套子模型的复杂项目。 - 如果您的项目包含多个威胁模型文件,它会智能地检测是否有任何被引用的子模型当前未在编辑器中打开,并提示您选择项目的根目录。这确保了所有必需的文件都能被找到并包含在内,从而完整准确地生成所有报告和图表。 ### 简单服务器模式 - 集成的 Web 服务器可以通过指定项目目录的路径来启动(`--project path/to/your/project`)。它将自动在该项目中查找所有的 `*.md` 威胁模型文件,并在标签页中打开它们,以便随时进行编辑。 [![维护状态](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](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, 上游代理, 严重性评分, 信任边界, 反取证, 后端开发, 威胁建模即代码, 威胁情报, 安全可视化, 安全合规, 安全架构, 安全评估, 开发者工具, 攻击链分析, 无后门, 混合模式, 漏洞管理, 系统架构, 网络代理, 网络安全, 自动化安全分析, 逆向工具, 隐私保护