资讯动态

007 - stride-pasta-guide

发布时间:2026/10/20 22:29:20 来源:尧图企业网站定制
STRIDE PASTA 威胁建模指南对系统、API 和 AI 代理进行威胁建模的实用指南。在执行007 threat-model或任何需要结构化威胁识别的安全分析时使用。何时使用什么方法方法最适合工作量产出STRIDE组件级分析、快速威胁识别低-中每个组件的威胁列表PASTA完整系统风险分析、业务对齐中-高按优先级排序的攻击场景两者结合关键系统、合规要求高完整的威胁全景经验法则快速代码审查或 PR- 对变更组件使用 STRIDE新系统设计或架构审查- PASTA 完整流程含敏感数据的生产系统- 两者结合PASTA 用于策略STRIDE 用于每个组件STRIDE 演练STRIDE 将威胁分为六种类型。对每种类型问“攻击者能对我的系统这样做吗”S - 欺骗身份问题有人能冒充其他用户、服务或组件吗示例# 无认证的 API GET /api/users/123/data # 任何人都可以访问任何用户的数据 # 使用弱密钥伪造的 JWT jwt.encode({user_id: admin, role: superuser}, password123) # 无来源验证的 Webhook POST /webhooks/payment # 无签名验证任何人都可以发送伪造事件检测模式缺少认证中间件、硬编码/弱密钥、服务间无双向 TLS。缓解措施强认证OAuth 2.0、mTLS、HMAC 签名验证、API 密钥轮换。T - 篡改数据完整性问题有人能篡改传输中、静态或处理中的数据吗示例# 修改数据的 SQL 注入 POST /api/transfer {amount: 100; UPDATE accounts SET balance999999 WHERE id1} # HTTP非 HTTPS上的中间人攻击 # 攻击者拦截并修改 API 响应 # 未签名的配置文件 config.yaml 加载时无完整性检查 - 攻击者将 log_level 修改为 DEBUG 以暴露密钥检测模式无输入验证、HTTP 端点、文件缺少完整性检查、无校验和。缓解措施输入验证/清理、所有地方使用 HTTPS、已签名的构件、数据库约束。R - 抵赖问责制问题有人能执行操作后否认吗示例# 金融交易无审计日志 def transfer_money(from_acc, to_acc, amount): db.execute(UPDATE accounts ...) # 无记录谁、何时、为何操作 # 日志存储在同一服务器上攻击者可删除 # 用户在未授权访问后删除自己的审计追踪检测模式缺少审计日志、无时间戳/用户 ID 的日志、可变的日志存储、无日志转发。缓解措施不可变的审计日志仅追加、集中日志记录SIEM、已签名的日志条目、一次写入存储。I - 信息泄露问题有人能访问他们不应看到的数据吗示例# 生产环境 API 响应中的堆栈跟踪{error:NullPointerException at com.app.UserService.getUser(UserService.java:42),database:postgresql://admin:s3cretdb.internal:5432/users}# 通过 Web 服务器暴露的 .env 文件GET/.env# 返回 API_KEYsk-live-xxxxx, DB_PASSWORD...# 详细错误消息用户 admincompany.com 未找到vs无效凭证泄露有效邮箱检测模式生产环境中的详细错误、暴露的配置文件、端点缺少访问控制、调试模式启用。缓解措施通用错误消息、密钥存放在保险库非环境文件、所有端点访问控制、生产环境禁用调试。D - 拒绝服务问题有人能使系统不可用吗示例# 无分页的无界查询GET/api/users# 返回 1000 万条记录服务器崩溃# ReDoS - 正则表达式拒绝服务importre re.match(r(a)$,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!)# 指数级回溯# 昂贵操作无速率限制POST/api/reports/generate# 每个请求需要 30 秒和 2GB 内存检测模式缺少速率限制、无界查询、无超时的正则表达式、容器无资源限制。缓解措施速率限制、分页、查询限制、断路器、资源配额、CDN/WAF。E - 权限提升问题有人能获得他们不应拥有的权限吗示例# IDOR - 不安全的直接对象引用GET/api/users/123/admin-panel# 仅检查用户是否登录而非是否是管理员# 通过批量赋值的角色操纵POST/api/register{name:John,email:johntest.com,role:admin}# 路径遍历GET/api/files?path../../etc/passwd检测模式缺少授权检查不仅仅是认证、批量赋值漏洞、路径遍历、不安全的反序列化。缓解措施基于角色的访问控制RBAC、可赋值字段的白名单、输入路径验证、最小权限原则。PASTA 7 阶段演练Process forAttackSimulation andThreatAnalysis攻击模拟与威胁分析流程阶段 1定义目标任务将安全分析与业务目标对齐。业务目标安全处理支付 安全目标防止未授权交易和数据暴露 合规PCI-DSS、LGPD 风险偏好低金融数据阶段 2定义技术范围任务映射范围内的所有技术组件。组件 - 前端React SPAapp.example.com - API 网关Kongapi.example.com - 后端FastAPI内部 - 数据库PostgreSQL内部 - 队列RabbitMQ内部 - 外部Stripe API、SendGrid - 基础设施AWS ECS、RDS、S3阶段 3应用分解任务创建数据流图识别信任边界。信任边界 [互联网] --HTTPS-- [WAF/CDN] --HTTPS-- [API 网关] [API 网关] --mTLS-- [后端服务] [后端] --TLS-- [数据库] [后端] --HTTPS-- [Stripe API] 数据流 用户凭证 - API 网关 - 认证服务 - 数据库 支付数据 - API 网关 - 支付服务 - Stripe Webhook 事件 - Stripe - API 网关 - 支付服务阶段 4威胁分析任务对阶段 3 中的每个组件使用 STRIDE 识别威胁。对跨越信任边界的每个数据流应用 STRIDE。阶段 5漏洞分析任务将已知漏洞映射到已识别的威胁。工具OWASP ZAP、Semgrep、依赖审计npm audit、pip-audit CVE 数据库NVD、GitHub Advisory 现有发现渗透测试报告、漏洞赏金报告阶段 6攻击建模任务为高优先级威胁构建攻击树。参见下面的攻击树部分阶段 7风险与影响分析任务按业务影响和可能性对威胁排序。使用下面的威胁文档模板为每个威胁评分。构建攻击树攻击树将目标分解为子目标使用与/或关系。目标窃取用户支付数据 ├── 或直接攻破数据库 │ ├── 与找到 SQL 注入点 │ │ ├── 识别未清理的输入字段 │ │ └── 构造注入有效载荷 │ └── 与获取数据库凭证 │ ├── 找到暴露的 .env 文件 │ └── 或通过 SSRF 访问 ├── 或拦截传输中的数据 │ ├── 将 HTTPS 降级为 HTTP │ └── 攻破 TLS 证书 ├── 或利用 API 漏洞 │ ├── 与支付端点的 BOLA │ │ ├── 枚举用户 ID │ │ └── 无授权访问 /users/{id}/payments │ └── 用户对象的批量赋值 └── 或社交工程 ├── 钓鱼管理员凭证 └── 攻破开发者笔记本电脑每个叶节点 可操作的缓解威胁。威胁文档模板对每个识别的威胁使用此模板### THREAT-{ID}{短标题} **类别** STRIDE 类别S/T/R/I/D/E **组件** 受影响的系统组件 **攻击向量** 攻击者如何利用此漏洞 **前提条件** 攻击者需要什么访问级别、知识、工具 **影响** - 机密性高/中/低 - 完整性高/中/低 - 可用性高/中/低 - 业务影响业务后果描述 **概率** 高/中/低 **严重程度** 严重/高/中/低影响 × 概率 **证据/检测** - 如何检测此漏洞是否被利用 - 日志模式、监控告警 **缓解措施** - [ ] 短期修复热修复 - [ ] 长期修复架构性 - [ ] 需添加的监控/告警 **状态** 开放 | 已缓解 | 已接受 | 已转移 **负责人** 负责的团队/人员 **截止日期** YYYY-MM-DD示例对 Webhook 端点进行威胁建模上下文POST /webhooks/stripe接收来自 Stripe 的支付事件。STRIDE 分析类别威胁严重程度缓解措施欺骗攻击者发送伪造的 Stripe 事件严重使用 HMAC 验证Stripe-Signature头篡改事件有效载荷在传输中被篡改高HTTPS 签名验证抵赖无法证明事件已收到/处理中记录所有 webhook 事件使用幂等性密钥信息泄露错误响应泄露内部状态中返回通用 200/400内部记录详情DoS用伪造事件淹没端点高按 IP 速率限制在处理前验证签名权限提升Webhook 触发管理员级操作高Webhook 处理程序以最小权限运行验证事件类型关键实现importhmacimporthashlibdefverify_stripe_webhook(payload:bytes,signature:str,secret:str)-bool:在处理任何 webhook 逻辑之前始终验证。timestamp,sigparse_stripe_signature(signature)# 防止重放攻击拒绝超过 5 分钟的事件ifabs(time.time()-int(timestamp))300:returnFalseexpectedhmac.new(secret.encode(),f{timestamp}.{payload.decode()}.encode(),hashlib.sha256).hexdigest()returnhmac.compare_digest(expected,sig)示例对具有工具访问权限的 AI 代理进行威胁建模上下文可访问文件系统、API 调用和数据库查询的 AI 代理。STRIDE 分析类别威胁严重程度缓解措施欺骗提示注入使代理假冒管理员严重输入清理、系统提示加固篡改代理修改超预期范围的文件/数据库严重默认只读、可写路径的白名单抵赖无法追踪哪个代理操作造成了损害高记录每次工具调用含完整上下文信息泄露代理从上下文/环境泄露密钥到输出严重在上下文注入前剥离密钥输出过滤DoS代理进入无限循环消耗 API 额度高迭代限制、令牌预算、每次操作超时权限提升代理通过工具链逃离沙箱严重最小权限工具访问、无 shell 访问、沙箱执行AI 代理的关键控制措施agent_security:tool_access:file_system:READ_ONLY# 默认writable_paths:[/tmp/agent-workspace/]# 显式白名单blocked_paths:[~/.ssh,~/.aws,.env]max_file_size:1MBexecution_limits:max_iterations:25max_tokens_per_request:4000max_total_tokens:100000timeout_seconds:120max_tool_calls:50monitoring:log_all_tool_calls:truealert_on_file_write:truealert_on_external_api:truealert_on_secret_pattern:true# API 密钥、密码的正则表达式isolation:network:RESTRICTED# 仅白名单域名allowed_domains:[api.openai.com,api.anthropic.com]no_shell_access:trueno_code_execution:true# 除非显式沙箱化快速参考严重程度矩阵低影响中影响高影响高概率中高严重中概率低中高低概率低低中

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑