mcpField
S
security-threat-model

security-threat-model

github.com/lyndonkl安全187107 次安装10 周前更新
代码仓库

关于 security-threat-model

面向评估系统架构与数据流的安全威胁建模 Skill。它以信任边界和 STRIDE 组织分析,并指导制定缓解措施、监控方案和风险优先级。

主要功能

  1. 01五步威胁建模流程
  2. 02信任边界映射
  3. 03使用 STRIDE 识别威胁
  4. 04数据敏感度分类
  5. 05缓解措施与风险排序

适用场景

  1. 01为 Web 应用建模威胁
  2. 02审查第三方 OAuth API 的边界
  3. 03为微服务系统确定控制措施优先级

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lyndonkl/claude --skill security-threat-model

安装后在 Claude Code 中输入/security-threat-model确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

resources/
methodology.md
template.md
resources/evaluators/
rubric_security_threat_model.json

详细介绍

安全威胁模型

目录

  1. 工作流
  2. STRIDE 框架
  3. 信任边界映射
  4. 常见模式
  5. 护栏
  6. 快速参考

工作流

复制此清单并跟踪进度:

Security Threat Model Progress:
- [ ] Step 1: Map system architecture and data flows
- [ ] Step 2: Identify trust boundaries
- [ ] Step 3: Classify data and compliance requirements
- [ ] Step 4: Apply STRIDE to identify threats
- [ ] Step 5: Define mitigations, monitoring, and prioritize risks

步骤 1:绘制系统架构和数据流

记录组件、外部服务、用户、数据存储和通信路径。架构示例请参阅常见模式。对于简单明了的系统 → 使用 resources/template.md。

步骤 2:识别信任边界

标记数据跨越安全域的位置(用户 → 服务端、服务端 → 数据库、内部 → 第三方)。边界类型请参阅信任边界映射。

步骤 3:对数据和合规要求分类

评估数据敏感度(公开、内部、机密、受限),识别 PII/PHI/PCI,并记录合规义务(GDPR、HIPAA、PCI DSS)。分类表请参阅 resources/template.md。

步骤 4:应用 STRIDE 识别威胁

针对每个信任边界和数据流,系统地检查全部六类 STRIDE 威胁。威胁识别方法请参阅 STRIDE 框架。对于攻击面较多的复杂系统 → 阅读 resources/methodology.md,了解高级攻击树分析和 DREAD 评分。

步骤 5:制定缓解措施、监控方案并确定风险优先级

提出预防性、检测性和纠正性控制措施,建立监控和告警机制,并按风险评分(可能性 × 影响)确定优先级。使用 resources/evaluators/rubric_security_threat_model.json 进行自我检查。最低标准:平均分 ≥ 3.5。

STRIDE 框架

S - 身份欺骗

  • 威胁:攻击者冒充合法用户或系统
  • 示例:凭据被盗、会话劫持、来电显示欺骗、电子邮件欺骗
  • 缓解措施:多因素身份验证、证书验证、加密签名、双向 TLS

T - 数据篡改

  • 威胁:未经授权修改传输中或静态存储的数据
  • 示例:中间人攻击、SQL 注入、文件修改、消息重放
  • 缓解措施:HTTPS/TLS、输入验证、参数化查询、数字签名、校验和、不可变存储

R - 抵赖

  • 威胁:用户否认执行过某项操作,且没有活动记录作为证明
  • 示例:日志被删除、交易未签名、缺少审计跟踪
  • 缓解措施:全面的审计日志、交易数字签名、防篡改日志、第三方时间戳

I - 信息泄露

  • 威胁:敏感信息暴露给未经授权的对象
  • 示例:数据库转储、错误消息过于详细、备份未加密、API 过度获取数据
  • 缓解措施:加密静态存储和传输中的数据、访问控制、数据最小化、安全删除、在日志中编辑敏感信息

D - 拒绝服务

  • 威胁:系统不可用或性能下降
  • 示例:资源耗尽、分布式攻击、利用算法复杂度发起攻击、存储空间耗尽
  • 缓解措施:速率限制、自动扩缩容、熔断器、输入大小限制、CDN/DDoS 防护

E - 权限提升

  • 威胁:攻击者获得未经授权的访问权限
  • 示例:通过 SQL 注入获得管理员权限、通过 IDOR 访问其他用户数据、路径遍历、权限提升漏洞
  • 缓解措施:最小权限原则、输入验证、对每个请求执行授权检查、基于角色的访问控制

信任边界映射

信任边界:数据跨越不同信任级别的安全域的位置。

常见边界:

  • 用户 → 应用程序:不可信输入进入系统(验证、清理、限制速率)
  • 应用程序 → 数据库:应用程序凭据与用户权限(参数化查询、连接池)
  • 内部 → 外部服务:数据离开你的控制范围(加密、审计日志、合同条款)
  • 公共网络 → 专用网络:互联网连接内部系统(防火墙、VPN、API 网关)
  • 客户端 → 服务端:JavaScript 连接后端(绝不信任客户端,在服务端重新验证)
  • 特权代码 → 非特权代码:管理功能与用户代码(隔离、独立进程、安全边界)

边界分析问题:

  • 哪些数据会跨越此边界?(对敏感度进行分类)
  • 边界两侧分别是谁/什么?(身份验证、授权)
  • 跨越边界时可能出现什么问题?(应用 STRIDE)
  • 有哪些控制措施可保护此边界?(身份验证、加密、验证、速率限制)

常见模式

模式 1:使用数据库的 Web 应用程序

  • 边界:用户 ↔ Web 服务器 ↔ 数据库
  • 关键威胁:SQLi(篡改)、XSS(欺骗)、CSRF(欺骗)、会话劫持(欺骗)、IDOR(权限提升)
  • 主要缓解措施:参数化查询、CSP 标头、CSRF 令牌、HttpOnly/Secure Cookie、授权检查

模式 2:使用第三方 OAuth 的 API

  • 边界:用户 ↔ 前端 ↔ API 服务器 ↔ OAuth 提供商 ↔ 第三方 API
  • 关键威胁:令牌窃取(欺骗)、权限范围扩大(权限提升)、授权码拦截、重定向 URI 操纵
  • 主要缓解措施:为公共客户端使用 PKCE、验证 state 参数、轮换令牌、使用最小权限范围、仅使用 HTTPS

模式 3:微服务架构

  • 边界:API 网关 ↔ 服务 A ↔ 服务 B ↔ 消息队列 ↔ 数据库
  • 关键威胁:服务冒充(欺骗)、横向移动(权限提升)、消息篡改(篡改)、服务枚举(信息泄露)
  • 主要缓解措施:服务间使用 mTLS、服务网格、对每个服务进行 API 身份验证、网络策略、遵循最小权限原则的 IAM

模式 4:文件上传服务

  • 边界:用户 ↔ 上传处理程序 ↔ 病毒扫描器 ↔ 对象存储
  • 关键威胁:上传恶意软件(篡改)、路径遍历(信息泄露)、文件覆盖(篡改)、存储耗尽(DoS)
  • 主要缓解措施:验证文件类型(检查魔数而非扩展名)、限制文件大小、病毒扫描、使用唯一文件名、使用独立存储域

模式 5:使用后端 API 的移动应用

  • 边界:移动应用 ↔ API 网关 ↔ 后端服务
  • 关键威胁:提取 API 密钥(信息泄露)、绕过证书固定(篡改)、窃取本地数据(信息泄露)、逆向工程
  • 主要缓解措施:证书固定、ProGuard/R8 混淆、生物识别身份验证、本地加密(Keychain/Keystore)、Root/越狱检测

防护原则

以假设已遭入侵为前提:

  • 不要问“攻击者能否入侵?”,而要问“攻击者入侵后能造成多大损害?”
  • 深度防御:设置多层相互重叠的控制措施,不留下单点故障
  • 最小权限:默认仅授予最低权限,只有明确授权时才授予额外权限

务实地确定优先级:

  • 优先保护高价值资产(客户数据、凭证、财务数据)
  • 先处理合规性关键威胁(PCI、HIPAA),再考虑锦上添花的措施
  • 平衡安全成本与风险(不要对低风险系统过度设计)

避免安全作秀:

  • 安全作秀:看似安全,但并不能实质性降低风险的控制措施(例如,仅要求密码复杂度而不限制请求频率,仍会受到凭证填充攻击)
  • 有效安全:针对实际威胁途径采取措施,并可衡量风险降低幅度

记录假设:

  • “假设数据库无法从公网访问”(通过网络配置验证)
  • “假设已强制使用 TLS 1.2+”(检查负载均衡器设置)
  • “假设环境变量受到保护”(确认密钥管理措施)

更新威胁模型:

  • 威胁模型会逐渐失效(新功能、新攻击技术、基础设施变更)
  • 每季度审查一次,或在架构发生重大变更时审查
  • 吸取事件和安全研究中的经验教训

快速参考

资源:

5 步流程:梳理架构 → 确定边界 → 分类数据 → 应用 STRIDE → 缓解并监控

STRIDE:欺骗、篡改、抵赖、信息泄露、拒绝服务、权限提升

信任边界:用户→应用、应用→数据库、内部→外部、公网→私有网络、客户端→服务端、特权→非特权

缓解类型:预防性(阻止攻击)、检测性(发现攻击)、纠正性(应对攻击)

确定优先级:优先保护高价值资产,处理合规性关键威胁,并务实地权衡风险与成本

评论

支持 Markdown