实用的威胁模型会说明你保护什么、谁或什么可能影响它、信任关系在哪里发生变化,以及你将如何降低和测试最重要的风险。从实际项目开始,而不是从通用的工具清单开始。
定义足够小、便于推理的范围
从一个正在运行的服务开始:客户门户、发布网站或内部应用。写下你运营的组件和你依赖的外部系统。威胁模型应让假设变得可见,而不是暗示所有可能的攻击都已解决。第一版应足够小,以便部署应用的人员无需另请顾问解读图表就能解释清楚。
列出有价值的结果和资产。这些可能包括客户数据、管理访问权限、支付状态、已发布内容以及恢复服务的能力。即使信息是公开的,可用性也可以是一种资产。确定哪些故障会带来不便,哪些会损害人员或组织。这种区分有助于你确定控制措施的优先级,而不是同等对待每一个警告。
画出信任关系发生变化的位置
OWASP 的威胁模型指南使用数据流和信任边界来使设计易于理解。对于小型托管应用,画出浏览器、Web 进程、数据库、管理员、备份目的地和外部集成。标记它们之间流动的信息。从不受信任的客户端进入特权服务器操作的请求,值得进行明确的验证和授权。
不要假设位于同一台机器内就意味着每个组件都同样受信任。公共上传流程不应拥有与数据库管理相同的权限。备份任务可能需要读取权限,但不能修改实时应用记录。分离这些角色可以更容易地控制组件被攻破的影响,也更容易审查所需的权限。
选择具体的故障场景
用少量可能发生的事件来挑战设计。攻击者窃取管理员密码;用户请求另一个用户的记录;上传填满磁盘;部署暴露配置文件;恢复副本无法还原。描述起始条件、受影响的组件和后果。具体场景比宽泛的“提高安全性”指示更容易测试。
除了外部入侵,还要考虑错误和合法工作流滥用。重试可能创建两个有价值的操作,或者两个请求可能竞相更改同一对象。OWASP 的业务逻辑指南强调了这些流程假设。检查谁有权将工作流推进到下一状态,以及重复或重新排序请求是否会意外改变结果。
| 场景 | 要调查的控制措施 | 要收集的证据 |
|---|---|---|
| 管理员凭据被盗 | 受限访问以及在支持时使用第二因素 | 未授权登录无法完成 |
| 请求了另一个用户的对象 | 服务端对象授权 | 隔离测试返回拒绝结果 |
| 上传导致磁盘耗尽 | 大小、配额和保留控制 | 在服务故障前强制执行限制 |
| 重复的工作流请求 | 幂等性和事务边界 | 重复请求只产生一个结果 |
根据影响和可信路径确定优先级
对于每个场景,记录其潜在影响以及发生所需的条件。避免假装猜测的数值评分就是精确概率。你仍然可以区分暴露在互联网上的弱密码与高度条件性的本地事件。为重要风险指定负责人和切实的下一步,使模型产生某人实际可以完成的工作。
除了应用被攻破,还要考虑信息生命周期。诊断导出可能在原本正常的运行过程中泄露不必要的数据。保留的账户字段可能在其目的结束后很久仍造成暴露。因此,隐私审查可以删除信息或缩短保留时间,而安全审查则限制对剩余信息的访问。当这些更改能保护项目时,两者都应纳入模型。
在授权环境中测试控制措施
创建一个具有代表性权限和虚构记录的暂存环境。测试拒绝访问、请求限制、工作流重试和恢复。当合成数据可以演示行为时,不要使用真实客户数据。目标是验证控制措施,而不是生成引人注目的攻击流量。请在你拥有或明确获授权评估的系统内操作。
记录哪些通过了、哪些失败了以及哪些仍然未知。扫描器结果可以作为证据,但不能替代对应用业务规则的测试。同样,网络防护选项不能验证对象授权或机密文件处理。将有用的结果附加到场景中,以便未来的维护人员理解为什么存在某项特定控制措施。
让模型与变更保持关联
当你添加集成、暴露新端点、更改权限或将数据移动到另一个目的地时,审查相关部分。你不需要为一次小的文本编辑重画整个架构。触发条件是访问、信息或系统行为的假设发生了变化。将模型与部署和恢复文档放在一起,而不是让它成为一次性的研讨会产出。
SwissOctet 提供的是基础设施选择目录,而不是完整的应用威胁模型。选择支持你的控制措施的配置和选项,然后验证你构建的部署。一个经过维护并带有已测试行动的小型模型,比一大堆安全产品却没有清楚说明它们应对哪些风险更有用。
您的实用清单。
- 列出资产和故障后果。
- 画出数据流和信任边界。
- 选择具体的入侵、错误和工作流场景。
- 为重要风险分配控制措施和负责人。
- 在授权环境中使用合成数据进行测试。
- 当相关假设发生变化时审查模型。
重要细节。
开始需要正式框架吗?+
不需要。一个小型图表和一组记录在案的场景就可以有用。框架有助于确保你一致地审查风险。
漏洞扫描器能替代威胁建模吗?+
不能。扫描器可能发现技术弱点,而威胁模型还会检查设计假设、权限和业务工作流。
我应该多久更新一次模型?+
当数据流、集成、权限或暴露的功能发生变化时,更新受影响的部分,并定期审查未解决的风险。
前往来源。
这些参考资料支持本指南中的技术概念。在更改生产系统之前,请遵循当前文档。
- OWASP:威胁建模速查表 cheatsheetseries.owasp.org
- OWASP:实践中的威胁建模 devguide.owasp.org
- OWASP:业务逻辑安全 cheatsheetseries.owasp.org
由 SwissOctet 提供编辑指导。示例仅作说明。服务规格、可用选项和合同条件必须单独核实。