安全设计 | Microsoft 威胁建模工具Threat Modeling Tool安装、使用及威胁生成原理详解(文末附样例)

1. 概览

微软威胁建模工具(Threat Modeling Tool)是 Microsoft 安全开发生命周期 (SDL,Security Development LifeCycle) 的核心要素。 当潜在安全问题处于无需花费过多成本即可相对容易解决的阶段,软件架构师可以使用威胁建模工具提前识别这些问题。 因此,它能大幅减少开发总成本。 此外,该工具在设计之初就充分考虑到了非安全专家的体验,为他们提供有关创建和分析威胁模型的清晰指导,让所有开发人员都可以更轻松地使用威胁建模。

微软威胁建模工具可以帮助开发/架构师实现如下目的

  • 交流系统的安全设计;
  • 使用经过证实的方法分析这些设计是否存在潜在安全问题;
  • 建议和管理针对安全问题的缓解措施。

2. 安装配置

2.1. 前置条件

  • 要求系统为Windows环境,最新版本要求Windows 10及以上版本(该工具也仅适用于Windows)
  • 需要安装 .NET Framework 4.7.1 及其以上版本
  • 电脑需要联网

2.2. 下载安装

  1. 下载代理程序 TMT7.application,当前最新版本为7.3.31026.3(2023 年 10 月 26 日发行);

  2. 双击安装包,在弹出的框中点击:『安装』;

  3. 等待下载完成后会自动安装,安装成功后会打开工具界面。

3. 使用介绍

3.1. 背景知识

微软 SDL 威胁建模方法涉及创建关系图、识别威胁、缓解问题和验证每个缓解操作。 下面的关系图重点突出了此过程。在识别分析威胁时又用到了SRIDE方法。若想了解更多细节,可以关注博主,参阅博主前期文章。

3.2. 工具操作

3.2.1. 打开威胁建模工具

启动威胁建模工具时,可以看到下图显示的几项:

组件详细信息
创建模型会打开空白画布以绘制关系图。 创建模型前请确保在下拉框中选出适合自己的模型的模板
打开模型打开以前保存的威胁模型。 如需打开最近经常使用的文件,“最近打开的模型”功能很实用。
新模型的模板创建模型前,必须选出想要使用的模板。 工具默认提供的主要模板是 Azure 威胁模型模板,其中包含特定于 Azure 的模具、威胁和缓解操作。 对于通用模型,可从下拉菜单中选择 SDL TM 知识库。

默认模板称为“SDL TM 知识库”,提供了一组基本元素和威胁生成功能。 只要对数据流关系图 DFT 和 STRIDE 有基本的了解即可使用。

4. 创建模型

拖动右侧的工具箱可以绘制数据流图

下面是博主绘制的一个威胁模型图:点击下载 (访问密码: 6277)。

结构细节说明:

  • 用户浏览器被绘制为外部实体—正方形
  • 用户正向我们的 Web 应用服务器发送命令— 圆圈
  • Web 服务器正向数据库发出请求(两条平行线)

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

4.1. 分析威胁

这一部分是 Threat Modeling Tool 的核心。 威胁生成引擎考察独立元素和已连接的元素,以确定生成哪个威胁。

单击图标菜单选项(带有放大镜的文件,下图红色方框图标)中的分析视图后,即转到 Threat Modeling Tool 基于默认模板建立的已生成威胁的列表,该列表使用名为 STRIDE(欺骗、篡改、否认性、信息泄露、拒绝服务和特权提升)的 SDL 方法。

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

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

首先,两个模具之间的交互变得突显

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

此威胁信息表明:攻击者可以通过详细的错误消息访问敏感数据,例如以下数据-服务器名称-连接字符串-用户名-密码-SQL过程-动态SQL故障的详细信息-堆栈跟踪和代码行-存储在内存中的变量-驱动器和文件夹位置-应用程序安装点-主机配置设置-其他内部应用程序详细信息

通过自动分析生成的威胁列表帮助架构师了解潜在的设计缺陷。 STRIDE 分类为其提供了有关潜在的攻击途径的思路,而其他说明信息能够让架构师了解问题所在,以及缓解问题可能使用的方法。 另外,可以使用可编辑字段在理由详细信息中撰写理由。

4.2. 报表和共享

在通过"添加重要事项、缓解/理由、优先项和状态更改"处理完以上威胁列表并后,可选择“报表”->“创建完整报表”->“保存报表”,该操作将为导出一份完整的报表,可与同事们一起查看,以确保执行了适当的安全操作。

若大家对博主的Demo样例感兴趣,可以下载快速上手体验:

5. 威胁生成的原理

5.1. 指定源和目标

威胁生成引擎使用简单的句子来生成威胁。 示例包括:

  • 目标为[元素名称]
  • 源为[元素名称]

你还可以在标题和说明中使用元素名称。 格式为:“{target.Name}”或“{source.Name}”。

5.2. 合并源和目标

你可以精确规定如何生成威胁。 用 AND OR 运算符组合目标、源及其各个属性。 示例包括:

  • target.[property name] is 'Yes' AND source.[property name] is 'No'
  • 流交叉[信任边界名称]

5.3. 生成或忽略威胁

威胁生成引擎使用两个字段来生成或忽略威胁:

  • 包括:如果在此字段中添加的句子为 true,则会生成威胁。
  • 排除:如果在此字段中添加的句子为 true,则不会生成威胁。

下面是默认模板的实际示例,以便将这些步骤结合在一起:

  • 威胁:跨站点脚本
  • 包括: (target is [Web Server]) OR (target is [Web Application])
  • 排除: (target.[Sanitizes Output] is 'Yes') AND (target.[Sanitizes Input] is 'Yes')

6. 参考

[1] 微软安全开发指导文档(共285页) (访问密码: 6277)
[2] uncover-security-design-flaws-using-the-stride-approach
[3] https://learn.microsoft.com/zh-cn/azure/security/develop/threat-modeling-tool-getting-started
[4] https://learn.microsoft.com/zh-cn/training/modules/tm-use-recommended-tools-to-create-a-data-flow-diagram/2-threat-modeling-tool


推荐阅读:

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: STRIDE是一种常用的威胁建模模型,用于帮助分析系统中可能存在的威胁。下面是一些关于如何在实际中使用STRIDE的建议: 1. 确定系统范围:在开始分析之前,需要明确分析的系统是什么。这可以帮助确定需要考虑的所有方面以及可能的威胁。 2. 理解STRIDE分类:STRIDE将威胁分为六类:Spoofing(欺骗)、Tampering(篡改)、Repudiation(抵赖)、Information disclosure(信息泄露)、Denial of service(拒绝服务)和Elevation of privilege(提权)。了解这些分类可以帮助确定可能的威胁类型,并更好地规划威胁建模的过程。 3. 识别系统中的重要资产:重要的资产通常是攻击者的目标,因此需要特别关注它们。对于每个重要的资产,需要确定可能的威胁并对其进行建模。 4. 使用威胁建模工具:有许多威胁建模工具可以帮助自动化威胁建模的过程。如,Microsoft的“威胁建模工具”(Threat Modeling Tool)提供了一个图形界面,可以使用STRIDE等模型来识别威胁,并生成威胁建模文档。 5. 定期评估威胁模型:由于威胁环境不断变化,威胁建模应该是一个持续的过程。定期评估模型可以帮助识别新的威胁,并对现有模型进行修正和更新。 6. 考虑安全措施:在确定威胁之后,需要考虑适当的安全措施来减轻或消除威胁。这些措施可以包括物理措施、网络安全措施、身份验证和访问控制等。 总之,STRIDE可以作为一种帮助识别系统中潜在威胁的有用工具。然而,为了最大限度地利用STRIDE,需要结合实际情况和经验,不断完善和更新威胁建模的过程。 ### 回答2: 微软威胁建模模型STRIDE是一种用于评估软件系统安全的框架。在实际中,可以按照以下步骤运用STRIDE模型。 首先,确定系统的边界和功能。了解系统的功能和范围,确定系统与外部环境之间的边界。这将有助于识别潜在的威胁来源和可能的攻击路径。 其次,对系统进行分析,并使用STRIDE模型识别潜在威胁。STRIDE模型是基于六种不同的威胁类别:Spoofing(伪装)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、Denial of Service(拒绝服务)和Elevation of Privilege(提权)。通过应用STRIDE模型,可以识别潜在的威胁并进行分类。 然后,对特定的威胁进行分析和评估。为每个被识别的威胁,进行详细的分析,评估其潜在影响和可能性。这将有助于确定哪些威胁是最严重的,以及应该优先处理哪些威胁。 接下来,制定相应的安全对策。针对每个被识别的威胁,制定相应的安全对策。这些对策应该能够阻止或减轻威胁的发生,并提供一定的保护措施。 最后,实施和监控安全对策。将安全对策纳入软件开发和维护过程中,并进行监控和评估。定期检查和更新安全对策,以适应不断变化的威胁环境。 总的来说,STRIDE模型可以帮助软件系统的开发者和维护者全面评估和处理潜在的安全威胁。通过识别和分析威胁,制定相应的对策,并不断监控和更新安全措施,可以提高系统的安全性,并减少遭受攻击的风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

筑梦之月

原创不易,多谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值