目录
威胁建模介绍
威胁建模是识别资产、资产漏洞以及资产如何面临威胁的过程。 它是一种结合了各种安全活动的战略方法,例如漏洞管理、威胁分析和事件响应。 安全团队通常会执行这些练习,以确保其系统得到充分保护。 威胁建模的另一个用途是主动寻找降低任何系统或业务流程风险的方法。
但是国内企业安全这块,基本没有关于威胁建模相关的应用和实际。很大程度上后期直接进行安全测试,连前期的安全设计和安全编码都不存在。说多了,这篇博客注意介绍国外大企业在安全开发生命周期中普遍会使用到的安全模型或者说安全建模。
传统上,威胁建模与应用程序开发领域相关。 在本博客中,您将了解用于设计可抵御攻击的软件的常见威胁建模框架。 您还将了解对应用程序安全性不断增长的需求以及企业安全人员可以参与的方式。
为什么应用程序安全很重要?
应用程序已成为许多组织成功的重要组成部分。 例如,基于网络的应用程序允许来自世界任何地方的客户与企业、其合作伙伴和其他客户建立联系。
移动应用程序也改变了人们访问数字世界的方式。 智能手机通常是用户和企业之间交换数据的主要方式。 应用程序处理的数据量使得保护它们成为降低每个连接者风险的关键。
例如,假设应用程序使用带有 Log4Shell 漏洞的基于 Java 的日志记录库(CVE-2021-44228
关于这个漏洞,在我之前的博客中也有详细的介绍和说明)。 如果不修补,此漏洞可能允许远程执行代码,攻击者可以利用该漏洞从世界任何地方获得对您的系统的完全访问权限。 如果被利用,像这样的严重漏洞可能会影响数百万台设备。
应用层防护
应用程序层的防护需要进行适当的测试,以发现可能导致风险的弱点。 威胁建模是确保应用程序满足安全要求的主要方法之一。 DevSecOps 团队(代表开发、安全和运营)通常会执行这些分析。
威胁建模过程
典型的威胁建模过程是循环执行的:
-
定义范围
-
识别威胁
-
描述环境特征
-
分析威胁
-
降低风险
-
评估结果
威胁建模练习的六个步骤显示为一个循环。
理想情况下,威胁建模应在应用程序开发之前、期间和之后执行。 然而,进行彻底的软件分析需要时间和资源。 从应用程序的架构到其业务目的的一切都应该进行评估。 因此,多年来开发了许多威胁建模框架,以使这一过程更加顺利。
注意:威胁建模应纳入软件开发生命周期或 SDLC 的每个阶段。
威胁建模的通用框架:
进行威胁建模时,可以使用多种方法,例如:
1. STRIDE
2. PASTA
3. Trike
4. VAST
组织可以使用其中任何一种来收集情报并做出决策以改善其安全状况。 最终,“正确”的模型取决于应用程序可能面临的情况和风险类型。
STRIDE
STRIDE 是 Microsoft 开发的威胁建模框架。 它通常用于识别六种特定攻击向量中的漏洞。 首字母缩略词代表以下每个向量:欺骗、篡改、否认、信息泄露、拒绝服务和特权提升。
PASTA
攻击模拟和威胁分析流程 (PASTA) 是一个以风险为中心的威胁建模流程,由两位 OWASP 领导者开发,并得到一家名为 VerSprite 的网络安全公司的支持。 其主要重点是发现可行威胁的证据并将这些信息表示为模型。 当对应用程序或支持该应用程序的环境进行威胁建模时,可以应用 PASTA 的基于证据的设计。 其七个阶段流程由各种活动组成,其中包含环境的相关安全工件,例如漏洞评估报告。
Trike
Trike 是一种开源方法和工具,采用以安全为中心的方法进行威胁建模。 它通常用于关注安全权限、应用程序用例、权限模型以及支持安全环境的其他元素。
VAST
可视化、敏捷和简单威胁 (VAST) 建模框架是名为 ThreatModeler® 的自动化威胁建模平台的一部分。 许多安全团队选择使用 VAST 作为自动化和简化威胁建模评估的一种方式。
威胁建模的关键之一是提出正确的问题:
我们在做什么?
什么样的事情可能会出错?
我们正在做什么呢?
我们已经解决了所有问题了吗?
我们做得好吗?
针对上面这些问题使用数据流程图和攻击树等内容才能建立有效的威胁建模。