先决条件 – 威胁建模
基于 DFD 的威胁建模是一种可视化表示正在建模的系统的方法,另一种是基于流程图的威胁建模。通过使用这种方法,威胁建模团队将能够通过系统地跟踪通过系统的数据流来识别系统中的关键流程以及对这些流程的威胁。这种方法有以下步骤:
- 将系统视为对手
- 表征系统
- 识别威胁
让我们一一详细讨论这些步骤。
1. 将系统视为对手:
这是使用基于 DFD 的方法对系统进行建模时要做的第一件事,也是最重要的事情。
这一步涉及从对手的角度分析系统。攻击者可以看到和访问哪些进程和功能。攻击者使用这些暴露的服务制定攻击系统的目标。
以下是一系列步骤:
- 确定入口/出口点——入口点是指数据进入应用程序的点,出口点是指数据离开应用程序的点。出于威胁建模的目的,需要为入口/出口点记录以下内容:
- 数字 ID:为每个入口点和每个出口点分配一个数字 ID,以便与威胁和漏洞进行交叉引用。
- 名称:每个入口和出口点都应分配一个名称并确定其用途。
- 描述:写一个描述,解释在那个入口/出口点到底发生了什么,并确定在那个点退出的信任级别。
- 识别资产——对手的主要目标是获取资产。资产还充当对手的传递点,因为一种资产经常与系统中的其他资产交互。因此,识别系统中需要保护的资产免遭未经授权的访问非常重要。此任务由安全专家团队完成。为了记录资产清单,他们收集了以下数据:
- 数字 ID:应为每个资产分配一个数字 ID,以便与威胁和漏洞进行交叉引用。
- 名称:为标识的资产指定名称。
- 描述:写一篇关于为什么资产需要保护的解释。
- 确定信任级别 –每个入口/出口点都分配有信任值,以定义外部实体必须访问和影响系统的权限。 在确定信任级别时需要记录以下数据:
- 数字 ID:应该为每个信任级别分配一个数字 ID,以便与威胁和漏洞进行交叉引用。
- 名称:为每个信任级别分配一个名称。
- 描述:撰写描述,更详细地解释信任级别并概述其目的。
2. 表征系统:
表征系统意味着收集有关系统的背景信息并确定需要解决的领域。需要收集以下背景信息:
- 使用场景——确定使用场景非常重要,因为忽视这些可能会导致漏洞。使用场景通常由架构师和最终用户确定。这些可供安全测试团队用于安全测试和识别攻击路径。使用场景是指在配置和安全目标和非目标方面如何使用、不使用或不使用系统的情况/环境。使用场景需要记录以下数据:
- 数字标识:每个使用场景都应该有一个唯一的标识号。
- 描述:写一个描述,解释以下两点。首先是使用场景的描述,其次是提及是否支持使用场景。
- 外部依赖——外部依赖是指对外部资源和安全策略的依赖。识别这些非常重要,因为如果忽略了来自外部依赖的威胁,它可能会成为一个有效的漏洞。需要记录以下数据:
- 数字 ID:应该为每个外部依赖项分配一个数字 ID。
- 描述:编写描述,提供有关外部依赖项的详细信息。
- 外部安全说明参考:来自一个组件的外部安全说明可以与应用程序中其他组件的外部依赖项交叉引用。
- 外部安全说明——外部安全说明作为一种手段,为用户提供有关系统安全和集成的信息。外部安全说明用于验证外部依赖关系,并可用作对威胁的缓解措施
.如果是外部安全说明,需要记录以下信息:- 数字 ID:每个安全票据都应分配一个唯一的识别号。
- 描述:写下说明,解释有关笔记的详细信息。
- 内部安全说明:这些说明了在设计和实施系统安全时所做的妥协。在识别内部安全笔记时需要记录以下信息:
- 数字 ID:每个已识别的内部安全注释都应分配一个唯一的数字 ID。
- 描述:撰写说明,解释进行了哪些安全妥协以及为何进行了妥协
- 实现假设——这些是在设计阶段收集的,列出了稍后将实现的功能的详细信息。在确定内部实施假设时需要记录以下数据:
- 数字 ID:每个确定的内部实现假设
- 说明:编写说明说明实现功能的过程。
- 系统建模——在威胁建模系统时要记住的最重要的一点是通过对手的眼睛查看系统。可视化表示允许查看子系统的操作以及它们如何协同工作。本节介绍如何使用数据流图 (DFD) 对系统建模。