基于DFD的威胁建模|集2

先决条件—— 威胁建模 , 基于DFD的威胁建模|集1 使用DFD的视觉表示: DFD本质上是迭代的。因此,对一个系统进行建模需要构建不同层次的DFD。这意味着为了准确反映系统,DFD必须以分层的方式组织。以下是DFD中使用的各种形状:

null

1过程- DFD中的每个进程都有一个唯一的编号,其中子进程将有一个以父进程编号为前缀的编号。流程是指对给定数据执行特定任务的实体。以下是流程的形状:

图片[1]-基于DFD的威胁建模|集2-yiteyi-C++库

2多流程- 这意味着该进程有一个子进程,子进程号以父进程号为前缀。例如,父进程编号为1。然后子流程的编号为1.1,子流程的编号为1.1.1,依此类推。多个过程的形状如下所示:

图片[2]-基于DFD的威胁建模|集2-yiteyi-C++库

3外部实体- 它只能在入口点或出口点进行交互,并且位于系统外部。它可能只与流程或多个流程交互。它可以是数据源,也可以是数据目的地。以下是DFD中使用的外部实体的形状:

图片[3]-基于DFD的威胁建模|集2-yiteyi-C++库

4数据存储- 它是存储数据或从中检索数据的地方。它只能与流程或多个流程交互。数据存储的形状如下所示:

图片[4]-基于DFD的威胁建模|集2-yiteyi-C++库

5数据流- 这用于显示元素之间的数据移动。以下是数据流的形状:

图片[5]-基于DFD的威胁建模|集2-yiteyi-C++库

6信任边界—— 它是信任级别或权限之间的界限。以下是信任边界的形状:

图片[6]-基于DFD的威胁建模|集2-yiteyi-C++库

DFD从一个整体上下文级别的图开始,该图将整个系统表示为单个多个进程。然后,每个节点都是表示其他流程的更详细的DFD。

图片[7]-基于DFD的威胁建模|集2-yiteyi-C++库

确定威胁—— 这是威胁建模系统的最后一步。创建DFD后,下一步是确定对手可能在系统中拥有的目标。然后,这些目标用于确定威胁路径、定位入口/出口点,并通过系统跟踪数据,以了解向哪个节点提供了哪些数据。

在继续之前,我们将首先了解什么是威胁路径。威胁路径是一系列执行某种安全关键操作的进程节点,因此容易受到攻击。代表数据进行更改或操作的所有流程节点都容易受到威胁。

以下是本阶段执行的一系列步骤。

威胁概况- 这是安全设计规范,它描述了以下两件事:第一,系统中对手的可能目标,第二,也是最重要的,由于这些目标而存在的漏洞。

应预防或缓解每种已识别的威胁。威胁概况包括以下关键领域:

  1. 识别威胁—— 威胁识别是建立安全系统的一个非常重要的步骤。识别威胁是一个三步过程,第一步涉及分析每个入口/出口点,第二步涉及识别在入口/出口点发生的关键处理的性质和类型,第三步和最后一步涉及思考和描述入口/出口点可能受到的攻击。识别威胁并非易事。它包括提出以下问题:

    对手是否有可能在未经审计、跳过访问控制或充当其他用户的情况下访问资产?

    对手如何使用或操纵数据从系统中检索信息、编辑系统中的信息、修改/控制系统、获得额外特权或导致系统故障或无法使用。

    这些只是基本问题。这需要安全团队进行大量头脑风暴,以确定尽可能多的可能威胁。 识别威胁的下一步是威胁分类。 大步走 是我们与DFD一起用于威胁分类的方法之一。我们在前一篇文章中讨论了STRIDE。

  2. 调查并分析威胁—— 确定威胁后,下一步是对已识别的威胁进行深入分析,以确定易受攻击的区域和有效的攻击路径。

    威胁树用于此目的。有两种方式来表达威胁树:一种是图形方式,另一种是使用文本表示。 威胁树的基本结构由根节点和子节点组成。每个子节点代表敌方发现和识别威胁所需的条件。识别漏洞的过程包括从没有子节点的节点开始,然后以自下而上的方式遍历到根节点。

    分析威胁的另一个步骤涉及确定威胁的风险和威胁条件。这是通过使用恐惧模型实现的。我们在前一篇文章中讨论过这个模型。

  3. 缓解威胁造成的漏洞—— 到目前为止,所有威胁都已得到识别和解决。如果任何威胁仍未解决,则将导致漏洞。完成威胁树后,将识别攻击路径。如果任何攻击路径未得到缓解,将导致漏洞。由威胁、威胁树、漏洞和缓解措施组成的威胁建模文件将在设计阶段用作安全规范文件,并在测试阶段用作识别系统易受攻击区域的基础。
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享