Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
stride-gpt — 一款基于AI的威胁建模工具,利用OpenAI的GPT模型,根据STRIDE方法论为给定应用程序生成威胁模型。 | Kitploit
工具/GitHubGitHub/mrwadams/stride-gpt
渗透测试框架漏洞分析威胁情报学习与教育AI 安全
GitHubmrwadams/stride-gpt

stride-gpt

一款基于AI的威胁建模工具,利用OpenAI的GPT模型,根据STRIDE方法论为给定应用程序生成威胁模型。

查看仓库
1.1k3199天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

STRIDE GPT 标志

STRIDE GPT 是一款基于人工智能的威胁建模工具,它利用大型语言模型 (LLM),根据 STRIDE 方法论为给定应用程序生成威胁模型和攻击树。用户提供应用程序的详细信息,例如应用程序类型、身份验证方法、应用程序是否面向互联网或处理敏感数据。然后,模型会根据提供的信息生成输出。

目录

  • 支持项目
  • 功能特性
  • 企业部署
  • Open Security Summit 演讲
  • 更新日志
  • 安装
  • 仓库布局
  • 使用方法
    • 交互式 REPL 速查表
  • 示例输出
  • 安全最佳实践
  • 贡献
  • 许可证

支持项目

如果您发现 STRIDE GPT 有用,请考虑支持该项目:

  • ⭐ 在 GitHub 上给仓库加星,帮助更多人发现这个工具
  • ☕ 请我喝杯咖啡,支持持续的开发与维护
请我喝杯咖啡

功能特性

  • 自主代码库分析:将 CLI 指向一个代码库,即可获得自主深入的 STRIDE 威胁模型——代理会规划、探索并在子系统间综合发现结果
  • CLI 和交互式 REPL:功能完备的终端体验,支持制表符补全、历史记录和实时进度——无需浏览器
  • 简单易用的 Streamlit 网页界面
  • 基于 STRIDE 方法论生成威胁模型
  • 自主 AI 支持:针对自主 AI 系统的专门威胁建模,集成 OWASP 自主应用十大风险 (ASI)
  • 生成式 AI 支持:针对 GenAI 应用的威胁建模,集成 OWASP LLM 十大风险
  • MITRE ATT&CK 与 ATLAS 映射:威胁被标注上标准化的对手技术 ID(传统基础设施攻击使用 MITRE ATT&CK Enterprise,ML/LLM 特定攻击使用 ATLAS)——在 Markdown 中以列形式呈现,在 HTML 中以链接药丸形式呈现,在 SARIF 中以 mitre_attack 属性形式呈现
  • 架构模式检测:根据应用描述自动检测 RAG 管道、多代理系统、代码执行环境、工具生态系统等(灵感来源于 CSA MAESTRO)
  • 嵌入式 draw.io 图表编辑器:直接在 STRIDE-GPT 中使用集成的 diagrams.net 编辑器创建和编辑架构图——无需额外工具。图表作为 XML 解析,以提取组件、连接和信任边界,为威胁模型生成提供比纯图像分析更丰富的上下文。现有的图像上传工作流程保持不变。默认情况下,编辑器从托管的 embed.diagrams.net 加载;对于自托管或离网部署,可通过 STRIDE_GPT_DRAWIO_URL 环境变量指向您自己的 draw.io 实例
  • 多模态:使用架构图、流程图等作为威胁建模输入,适用于所有支持视觉能力的模型
  • 数据流图:根据应用描述生成 DFD(或解析上传的 DFD 图像),实时编辑 Mermaid 源代码,并将确认的图表作为权威系统模型反馈到威胁模型和攻击树提示中。CLI 的 /analyze 命令在输出结果的同时也会生成系统级 DFD
  • 生成攻击树以枚举可能的攻击路径
  • 针对已识别威胁提出可能的缓解措施
  • 支持对已识别威胁进行 DREAD 风险评分
  • 基于已识别威胁生成 Gherkin 测试用例
  • GitHub 仓库分析,实现全面的威胁建模(包括 GitHub Enterprise 支持)
  • 多种输出格式:Markdown、JSON、SARIF(可导入 GitHub、GitLab、Azure DevOps、IDE)以及独立的 HTML 视图,便于与利益相关者共享
  • 高级推理模型支持(OpenAI GPT-5.4/5.5 系列、Anthropic Claude 4.6/4.8 扩展思维、Google Gemini 3、Mistral Magistral 系列)
  • 通过 LiteLLM 提供全面的 LLM 提供商支持:OpenAI、Anthropic、Google AI、Mistral、Groq、DeepSeek,以及通过 LM Studio Server 进行本地托管
  • 无数据存储;应用程序详细信息不保存
  • 提供 Docker 容器镜像,便于部署
  • 支持环境变量以实现安全配置

企业部署

想要为您的组织定制 STRIDE-GPT?请查阅我们全面的运营指南,了解如何:

  • 🎯 注入组织安全控制与标准
  • 📋 根据合规要求定制威胁模型
  • 🔧 分叉并在内部部署 STRIDE-GPT
  • 📊 获得适合您特定环境的上下文感知、可操作的威胁模型

该指南包含逐步说明、代码示例以及面向希望在其团队中扩展 AI 驱动威胁建模的组织的部署模式。

Open Security Summit 演讲

2024 年 1 月,我在 Open Security Summit 上做了一个关于 STRIDE GPT 的演讲。在演讲中,我讨论了项目的起源、核心功能、近期更新以及一些未来计划。您可以在下面观看完整演示:

Open Security Summit 演讲

对于有兴趣了解 STRIDE GPT 工作原理以及如何利用它改进威胁建模的人来说,该视频是一个极好的资源。

更新日志

版本 0.19 (最新)

  • --version 标志 (#161):stride-gpt --version 现在会打印已安装的版本并退出,交互式 TUI 横幅会显示正在运行的版本,以便您一目了然地确认当前版本。
  • 依赖管理整合为 uv (关闭 #155):uv.lock 现在成为所有依赖项的单一事实来源。重复的 requirements.txt 文件已退役;Docker UI 镜像和安全扫描工作流通过 uv export 从 uv.lock 安装依赖,因此发布的内容和扫描的内容不再与锁定的内容产生偏差。pip install stride-gpt 用户无需更改。
  • 文档:在 README 中添加了示例威胁模型 Markdown 输出 (#151) 和交互式 REPL 速查表 (#163)。

版本 0.18

  • 嵌入式 draw.io 图表编辑器 (#132, #138):Streamlit 威胁模型选项卡现嵌入 diagrams.net 编辑器,您可以在应用中绘制架构图;保存时,图表 XML 将被解析(组件、连接、信任边界)并整合到威胁模型提示中。GitHub 分析、图像上传、图表编辑器以及 AI 辅助引导构建器被统一为一个标签式的“描述您的应用”部分,位于单个描述画布之上,因此可选输入不再挤占主要描述字段。引导构建器现在调用所选模型来草拟描述并提出缺失的安全相关细节,取代了之前的静态模板和覆盖检查。对于自托管或离网部署,编辑器主机可通过 STRIDE_GPT_DRAWIO_URL 配置(默认为 embed.diagrams.net),iframe 的 postMessage 来源限定为该主机,不受信任的图表 XML 使用 defusedxml 进行解析。
  • DeepSeek 提供商支持 (关闭 #133):DeepSeek 现在在 CLI 设置向导和 Streamlit UI 中都是一流的模型提供商,提供 deepseek-v4-pro 和 deepseek-v4-flash。调用通过 LiteLLM 的原生 deepseek/ 集成路由(托管端点,无需自定义基础 URL);通过 DEEPSEEK_API_KEY 设置密钥。
  • 数据流图支持 (关闭 #56):Streamlit UI 中新增“数据流图”选项卡,可根据应用描述生成 DFD,通过支持视觉能力的模型解析上传的 DFD 图像,并渲染一个带有实时预览的可编辑 Mermaid 源代码窗格。勾选“将此 DFD 用于威胁模型”会将确认后的图表存储在会话状态中,并将其插入后续的威胁模型和攻击树提示中,作为权威系统模型——从而实现了问题所要求的描述→DFD→审查→改进威胁模型的闭环。CLI 的 /analyze 代理在综合后也会生成系统级 DFD,在 Markdown 报告中以 Mermaid 块形式呈现,在 JSON data_flow_diagram 字段中携带,并通过 CDN 加载的 Mermaid 运行库在 HTML 视图中显示。DFD 生成经过包装,确保糟糕的图表不会导致好的报告失败。
  • (关闭 #92):Streamlit UI 现在能够捕获仓库分析期间的 GitHub API 故障,而不是显示原始堆栈跟踪,并提供针对 404(包括细粒度 PAT 范围界定,即使是公开仓库也会出现 404)、401、403/速率限制和网络错误的可操作消息。仓库 URL 在解析前会进行规范化(去除尾部 和 后缀),因此 和 不再错误地返回 404。

版本 0.17

  • MITRE ATT&CK 与 ATLAS 集成 (关闭 #36):/analyze 和 /quick 发出的威胁现在可以携带来自 MITRE ATT&CK Enterprise (v17.1) 和 MITRE ATLAS (2026.05) 的标准化的对手技术 ID。两个新的渐进式披露参考卡(mitre_enterprise, mitre_atlas)指示代理仅使用目录中的 ID 和名称,消除了 ID 幻觉。参考卡通过 scripts/refresh_mitre_cards.py 从上游 STIX/YAML 重新生成,而不是通过模型回忆编写。技术 ID 在 Markdown 表格中呈现为 MITRE ATT&CK 列,在 HTML 中呈现为可点击的天蓝色药丸,在 SARIF 中呈现为 properties.mitre_attack 数组。
  • HTML 报告伴侣:/analyze 和 /quick 现在除了 Markdown / JSON / SARIF 输出外,还会生成一个独立的可在浏览器中查看的 HTML 报告,适合与利益相关者共享。
  • Anthropic Claude Opus 4.8:新增对 claude-opus-4-8 的支持,这是 Anthropic 最新的前沿模型,与现有的 Opus 4.7 并存。两者均可选择作为架构师或工作模型。
  • UI 镜像整合:双命名空间的 Docker 设置(mrwadams/stridegpt-ui)已移除;Streamlit 网页 UI 现在仅位于 mrwadams/stridegpt。CLI 用户应通过 安装,而不是拉取容器。

版本 0.16

  • 独立 CLI:STRIDE-GPT 首次作为 pip install stride-gpt 的 CLI 发布,与传统的 Streamlit 网页 UI 分离。两个主要命令:/analyze(自主代理式代码库分析,包含规划器、每个子系统的工具使用代理循环以及跨领域综合过程)和 /quick(根据书面应用程序描述进行单次威胁模型)。
  • 渐进式披露参考卡:genai(OWASP LLM 十大)、agentic(OWASP ASI 十大)和 insider_threat 卡通过 YAML 前言进行自描述;代理通过 list_references 发现它们,并通过 load_reference 拉取正文。
  • 双层模型路由:架构师 + 工作模型分离,实现成本效益分析,前沿模型保留用于规划和综合。
  • 交互式 REPL:功能完备的终端体验,支持制表符补全、历史记录、实时进度和状态行。
  • 多格式输出:Markdown、JSON 和 SARIF(可导入 GitHub、GitLab、Azure DevOps、IDE)。
  • 0.16.1 补丁:将 stride_gpt/__init__.py 中的 LiteLLM 日志级别提升为 ERROR,这样在缺少 botocore 的全新安装上,Bedrock/SageMaker 的预加载警告就不会出现。
点击查看更早版本(0.15 及更早)的发布说明。

版本 0.15

  • 自主 AI 应用支持:新增对自主 AI 系统威胁建模的全面支持,集成了 OWASP 自主应用十大风险 (ASI01-ASI10)。只需选择“自主 AI 应用”并描述您的系统——LLM 会自动检测架构模式并应用相关威胁类别。每个 ASI 风险都被映射到相应的 STRIDE 类别,以实现一致的威胁分析。

  • 生成式 AI 应用支持:新增对 GenAI 应用威胁建模的支持,集成了 OWASP LLM 十大风险 (LLM01-LLM10)。选择“生成式 AI 应用”并描述您的系统,即可获得定制的 LLM 特定威胁分析。自主 AI 应用同时包含 LLM 和 ASI 风险类别,以实现全面覆盖。

  • MAESTRO 启发的架构模式检测:增强了自主威胁分析,可根据应用描述自动检测架构模式,灵感来源于云安全联盟 MAESTRO 框架。LLM 现在能够识别并应用针对以下模式的特定威胁:

    • RAG/检索系统:向量库投毒、嵌入操纵、跨租户泄露
    • 多代理系统:代理冒充、代理间消息篡改、级联妥协
    • 代码执行环境:沙箱逃逸、容器突破、恶意代码生成
    • 工具/MCP 生态系统:恶意工具提供商、供应链攻击、混淆代理漏洞
    • 持久化内存:内存投毒、跨会话泄露、状态操纵
    • 自主操作:恶意代理持久化、人类监督绕过、失控循环
  • 跨层威胁分析:威胁模型现在包含跨组件攻击链,展示一个架构层的妥协如何能够促成对其他层的攻击(例如,RAG 投毒 → 代理目标劫持 → 工具滥用 → 数据泄露)。

  • 增强的改进建议:对于自主应用,改进建议现在提示输入具体的架构细节,例如代理框架、代理间通信协议、沙箱机制和断路器实现。

  • OpenAI 模型更新:更新至 GPT-5.2 系列模型(gpt-5.2, gpt-5.2-pro, gpt-5-mini, gpt-5-nano, gpt-5, gpt-4.1)。移除了已弃用的模型(gpt-4o, gpt-4o-mini, o3, o3-mini, o4-mini)。

  • Anthropic Claude 4.5 模型:更新至 Claude 4.5 系列(claude-sonnet-4-5, claude-haiku-4-5, claude-opus-4-5)。新增“启用扩展思维”复选框,可在任何 Claude 模型上启用增强推理能力。将最大令牌数增加至 32k(标准模式)和 48k(思维模式)。

  • Google Gemini 3 预览:新增 Gemini 3 预览模型(gemini-3-pro-preview, gemini-3-flash-preview),与 Gemini 2.5 模型并存。将扩展思维模式支持扩展至 Gemini 3 模型。

  • Mistral 模型更新:更新至最新版本化的 Mistral 模型,包括 Mistral Large 3、Medium 3.1、Small 3.2、Ministral 3 (8B/14B) 以及 Magistral 1.2 (Medium/Small)。

  • 新项目标志:使用更简洁、极简的盾牌 + 神经网络设计,刷新了品牌形象。

  • 错误修复:修复了点击下载按钮后威胁模型输出消失的问题。

版本 0.14.1

  • 安全基础设施:新增全面的自动化安全扫描和加固,包括:

安装

选项 1:pip(仅CLI)```bash

pip install stride-gpt

root@kitploit:~
这将安装 `stride-gpt` 命令。CLI 和 Streamlit 网页版现在是两个独立的产品——`pip install stride-gpt` 会给你一个轻量的 CLI,不包含 Streamlit 的痕迹。要从源码运行网页版,请参见下方的选项 2。

### 选项 2:从源码安装

1. 克隆仓库:

    ```bash
    git clone https://github.com/mrwadams/stride-gpt.git
    cd stride-gpt
    ```

2. 使用 [uv](https://docs.astral.sh/uv/) 安装(推荐——`uv.lock` 是依赖项的唯一真实来源):   ```bash
   # CLI plus the Streamlit web UI deps
   uv sync

或者仅通过pip安装CLI: ```bash pip install -e .

root@kitploit:~
3. (可选) 设置环境变量:   ```bash
cp .env.example .env

编辑 .env 文件以添加你的 API 密钥 — 或者稍后通过运行 stride-gpt 并在交互式 REPL 中使用 /config 命令,或通过 Streamlit 用户界面进行配置。

选项 3:Docker(Web 用户界面)

Streamlit Web 用户界面以 Docker 镜像形式提供:```bash docker pull mrwadams/stridegpt:latest

root@kitploit:~
对于 CLI,使用 `pip install stride-gpt` — 没有单独的 CLI 镜像。如果你需要一个沙盒化的 CLI,可以基于一个最小的 Python 基础镜像自行构建。

## 仓库布局

STRIDE-GPT 被组织为一个小型单体仓库:一个共享的 Python 库,以及一个或多个使用它的应用程序。```
stride-gpt/
├── stride_gpt/    # shared library + Python CLI (core, agent loop, prompts, schemas, models)
├── apps/
│   └── web/       # Streamlit web UI
├── tests/         # pytest suite
└── pyproject.toml # single project file; web UI deps live in the `web` dependency-group

apps/ 目录是可部署额外前端的位置 — 例如,未来的 Node/TypeScript CLI 将位于 apps/web/ 旁。Python CLI 本身保留在 stride_gpt/cli.py 中,因为它与共享库紧密耦合。

用法

CLI

代理式代码库分析 — 代理自主探索代码库,规划分析路径,并生成 STRIDE 威胁模型:```bash

Analyze the current directory

stride-gpt analyze .

Specify a model and auto-approve the analysis plan

stride-gpt analyze ./my-app --worker-model anthropic/claude-sonnet-4-6 -y

Export as JSON, SARIF, or browser-viewable HTML

stride-gpt analyze . -o report.json -f json # also writes report.html alongside stride-gpt analyze . -o report.sarif -f sarif stride-gpt analyze . -o report.html -f html

root@kitploit:~
> 每次分析还会自动将 JSON 和 HTML 配套文件保存到 `~/.stride-gpt/reports/analyze/`,因此即使在没有使用 `-o` 参数运行时,浏览器可查看的视图也只需一键即可访问。

> **关于成本的说明:** 代理分析非常彻底——代理在探索过程中会多次调用 LLM 并读取大量文件。令牌使用量和成本随代码库大小和所选模型而增加,在大型代码库上使用前沿模型进行完整运行可能费用高昂。在运行前请在提供商控制台中设置支出限制,并考虑在首次运行时使用更快/更便宜的模型。

**快速单次模式** — 从文本描述生成威胁模型(类似于 Streamlit UI,但在终端中):```bash
# Read description from a file
stride-gpt quick -i app-description.txt

# Pipe from stdin
echo "A web API that processes payments..." | stride-gpt quick

交互式REPL — 启动一个带有标签补全和历史记录的交互式会话:```bash stride-gpt

root@kitploit:~
在 REPL 中输入 `/help` 可查看可用命令和标志。版本号显示在启动时的 ASCII 横幅下方。有关完整的命令和快捷键参考,请参阅下面的[交互式 REPL 速查表](#interactive-repl-cheat-sheet)。

#### 交互式 REPL 速查表

使用 `stride-gpt`(不带参数)启动 REPL,然后使用以下命令和快捷键。

**命令** — 在提示符下键入斜杠命令:

| 命令 | 功能 |
|---------|--------------|
| `/analyze [path]` | 分析代码库以发现 STRIDE 威胁(裸目录路径也可以) |
| `/quick` | 通过文本描述快速创建威胁模型 |
| `/reports` | 列出之前的分析报告(`/reports <n>` 查看一个) |
| `/config` | 查看或更改设置(模型、提供商、API 密钥) |
| `/help` | 显示可用命令、标志和示例 |
| `/quit` | 退出(别名:`/exit`、`/q`) |

`/analyze`、`/quick` 和 `/reports` 支持标志:`-o`/`--output <path>`、`-f`/`--format <markdown\|json\|sarif\|html>`、`-y`/`--yes` 和 `-i`/`--input <path>`(仅 `/quick`)。输入 `/help` 查看完整列表。

**键盘快捷键:**

| 键 | 动作 |
|-----|--------|
| `Tab` | 自动补全斜杠命令和文件路径 |
| `↑` / `↓` | 滚动浏览命令历史 |
| `→` / `End` | 接受灰色历史建议 |
| `Ctrl+L` | 清屏并清除回滚缓冲区 |
| `Ctrl+C` / `Ctrl+D` | 退出 REPL |

**检查已安装的版本:**```bash
stride-gpt --version    # prints e.g. "stride-gpt 0.19.0" and exits

常用标志:

每个层级也接受 --worker-api-key / --worker-api-base / --worker-max-tokens(以及对应的 --architect-* 版本)。运行 stride-gpt analyze --help 或 stride-gpt quick --help 查看完整列表。

结构化中间文件 — 当使用 -o <路径> 时,会与报告一起生成三个 JSON 同宗文件,以便审计或供下游工具使用:

格式标志(-f)仅控制报告工件;同宗文件始终是 JSON。清单和发现中的文件路径会被脱敏(在工作目录下时显示为 ./…,在 $HOME 下时显示为 ~/…),因此清单可以安全分享。~/.stride-gpt/reports/{analyze,quick}/ 下的自动归档不受影响——只有在你传递 -o 时才会生成同宗文件。

查看以往报告:```bash stride-gpt reports # List recent reports stride-gpt reports 1 # View report #1 stride-gpt reports 1 -o r.json -f json # Export a report

root@kitploit:~
### Streamlit Web UI

Web UI 是一个独立于 CLI 的应用。启动方式如下:

``````bash
streamlit run apps/web/main.py

在浏览器中打开提供的 URL 并按照屏幕上的步骤操作。

Docker```bash

docker run -p 8501:8501 --env-file .env mrwadams/stridegpt

root@kitploit:~
## 示例输出

每次 `stride-gpt analyze` 和 `stride-gpt quick` 运行默认会生成一份 markdown 报告(可通过 `-f` 选项输出 JSON、SARIF 及自包含的 HTML 视图)。该 markdown 报告按子系统以 STRIDE 表格形式对威胁进行分组,添加跨组件威胁的横切部分,并以运行摘要结尾。可选列(OWASP LLM/ASI、内部人员类别、MITRE ATT&CK)仅在运行时填充了相应数据时才会显示。

以下是对一个虚构支付 API 运行后生成的 markdown 示例,供你在运行工具前了解输出结构。该输出由报告引擎真实渲染,非模拟。

<details>
<summary>示例 markdown 威胁模型(点击展开)</summary>````markdown
# STRIDE Threat Model: acme-payments-api

> Generated by STRIDE-GPT on 2026-07-16T09:42:00Z

## Overview

A Python FastAPI service that accepts card payments, stores customer profiles in PostgreSQL, and calls a third-party payment processor. Authentication is handled by JWT bearer tokens issued by an internal auth service; the API is internet-facing behind an API gateway.

## Data Flow Diagram

```mermaid
flowchart LR
    Client[Client App] -->|HTTPS + JWT| Gateway[API Gateway]
    Gateway --> API[Payments API]
    API -->|SQL| DB[(PostgreSQL)]
    API -->|HTTPS| Processor[Payment Processor]

Authentication & Authorization

Files Analyzed

  • app/auth/jwt.py
  • app/auth/dependencies.py

Threats

Threat TypeScenarioPotential ImpactMITRE ATT&CK
SpoofingAn attacker forges a JWT using a weak or leaked signing secret to impersonate another customer.

Recommendations

  • Enforce role checks on every privileged route via a shared dependency, not per-handler logic.
  • Rotate and store the JWT signing secret in a managed secrets store rather than an env file.

Payments & Data Storage

Files Analyzed

  • app/payments/routes.py
  • app/db/models.py

Threats

Threat TypeScenarioPotential ImpactMITRE ATT&CK
Information DisclosureFull card numbers are logged in request debug logs when a payment fails.PCI-DSS violation and exposure of cardholder data to anyone with log access.

Recommendations

  • Redact PANs before logging and route logs through a PCI-scoped sink.
  • Derive the charge amount from the server-side order record, never the request body.

Cross-Cutting Threats

Threat TypeScenarioPotential ImpactMITRE ATT&CKAffected Subsystems
Denial of ServiceNo rate limiting on the payment endpoint lets an attacker exhaust the processor quota and DB connections.Legitimate payments fail during the attack; possible processor throttling.T1499 (Endpoint Denial of Service)Authentication & Authorization, Payments & Data Storage

Summary

  • Total threats identified: 5
  • Subsystems analyzed: 2
  • Cross-cutting threats: 1
  • LLM calls: 34
  • Tool calls: 58
  • Architect model: OpenAI API/gpt-5.4
  • Worker model: Anthropic API/claude-sonnet-4-6
root@kitploit:~
</details>

`stride-gpt quick` 从文字描述生成相同的表格结构,但折叠为一个单一的 **应用** 子系统,而不是按子系统分别展示发现。

## 安全最佳实践

STRIDE GPT 专为本地单用户部署设计。使用该工具时:

### 保护您的 API 密钥

**您的 API 密钥是敏感凭据,可能让您的账户产生费用。**

✅ **应做事项:**
- 通过 UI 输入 API 密钥(它们会保留在您的浏览器会话中)
- 在个人机器上使用 .env 文件以方便操作
- 在 LLM 提供商控制面板中设置消费限额
- 定期检查您的 API 使用情况和成本
- 在共享计算机上使用时清除会话

❌ **禁止事项:**
- 将 .env 文件提交到版本控制(已在 .gitignore 中排除)
- 分享显示 API 密钥的屏幕截图
- 在不受信任/已受损的系统上运行 STRIDE GPT
- 与他人共享您的 API 密钥
- 忽略意外的 API 费用

### 数据隐私注意事项

生成威胁模型时,STRIDE GPT 会将数据发送到您选择的 LLM 提供商:
- 应用详情(类型、身份验证方法、架构)
- 系统架构描述
- 上传的架构图/图像
- 生成的威胁模型和缓解措施

**这意味着:**
- OpenAI、Anthropic、Google 等可能会根据其隐私政策记录这些数据
- 在演示时考虑使用通用/虚构的系统详情
- 查看您的 LLM 提供商的数据保留和隐私政策
- 对于敏感系统,考虑以下做法:
  - 使用本地模型(LM Studio)
  - 使用隐私保证更严格的提供商
  - 在输入前对系统描述进行脱敏处理

### 对于团队/组织部署

如果为多人部署 STRIDE GPT(非默认用例):
- 添加身份验证/授权(默认未包含)
- 使用密钥管理服务管理 API 密钥
- 部署在 VPN 或内部网络之后
- 查阅 [SECURITY.md](https://github.com/mrwadams/stride-gpt/blob/HEAD/SECURITY.md) 文档以获取更多注意事项
- 考虑数据驻留和合规性要求
- 对生成的威胁模型实施适当的访问控制

### 依赖安全性

我们维护依赖项并监控漏洞:
- 依赖项通过 Dependabot 定期更新
- 每次提交都会运行自动化安全扫描
- 安全公告在 GitHub 安全选项卡中跟踪
- 运行 `pip-audit` 检查本地已知漏洞

请参阅 [SECURITY.md](https://github.com/mrwadams/stride-gpt/blob/HEAD/SECURITY.md) 了解全面的安全信息,包括自动化安全扫描、漏洞报告和安全开发实践。

### 报告安全问题

发现安全问题?请负责任地报告:
- 通过 GitHub 的[私有漏洞报告](https://github.com/mrwadams/stride-gpt/security/advisories/new)创建安全公告
- 不要公开发布安全问题
- 我们将在 48 小时内确认
- 修复将优先处理并快速发布

## 贡献

欢迎提交拉取请求。对于重大更改,请先开启一个议题讨论您想要更改的内容。

## 许可证

[MIT](https://choosealicense.com/licenses/mit/)
下载工具
优雅的 GitHub 仓库分析错误
/
.git
.../repo/
.../repo.git
  • 报告附带结构化中间产物 (关闭 #122):当向 /analyze 或 /quick 传递 -o <path> 时,JSON 同级文件将写入报告旁边——<stem>.plan.json(AnalysisPlan)、<stem>.findings.json(子系统发现、跨领域威胁和数据流图)以及 <stem>.run.json(一个 RunManifest,记录模型、配置哈希、版本、计时、实际加载的参考卡,以及一个标记运行是否完成或被调用上限截断的 run_summary)。清单排除 API 密钥和端点,并编辑文件系统路径,因此可以安全地提交或附加到工单中。-f 格式标志仅控制报告产物;同级文件始终为 JSON。
  • 逗号分隔的 MITRE ATT&CK 恢复 (关闭 #134):当工作模型将 MITRE_ATTACK 作为逗号分隔字符串返回时(例如 "T1190, T1059, AML.T0053"),而非规范的列表形状,技术 ID 现在将被恢复,而不是被丢弃。此前,Markdown/HTML 报告会显示“MITRE ATT&CK”列,但每个单元格都留空,SARIF 导出也会丢失 ID。所有渲染器(Markdown、HTML 药丸、SARIF)和列可见性检查现在都通过一个统一的正则表达式进行,非技术 ID 的自由格式文本会被过滤掉,因此该列不会再被误报填充。
  • 0.18.1 补丁 (关闭 #159):修复了当环境中没有云提供商密钥时,LM Studio 调用失败并显示 The api_key client option must be set 的错误。LM Studio 通过 LiteLLM 的 openai/ 前缀路由,而 OpenAI SDK 拒绝在没有密钥的情况下构建客户端,即使 api_base 指向 localhost,因此 CLI 现在为不进行身份验证的提供商传递一个占位符。相关地,工作层的最后手段环境扫描不再适用于这些提供商:之前配置的 ANTHROPIC_API_KEY 或 OPENAI_API_KEY 会被发送到 api_base 命名的任何主机,这既掩盖了此错误,又将真实密钥放在了线上。如果您使用 LM Studio 并设置了此类密钥,它不会再传输到您的端点。
  • pip install stride-gpt
  • 依赖卫生:移除了未使用的 mistralai 包(Mistral 访问已通过 LiteLLM 实现)。刷新了 UI 镜像的 python:3.12-slim 基础镜像,并移除了 curl,消除了 PR #113–#115 中的 21 个中/高危 CVE 警报。
  • 代码质量清理:清除了 CodeQL 的注意级警报(未使用的导入、裸露的 except、死代码)(#116)。
  • GitHub Actions 工作流,涵盖 Bandit(Python 安全)、CodeQL(漏洞检测)、pip-audit(依赖扫描)、Safety(包漏洞)、Gitleaks(秘密检测)和 Trivy(Docker 镜像扫描)
  • SECURITY.md,包含漏洞报告流程(48 小时确认 SLA)和安全最佳实践
  • 增强的 Docker 配置,包含安全加固、资源限制和生产就绪的 docker-compose.yml
  • 用于自动化每周依赖更新的 Dependabot 配置
  • 生产就绪的秘密管理指南(Docker Swarm 秘密、云秘密管理器)
  • 企业运营指南:新增综合指南,指导如何使用组织上下文自定义 STRIDE-GPT,包括安全控制、合规要求、经批准的技术栈以及面向企业使用的部署模式。
  • 版本 0.14- GPT-5系列支持:为OpenAI的GPT-5系列模型(gpt-5、gpt-5-mini、gpt-5-nano)在所有威胁建模功能中增加了全面支持。这些高级推理模型提供了增强的分析能力,并为内部推理和输出生成分配了适当的令牌。

    • Anthropic Claude 4集成:增加了对Anthropic最新Claude 4模型(claude-opus-4-1-20250805、claude-opus-4-20250514和claude-sonnet-4-20250514)的支持,具有增强的能力。
    • GitHub企业支持:增加了对GitHub企业仓库的支持。该工具现在可以根据仓库URL自动检测并配置适当的API端点,使分析托管在私有GitHub企业实例上的仓库变得简单。(感谢@danielpops的贡献!)
    • 增强的推理模型集成:更新了参数处理,对GPT-5及其他OpenAI推理模型使用max_completion_tokens代替已弃用的max_tokens,确保与OpenAI最新API要求兼容。
    • 改进的DREAD评估显示:移除了DREAD评估场景描述中的截断限制,使用户可以在风险评估表中查看完整的威胁场景,而不是简略的"..."版本。
    • 安全更新:更新了依赖项以解决Snyk发现的安全漏洞,包括对anyio、zipp、tornado、requests和urllib3的更新。
    • Mistral模型更新:增加了对Mistral最新模型的支持,包括Magistral Medium/Small(推理模型)、Mistral Medium和Ministral 8B。
    • Groq模型更新:更新了Groq模型选择,增加了OpenAI GPT-OSS模型(120B、20B),保留了Llama 3.3 70B和3.1 8B,保留了DeepSeek R1,并增加了Moonshot Kimi K2和Qwen3 32B。
    • Google Gemini 2.5 GA更新:更新为使用Gemini 2.5模型的通用可用版本(Pro、Flash、Flash Lite),替换了之前的预览版本。
    • 支持项目:在侧边栏添加了"请我喝杯咖啡"按钮,允许用户支持STRIDE GPT的持续开发与维护。

    版本 0.13

    • 新OpenAI模型:增加了对OpenAI最新模型gpt-4.1、o3和o4-mini的支持,同时保持对o3-mini的支持。这些推理模型提供了详细的分析能力。
    • 迁移到新的Google GenAI SDK:完全迁移到新的Google GenAI SDK,移除了所有对已弃用的Google Generative AI库的依赖。重构了所有模块中的Gemini(Google AI)模型集成,以提高一致性和性能。
    • 增强的推理模型支持:扩展了推理框架,使其适用于所有OpenAI推理模型(o1、o3、o3-mini、o4-mini)的所有威胁建模功能,包括威胁模型生成、攻击树、缓解措施和DREAD评估。
    • 增加令牌限制:更新了新模型的令牌限制,以利用其扩展的上下文,特别是gpt-4.1支持100万令牌,o4-mini支持20万令牌。
    • 增强的多模态支持:图像上传和分析现在适用于更多模型,包括Gemini 2.5、Claude 3和Claude 4模型。扩展了对所有支持视觉的模型的各种图像格式的分析支持。
    • 更新到最新的Gemini预览模型:过渡到使用最新版本的Gemini预览模型,以获得更好的性能和能力。

    版本 0.12

    • Claude 3.7集成:增加了对Anthropic Claude 3.7模型在所有威胁建模功能中的全面支持,包括创新的"思考模式",可在分析过程中提供更详细的推理。
    • 改进的GitHub仓库分析:显著增强了GitHub仓库分析功能,具有智能文件选择、更好的编程语言支持以及分析过程中的进度跟踪。
    • GPT-4.5预览支持:增加了对OpenAI GPT-4.5预览模型的支持,并改进了模型选择指导和描述。
    • 性能优化:通过更好的令牌使用跟踪和接近令牌限制的警告系统,提高了整体应用程序性能。

    版本 0.11

    • LM Studio Server支持:增加了对使用LM Studio Server作为模型提供商的支持,允许用户使用与OpenAI兼容的API端点运行自己的本地LLM。
    • Google Gemini攻击树支持:增加了使用Google Gemini模型生成攻击树的支持,扩展了用户的可用选项。
    • 新模型支持:增加了对推理模型(OpenAI的o1和o3-mini、通过Groq API的DeepSeek R1)以及Google新发布的Gemini 2.0 Flash的支持,以实现更快的推理。
    • 增强的攻击树生成:改进了攻击树生成,具有稳健的JSON解析和Mermaid图转换,使输出更可靠且更具视觉吸引力。
    • 动态模型发现:为LM Studio Server增加了自动模型发现功能,允许用户从本地实例中的可用模型中进行选择。
    • 改进的威胁模型生成:增强了威胁模型生成的指导和提示,以产生更全面和可操作的结果。
    • 结构化输出支持:增强了所有模型提供商的JSON输出处理,以确保可靠的威胁模型和DREAD评估生成。
    • UI增强:更新了用户界面,以适应新的模型配置并改进了本地LLM限制的警告消息。

    版本 0.10

    • GitHub仓库分析:STRIDE GPT现在支持自动分析GitHub仓库。用户可以提供GitHub仓库URL,该工具将分析README和关键文件,以生成更全面的威胁模型。
    • 环境变量支持:增加了从环境变量加载API密钥和其他配置的支持,提高了安全性和部署便捷性。
    • 改进的错误处理:增强了API调用的错误处理和重试机制,以提高可靠性。
    • UI增强:更新了用户界面,以适应新功能并改善整体用户体验。

    版本 0.9

    发布亮点:

    • Mistral客户端v1.0:STRIDE GPT现在使用Mistral客户端v1.0,该版本解决了Mistral API最新版本中的破坏性更改。这确保了STRIDE GPT用户可以继续利用Mistral API进行威胁建模任务。

    版本 0.8.1

    此版本增加了对以下模型的支持:

    • GPT4o mini:我增加了对OpenAI最近发布的GPT4o mini模型的支持。GPT4o mini是一种经济高效的小型模型,仍能为威胁建模任务提供高质量响应。
    • Gemini 1.5 Pro(稳定版):用户现在可以选择Gemini 1.5 Pro模型的稳定版或预览版。

    版本 0.8

    发布亮点:

    • DREAD风险评分:STRIDE GPT现在支持DREAD风险评分,允许用户根据DREAD模型为识别的威胁分配风险分数。此功能提供了更全面的威胁评估,并有助于确定缓解工作的优先级。
    • Gherkin测试用例:用户现在可以根据识别的威胁生成Gherkin测试用例。此功能有助于弥合威胁建模与测试之间的差距,确保安全考虑融入测试过程。
    • UI增强:我刷新了用户界面,使其更易于导航和与应用程序及其功能交互。

    版本 0.7

    发布亮点:

    • 多模态威胁建模:STRIDE GPT现在支持使用OpenAI的GPT-4o和GPT-4-Turbo模型进行多模态威胁建模。用户可以提供一个架构图、流程图或其他应用程序视觉表示的图像,以增强威胁建模过程。
    • Google AI集成:我增加了通过Google AI API对Gemini 1.5 Pro的支持。请注意,Gemini不能一致地生成JSON输出,因此您可能需要重试一些请求。此外,由于Google的安全限制,无法使用Google AI模型生成攻击树。
    • 重构代码库:我重构了部分代码库,以提高可维护性和可读性。这应该使将来添加新功能和增强功能更容易。
    • 错误修复:次要的错误修复和错误处理改进。

    版本 0.6

    发布亮点:

    • Mistral API集成:用户现在可以选择使用Mistral AI提供的LLM来生成威胁模型、攻击树和缓解建议。这为OpenAI的GPT模型提供了替代方案,为用户提供了更大的灵活性和选择。
    • 优化提示:随着越来越多人使用STRIDE GPT进行工作,我更新了威胁模型提示模板,以鼓励LLM生成更全面的输出。用户现在应该看到每个STRIDE类别中识别出多个威胁。
    • 公开路线图:我创建了一个公开路线图,以提供未来功能和改进的可见性。
    • UI增强:我对用户界面进行了一些小的更新,以适应新的Mistral API集成并改善整体用户体验。

    版本 0.5

    发布亮点:

    • Docker容器镜像:为了更容易在公有云和私有云上部署STRIDE GPT,该工具现在以Docker容器镜像的形式在Docker Hub上提供。

    版本 0.4

    发布亮点:

    • 集成新GPT模型:该应用现在支持最新的"gpt-4-1106-preview"和"gpt-3.5-turbo-1106"模型,为威胁建模和攻击树生成提供了先进的能力和更准确的响应。
    • 直接OpenAI API调用:STRIDE GPT现在直接调用OpenAI API,以利用最近引入的JSON模式。这应大大减少生成威胁模型时语法错误的可能性。
    • 改进的攻击树生成:生成攻击树的过程已全面优化,更可靠,最大限度地减少了生成Mermaid图时的语法错误,并提高了可视化的整体质量。
    • 新标志和配色方案:刷新了配色方案和新标志(由DALL·E 3生成)。
    • 持续的错误修复和性能改进:我进行了一些额外的更新,以解决现有错误并优化应用程序以获得更好的性能,确保更流畅和更高效的用户体验。

    版本 0.3

    发布亮点:

    • 威胁缓解措施:STRIDE GPT现在可以为威胁建模阶段识别的威胁建议潜在的缓解措施。这有助于用户制定策略,以防止或最小化识别威胁的影响。
    • 可下载输出:用户现在可以直接从应用程序下载生成的威胁模型、攻击树和缓解措施作为Markdown文件。这使得共享和记录生成的输出变得容易。
    • 改进的用户界面:我进一步优化了用户界面,以提供更流畅、更直观的用户体验。应用程序布局已针对更好的可读性和可用性进行了优化。
    • 更新GPT模型:STRIDE GPT现在支持最新0613版本的GPT-3.5-turbo和GPT-4模型。这些更新的模型提供了改进的性能和对生成输出的更大控制。
    • 错误修复和性能增强:我解决了一些错误并进行了性能改进,以确保更稳定和响应更快的应用程序。

    版本 0.2

    发布亮点:

    • 攻击树生成:除了生成威胁模型外,STRIDE GPT现在还可以根据提供的详细信息为应用程序生成攻击树。这有助于用户更好地理解其应用程序的潜在攻击路径。
    • 攻击树可视化:这是一个实验性功能,允许用户直接在应用中使用Mermaid.js可视化生成的攻击树。这提供了STRIDE GPT界面内更交互的体验。
    • GPT-4模型支持:STRIDE GPT现在支持使用OpenAI的GPT-4模型,前提是用户有权访问GPT-4 API。这使得用户可以利用GPT技术的最新进展生成更准确和全面的威胁模型和攻击树。
    • 改进的布局和组织:我重新组织了应用布局,使其更易于导航和使用。关键部分(如威胁模型和攻击树)现在组织成可折叠的部分,以获得更清晰、更直观的用户体验。

    版本 0.1

    应用程序的初始版本。

    标志描述
    --version打印已安装的版本(stride-gpt <version>)并退出
    -o, --output将报告保存到文件
    -f, --format输出格式:markdown(默认)、json、sarif、html
    -i, --input从文件读取应用描述(仅 quick)
    -y, --yes自动批准分析计划(仅 analyze)
    --worker-model处理大部分调用请求的默认层级模型(例如 anthropic/claude-sonnet-4-6)。省略时使用已保存的配置。
    --architect-model用于规划/合成的更强模型(例如 openai/gpt-5.4)。省略时使用已保存的配置。
    --no-architect本次运行跳过架构师层级;所有调用均由工作模型处理。
    --app-type覆盖规划器检测的应用类型(仅 analyze):auto(默认),web,genai,agentic。
    --max-llm-calls限制所有层级的 LLM 调用总数(仅 analyze;0 表示无限制)。
    --max-tool-calls限制工具执行总次数(仅 analyze;0 表示无限制)。
    文件内容
    <stem>.plan.json架构师生成的 AnalysisPlan——子系统、关注领域、检测到的应用类型(仅 analyze)。
    <stem>.findings.json每个子系统的 SubsystemFinding 列表、跨领域威胁以及系统级数据流图(仅 analyze)。
    <stem>.run.jsonRunManifest——模型、提示+配置哈希、实际加载的代理引用、Git SHA、版本、时间信息。analyze 和 quick 均会生成。
    Full account takeover and unauthorized access to stored payment methods.
    T1550.001 (Application Access Token)
    Elevation of PrivilegeA standard user calls an admin-only refund endpoint that only checks authentication, not role.Unauthorized refunds and financial loss.T1068 (Exploitation for Privilege Escalation)
    T1552.001 (Credentials In Files)
    TamperingThe payment amount is taken from a client-supplied field and not re-validated server-side against the order.A user pays less than the order total by editing the request body.