安全牛课堂 | 威胁建模的定义、价值与应用
作者: 日期:2022年11月09日 阅:4,004

目前,软件开发人员在兼顾软件性能、功能、易用性、架构和可观测性等的同时,还需要重点关注系统应用的安全问题。面对复杂的工作需要,软件专业人员可以采取工具进行协助,而威胁建模正是确保系统应用安全的工具之一。本文将主要对威胁建模的定义、价值以及威胁建模的应用等进行详细介绍。

威胁建模的定义

威胁建模是识别并评估如何管理系统中的安全弱点的过程。安全弱点好比一场战斗,威胁建模能够帮助开发人员知道敌人可能在哪里发动攻击,将会受到多大的伤亡,从而帮助企业建立有效的防御体系。

威胁建模的应用价值主要包括:

•更清楚地了解安全需求

威胁建模将帮助企业明确精力应该优先投入在哪里、应该优先考虑哪些方面等。

•反馈更快速、修复更省钱

威胁建模可以帮助企业尽早发现设计过程中的问题,在漏洞出现之前消除,这意味着不会失去客户的信任。

•增加信心

恐惧未知会导致非理性的危险行为。整体安全常常给人以迷宫的感觉,但威胁建模可以帮助企业可以走出迷宫,让企业有信心迅速采取行动,推进创新的计划。

•改进产品质量

安全历来是一种看不见的特性,很难量化。当开发人员急于向客户交付产品时,常常将安全抛在设计的后面。最近的许多数据泄露事件就是佐证。威胁建模让安全可以量化,被赋予相应的优先级。

威胁建模的类型与方法

•以资产为中心的威胁模型,侧重于系统的不同部分或资产(通常是攻击面或信任边界)。然后分析资产可能面临的各种潜在攻击途径。

•以攻击者为中心的威胁模型,让组织洞察威胁/攻击者的思维模式。他们在找什么?他们如何在系统中找到信息并利用它?然后组织把这些想法与可能有关的攻击面联系起来。

•以软件为中心的威胁模型,使用设计和图表来直观呈现威胁和攻击面。这是主流的威胁建模方法,可以更全面、更清晰地洞察漏洞。

威胁建模有许多方法,但在团队选择一种或多种方法之前,有必要从更简单的方面入手,重点考虑关键问题:

1. 我们在开发什么?

先要了解我们在开发什么:新软件、物联网生态系统还是功能?为此创建数据流程图也很有用,然后我们可以标注系统的信任边界。

2. 会出现什么问题?

针对数据流图中的每个要素或联系列出潜在的威胁。在这一步还可以充分利用安全卡、STRIDE或杀伤链等方法。

3. 应该如何做?

根据系统的当前状态和潜在威胁,开始跟踪漏洞,并确定优先级。具体表现为需求中的恶意用户故事或测试用例。制定管理这些漏洞的措施:

•缓解:使系统更难被利用,比如默认要求身份验证才可访问应用程序。

•消除:尽量减少功能,以缩小应用程序的攻击面。

•转移:转移处理风险的责任。比如,利用API管理器来处理身份验证。

•接受:缓解、消除或转移风险可能成本过高;接受风险是最后的手段。我们仍需要将此记录下来,以便所有人意识到剩余风险。

确保上面的第1步到第3步足够具体、可操作,以便将来针对发现的新威胁作修订调整。这好比敏捷方法中的回顾。数据流程图是活文档,我们可以定期更新、管理控制版本。

威胁建模的常见模型

安全卡

安全卡方法不是很全面,但可以对开发的系统和威胁的具体例子提出探索性问题。该方法由华盛顿大学的Tamara Denning、Batya Friedman和Tadayoshi Kohno于2013年开发,包括四个维度的探索性问题:

•对手的动机

•对手的资源

•对手的方法

•人员的影响

STRIDE模型

微软的Praerit Garg和Loren Kohnfelder开发了STRIDE,这种方法列出了系统威胁的一般类别:

•欺骗:我们如何确保用户的真实性?

•篡改:我们如何核查数据的完整性?

•拒绝:我们如何审计系统中的操作,验证某人有没有企图做某事?

•信息泄露:我们如何避免机密信息被不应该看到的人看到?

•拒绝服务:我们如何防止资源被恶意耗尽?

•权限提升:我们如何阻止某人获得不应该被授权获得的额外权限?

DREAD

DREAD用于量化威胁带来的风险,每个字母代表计算风险时考虑的因素。DREAD风险=损害+可重现性+可利用性+受影响用户+可发现性。DREAD在确定威胁优先级方面非常有用。如果企业面临众多威胁,又不清楚当前面临的风险,DREAD是明智的选择。

PASTA

PASTA代表“攻击模拟和威胁分析流程”。它是2012年开发的一种以风险为中心的威胁建模方法。PASTA包括以下步骤:

1. 定义业务目标:目前的里程碑或产品目标是什么?

2. 定义技术范围:这些目标的故事图或书面功能需求是什么?

3. 分解应用程序:如果需要,将应用程序的架构分解为可部署的构件、基础架构,甚至更小的组件。

4. 威胁分析:查看信任边界和攻击面;可能会有哪些潜在的攻击?

5. 弱点和漏洞分析:查看当前状态,看看已分析的威胁在哪个环节可能缺少防御。

6. 攻击枚举和建模:模拟潜在的攻击途径。看看结果会怎样。

7. 风险和影响分析:找出每个漏洞面临的风险,优先处理高风险漏洞。

如果企业有不确定的潜在风险时,PASTA是一种全面的建模方法,非常有用。IT人员可以帮助描述组织安全的整体状况,并将安全列为设计的核心。

杀伤链

杀伤链是一种军事技术,由洛克希德•马丁公司稍加改动用于网络安全。它描述了整条攻击链:侦察、武器化、投放、利用、安装、指挥和控制以及对目标实施的行动。它还描述了杀伤链每个阶段可能出现的步骤:检测、拒绝、破坏、降级、欺骗和遏制。

杀伤链可以清楚地回答“会出什么问题?”和“我们该怎么做?”这类问题。一旦组织确定了特定的威胁、攻击面或信任边界,就可以对杀伤链和防御进行建模。

MITRE ATT&CK

MITRE ATT&CK围绕收录已知威胁和历史攻击的资料库,组织可以将其应用于目前的系统中。没有什么比实际经历更能帮助防御了。在这种模式下,我们可以汲取以往教训,防止未来出现类似的安全问题。

参考链接:

https://www.splunk.com/en_us/blog/learn/threat-modeling.html


相关文章