0x00 背景
威胁建模工具是 Microsoft 安全开发生命周期 (SDL) 的核心要素。潜在安全问题处于无需花费过多成本即可相对容易解决的阶段,软件架构师可以使用威胁建模工具提前识别这些问题。因此,它能大幅减少开发总成本。此外,我们设计该工具时考虑到了非安全专家的体验,为他们提供有关创建和分析威胁模型的清晰指导,让所有开发人员都可以更轻松地使用威胁建模。
通过使用Microsoft threat-modeling工具进行进行威胁建模
0x01 下载安装
前期准备:
- 需要安装netframework 4.7.1 及其以上
- 下载代理程序后,需要联网进行安装
软件下载安装:
https://docs.microsoft.com/zh-cn/azure/security/azure-security-threat-modeling-tool
0x02 入门指南
指导你开始使用 Microsoft SDL 威胁建模方法的过程,并演示如何使用该工具来开发优秀的威胁模型,以作为安全进程的主干。详细文档在微软官网有连接,此外可以百度:威胁建模工具Microsoft Threat Modeling Tool
入门
https://docs.microsoft.com/zh-cn/azure/security/azure-security-threat-modeling-tool-getting-started
威胁建模工具功能概述
https://docs.microsoft.com/zh-cn/azure/security/azure-security-threat-modeling-tool-feature-overview
威胁
https://docs.microsoft.com/zh-cn/azure/security/azure-security-threat-modeling-tool-threats
发行版
https://docs.microsoft.com/zh-cn/azure/security/azure-security-threat-modeling-tool-releases
0x03 缓解措施
威胁建模工具缓解措施根据 Web 应用程序安全框架分类,具体如下:
类别 | 描述 |
谁在何时做了什么? 审核与日志记录是指应用程序如何记录安全相关的事件 | |
你是谁? 身份验证是某个实体证明另一实体的身份的过程,这通常是通过用户名和密码等凭据完成的。 | |
该怎么办? 授权是指应用程序如何提供对资源和操作的访问控制 | |
在与谁对话? 通信安全可确保以尽量安全的方式进行所有通信 | |
应用程序的运行身份是什么? 它连接到哪些数据库? 如何管理应用程序? 如何保护这些设置? 配置管理是指应用程序如何处理这些操作问题 | |
如何保守机密(保密性)? 如何防止对数据或库(完整性)进行篡改? 如何针对必须强加密的随机值提供种子? 加密是指应用程序强制实施保密性和完整性 | |
当应用程序中的方法调用失败时,应用程序会采取什么措施? 透露的信息量有多大? 是否向最终用户返回友好的错误信息? 是否向调用方传回有用的异常信息? 应用程序是否正常失败? | |
如何知道应用程序接收的输入有效且安全? 输入验证是指应用程序在进一步处理之前筛选、清理或拒绝输入。 请考虑通过入口点限制输入,通过出口点为输出编码。 是否信任数据库和文件共享等源中的数据? | |
应用程序如何处理敏感数据? 敏感数据是指应用程序如何处理必须在内存中、通过网络或在持久性存储中保护的任何数据 | |
应用程序如何处理和保护用户会话? 会话是指用户与 Web 应用程序之间的一系列相关交互 |
它可以帮助识别:
- 最常见的错误发生在哪个位置
- 可在哪个位置实施可行性最大的改进
因此,可以使用这些类别来重点完成并优化安全工作,以便在输入验证、身份验证和授权类别中出现最流行的安全问题时,可以从这些位置着手。
安全框架:审核和日志记录 | 缓解措施
产品/服务 | 文章 |
Dynamics CRM | |
Web 应用程序 | |
数据库 | |
Azure 存储 | |
WCF | |
Web API | |
IoT 现场网关 | |
IoT 云网关 |
安全框架:身份验证 | 缓解措施
产品/服务 | 文章 |
Web 应用程序 | |
数据库 | |
Azure 事件中心 | |
Azure 信任边界 | |
Service Fabric 信任边界 | |
标识服务器 | |
计算机信任边界 | |
WCF | |
Web API | |
Azure AD | |
IoT 现场网关 | |
IoT 云网关 | |
Azure 存储 |
安全框架:授权 | 缓解措施
产品/服务 | 文章 |
计算机信任边界 | |
Web 应用程序 | |
数据库 | |
IoT 云网关 | |
Azure 事件中心 | |
Azure Document DB | |
Azure 信任边界 | |
Service Fabric 信任边界 | |
Dynamics CRM | |
Dynamics CRM 门户 | |
Azure 存储 | |
移动客户端 | |
WCF | |
Web API | |
IoT 设备 | |
IoT 现场网关 |
安全框架:通信安全 | 缓解措施
产品/服务 | 文章 |
Azure 事件中心 | |
Dynamics CRM | |
Azure 数据工厂 | |
标识服务器 | |
Web 应用程序 | |
数据库 | |
Azure 存储 | |
移动客户端 | |
WCF | |
Web API | |
用于 Redis 的 Azure 缓存 | |
IoT 现场网关 | |
IoT 云网关 |
安全框架:配置管理 | 缓解措施
产品/服务 | 文章 |
Web 应用程序 | |
数据库 | |
Web API | |
IoT 设备 | |
IoT 现场网关 | |
IoT 云网关 | |
计算机信任边界 | |
Azure 存储 | |
WCF |
安全框架:加密 | 缓解措施
产品/服务 | 文章 |
Web 应用程序 | |
数据库 | |
IoT 设备 | |
IoT 云网关 | |
Dynamics CRM 移动客户端 | |
Dynamics CRM Outlook 客户端 | |
标识服务器 |
安全框架:异常管理 |缓解措施
产品/服务 | 文章 |
WCF | |
Web API | |
Web 应用程序 |
安全框架:输入验证 | 缓解措施
安全框架:敏感数据 | 缓解措施
产品/服务 | 文章 |
计算机信任边界 | |
Web 应用程序 | |
数据库 | |
Web API | |
Azure Document DB | |
Azure IaaS VM 信任边界 | |
Service Fabric 信任边界 | |
Dynamics CRM | |
Azure 存储 | |
移动客户端 | |
WCF |
安全框架:会话管理
产品/服务 | 文章 |
Azure AD | |
IoT 设备 | |
Azure Document DB | |
ADFS | |
标识服务器 | |
Web 应用程序 | 可通过 HTTPS 使用的应用程序必须使用安全 Cookie 所有基于 HTTP 的应用程序只应为 Cookie 定义指定 HTTP |
Web API |
风险缓解具体文档
https://docs.microsoft.com/zh-cn/azure/security/azure-security-threat-modeling-tool-mitigations
欢迎大家分享更好的思路,热切期待^^_^^ !