威胁建模的定义、价值与应用
2022-11-10
来源:安全牛
目前,软件开发人员在兼顾软件性能、功能、易用性、架构和可观测性等的同时,还需要重点关注系统应用的安全问题。面对复杂的工作需要,软件专业人员可以采取工具进行协助,而威胁建模正是确保系统应用安全的工具之一。本文将主要对威胁建模的定义、价值以及威胁建模的应用等进行详细介绍。
威胁建模的定义
威胁建模是识别并评估如何管理系统中的安全弱点的过程。安全弱点好比一场战斗,威胁建模能够帮助开发人员知道敌人可能在哪里发动攻击,将会受到多大的伤亡,从而帮助企业建立有效的防御体系。
威胁建模的应用价值主要包括:
更清楚地了解安全需求
威胁建模将帮助企业明确精力应该优先投入在哪里、应该优先考虑哪些方面等。
反馈更快速、修复更省钱
威胁建模可以帮助企业尽早发现设计过程中的问题,在漏洞出现之前消除,这意味着不会失去客户的信任。
增加信心
恐惧未知会导致非理性的危险行为。整体安全常常给人以迷宫的感觉,但威胁建模可以帮助企业可以走出迷宫,让企业有信心迅速采取行动,推进创新的计划。
改进产品质量
安全历来是一种看不见的特性,很难量化。当开发人员急于向客户交付产品时,常常将安全抛在设计的后面。最近的许多数据泄露事件就是佐证。威胁建模让安全可以量化,被赋予相应的优先级。
威胁建模的类型与方法
以资产为中心的威胁模型,侧重于系统的不同部分或资产(通常是攻击面或信任边界)。然后分析资产可能面临的各种潜在攻击途径。
以攻击者为中心的威胁模型,让组织洞察威胁/攻击者的思维模式。他们在找什么?他们如何在系统中找到信息并利用它?然后组织把这些想法与可能有关的攻击面联系起来。
以软件为中心的威胁模型,使用设计和图表来直观呈现威胁和攻击面。这是主流的威胁建模方法,可以更全面、更清晰地洞察漏洞。
威胁建模有许多方法,但在团队选择一种或多种方法之前,有必要从更简单的方面入手,重点考虑关键问题:
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围绕收录已知威胁和历史攻击的资料库,组织可以将其应用于目前的系统中。没有什么比实际经历更能帮助防御了。在这种模式下,我们可以汲取以往教训,防止未来出现类似的安全问题。
更多信息可以来这里获取==>>电子技术应用-AET<<