数据流图 - 我需要向下钻取多远?

信息安全 威胁建模
2021-09-09 03:59:05

我正在尝试为威胁建模练习创建 DFD。我应该了解多少细节?

  1. SDL 威胁建模指南指出,当 DFD 中仍有信任边界时,我知道我的 DFD 需要更多详细信息。假设数据存储 A 和进程 B 之间存在信任边界。由于存在信任边界,我知道 DFD 不够详细。我怎样才能走得更深,足够深以至于没有信任边界?如果我深入研究流程 B 并将其分解为更小的部分,是否总是可以消除信任边界?

  2. 我的数据流图中的数据库有 CRUD 操作,我是否需要创建 4 个不同的数据流来满足需求,或者我可以用“CRUD 操作”标记数据流吗?

在此处输入图像描述

2个回答

1)我建议从您拥有的图表开始,仅当您发现歧义时或如果您发现歧义、存在额外边界的地方、您必须询问“这是如何工作的”以了解攻击或防御等情况时才对其进行扩展.

我不知道这是指什么:“SDL 威胁建模指南指出,当 DFD 中仍有信任边界时,我知道我的 DFD 需要更多详细信息”。我拥有这些准则好几年了,我不认为他们这么说(虽然我负责)。你能添加一个链接吗?

2) 每个 CRUD 操作的权限是否总是相同的?如果您必须扩展它们以清楚地传达软件的工作原理,那么显示单独操作的图表是一种有用的交流工具。

从根本上说,你所做的工作应该帮助你有效地理解、沟通和分析。如果有人(“SDL TM 指南”)告诉您要做某项工作,而您认为不需要做,那么不妨做一个小实验。然后,您要么会感到惊讶,要么会发现在那种情况下,您不需要更深入地了解。

让我尝试从不同的角度向您解释 DFD;攻击树是描述威胁的标准和常用方式。那个树 ; 描述了实现威胁所需的不同阶段,从编程相关性来看,它就像一个树数据结构,父节点、子节点在特定上下文(攻击实例的上下文)下都链接在一起。互联网上有许多攻击树示例,具体取决于您要分析的特定威胁。

但是,现在的问题有多远?我说到目前为止,需要充分实现攻击的所有阶段。我看到对于任何 DFD,总会有一组有限的输入和一组可以进行的交易状态;当您将它们全部映射后,您只需相应地安排您的演员和信任边界。

例如,对于窃听威胁分析,两个参与者必须采取行动;a) 在网络上监听 b) 包括终端节点以实现某些嗅探威胁场景。

现在,在 DFD 中,您可以将这些案例中的每一个进一步细化为单独的用户/系统交互场景。在这里,您可以按照OWASP 测试指南 v3.0中的说明编写误用场景

希望能帮助到你。