Threat Modeling Tool 介绍

在本章中,我们简单介绍一下常用的Threat Modeling 威胁建模工具,通过该介绍,大家可以非常直观地了解如果建立威胁模型及生成分析报告。

本文介绍两种最常见的Threat Modeling Tool, 其中详细介绍Microsoft Threat Modeling Tool,? 该威胁建模工具应用比较广泛且成熟。

Threat Dragon

Threat Dragon是OWASP提供的免费开源Threat Dragon Tool。 该威胁建模工具提供Windows和MacOS(Linux即将推出)的独立桌面应用,也有Web应用程序。

1543499818266588.png

可以访问http://docs.threatdragon.org/ 了解详细信息。Threat Dragon目前还不是十分成熟。仍在努力实现其第一个Milestone? alpha版本。 不具备威胁规则生成部分。现在只提供基本的威胁建模体验,因此,不推荐用于商业生产环境,但由于是开源项目,感兴趣的读者可以持续关注。

Microsoft Threat Modeling Tool

Microsoft Threat Modeling Tool是微软推出的免费的成熟的威胁建模工具,可以生成威胁规则供参考。可以访问 https://blogs.msdn.microsoft.com/secdevblog/2018/09/12/microsoft-threat-modeling-tool-ga-release/ 了解详细信息,并且下载安装。

1543499908847498.png

模型建立部分简介

简而言之,此方法涉及创建关系图、识别威胁、缓解问题和验证每个缓解操作。 下面的关系图如下所示:

1543499992480106.png

开始威胁建模进程

启动威胁建模工具时,将注意到下图显示的几项:

1543500144847982.png

威胁模型部分

创建模型 为你打开空白画布以绘制关系图。 请确保选出想用于你的模型的模板

新模型的模板 创建模型前,必须选出想要使用的模板。 主要模板是 Azure 威胁模型模板,其中包含特定于 Azure 的模具、威胁和缓解操作。 对于通用模型,请从下拉菜单中选择 SDL TM 知识库。 想要创建自己的模板或为所有用户提交新的模板? 查看模板存储库 GitHub 页以了解详细信息

打开模型 打开以前保存的威胁模型。 如需打开最近经常使用的文件,“最近打开的模型”功能很实用。 将鼠标悬停在选项上方时,可以看到打开模型的两种方法:

“从本计算机打开” – 使用本地存储打开文件的经典方法 ,“从 OneDrive 打开” – 团队可以使用 OneDrive 中的文件夹在一个位置保存和共享他们的威胁模型,以帮助提升效率和协作

构建模型

在本部分中,将讨论几个角色的一个用例:

Cristina(开发人员)

Ricardo(计划经理)

Ashish(测试人员)

他们将进行开发他的首个威胁模型的过程。

Ricardo:你好 Cristina,我在研究威胁模型关系图,想要确保我们所进行的细节都没有任何问题。 你可以帮我看一下吗? Cristina:没问题。 让我们一起看一下。 Ricardo 打开该工具并将他的屏幕与 Cristina 共享。

1543500236458656.png

Cristina:好的,我们直接看,不过可以先向我介绍一下整体情况吗? Ricardo: 没问题! 这是结构细节:

我们的用户被绘制为外部实体—正方形

他们正向我们的 Web 服务器发送命令—圆圈

Web 服务器正向数据库发出请求(两条平行线)

Ricardo 刚才向 Cristina 介绍的是 DFD,即数据流关系图 的简写。 威胁建模工具可使用户指定信任边界(用红色虚线显示),以显示不同的实体被控制的位置。 例如,IT 管理员需要 Active Directory 系统以进行身份验证,因此 Active Directory 是不受其控制的。

Cristina:我觉得没问题。 关于威胁呢? Ricardo:让我给你看一下。

分析威胁

单击图标菜单选项(带有放大镜的文件)中的分析视图后,即转到 Threat Modeling Tool 基于默认模板建立的已生成威胁的列表,该列表使用名为 STRIDE(欺骗、篡改、信息泄露、否认性、拒绝服务和特权提升) 的 SDL 方法。 思路是,软件来自可预测的一组威胁,可使用这 6 类找到。

此方法类似于通过先确保房子里的每扇门、每扇窗都锁好来保护房屋的安全,然后再添加警报或抓小偷。

1543500307499643.png

Ricardo 先从选择列表上的第一项开始。 下面是发生的具体情况:

首先,两个模具之间的交互得到了增强:

1543500348741620.png

其次,有关威胁的其他信息显示在威胁属性窗口中

1543500390112012.png

生成的威胁帮助他了解潜在的设计缺陷。 STRIDE 分类为他提供了有关潜在的攻击途径的思路,而其他说明能够让他了解问题所在,以及缓解问题可能使用的方法。 他可以使用可编辑字段在理由详细信息中撰写理由,或根据他的组织的 bug 栏更改优先级评定。

Azure 模板具有附加详细信息,不仅帮助用户了解问题所在,还能通过向特定于 Azure 的文档添加说明、示例和超链接来帮助他们了解如何修复此问题。

该说明使用户意识到添加身份验证机制的重要性,以阻止用户被欺骗,并揭开要着手解决的第一个威胁。 与 Cristina 讨论几分钟后,他们了解了实现访问控制和角色的重要性。 Ricardo 补充了一些快速说明,以确保这些操作得以实行。

在 Ricardo 进入信息泄露下的威胁后,他意识到访问控制计划需要一些供审核和报告生成的只读帐户。 他想知道这是否是一个新威胁,但是缓解操作是相同的,所以他相应注意到了该威胁。 此外,他还进一步考虑了信息披露并意识到备份磁带需要让运行小组进行加密。

由于现有缓解或安全保证而不适用于设计的威胁可以从“状态”下拉列表中更改为“不适用”。 有三个其他选项:未启动 – 默认选择;需要调查 – 用于跟进项目;缓解 – 完全操作后。

报表和共享

Ricardo 和 Cristina 查看列表并添加重要事项、缓解/理由、优先项和状态更改后,他选择“报表” -> “创建完整报表” -> “保存报表”,该操作将为他打印出一份完整的报表,让他与同事们一起查看,以确保执行了适当的安全操作。

1543500493322128.png

1543500572663534.png

威胁建模会议

当 Ricardo 使用 OneDrive 将他的威胁模型发送给他的同事后,测试人员 Ashish 并不十分欣赏。 似乎 Ricardo 和 Cristina 错过了相当重要的几个极端案例,而这极易受到威胁。 他的怀疑是对威胁模型的补充。

在此方案中,Ashish 接管威胁模型后,他发起了两个威胁建模会议:第一个会议是同步进程并介绍关系图,第二个会议是有关威胁评审和注销。

在第一个会议里,Ashish 用了 10 分钟的时间向大家介绍 SDL 威胁建模过程。 然后,他拉出威胁模型关系图并开始进行详细说明。 在 5 分钟内,已经识别出一个重要的缺失组件。

几分钟后,Ashish 和 Ricardo 就 Web 服务器构建的方式开始展开了广泛的讨论。 这不是会议继续的理想方式,但大家最终同意尽早发现差异可以在未来节省大家的时间。

在第二个会议里,团队浏览了威胁,并讨论了解决威胁的一些方法,并在威胁模型上注销。 他们将文档签入源控件并继续进行开发。

STRIDE威胁模型

STRIDE是由Praerit Garg和Loren Kohnfelder在微软开发的用于识别计算机安全威胁的威胁模型。它分为六类安全威胁,如下:

Spoofing of user identity(欺骗用户身份)

Tampering (篡改)

Repudiation (拒绝)

Information disclosure (privacy breach or data leak) 信息披露(隐私泄露或数据泄露)

Denial of service (D.o.S) 拒绝服务(D.o.S)

Elevation of privilege (特权提升)

STRIDE最初是作为威胁建模过程的一部分创建的。 STRIDE是一种威胁模型,用于帮助推理和发现潜在的系统威胁。它与并行构建的目标系统的威胁模型结合使用,包括流程,数据存储,数据流和信任边界等。

该模型用来帮助回答“我们正在研究的这个系统中可能出现什么问题?”。

总结

威胁模型分析是软件开发过程的重要组成部分,至始至终。实际经验是越早开始,越好。在设计出去,把潜在的威胁隐患考虑到系统架构和实现中,可以很好的解决系统上线后的安全风险。Threat Modeling Tool 可以很好的帮组工程人员解决发现潜在的系统威胁。

Threat Modeling Tool 介绍

发表评论

邮箱地址不会被公开。 必填项已用*标注

二 × 1 =

滚动到顶部