威胁模型分析

(TMA) 的威胁模型分析是一种分析,可帮助确定对产品、应用程序、网络或环境构成的安全风险,以及攻击的显示方式。 目标是确定哪些威胁需要缓解以及如何缓解它们。

本部分提供有关 TMA 过程的概要信息。 有关详细信息,请参阅 Michael Howard 和 David LeBlanc 撰写 安全代码第二版的第 4 章。

TMA 的一些优点包括:

  • 更好地了解应用程序

  • 帮助你查找 bug

  • 可以帮助新团队成员详细了解应用程序

  • 包含针对基于应用程序构建的其他团队的重要信息

  • 对测试人员很有用

    执行 TMA 的高级步骤包括:

  • 步骤 1。 收集背景信息

  • 步骤 2。 创建和分析威胁模型

  • 步骤 3。 查看威胁

  • 步骤 4. 确定缓解技术和技术

  • 步骤 5。 记录安全模型和部署注意事项

  • 步骤 6. 实现和测试缓解措施

  • 步骤 7. 使威胁模型与设计保持同步

步骤 1。 收集背景信息

若要为成功的 TMA 做好准备,必须收集一些背景信息。 (应用程序、程序或整个基础结构) 分析目标环境非常有用,如下所示:

  • 确定用例方案。 对于目标环境的每个用例方案,请确定你期望公司如何使用目标环境,以及目标环境的任何限制或限制。 此信息有助于定义威胁模型讨论的范围,并提供指向资产的指针, (公司的任何有价值的内容,例如数据和计算机) 和入口点。

  • 为每个方案创建数据流关系图, (DFD) 。 请确保深入到足以了解威胁。

  • 确定目标环境的边界和范围。

  • 了解受信任和不受信任的组件之间的边界。

  • 了解每个组件的配置和管理模型。

  • 创建外部依赖项的列表。

  • 创建有关每个组件所依赖的其他组件的假设列表。 这有助于与其他团队一起验证跨组件假设、操作项和后续项目。

步骤 2。 创建和分析威胁模型

收集背景信息后,应有一个威胁模型会议。 确保每个开发学科中至少有一个成员 (例如,) 的项目经理、开发人员和测试人员出席会议。 请务必提醒与会者,会议的目标是查找威胁,而不是修复威胁。 在威胁模型会议期间,执行以下操作:

  • 检查每个用例的 DFD。 对于每个用例,请标识:

    • 入口点

    • 信任边界

    • 从入口点到最终静态位置的数据流 (和返回)

  • 请注意所涉及的资产。

  • 讨论每个 DFD,并查找 DFD 中所有条目的以下类别中的威胁: Spoofing 标识、 Tampering with data、 Repudiation、 Information disclosure、 Denial of service 和 Elevation of privileges。

  • 创建已识别的威胁列表。 建议此列表包括以下内容:标题、简要说明 (包括威胁树) 、资产 (资产) 、影响 () 、风险、缓解技术、缓解状态和 bug 编号。

    注意

    可以在查看威胁时添加风险、缓解技术和缓解状态。 在威胁模型会议期间,不要在这些方面花费太多时间。

步骤 3。 查看威胁

确定对环境的威胁后,必须对每个威胁的风险进行排名,并确定要如何应对每个威胁。 可以通过其他团队会议或通过电子邮件执行此操作。 可以使用以下效果类别来计算风险暴露: Damage 潜力、 Reproducibility、 Exploitability、 Affected users 和 Discoverability。

获得按风险优先级排列的目标环境威胁列表后,必须确定如何应对每个威胁。 你的响应可以是不执行任何操作 (很少是一个不错的选择) 、警告用户潜在问题、删除问题或修复问题。

步骤 4. 确定缓解技术和技术

确定要修复的威胁后,必须确定每种威胁的可用缓解技术,以及减少每个威胁影响的最合适的技术。

例如,根据目标环境的详细信息,可以使用授权技术来降低数据篡改威胁的影响。 然后,必须确定适当的授权技术才能使用 (例如,自由访问控制列表 (DCL) 、权限或 IP 限制) 。

重要

评估要使用的缓解技术和技术时,必须考虑对公司具有商业意义的因素,以及公司拥有的任何可能影响要选择的缓解技术的策略。

完成 TMA 后,请执行以下操作:

  • 记录安全模型和部署注意事项

  • 实现和测试缓解措施

  • 使威胁模型与设计保持同步

步骤 5。 记录安全模型和部署注意事项

记录在 TMA 期间发现的内容以及如何决定减少威胁对目标环境的影响非常有用。 本文档可用于 qa) 、测试、支持和操作人员 (质量保证。 包括有关与目标环境交互或与之交互的其他应用程序的信息,以及防火墙和拓扑建议和要求。

步骤 6. 实现和测试缓解措施

当团队准备好修复在 TMA 期间发现的威胁时,请确保使用开发和部署清单来遵循安全代码和部署标准,以帮助最大程度地减少新威胁的引入。

实施缓解后,请确保对其进行测试,以确保它提供所需的威胁保护级别。

步骤 7. 使威胁模型与设计保持同步

向环境添加新的应用程序、服务器和其他元素时,请确保重新访问威胁模型分析的结果,并为任何新功能执行 TMA。

另请参阅

中小型公司的安全性案例研究
威胁模型分析的示例方案