📜  基于 DFD 的威胁建模 | 2套

📅  最后修改于: 2021-10-22 05:06:10             🧑  作者: Mango

先决条件 – 威胁建模,基于 DFD 的威胁建模 |设置 1
使用 DFD 的可视化表示:
DFD 本质上是迭代的。因此,系统建模涉及构建不同级别的 DFD。这意味着要准确反映系统,DFD 必须以分层方式组织。遵循 DFD 中使用的各种形状:

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

2 多进程 –
这意味着进程有子进程,子进程号以父进程号为前缀。例如父进程编号为 1。然后子进程编号为 1.1,子进程编号为 1.1.1,依此类推。多进程的形状如下:

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

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

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

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

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

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

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

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

威胁概况 –
这是描述以下两件事的安全设计规范:首先是系统中对手的可能目标,其次是最重要的由于这些目标而存在的漏洞。

应预防或减轻每个已识别的威胁。威胁概况包括以下关键领域:

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

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

    攻击者如何使用或操纵数据从系统中检索信息或编辑系统中的信息或修改/控制系统或获得额外权限或导致系统出现故障或变得无法使用。

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

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

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

    分析威胁的另一个步骤涉及确定威胁的风险和威胁条件。这是通过使用 DREAD 模型完成的。我们在上一篇文章中讨论了这个模型。

  3. 减轻由威胁引起的漏洞——
    到目前为止,所有威胁都已被识别和解决。如果任何威胁仍未解决,那么它将导致漏洞。威胁树完成后,攻击路径被识别。如果任何攻击路径没有得到缓解,都会导致一个漏洞。一个由威胁、威胁树、漏洞和缓解措施组成的威胁建模文档。这个威胁文档将在设计阶段用作安全规范文档,并在测试阶段用作基础识别系统的脆弱区域。