1 分钟

布鲁斯·施奈尔的实用安全教训

学习布鲁斯·施奈尔倡导的实用安全思维:威胁模型、人的行为和激励机制——这些因素决定了超越加密术语的真实风险。

布鲁斯·施奈尔的实用安全教训

实用的安全胜过花哨术语

安全营销充斥着闪亮的承诺:“军用级别加密”、“AI 驱动保护”、“到处零信任”。但日常中,大多数漏洞仍通过平凡的路径发生——暴露的管理员面板、重复使用的密码、匆忙批准伪造发票的员工、配置错误的云存储桶、被忽视的未打补丁系统——大家都以为是“别人的问题”。

布鲁斯·施奈尔(Bruce Schneier)长久以来的教训是:安全不是你随手加上的一个产品特性。它是一门在约束下做决策的实用学科:有限预算、有限时间、有限注意力和不完美信息。目标不是“变得绝对安全”。目标是减少对你组织实际重要的那些风险。

一种实用的安全心态

实用安全会提出与厂商宣传不同的问题:

  • 我们要保护什么,如果失败会怎样?
  • 谁会攻击我们,他们现实中会做什么?
  • 哪些控制措施会真正改变结果——而不仅仅是打勾?

这种心态适用于小团队和大企业。不论你是购买工具、设计新功能,还是响应事故,它都会把权衡摆到桌面上:安全与便利、预防与检测、速度与保障。

本指南的期待

这不是一趟术语巡礼,而是一种选择能产生可衡量风险降低的安全工作的方法。

我们会反复回到三大支柱:

  1. 威胁模型:一种结构化的方法,决定你在防守什么。
  2. 人为因素:为真实行为而设计系统,而不是理想化的行为。
  3. 激励:理解人(和公司)为何做出不安全的选择——以及如何改变这一点。

如果你能基于这三点推理,就能穿透炒作,专注于回报最高的安全决策。

威胁建模:起点

当安全工作从工具和检查清单开始而不是目的时,常常偏离轨道。威胁模型就是一份共享的、书面的说明:对你的系统可能出错的地方——以及你打算如何应对。

通俗的威胁建模

把它想成一次旅行计划:你不会为地球上所有气候都打包。你会根据要去的地方和出事时会有什么损害来打包。威胁模型把“我们要去哪里”写得清清楚楚。

核心问题

一个有用的威胁模型可以通过回答几个基本问题来构建:

  • 我们在保护什么?(客户数据、资金流转、可用性、管理员访问、声誉)
  • 谁可能攻击它(或滥用它)?(外部犯罪分子、竞争对手、内部人员、生气的客户、机器人)
  • 可能如何被攻击?(网络钓鱼、凭证填充、欺诈、数据外泄、功能滥用)
  • 为什么重要?(财务损失、法律责任、安全影响、信任丧失)

这些问题让讨论围绕资产、对手和影响展开——而不是安全花哨词汇。

范围是特性,不是弱点

每个威胁模型都需要边界:

  • 在范围内: 你能改变的系统、你存储的数据、你操作的工作流。
  • 范围外: 你无法控制的事(用户被感染的笔记本),或你暂时接受的风险(低影响的边缘情况)。

把范围外写下来很健康,因为它能防止无休止的争论并明确责任归属。

为什么这比随意检查清单更好

没有威胁模型,团队往往通过拿一份标准清单来“做安全”,希望它适用。有了威胁模型,控制变成有理由的决定:你可以解释为什么需要速率限制、多因素认证、日志记录或审批——同样重要的是,你也能解释为什么某些昂贵的加固并不会显著降低你的实际风险。

资产、对手与影响

当威胁模型从三个简单问题出发时它仍很实用:你在保护什么、谁会去攻击、如果他们成功会怎样。这让安全工作和真实结果挂钩,而不是模糊的恐惧。

识别你的资产(什么重要)

资产不只是“数据”。列出组织真正依赖的东西:

  • 数据: 客户记录、定价、设计、HR 文件、日志
  • 资金流动: 支付、退款、工资、开票、礼品卡
  • 访问权限: 管理员账号、API 密钥、实体门禁、供应商门户
  • 声誉与信任: 品牌可信度、客户信心、合作伙伴信任
  • 可用性与连续性: 应用可用性、呼叫中心、履约、工厂

越具体越好。“客户数据库”比“个人信息”更有用。“发放退款的能力”比“财务系统”更明确。

映射可能的对手(谁可能行动)

不同攻击者能力与动机不同。常见类别:

  • 外部人员: 犯罪分子、机会主义者、机器人操作者
  • 内部人员: 心怀不满的员工、粗心的员工、出于好意的错误操作
  • 合作伙伴与供应商: 有访问权限的第三方、集成、支持工具
  • 竞争对手: 间谍活动、挖角、破坏尝试
  • 事故: 配置错误、丢失设备、误删

将目标与业务影响连接起来(为什么重要)

描述他们的目标:窃取、破坏、勒索、冒充、间谍。然后把它转化为业务影响:

  • 直接成本(欺诈、事故响应、恢复)
  • 停机与收入损失
  • 法律与合规风险
  • 客户信任丧失与流失

当影响清晰时,你可以优先考虑能降低真实风险的防御,而不是增加看起来安全的功能。

风险:可能性比可怕场景更重要

人们天生会聚焦最可怕的结果:“要是这个失败,一切都完了。”施奈尔的观点是,仅看严重性不足以决定下一步做什么。风险是预期损害,它取决于影响可能性。一个极不可能但灾难性的事件,可能比一个每周都会发生的中等问题更不值得投入时间。

一个你真能用的简单风险矩阵

你不需要精确数字。先用粗略的可能性 × 影响矩阵(低/中/高)并强制做权衡。

小型 SaaS 团队的示例:

  • 登录处的凭证填充: 可能性 = 高(自动化机器人),影响 = 中–高(账号被接管、支持量增加)。→ 高风险
  • 数据库引擎的国家级 0-day: 可能性 = 低,影响 = 非常高。→ 中等风险(要规划,但不要阻挡基础工作)。

这种框架帮助你为不吸引眼球但有效的工作(速率限制、MFA、异常告警)争取资源,而不是“电影情节”式的威胁。

常见失败模式

团队常常防御那些罕见、头条式的攻击,而忽视枯燥却高发的东西:密码复用、权限配置错误、不安全的默认、未修补的依赖或脆弱的恢复流程。这接近于“安全作秀”:看上去严肃,但并没有减少你最可能面对的风险。

风险不是一次性的分数

随着产品与攻击者变化,可能性和影响也会改变。功能发布、新集成或快速增长会提高影响;新的欺诈趋势会提高可能性。

把风险当作一个活的输入:

  • 按节奏(每月或每季度)重审重点风险。
  • 在事故、未遂事件和重大发布后更新评级。
  • 把控制当作假设:如果攻击持续发生,调整模型和防御。

人为因素:为真实行为而设计

安全失败常被简化为“人是攻击面”。这句话有用,但常常是指我们设计了一个假设人会有完美注意力、完美记忆和完美判断的系统。人不是“脆弱”,设计才是。

当“用户错误”是可预测的

一些常见例子几乎在每个组织都会出现:

  • 钓鱼有效,因为邮件看起来很日常、紧迫感真实、仔细核实代价高。
  • 密码复用,发生在登录频繁、密码规则苛刻且不支持密码管理器时。
  • 审批疲劳,当团队整天被要求“点同意”且缺乏上下文时——最终审批变成条件反射。
  • 告警过载,让员工忽略警告,因为太多是低质量或不明确的。

这不是道德失败,而是激励、时间压力和界面设计让风险操作成为最简单操作的结果。

更安全的默认胜过更多规则

实用安全倾向于减少人需要做出高风险决策的次数:

  • 更少选择: 优先单点登录、基于设备的认证和“默认安全”配置。
  • 更清晰的提示: 说明为什么某个操作有风险(“该链接来自未知发送者并要求凭证”),并告诉用户应如何处理。
  • 更好的恢复流程: 便于报告疑似钓鱼、安全地重置凭证和无责撤销错误。

培训是支持而非指责

当培训被视作工具和团队合作时有效:如何核实请求、在哪里报告、什么是“正常”行为。如果培训被用来惩罚个人,人们会隐瞒错误——组织就会失去阻止更大事故的早期信号。

激励与安全经济学

保留对代码的所有权
需要对审查与长期维护完全掌控时,随时导出源代码。

安全决策很少只是技术问题。它们是经济问题:人会对成本、期限以及出错后谁被指责做出反应。施奈尔指出,许多安全失败是对不匹配激励的“理性”结果——即便工程师知道正确的修复措施。

谁付钱、谁受益

一个简单问题能理清很多争论:谁为安全付出成本,谁获得收益? 当两者不同,安全工作往往被推迟、缩减或外包。

发布时间压力是典型例子。团队可能知道更好的访问控制或日志记录能降低风险,但直接代价是错过交付日期和更高的短期开销。收益(更少的事故)要晚些才显现,而且团队可能已不在原位。结果是安全债务以利息形式累积。

用户与平台也是如此。强密码、MFA 提示或安全培训会增加用户的时间成本,而平台捕获了大部分收益(更少账号被攻占、支持成本降低),因此平台有动力让安全变得简单——但不总是有动力让它透明隐私友好

采购中的供应商与买家也会出现这种问题。如果买家无法有效评估安全,供应商会因功能和营销获奖,而不是因更安全的默认设置获奖。即便技术很好,也无法扭转市场信号。

为什么问题持续存在

一些安全问题在“最佳实践”下仍然存在,因为更便宜的选项赢了:不安全的默认减少摩擦、责任有限、事故成本可转嫁给客户或公众。

使激励重新对齐

你可以通过改变奖励机制来改变结果:

  • 明确责任: 为关键风险指定具体负责人,而不是笼统的“安全团队”。
  • 与结果挂钩的指标: 测量补丁延迟、事故恢复时间和重复原因——而不仅仅是培训完成率。
  • 合同与采购: 要求漏洞披露时限、审计权和安全更新承诺。
  • 政策与责任: 把责任与控制对齐;如果某方能防止伤害,就应承担部分责任。

当激励一致时,安全就不再是英雄式的事后补救,而成为显而易见的商业选择。

安全作秀 vs 实际的风险降低

“安全作秀”指的是那些看起来有保护作用但并未实质降低风险的措施。它令人安心,因为可见:你能指给别人看、报告并说“我们做了点事情”。问题是攻击者不在乎什么让人安心——他们只关心啥能阻止他们。

为什么作秀诱人

作秀容易购买、容易下令、容易审计。它还产生整洁的指标(“100% 完成!”),即便结果没有变化。可见性让它对高管、审计员和需要“展示进展”的团队很有吸引力。

常见例子(以及它们误导的原因)

复选框合规:通过审计可能成为目标,即便控制并不匹配你的真实威胁。

嘈杂的工具:到处告警却信号少。如果团队无法响应,更多告警并不等于更安全。

虚荣仪表盘:大量图表测量活动(扫描运行、工单关闭)而非减少的风险。

“军用级”声明:营销语言替代了明确的威胁模型和证据。

一个简单测试:它改变了攻击者的结果吗?

要分辨作秀与真正降低风险,问自己:

  • 这能阻止、延缓或增加攻击者的成本中的哪种攻击?
  • 如果这个控制存在,还会剩下什么失败方式?
  • 我们如何在事故发生前知道它有效?

如果你无法列出一个合理的攻击者行为变得更难的情形,你可能是在资助安慰而不是安全。

宁信证据,不信直觉

在实践中寻找证明:

  • 事故教训:类似事故以前发生过吗?控制是否防止了重复?
  • 演练:桌面演练、钓鱼测试或红队演习来验证假设。
  • 可衡量的结果:减少账户接管、被利用系统的补丁时间更短、平均遏制时间更低。

当控制物有所值时,它会体现在更少成功攻击上——或者至少是更小的波及范围和更快的恢复。

加密:必要但很少足够

把回滚作为你的安全网
使用快照,让高风险更改便于审核、测试与撤销。

密码学是安全领域中少有的具有明确数学保证的部分。正确使用时,它在保护传输中和静态数据以及证明消息某些属性方面非常出色。

加密真正擅长的事

从实用角度看,加密在三件核心工作上表现出色:

  • 保密性: 保持信息秘密(例如加密备份、网站流量的 TLS)。
  • 完整性: 检测数据是否被篡改(例如哈希、MAC、签名)。
  • 认证: 验证消息或文件由持有私钥的一方创建(例如数字签名、双向 TLS)。

这些很重要——但它们只是系统的一部分。

加密不能解决的事

加密解决不了数学以外的问题:

  • 端点问题: 如果笔记本被感染或手机被攻破,攻击者可以在加密前后读取数据。
  • 身份验证证明: 加密能确认“这个密钥签了消息”,但不能确认“这真的是 Alice 这个人”。
  • 欺诈与滥用: 骗子可以诱骗人批准“安全”的交易。
  • 激励与流程: 如果组织奖励速度胜过核验,攻击者会瞄准这一缺口。

示例:强加密、薄弱流程

公司可以在各处使用 HTTPS,并对密码做强哈希——但仍可能因简单的商务邮箱妥协而损失资金。攻击者钓鱼成功获取邮箱访问权,说服财务更改银行信息。每条消息都被 TLS 保护,但更改付款指令的流程才是真正的控制——它失败了。

一条简单规则

威胁开始,而不是从算法开始:定义你要保护的对象、谁会攻击以及如何。然后选择合适的加密(并为围绕它的非加密控制——核验步骤、监控、恢复——预留时间)。

从模型到控制:该构建什么

威胁模型只有在改变你构建与运营方式时才有价值。一旦你指出了资产、可能的对手和现实的失败模式,就可以把它们转化为在不把产品变成没人能用的堡垒下减少风险的控制措施。

把威胁转为平衡的控制集合

把“可能出什么问题?”转为“我们做什么?”的实用方法是覆盖四个类别:

  • 预防(Prevent): 让坏事更难或更昂贵。
  • 检测(Detect): 在预防失败时快速察觉。
  • 响应(Respond): 在压力下限制损害并做出正确决定。
  • 恢复(Recover): 恢复服务与信任,避免重复发生。

如果你的计划只有预防,你就是押注于完美。

有选择地分层防护

分层防护并不是把你听说过的每个控制都加上去。它意味着选择互补的少数措施,以便一次失败不会造成灾难。一个好的试金石:每一层应解决不同的失效点(凭证被盗、软件漏洞、配置错误、内部失误),且每层维护成本要足够低。

高杠杆的基础措施通常更有效

威胁模型经常指向相同的“无聊”控制,因为它们在多种场景中都有效:

  • 打补丁与依赖更新,以减少已知漏洞。
  • MFA(尤其对管理员和远程访问),以抵消凭证被盗。
  • 最小权限和基于角色的访问,避免一个被攻破的账户做所有事。
  • 经测试的备份(最好隔离),确保恢复真实可行而非理论上的。

这些并不光鲜,但它们直接降低可能性并限制波及范围。

事故准备是构建的一部分

把事故响应当作安全项目的一个特性,而不是事后的补救。定义谁负责、如何升级、什么是“止血”,以及你依赖哪些日志/告警。做一次轻量的桌面演练,胜过事到临头再慌。

这在快速交付的团队尤为重要。例如,如果你使用类似 Koder.ai 的 vibe‑coding 平台,从聊天驱动的工作流快速搭建 React 前端、Go + PostgreSQL 后端,你能很快从想法上线——但同样的威胁模型到控制的映射仍然适用。使用像 planning modesnapshotsrollback 这样的功能,可以把“我们做了个坏改动”从危机变成日常恢复步骤。

目标很简单:当威胁模型说“这就是我们最可能失败的方式”时,你的控制应确保该失败被快速检测、被安全限制,并能以最小戏剧性恢复。

检测、响应与学习闭环

预防重要,但很少完美。系统复杂、人会出错、攻击者只需要找到一个缺口。这就是为什么好的安全项目把检测与响应当作一等防御——不是事后的补充。实用目标是减少损害与恢复时间,即便有些攻击成功滑过了第一道防线。

为什么响应能胜过“完美”预防

试图阻止每一种攻击通常会给合法用户带来高摩擦,同时仍会漏掉新颖手段。检测与响应的伸缩性更好:你可以通过少数信号发现多种攻击并快速行动。这也更符合现实:如果你的威胁模型包含有动机的对手,就假设部分控制会失败。

值得监控的实用信号

专注于能指示有意义风险的一小部分信号:

  • 认证异常: 连续失败登录、不可能的地理切换、新设备、密码重置激增
  • 异常数据访问: 批量下载、奇怪的查询模式、访问很少用的数据集
  • 高影响的管理员操作: 权限授予、MFA 更改、禁用日志、新 API 密钥、防火墙或 IAM 策略编辑

一个简单的事故响应闭环

一个轻量闭环能防止团队在压力下临时拼凑:

  1. 准备: 明确负责人、值班路径、日志、备份、工具访问
  2. 检测: 绑定到上述信号的告警,并明确严重性定义
  3. 限制: 限制波及范围(禁用令牌、隔离主机、暂停账户)
  4. 清除: 删除持久化、修补根本原因、轮换密钥
  5. 学习: 写简要的事后复盘;更新控制和威胁模型

桌面演练用于验证假设

进行短时的情景桌面演练(60–90 分钟):“管理员令牌被窃取”、“内部人员导出数据”、“文件服务器被勒索软件感染”。验证谁做决定、你能多快找到关键日志、限制步骤是否现实。然后把发现转化为具体修复——不要再多做无谓文书工作。

一个简单的威胁建模小手册

将经验转化为发布
在事件或未遂后威胁模型改变时,快速推送修复。

你不需要一个庞大的“安全项目”来从威胁建模中获得真实价值。你需要可重复的习惯、明确的负责人和一份它将驱动的精简决策列表。

一周轻量小手册(高信号、低成本)

Day 1 — 启动(30–45 分钟): 产品主导会议,领导明确范围(“我们要建模结账流程”或“管理员门户”),工程确认实际要发布的内容。客服带来他们看到的客户痛点和滥用模式。

Day 2 — 画系统(60 分钟): 工程与 IT 画一个简单图:用户、应用、数据存储、第三方服务和信任边界(数据越过重要界线的位置)。保持“白板简单”。

Day 3 — 列资产与主要威胁(60–90 分钟): 团队共同识别最重要的东西(客户数据、资金流、账户访问、可用性)和最可信的威胁。客服补充“人们如何陷入圈套”与“攻击者如何社会工程我们”。

Day 4 — 选择主要控制(60 分钟): 工程与 IT 提出一小组能最大程度降低风险的控制。产品评估可用性影响;领导评估成本与时间。

Day 5 — 决策并记录(30–60 分钟): 选定负责人和截止日期;记录暂不修复的项及理由。

一个简单模板(可复制粘贴)

System diagram: (link or image reference)
Key assets: 
Top threats (3–5): 
Top controls (3–5): 
Open questions / assumptions: 
Decisions made + owners + dates: 

(注:代码块内容保持原样,不翻译)

让它成为持续实践

每季度或在重大变更后(新的支付提供商、新的认证流程、基础设施迁移)复审。把文档存放在团队已在使用的位置(工单/知识库),并从你的发布检查清单链接它(例如 /blog/release-checklist)。目标不是完美——而是在客户发现之前发现最可能、最有害的问题。

如何选择有意义的安全工作

安全团队通常不是缺乏想法,而是有太多听起来合理的想法。施奈尔的实用视角是一个很好的过滤器:优先那些在真实约束下能为你的真实系统降低真实风险的工作。

对安全主张(和供应商承诺)的一次快速测试

当有人宣称某产品或功能能“解决安全问题”时,把承诺具体化。有效的安全工作有明确的威胁、可信的部署路径和可衡量的影响。问:

  • 它解决了什么威胁? 指明攻击者与目标(欺诈、数据盗窃、破坏),而不是空泛术语。
  • 它依赖什么假设? 受信任的管理员、完美打补丁、永不点击的用户、始终被监控的网络——把这些写下来。
  • 部署实际成本是多少? 许可证通常只是最小部分。考虑配置、培训、维护和持续调优。
  • 它如何失败? 安静失败危险。如果一个控制失效,你会知道吗?有什么后备方案?
  • 激励是什么? 控制是否与人们的评价与奖励方式对齐?如果它减慢工作而无收益,会被绕开。

在花哨功能前优先基础设施

在添加新工具前,确保基础工作做到位:资产清单、最小权限、打补丁、安全默认、可用且可用的备份、可用日志以及不依赖单一英雄的事故流程。这些虽不光鲜,但在多种威胁下持续降低风险。

实用的方法是偏好能:

  • 同时降低多种风险(例如更好的访问控制既防错又防攻击)。
  • 在人疲惫时依然有效(例如安全默认、自动化、清晰的 UI)。
  • 可验证(可测试、可审计、可发现漂移)。

把“安全”变成你能捍卫的决策

如果你不能解释你在保护什么、来自谁以及为什么该控制是时间与金钱的最佳使用,那它很可能是安全作秀。如果能解释清楚,你就是在做有意义的工作。

欲了解更多实用指南和示例,请浏览 /blog。

如果你在构建或现代化软件,想在不跳过基础的情况下更快发布,Koder.ai 可以帮助团队通过聊天驱动的工作流从需求到部署前端、后端和移动应用——同时支持像 planning、审计友好的变更历史快照(snapshots)和当现实与假设不符时的快速回滚等实践。详见 /pricing。

常见问题

开始做威胁建模最简单的办法是什么?

Start by writing down:

  • Assets: what you can’t afford to lose (money movement, admin access, customer data, uptime).
  • Adversaries: who could realistically act (bots, criminals, insiders, vendors).
  • Impact: what happens if they succeed (fraud, downtime, regulatory exposure).
  • Top attack paths: phishing, credential stuffing, misconfig, abuse of features.

Keep it to one system or workflow (e.g., “admin portal” or “checkout”) so it stays actionable.

为什么指南强调定义“范围外”的内容?

Because boundaries prevent endless debate and unclear ownership. Explicitly note:

  • In scope: systems you can change, data you store, workflows you operate.
  • Out of scope (for now): things you don’t control (e.g., a user’s infected laptop) or low-impact edge cases you’re accepting.

This makes trade-offs visible and creates a concrete list of risks to revisit later.

如果我没有足够数据或精确数字,如何优先排序风险?

Use a rough likelihood × impact grid (Low/Medium/High) and force ranking.

Practical steps:

  • List your top 10 threats.
  • Give each a likelihood and impact rating.
  • Pick the top 3–5 to address this cycle.
  • Re-rate after incidents, near-misses, or major releases.

This keeps you focused on expected harm, not just scary scenarios.

“为真实行为而设计”在实践中是什么意思?

Design so the safest behavior is the easiest behavior:

  • Reduce choices: SSO, secure-by-default configs, fewer risky knobs.
  • Add friction only to high-risk actions: step-up auth for admin changes, not every click.
  • Improve recovery: easy reporting, fast credential resets, undo paths.

Treat “user error” as a design signal—interfaces and processes should assume fatigue and time pressure.

激励如何导致安全失败,即便团队知道正确做法?

Ask: who pays the cost, and who gets the benefit? If they’re different, security work tends to slip.

Ways to realign:

  • Assign named owners for key risks.
  • Track outcome metrics (e.g., patch latency, MTTR), not just activity.
  • Use procurement leverage: disclosure timelines, update commitments, audit rights.

When incentives align, secure defaults become the path of least resistance.

如何分辨安全作秀和真正的安全改进?

Use the “attacker outcomes” test:

  • What specific attack does this stop, slow, or make more expensive?
  • What failure mode still remains?
  • How will we know it worked before an incident?

If you can’t connect a control to a plausible attacker action and measurable effect, it’s likely reassurance rather than risk reduction.

如果加密很强,为什么系统仍然被攻破?

Crypto is excellent for:

  • Confidentiality: TLS, encrypted backups.
  • Integrity: hashes/MACs, signatures.
  • Authentication (keys): proving a key signed something.

But it won’t fix:

  • Compromised endpoints.
  • Weak identity proofing (“is this really Alice?”).
  • Fraud and social engineering.
  • Broken business processes (e.g., invoice change verification).

Choose crypto after you define threats and the non-crypto controls needed around it.

如何把威胁模型转化为实际控制措施?

Aim for balance across four buckets:

  • Prevent: MFA for admins, least privilege, rate limiting.
  • Detect: logs/alerts you can act on.
  • Respond: clear escalation, containment playbooks.
  • Recover: tested backups, credential rotation, rollback plans.

If you only invest in prevention, you’re betting everything on perfection.

如果要提升检测,首先应监控哪些内容?

Start with a small set of high-signal indicators:

  • Auth anomalies: reset spikes, impossible travel, repeated failures.
  • Unusual data access: bulk exports, rare dataset access, odd query patterns.
  • High-impact admin actions: privilege grants, MFA changes, new API keys, IAM/firewall edits, disabling logging.

Keep alerts few and actionable; too many low-quality alerts train people to ignore them.

多久应重新审视威胁模型,应该把它放在哪里?

A lightweight cadence works well:

  • Review quarterly or after major changes (new auth flow, payment provider, infra migration).
  • Store the write-up where teams already work (tickets/wiki) and link it from your release checklist (e.g., /blog/release-checklist).
  • Update it after incidents and near-misses.

Treat the threat model as a living decision record, not a one-time document.

Related posts