网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

基于DFD的威胁建模 | 第二部分

更新时间:2026年03月27日   作者:spoto   标签(Tag):

先决条件:威胁建模,基于DFD的威胁建模 | 第1部分
使用DFD进行可视化表示: 
DFD具有迭代的特性。因此,对系统进行建模需要构建不同层次的DFD模型。为了准确反映系统的结构,DFD必须以分层的方式组织起来。在DFD中,可以使用各种不同的形状来表示不同的层次结构。
 

1. 流程/过程 
在DFD中,每个流程都被赋予了一个唯一的编号。子流程的编号则会在其父流程的编号之后加上相应的数字。所谓“流程”,指的是在给定数据上执行特定任务的实体。以下是流程的表示方式:
 

2. 多个进程—— 
这意味着,该过程包含了一个子过程。子过程的编号会以父进程的编号作为前缀。例如,如果父进程的编号为1,那么子过程的编号就是1.1,再下面的子过程的编号则以此类推。多个过程的组织形式如下所示:
 


3. 外部实体 – 
它只能与入口点或出口点进行交互,且位于系统的外部。它只能与单个进程或多个进程进行交互。它既可以是数据的来源,也可以是数据的目的地。以下是用于数据流图中的外部实体的示意图:
 

4. 数据存储—— 
这里存储着数据,或者是从这里提取数据的。它只能与某个或多个进程进行交互。数据存储的布局如下所示:
 

5. 数据流 – 
这用于显示数据在各个元素之间的传输情况。以下是数据流的示意图:
 

6. 信任边界—— 
这其实是一种信任等级或特权界限的划分方式。以下是关于这种信任界限的示意图:
 


DFD从整体上下文层次结构图开始,该图将整个系统视为由多个独立的过程所构成的整体。每个节点则代表一个更详细的DFD图,它进一步描述了各个过程之间的关系。
 


确定威胁—— 
这是系统威胁建模的最后一步。在创建了DFD之后,下一步就是确定敌手在系统中可能拥有的目标。这些目标随后会被用来确定威胁路径、找到系统的入口和出口点,以及了解数据是如何在系统中流动的,从而确定哪些数据被传输到了哪个节点上。
在继续之前,我们先来了解一下什么是“威胁路径”。所谓“威胁路径”,指的是一系列执行某种安全关键操作的过程节点。这些过程节点容易受到攻击。所有那些对数据进行修改或采取某些行动的过程节点,都容易受到威胁的侵袭。
以下是该阶段所执行的步骤。
威胁概况—— 
这是关于安全设计的规范,它描述了以下两点:首先,系统中潜在敌手可能采取的攻击目标;其次,也是最重要的一点,就是由于这些攻击目标而存在的漏洞。
每一个被识别出的威胁都应该被加以预防或缓解。这些威胁的类别主要包括以下几个方面:
 

  1. 识别这些威胁—— 
    威胁识别是构建安全系统的重要步骤。识别威胁的过程分为三个步骤:第一步是分析每一个入口和出口点;第二步是确定在这些入口和出口点发生的关键处理过程的类型和性质;第三步则是思考并描述如何攻击这些入口和出口点。识别威胁并非易事,需要提出诸如以下问题:
    是否有可能让对手在未经审计的情况下,或者通过绕过访问控制机制,或者以其他用户的身份,获取这些资产呢?
    对手如何利用或操控数据来从系统中获取信息、编辑系统中的信息、修改或控制系统,或者获得额外的权限。此外,他们还可能导致系统出现故障或无法正常使用。
    这些只是最基本的问题而已。安全团队需要花费大量时间来思考各种可能的威胁,从而找出所有可能的危险情况。
    识别威胁的下一步就是对这些威胁进行分类。STRIDE这是我们在进行威胁分类时所使用的其中一种方法。在之前的文章中,我们已经讨论过STRIDE这一方法了。
     
  2. 调查并分析这些威胁—— 
    在识别出威胁之后,下一步就是对这些威胁进行深入分析,以确定那些容易受到攻击的区域以及可能的攻击路径。
    为了达到这个目的,人们会使用“威胁树”来表示相关信息。表达“威胁树”的方式有两种:一种是通过图形方式来表示,另一种则是通过文字方式来描述。
    威胁树的基本结构由一个根节点和多个子节点组成。每个子节点都代表一种条件,这些条件有助于对手发现并识别各种威胁。识别漏洞的过程是从没有子节点的节点开始,然后以自底向上的方式逐层向上遍历,直到到达根节点为止。
    分析威胁的另一个步骤是确定威胁的风险以及威胁发生的条件。这一步骤是通过使用DREAD模型来完成的。我们在之前的文章中已经讨论过这个模型了。
     
  3. 减轻这些威胁所带来的风险。 
    到目前为止,所有威胁都已被识别并得到了解决。 如果仍然存在任何威胁且无法得到解决的话,那么就会导致出现漏洞。 在完成威胁树的构建之后,就可以确定出各种攻击路径了。 如果任何攻击路径无法被阻止,那么就会导致漏洞的出现。 这份威胁建模文档包含了各种威胁、威胁树状图、漏洞以及相应的缓解措施。在设计阶段,该文档会被用作安全规范文件;而在测试阶段则可以作为识别系统中存在的安全隐患的依据。
     
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料