网络安全的本质是攻防双方的对抗与博弈。攻击方往往凭借天赋、脑洞和个人兴趣发起五花八门的攻击活动,执行单点式攻击;但是防御方却要防住所有,全靠脑洞不讲究方法就难免会有疏漏。因此防御方需要有方法论的指导。 威胁建模就是其中一种方法论和指导思想。
威胁建模就是通过结构化的方法,系统地识别、评估产品的安全风险和威胁,并针对这些风险、威胁制定消减措施的一个过程。未知攻,焉知防,我们应当站在攻击者的视角去审视网络安全问题,识别威胁,规避风险。威胁建模是结构化的理论框架,是在网络安全前辈们基于工程实践情况下总结出的理论体系框架,从审视者和践行者的眼光去构建威胁模型,在理论框架指导下,不再茫然和手足无措,有利于识别不断变化的安全威胁。
不管是哪种类型的威胁建模,都遵循四个主要步骤:
● 抽丝剥茧,分解应用程序或基础架构
● 精细入微,确定局部分支面临的威胁
● 兵来将挡,采取什么对策或缓解措施
● 主次分明,确定各类威胁等级并应对
1. CIA模型
CIA原则就是一切的攻防手段都是围绕着保密性(C)、完整性(I)、可用性(A)三原则展开。
2. 攻击树模型(Attack trees)
攻击树由90年代后期的信息安全传奇人物布鲁斯·施耐尔(Bruce Schneier)开创,提供了一种正式而条理清晰的方法来描述系统所面临的安全威胁和系统可能受到的多种攻击。我们用树型结构来表示系统面临的攻击,其中根节点代表被攻击的目标,叶节点表示达成攻击目标的方法。通过穷举和抽丝剥茧的方法不断找到最清晰的攻击手段和攻击路径。
3. STRIDE威胁建模
STRIDE是威胁建模的鼻祖,由Microsoft安全研究人员于1999年创建,从攻击者的角度,把威胁划分成6个类别,分别是Spooling(仿冒)、Tampering(篡改)、Repudiation(抵赖)、InformationDisclosure(信息泄露)、Dos(拒绝服务)和Elevation of privilege (权限提升)。随着全球对隐私保护重视程度的加大,隐私安全也成了产品的一个重要威胁,STRIDE的6个威胁也添加了一项隐私(Privacy),变成了ASTRIDE,A代表Advanced。
4. DREAD威胁建模
DREAD被认为是STRIDE模型的一个附加组件,该模型使建模人员可以在确定威胁后对其进行排名,是一种威胁评价模型,包括以下5个方面:
● 潜在损失(Damage Potential):如果缺陷被利用,损失有多大?
● 重现性(Reproducibility) :重复产生攻击的难度有多大?
● 可利用性(Exploitability) :发起攻击的难度有多大?
● 受影响用户(Affected Users):用粗略的百分数表示,有多少用户受到影响?
● 可发现性(Discoverability) :缺陷容易发现吗?
5. PASTA威胁建模
PASTA代表攻击模拟和威胁分析过程,致力于使技术安全要求与业务目标保持一致。由七个步骤组成:定义目标;定义技术范围;应用程序分解;威胁分析;漏洞和弱点分析;攻击建模;风险与影响分析。
6. VAST威胁建模
VAST代表可视化,敏捷威胁建模。该模型是 ThreatModeler(自动威胁建模平台)的基础,该平台可以区分应用程序和运营威胁模型。VAST专为集成到围绕devops构建的工作流中而设计。
7. Trike威胁建模
Trike是用于威胁建模和风险评估的框架的开源工具,它基于防御的角度,而不是试图模仿攻击者的思维过程。使用Trike,您可以为要防御的系统建模,并通过CRUD的角度评估每个组件,也就是说,谁可以创建,读取,更新或删除该实体。通过遍历数据流程图来识别威胁,每种威胁仅分为两类:拒绝服务或特权提升。
8. OCTAVE威胁建模
OCTAVE代表“运营关键威胁,资产和脆弱性评估”,是卡耐基梅隆大学开发的一种威胁建模方法,其重点是组织风险而不是技术风险。它包括三个阶段:
● 建立基于资产的威胁配置文件
● 识别基础架构漏洞
● 制定安全策略和计划
9. NIST威胁建模
美国国家标准技术研究院拥有自己的以数据为中心的威胁建模方法,该方法包括四个步骤:
● 系统和数据识别和表征
● 识别并选择要包含在模型中的攻击媒介
● 表征缓解攻击媒介的安全控件
● 分析威胁模型
10. CVSS(Common Vulnerability Scoring System)建模
CVSS即”通用漏洞评分系统”,是一个”行业公开标准,其被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度”。CVSS得分基于一系列维度上的测量结果,这些测量维度被称为量度(Metrics)。漏洞的最终得分最大为10,最小为0。得分7~10的漏洞通常被认为比较严重,得分在4~6.9之间的是中级漏洞,0~3.9的则是低级漏洞。CVSS系统包括三种类型的分数:基本分数、暂时分和环境分。
11. TVRA (Threat, Vulnerability and Risk Assessment)
TVRA指威胁脆弱性风险评估,它是所有安全工作的基础。
12. LINDDUN威胁建模
LINDDUN是一种隐私威胁建模方法,支持分析师系统地引发和减轻软件架构中的隐私威胁。
LINDDUN提供支持,以结构化方式指导您完成威胁建模过程。此外,LINDDUN还提供隐私知识支持,让非隐私专家也能推理出隐私威胁。
13. Security Cards(安全卡)模型
安全卡可识别异常和复杂的攻击 。它们不是一种正式的方法,而是一种集思广益的技术。此方法使用一副42张卡片组来促进威胁发现活动:“人类影响”(9张卡片)、“对手的动机”(13张卡片)、“对手的资源”(11张卡片)和“对手的方法”(9张卡片)。
14. ATT&CK威胁建模
MITRE ATT&CK是一个全球可访问的基于真实世界观察的对手战术和技术的知识库。包括企业版本、移动版本、工业控制系统版本。
本文只做简单介绍,普及威胁建模的基础知识,后续再针对每种建模方式的应用场景、解决方案做详细介绍。