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

1. 概览

微软威胁建模工具(Threat Modeling Tool)是 Microsoft 安全开发生命周期 (SDL,Security Develop 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 知识库。

4. 创建模型

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

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

结构细节说明:

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

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

4.1. 分析威胁

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

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

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

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

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

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

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

4.2. 报表和共享

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

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

  • Threat Model Demo.zip (访问密码: 6277)

5. 参考

[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


推荐阅读:

  • 「 安全设计」68家国内外科技巨头和安全巨头参与了CISA发起的安全设计承诺,包含MFA、默认密码、CVE、VDP等七大承诺目标
  • 「 网络安全常用术语解读 」软件物料清单SBOM详解
  • 「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
  • 「 网络安全常用术语解读 」SBOM主流格式SPDX详解
  • 「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
  • 「 网络安全常用术语解读 」漏洞利用交换VEX详解
  • 「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐
  • 「 网络安全常用术语解读 」什么是0day、1day、nday漏洞
  • 「 网络安全常用术语解读 」软件物料清单SBOM详解
  • 「 网络安全常用术语解读 」杀链Kill Chain详解
  • 「 网络安全常用术语解读 」点击劫持Clickjacking详解
  • 「 网络安全常用术语解读 」悬空标记注入详解
  • 「 网络安全常用术语解读 」内容安全策略CSP详解
  • 「 网络安全常用术语解读 」同源策略SOP详解
  • 「 网络安全常用术语解读 」静态分析结果交换格式SARIF详解
  • 「 网络安全常用术语解读 」安全自动化协议SCAP详解
  • 「 网络安全常用术语解读 」通用平台枚举CPE详解
  • 「 网络安全常用术语解读 」通用缺陷枚举CWE详解
  • 「 网络安全常用术语解读 」通用漏洞披露CVE详解
  • 「 网络安全常用术语解读 」通用配置枚举CCE详解
  • 「 网络安全常用术语解读 」通用漏洞评分系统CVSS详解
  • 「 网络安全常用术语解读 」通用漏洞报告框架CVRF详解
  • 「 网络安全常用术语解读 」通用安全通告框架CSAF详解
  • 「 网络安全常用术语解读 」漏洞利用交换VEX详解
  • 「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐
  • 「 网络安全常用术语解读 」通用攻击模式枚举和分类CAPEC详解
  • 「 网络安全常用术语解读 」网络攻击者的战术、技术和常识知识库ATT&CK详解
  • 「 网络安全常用术语解读 」静态应用安全测试SAST详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统防火墙开放端口命令

目录 linux相关命令参考文章1.开放端口1.1 开发单个端口1.2 一次性开放多个端口 2.保存设置3.查看所有开放的端口4.查看防火墙状态 linux相关命令参考文章 管理、设置防火墙规则(firewalld): https://download.csdn.net/blog/column/8489557/137911049 i…

Springboot 自定义线程池 ThreadPoolTaskExecutor

场景 假设 需要使用多线程清理es中的历史数据 知识 参数解释: corePoolSize(核心线程数):线程池中的核心线程数量,即使线程池处于空闲状态,这些核心线程也不会被销毁。maximumPoolSize(最大…

Android 获取内外SD卡路径

方法一:使用Environment类和反射 获取内置SD卡路径: 通过Environment.getExternalStorageDirectory().getAbsolutePath()或者System.getenv("EXTERNAL_STORAGE") 获取外置SD卡路径: String extSdcardPath System.getenv("SEC…

打造AI虚拟伴侣 - 优化方案

第一部分:框架优化概述 1、精确定位: 构建一个高度灵活且用户友好的平台,旨在通过无缝集成多种大型语言模型(LLMs)后端,为用户创造沉浸式的角色交互体验。不仅适配电脑端,还特别优化移动端体验,满足二次元AI虚拟伴侣市场的特定需求。 2、核心功能强化: 增强后端兼容…

一起学习大模型 - 从底层了解Token Embeddings的原理(1)

文章目录 前言1. Token Embeddings简介2. 实现原理2.1 步骤2.2 伪代码2.2.1 代码2.2.2 输出示例2.2.3 代码详细解释2.2.4 实际应用 3. 选用高维向量的好处是什么3.1 捕捉语义关系3.2 处理多义词3.3 提升模型性能3.4 平滑数据稀疏性 前言 大家在使用离线或在线的Token Embeddin…

每日练习之深度优先搜索——最大的湖

最大的湖 题目描述 运行代码 #include<iostream> using namespace std; bool mp[102][102]; int sum,num; int N,M,K; int dfs(int x,int y ) {if( mp[x][y] ){mp[x][y]0;sum;dfs(x1,y);dfs(x-1,y);dfs(x,y1);dfs(x,y-1);}return 0; } int main() {cin>>N>>…

【每日一题】52.20个机器学习问题 2 (模型部署、实践流程和应用问题)

在上一篇《20个机器学习问答题》中&#xff0c;问题主要围绕机器学习的基础概念和理论知识。 这次&#xff0c;本篇内容针对机器学习的实践和应用继续提出了20个不同的问题。【点击跳转原文】 在实际应用中&#xff0c;机器学习模型的建立流程是怎样的&#xff1f; 机器学习模…

使用delphi11编写一个基于xls作为数据库的照片展示程序

1、创建xls文档可以参考前一篇博客&#xff0c;并使用wps将文档保存为2003格式xls后缀。 2、在form上面放置adoconnection、adotable、datasource、spinedit、timer、checkbox、image、4个button组件。 image的设置&#xff1a; Image1.Align : alClient; Image1.Center : Tr…

2024年,企业的人才管理怎么做?这5点是关键!

当今时代&#xff0c;各行各业都面临着激烈的竞争。这些竞争归根结底都是人才的竞争。企业若想在竞争中掌握主动权&#xff0c;实现基业长青&#xff0c;就必须努力留住人才&#xff0c;并充分发挥他们的积极性、主动性和创造性。因此&#xff0c;做好人才管理是企业实现长期可…

如何找到docker的run(启动命令)

使用python三方库进行 需要安装python解释器 安装runlike安装包 pip3 install runlike 运行命令 runlike -p <container_name> # 后面可以是容器名和容器id&#xff0c;-p参数是显示自动换行实验 使用docker启动一个jenkins 启动命令为 docker run -d \ -p 9002:80…

机器学习 - 特征监控

特征监控的定义 特征监控是机器学习模型在生产环境中持续监控输入特征的过程&#xff0c;确保输入数据特征的分布和性质与模型训练时一致&#xff0c;从而保证模型在生产环境中的表现稳定和可靠。特征监控通过检测数据的漂移、变化和异常&#xff0c;帮助识别潜在的问题并采取…

无线领夹麦克风哪个品牌音质最好,揭秘无线领夹麦哪个牌子好用

​随着社交媒体和内容创作的兴起&#xff0c;清晰可靠的音频捕捉已成为打造高品质作品的关键要素。无线领夹麦克风因其轻巧设计和用户友好的接口而受到青睐&#xff0c;它能够确保你的声音在任何环境下都能被完美捕捉。经过精心测试和对比&#xff0c;以下几款无线领夹麦克风是…

Socket CAN中ctrlmode有哪些?

在Linux中,socketcan 的 ctrlmode 是一个用于配置CAN设备控制模式的标志字段。该字段的值由一组标志位组成,这些标志位控制CAN设备的各种操作模式。以下是一些常见的 ctrlmode 标志及其含义: CAN_CTRLMODE_LOOPBACK: 描述:启用回环模式。作用:设备在发送帧的同时会接收它…

大数据学习之安装并配置maven环境

什么是Maven Maven字面意&#xff1a;专家、内行Maven是一款自动化构建工具&#xff0c;专注服务于Java平台的项目构建和依赖管理。依赖管理&#xff1a;jar之间的依赖关系&#xff0c;jar包管理问题统称为依赖管理项目构建&#xff1a;项目构建不等同于项目创建 项目构建是一…

Linux服务器自动监听Web应用接口,未响应自动重启JAVA应用脚本

近期部署了一个多台负载的应用在linux服务器&#xff0c;但总有其中的某台服务器应用会出现假死&#xff0c;导致dubbo请求出现RPC调用失败。当然主要问题肯定是程序上的某些问题导致的。但无法快速定位排查&#xff0c;所以弄个脚本自动监听接口&#xff0c;当出现未响应&…

《NoSQL数据库技术与应用》 MongoDB副本集

《NoSQL数据库技术与应用》 教学设计 课程名称&#xff1a;NoSQL数据库技术与应用 授课年级&#xff1a; 20xx年级 授课学期&#xff1a; 20xx学年第一学期 教师姓名&#xff1a; 某某老师 2020年5月6日 课题 名称 第4章 MongoDB副本集 计划学时 8课时 内容 分析 独立模式可…

第四十四天 完全背包理论 | 518.零钱兑换||

1.dp[j]含义&#xff1a;容量为j的背包&#xff0c;有一些可重复放入的物品&#xff0c;放满这个背包的最大价值 完全背包中每个物品可以使用无数次&#xff1a;遍历背包时采用正序遍历 &#xff08;对于纯完全背包问题&#xff09;先遍历物品还是先遍历背包无所谓&#xff1…

C语言——⾼位优先与低位优先的不同之处是什么?

一、问题 C语⾔的最⼤特⾊就是可移植性好。根据机器类型的不同&#xff0c;⾼位优先与低位优先也不同。那么&#xff0c;最好的可移植的 C 程序应该同时适⽤这两种类型的计算机。下⾯了解⼀下⾼位优先与低位优先的不同之处。 二、解答 所谓的⾼位优先&#xff0c;就是最低的地…

GitHub的原理及应用详解(五)

本系列文章简介&#xff1a; GitHub是一个基于Git版本控制系统的代码托管平台&#xff0c;为开发者提供了一个方便的协作和版本管理的工具。它广泛应用于软件开发项目中&#xff0c;包括但不限于代码托管、协作开发、版本控制、错误追踪、持续集成等方面。 GitHub的原理可以简单…