name: security-threat-model description: 在设计和审查处理敏感数据(PII、PHI、金融数据、认证凭证)的系统、构建具有安全影响的功能(认证、支付、文件上传、API)、准备安全审计或合规(PCI、HIPAA、SOC 2)、调查安全事件、集成第三方服务,或当用户提及“威胁模型”、“安全架构”、“STRIDE”、“信任边界”、“攻击面”或“安全审查”时使用。
安全威胁模型
目录
目的
安全威胁建模通过STRIDE方法论、信任边界映射和深度防御原则,系统化地识别系统处理敏感数据时的漏洞、威胁和缓解措施,将临时性的安全思考转化为结构化分析。
何时使用
在需要时调用此技能:
- 设计处理敏感数据(PII、PHI、支付数据、凭证)系统的安全架构
- 在发布或审计前审查现有系统的安全漏洞
- 评估新功能(认证、文件上传、API、集成)的安全影响
- 准备合规要求(PCI DSS、HIPAA、SOC 2、GDPR、FedRAMP)
- 调查安全事件以识别根本原因并防止复发
- 评估第三方集成风险(OAuth、webhooks、数据共享)
- 为利益相关者、审计员或客户记录安全态势
- 在有限资源下优先处理安全改进
触发此技能的用户短语:
- “这安全吗?”
- “有哪些安全风险?”
- “为[系统]进行威胁模型”
- “STRIDE分析”
- “信任边界”
- “发布前的安全审查”
- “合规要求”
它是什么
一种结构化的安全分析方法:
- 映射系统架构(组件、数据流、信任边界)
- 分类数据(敏感性级别、合规要求、生命周期)
- 使用STRIDE识别威胁(身份欺骗、数据篡改、否认性、信息泄露、拒绝服务、权限提升)
- 定义缓解措施(预防性控制、检测性控制、纠正性控制)
- 建立监控(警报、审计日志、事件响应)
- 优先处理风险(可能性 × 影响、可利用性、合规性)
快速示例(密码重置流程):
- 信任边界:用户 → Web服务器 → 邮件服务 → 数据库
- 数据:邮箱地址(PII)、重置令牌(凭证)、用户ID
- 威胁:
- 身份欺骗:攻击者请求重置受害者邮箱
- 数据篡改:邮件链接中的令牌被修改
- 信息泄露:令牌在日志/分析中可见
- 拒绝服务:大量重置请求耗尽邮件配额
- 权限提升:重置令牌不过期,可跨会话重用
- 缓解措施:速率限制(5/小时)、短期令牌(15分钟)、仅使用HTTPS、邮件确认、失败尝试后账户锁定、加密令牌签名
工作流程
复制此清单并跟踪进度:
安全威胁模型进度:
- [ ] 步骤1:映射系统架构和数据流
- [ ] 步骤2:识别信任边界
- [ ] 步骤3:分类数据和合规要求
- [ ] 步骤4:应用STRIDE识别威胁
- [ ] 步骤5:定义缓解措施、监控和优先处理风险
步骤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访问其他用户数据、路径遍历、权限提升漏洞
- 缓解措施:最小权限原则、输入验证、每次请求的授权检查、基于角色的访问控制
信任边界映射
信任边界:数据跨越不同信任级别的安全域的位置。
常见边界:
- 用户 → 应用:不受信任输入进入系统(验证、清理、速率限制)
- 应用 → 数据库:应用凭证 vs. 用户权限(参数化查询、连接池)
- 内部 → 外部服务:数据离开您的控制(加密、审计日志、合同条款)
- 公共 → 私有网络:互联网到内部系统(防火墙、VPN、API网关)
- 客户端 → 服务器端:JavaScript到后端(永远不要信任客户端,服务器端重新验证)
- 特权 → 非特权代码:管理员功能 vs. 用户代码(隔离、单独进程、安全边界)
边界分析问题:
- 哪些数据跨越此边界?(分类敏感性)
- 每侧是谁/什么?(认证、授权)
- 在跨越时可能出错?(应用STRIDE)
- 哪些控制保护此边界?(认证、加密、验证、速率限制)
常见模式
模式1:带数据库的Web应用
- 边界:用户 ↔ Web服务器 ↔ 数据库
- 关键威胁:SQL注入(篡改)、XSS(欺骗)、CSRF(欺骗)、会话劫持(欺骗)、IDOR(权限提升)
- 关键缓解措施:参数化查询、CSP头、CSRF令牌、HttpOnly/Secure cookie、授权检查
模式2:带第三方OAuth的API
- 边界:用户 ↔ 前端 ↔ API服务器 ↔ OAuth提供者 ↔ 第三方API
- 关键威胁:令牌盗窃(欺骗)、范围蔓延(权限提升)、授权码拦截、重定向URI操作
- 关键缓解措施:公共客户端的PKCE、状态参数验证、令牌轮换、最小范围、仅使用HTTPS
模式3:微服务架构
- 边界:API网关 ↔ 服务A ↔ 服务B ↔ 消息队列 ↔ 数据库
- 关键威胁:服务冒充(欺骗)、横向移动(权限提升)、消息篡改(篡改)、服务枚举(信息泄露)
- 关键缓解措施:服务间mTLS、服务网格、每服务API认证、网络策略、最小权限IAM
模式4:文件上传服务
- 边界:用户 ↔ 上传处理器 ↔ 病毒扫描器 ↔ 对象存储
- 关键威胁:恶意软件上传(篡改)、路径遍历(信息泄露)、文件覆盖(篡改)、存储耗尽(DoS)
- 关键缓解措施:文件类型验证(魔数非扩展名)、大小限制、病毒扫描、唯一文件命名、单独存储域
模式5:带后端API的移动应用
- 边界:移动应用 ↔ API网关 ↔ 后端服务
- 关键威胁:API密钥提取(信息泄露)、证书固定绕过(篡改)、本地数据盗窃(信息泄露)、逆向工程
- 关键缓解措施:证书固定、ProGuard/R8混淆、生物识别认证、本地加密(Keychain/Keystore)、root/jailbreak检测
护栏
假设被入侵心态:
- 不要问“攻击者能进入吗?”而是问“当攻击者进入时,他们能造成什么损害?”
- 深度防御:多重重叠控制,无单点故障
- 最小权限:默认最小权限,仅明确授予
现实优先:
- 首先关注高价值资产(客户数据、凭证、金融数据)
- 在附加功能前解决合规关键威胁(PCI、HIPAA)
- 平衡安全成本与风险(不要过度设计低风险系统)
避免安全剧场:
- 安全剧场:感觉安全但未实质性降低风险的控制(例如,无速率限制的密码复杂性 = 仍易受凭证填充攻击)
- 有效安全:针对实际威胁向量,具有可衡量风险降低
记录假设:
- “假设数据库不公开访问”(通过网络配置验证)
- “假设强制使用TLS 1.2+”(在负载均衡器设置中验证)
- “假设环境变量受保护”(确认秘密管理)
更新威胁模型:
- 威胁模型会衰减(新功能、新攻击技术、基础设施变更)
- 季度审查或当架构显著变化时
- 纳入事件和安全研究的经验教训
快速参考
资源:
- 快速威胁模型:resources/template.md
- 高级技术:resources/methodology.md(攻击树、DREAD评分、滥用案例)
- 质量评分标准:resources/evaluators/rubric_security_threat_model.json
5步流程:映射架构 → 识别边界 → 分类数据 → 应用STRIDE → 缓解与监控
STRIDE:身份欺骗、数据篡改、否认性、信息泄露、拒绝服务、权限提升
信任边界:用户→应用、应用→数据库、内部→外部、公共→私有、客户端→服务器、特权→非特权
缓解类型:预防性(阻止攻击)、检测性(识别攻击)、纠正性(响应攻击)
优先处理:先处理高价值资产、合规关键威胁、现实风险与成本平衡