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