stride-gpt
LLM驱动的威胁建模工具,基于STRIDE方法论自动生成威胁清单和攻击树
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
LLM驱动的威胁建模工具,基于STRIDE方法论自动生成威胁清单和攻击树
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:STRIDE GPT 项目概览(来源:Open Security Summit 演讲)
想象一下:你的团队刚完成一个新 API 网关的设计,凌晨两点,安全工程师对着白板一个个枚举威胁——SQL 注入、身份验证绕过、数据泄露……人工枚举容易遗漏,也极度依赖个人经验。更现实的问题是:随着 AI 系统(RAG 检索、多 Agent 协作、工具调用链)变得越来越复杂,传统的 STRIDE 逐项检查已难以覆盖新型攻击面。
STRIDE GPT(1058星,作者 mrwadams,MIT License)正是为解决这一痛点而生:它将大型语言模型的能力引入威胁建模流程,让 AI 自动分析代码库或应用描述,输出符合 STRIDE 方法论的威胁清单、攻击树和缓解建议。开发者在 2024 年 1 月的 Open Security Summit 上做了专题演讲,项目已被大量安全团队采纳。
STRIDE GPT 提供两种工作模式:/quick 和 /analyze。
用户只需输入应用描述(类型、认证方式、是否面向互联网、是否处理敏感数据),LLM 立即生成完整的威胁清单。每条威胁包含 STRIDE 分类、攻击场景描述和潜在影响。更进一步,如果用户上传架构图或流程图(多模态输入),模型会结合图像内容进行更精准的分析。目前支持 GPT-5 系列、Claude 4 系列、Gemini 3、Mistral Large 3 等主流模型。
这是项目的杀手级功能。/analyze 启动一个多阶段 Agent 循环:
list_files、read_file、grep)逐个子系统探索源码,搜集架构线索。STRIDE GPT 支持四种输出格式,满足不同使用场景:
STRIDE GPT 不仅仅是 STRIDE 分类器,它的分析引擎深度集成了多个行业安全标准:
OWASP 威胁分类:自动识别应用类型后,工具会叠加对应的 OWASP Top 10 威胁:
MITRE ATT&CK 映射:v0.17 版本新增了 MITRE ATT&CK Enterprise(传统基础设施攻击)和 MITRE ATLAS(ML/LLM 攻击)双重映射,每条威胁关联标准化对抗技术 ID,在 Markdown 中渲染为表格列,在 HTML 中渲染为可点击链接,在 SARIF 中输出为 properties.mitre_attack 数组。ATT&CK 技术定义通过 scripts/refresh_mitre_cards.py 从 STIX/YAML 自动刷新,确保 ID 准确不幻觉。
项目采用高度模块化的 Python 架构(Python ≥ 3.10),核心目录结构如下:
stride_gpt/
├── agent/ # Agent 核心循环
│ ├── loop.py # 主循环:plan-explore-synthesize
│ ├── planner.py # 规划器,调用 Architect 模型
│ ├── tools.py # 沙箱化文件系统工具(list/read/grep/search)
│ ├── report.py # 多格式报告生成器(Markdown/JSON/SARIF/HTML)
│ ├── context.py # 上下文管理器,压缩对话历史
│ └── progress.py # Rich 进度条
├── core/ # 核心逻辑(零 Streamlit 依赖)
│ ├── llm.py # 统一 LLM 接口,底层路由到 LiteLLM
│ ├── threat_model.py # STRIDE 威胁模型生成
│ ├── attack_tree.py # 攻击树生成 + Mermaid 转换
│ ├── dread.py # DREAD 风险评分
│ ├── mitigations.py # 缓解建议生成
│ └── test_cases.py # Gherkin 测试用例生成
├── models.py # 模型注册表(OpenAI/Anthropic/Gemini/Mistral/Groq/LM Studio)
├── config.py # 配置管理(setup 向导、provider 目录)
└── cli.py # CLI 入口
LLM 路由层使用 LiteLLM,这是项目架构的关键决策:LiteLLM 提供统一的 OpenAI 兼容接口,底层自动适配各 Provider 的 API 差异(认证方式、响应格式、特殊参数如 max_completion_tokens)。切换模型只需改配置,不改代码。项目内置 LM Studio Server 支持——用户可以完全本地运行 LLM,无需任何云端 API,这对有数据隐私要求的企业非常重要。
报告生成完全独立于 Streamlit UI 层:stride_gpt/core/ 下的所有模块零 Streamlit 依赖,确保 CLI 输出的 SARIF/JSON 质量与 Web UI 一致。
STRIDE GPT 提供两条部署路径:
方式一:pip 安装(推荐 CLI 用户)
pip install stride-gpt
stride-gpt
启动后进入交互式 REPL,支持命令补全(tab 键)、历史记录和实时进度显示。首次运行会触发配置向导,引导用户选择 LLM 提供商并输入 API Key。
方式二:Docker Compose(推荐团队/企业)
curl -fsSL https://raw.githubusercontent.com/mrwadams/stride-gpt/master/docker-compose.yml
docker compose up
Docker Compose 启动完整的 Streamlit Web UI,支持团队共享使用。Docker 镜像基于 python:3.12-slim,已通过 Trivy 安全扫描。
硬件需求极低:无需 GPU,2GB RAM + 1GB 磁盘即可运行(LLM 推理全部由云端 API 承载,本地仅做数据处理)。
局限性一:威胁发现质量依赖 LLM 的安全性知识:STRIDE GPT 本质上是一个「提示工程 + 结构化输出」系统,它的威胁发现能力上限是 LLM 本身的安全知识覆盖范围。对于新型攻击手法(如最新 CVE)或特定业务逻辑漏洞,模型可能遗漏,需要人工复核。
局限性二:本地模型(LM Studio)效果打折:README 明确注明 LM Studio 模式不支持结构化 JSON 输出(缺少 json_object 模式),需要手动传入 schema,增加了配置复杂度。
局限性三:数据隐私需自行保障:虽然项目声称「不存储应用数据」,但使用云端 API 意味着威胁数据会传输到第三方,敏感代码库场景下需确认合规要求。官方提供了企业定制指南(docs/operationalization-guide.md),支持注入组织内部安全控制标准。
STRIDE GPT 的价值不仅在于提高威胁建模效率,更代表了一种趋势:将安全专业知识编码为可复用的 AI 工作流。2025 年 v0.15 版本引入 Agentic AI 和 GenAI 专用威胁分类,2026 年 v0.17 引入 MITRE ATT&CK/ATLAS 双重映射,可以看到项目紧跟 AI 安全领域快速演进的威胁格局。
对于 AI 爱好者而言,它是理解 AI + 安全交叉领域的绝佳学习工具——通过阅读 /analyze Agent 的工具定义和提示词设计,可以直观感受到「结构化推理 + 工具调用」的 Agent 架构如何落地。对于 AI 开发者而言,它是 CI/CD 安全门的现成方案:SARIF 格式可直接集成到 GitHub Actions,在代码提交阶段自动触发威胁建模审查。