威胁建模的方法最初是为了帮助开发更多的安全的操作系统,但已经开发的大量威胁建模方法,有些只关注软件发展,有些仅涵盖业务或组织的风险和威胁,另有一些可能是技术性的,不同的威胁模型都在基于不同的目的而开发和使用的。
美国国土安全部(DHS)的下一代网络基础设施(NGCI)Apex计划将使用威胁建模和网络攻防演练的方式来为风险指标的开发、技术的评估和探寻,以及为如何降低风险提供信息。DHS评估了现有的框架无法满足其NGCI Apex计划的需求,促使其开发一个威胁建模框架。
不同场景下对威胁的定义有些不同:比如威胁是可能通过未经授权的披露、滥用、更改或破坏信息或信息系统而对信息或信息系统的机密性、完整性或可用性造成损害的事件。(联邦金融考试委员会)任何可能通过未经授权的访问、破坏、披露或修改信息和/或拒绝服务。(NIST)。威胁事件:有可能导致不良后果或影响的事件或情况。
NIST SP800-30R1中识别四种类型的威胁源:对抗性、意外、结构和环境。对抗性威胁有两个主要方面:
• 特征(例如能力、意图和目标 [NIST 2012])
• 行为通常称为恶意网络活动,该行为可以用TTP来描述:
– “战术是对行为的高级描述,技术是在战术背景下对行为的详细描述,而程序则是在技术背景下的更低层次、更详细的描述。TTP描述攻击者使用特定恶意软件变种、操作顺序、攻击工具、传递机制(例如,网络钓鱼或水坑攻击)或漏洞利用的倾向。”[NIST 2016c]
– 行为或行动可以根据威胁向量(或攻击向量)来表征,攻击向量或攻击路径是达到网络威胁攻击效果的一般方法,可以包括网络的、物理或动力学、社会工程和供应链攻击。攻击向量受攻击发生的环境影响,通常在事件处理或漏洞修复中被枚举。
威胁场景通常指的是一组离散的威胁事件,与特定威胁源或多个威胁源相关联。用来描述事件是如何由威胁源引起的,或导致损害的。威胁场景的开发在分析上很有用,因为某些漏洞可能不会被利用。并分析说明一组漏洞如何综合起来,可能被一个或多个威胁事件利用。此外,威胁场景讲述了一个故事,用于风险沟通和分析。
网络威胁建模是在网络空间中开发和应用对抗性威胁(来源、场景和特定事件)表示的过程。对抗性威胁可能针对或 影响设备、应用程序、系统、网络、任务或业务功能(以及支持该任务或业务功能的系统系统)、组织、区域或关键基础设施部门。网络威胁建模过程可以通过多种方式为网络安全和弹性相关的工作提供相关信息,可用作风险管理的一部分,也可用作网络攻防演练、技术分析和探寻、系统安全工程、安全运营和分析等环节。被认定为与NGCI Apex程序是相关的有三个:风险管理和度量的输入;网络战中威胁场景的构建;技术的探寻。
风险管理可以由四个组件或过程组成:风险框架、风险评估、风险响应和风险监控。
• 风险框架,陈述对风险管理环境的假设并定义风险管理策略,威胁源的假设是核心,威胁事件的特征或分类可用于网络安全组合管理
• 风险评估,将威胁模型与环境模型(可能发生威胁的操作和技术)结合在一起,威胁场景或单个威胁事件的可能性和后果严重性
• 风险响应,涉及评估潜在的替代或风险缓解的措施(降低后果的可能性和/或严重性的方法),因此侧重于威胁模型的威胁事件和威胁情景
• 风险监控,涉及寻找环境变化的迹象,特别是在进行持续监控和安全评估的系统中的对手活动指标,强调威胁事件并依赖于威胁信息共享,但更高级别的情报分析会寻找对手特征的变化,并反馈给风险框架和风险
识别威胁源和事件是风险评估的开始,如下图所示
图1:威胁建模与风险评估的集成
图2:威胁与风险评估中要素的关系
网络安全风险可以在不同的范围内进行管理,主要对应于组织层(或执行层)、任务/业务功能层(或业务/流程层)和信息系统层(或实施/运营层)。
• 系统实施或运营级别,威胁模型可以促使选择特定的安全控制或行动方案,如SDLC的阶段
• 任务/业务功能级别,威胁模型可以促进企业架构、信息安全架构及特定的业务功能架构
• 组织层面,威胁模型反映并表达了组织的威胁环境的假设
在企业之上,威胁模型可以为威胁情报信息共享提供通用结构,并可支持多方参与的网络攻防演练的开发
图3:威胁模型支持的风险管理的范围
在风险评估中,具体采用的威胁建模的方法可以从三个方向开始:
• 首先对威胁进行通用或具体的建模,然后将其应用于相关环境;
• 对环境中的系统、数据和边界进行建模,然后确定哪些相关的威胁;
• 首先识别被威胁影响的组织的资产,描述可能影响或针对这些资产的威胁,并根据系统定位资产。
该三种方法是以风险的不同方面作为威胁建模的起始点,但评估风险的模式都是一样的,包括假设相关环境的脆弱性、评估威胁事件和场景发生的可能性和影响的严重性。
图4:威胁模型的方法
网络安全控制、技术和实践有助于降低风险,威胁模型中的对手的特征和典型行为也常用于开发的工作描述中,或者更信任的模型来用于建立标准,评估安全的产品。
为支持技术的探寻,一种是使用网络防御矩阵的方法进行分类,如下图Cyber Apex Review Team (CART)使用的和CSF框架相映射的方法。CART识别出金融服务行业的四个重点:Network-Identitfy,Network-Detect, Data-Protect, and Data-Detect。每个单元也可以被视为给定风险缓解的效果的类型。
图5:网络防御矩阵
图6:网络防御矩阵填充
而Lockheed Martin的防御矩阵方法,由攻击链生命周期作为行,军事对手的影响的阶段作为列,来描述风险缓解。
图7:LockheedMartin的防御矩阵
如前文所述,威胁模型是基于不同开发的目的开发的,例如一些威胁建模的方法隐含或明确包含在风险管理的方法中,另外还有一些支持或利用威胁信息进行共享。大致可分为三大类:用于网络风险管理的、用于支持设计分析和测试的、支持信息共享和安全运营的。
网络风险管理的框架通常会假设一个潜在的威胁模型或威胁建模的框架,例如NIST CSF的威胁建模是隐含在框架中,而在NIST SP800‑30R1中是明确的,并且是风险视图的组成部分。
在 NIST 框架中执行风险管理的三个级别与 NIST SP 800‑39管理信息安全风险 [NIST 2011] 中定义的三个风险管理级别一致:组织、任务/业务功能, 和系统。该框架的核心功能可用于对已识别威胁的缓解措施进行分组和审查。与 NIST SP 800‑30R1 [NIST 2012] 和其他风险流程相结合,它提供了一个通用框架。
图8:NIST CSF基于风险管理的执行层级及核心功能
NIST SP 800‑30R1提供了一个具有代表性的威胁模型,作为整体风险评估方法的一部分。该威胁模型包括:
• 威胁源分类,并附有针对对抗性威胁(能力、意图和目标)和非对抗性威胁(影响范围)的说明;
• 典型的对抗性威胁事件(使用网络攻击活动的结构)和典型的非对抗性威胁事件
• 诱发条件的分类(即影响环境因素的环境因素)威胁事件发生或导致不利后果的可能性
图9:威胁源的分类
基于攻击者的能力定义了威胁层次的结构,总共六层:一、二层利用已知漏洞,三四层发现新的漏洞,五六层会产生漏洞。威胁层次结构用于激励和构建风险管理策略的建议,风险表示为威胁、脆弱性和后果的函数。威胁具有意图和能力的特征;相应的策略威慑和破坏。漏洞具有先天性和引入性的特点;相应的策略是防御和检测。结果具有可修复性和最终性的特点,具有相应的恢复和丢弃策略。
图10:DSB威胁分类
MITRE 公司的方法,使用组织的预期网络对手的特征来指引针对网络威胁的准备建议,网络准备框架定义了组织准备的三个领域:治理、运营和架构与工程,对应与对手特征的意图、目标、能力各个方面。组织可以使用其框架评估当前的准备工作,首先在顶层识别出两者不匹配的地方,制定合适的组织战略。并在逐层详细的描述威胁和组织的关注点。
图12:Mitre Cyber准备框架
网络攻击生命周期模型最常被定义为针对企业 IT 和命令与控制 (C2) 系统的外部攻击,NIST 800‑30R1使用的七阶段网络攻击生命周期模型。还有很多变体的攻击生命周期模型,定义成12或4个等不同的阶段。
图13:网络攻击生命周期
DSB在供应链安全中开发的四个阶段的攻击链,情报计划、设计创建、插入、达到效果。
图14:DSB攻击链模型
攻击树或攻击图是开发用于风险评估或网络攻防演练威胁场景的成熟方法,也是网络威胁建模的最古老和最广泛使用的方法之一。攻击树或攻击图针对的树形系统,其中树根是攻击的目标,可以为多个具体的目标,叶子是实现该目标的方法、节点。因此,每个目标由一棵单独的树表示,并生成一个攻击树森林。现有的攻击树可用来发现威胁。
图15:通用的攻击树架构
图16:攻击树示例
内部威胁建模帮助识别内部活动指标的行为模型,还包括预测内部人员是否以及如何变得恶意,以及分析预测组织行为对内部人员行为影响的模型。内部威胁建模与网络威胁建模重叠,但内部威胁建模考虑外部参与者对内部人员的影响及收买的努力,另外也可包括非网络威胁的场景,如非电子的信息盗窃。
如下几种高度结构化的威胁建模方法,可用于系统设计和开发过程,以支持系统设计决策。主要的代表的模型有NIST SP 800‑154 草案中的建模方法;Microsoft 创建的欺骗、篡改、否认、信息披露、拒绝服务、特权提升 (STRIDE) ;卡内基梅隆软件工程研究所的运营关键威胁、资产和漏洞评估 (OCTAVE) 方法;以及英特尔和洛克希德马丁公司使用的结构化方法。
NIST 于 2016 年发布了一份新的威胁建模指导文件草案,该文件的重点是识别和优先考虑针对系统中特定类型数据的威胁 ,即以数据为中心的系统威胁建模方法。主要的步骤:
a) 首先,识别系统边界,识别和描述每个特定类型的要保护的数据,包括授权位置、合法处理过程中位置之间的移动、数据要 满足的安全目标,以及应用程序、服务和类别被授权以与安全目标相关的方式访问数据的用户
b) 然后针对每种数据类型和位置制定适用的攻击向量列表。识别用于改进数据保护的安全控制变更,并评估其针对每个攻击向量的有效性。
STRIDE是 Microsoft 内部为推动生产更安全软件的一部分而开发的。因此,它主要从软件开发的角度来看待威胁。STRIDE 主要用作对要考虑的一般类型的威胁向量的分类,帮助分析师识别完整的威胁模型。STRIDE并不直接解决模型的详细程度或特定攻击方法。
使用 STRIDE 的方法,首先识别系统的数据流,数据流图DFD 的准确性决定了威胁建模的成功程度。
图17:DFD(数据流图)的基本元素
虽然 STRIDE 主要用于分析软件中的错误和漏洞,但其易于使用,所以也常被变体和扩展,比如洛克希德马丁的以威胁驱动的方法中,添加了横向移动的威胁类型,用于评估对应的控制措施。
OCTAVE(Operationally Critical Threat, Asset, and Vulnerability),是卡内基梅隆软件工程研究所1999年出版,2007年改进版称为 Allegro。其主要目标是开发一个简化和优化的流程来评估信息安全,且只需要投入少量有限的人力和时间资源。威胁建模部分包括识别关注领域(代表性威胁,在威胁源的意义上以及它们可能对信息资产产生的影响)和开发威胁场景,以威胁树的形式直观地表示。该评估方法主要分为如下8个步骤。
Lockheed Martin的IDDIL/ATC 方法,IDDIL/ATC是识别资产、定义攻击面、分解系统、识别攻击面、列出威胁参与者;分析与评估、分类、控制。该方法提供了一个结构化的过程来应用其网络杀伤链模型,以及STRIDE 的变体(STRIDE‑LM,增加了横向移动)和攻击树的混合方法。强调了以威胁应用在整个工程生命周期中。
威胁信息共享是许多网络风险管理方法不可或缺的一部分,包括 CSF 中的更高实施层,因此,一些威胁框架专注于威胁信息的描述、共享信息的方法。主要包括STIX、OMG、PRE‑ATT&CK及美国情报总监办公室ODNI发布的CTF框架。
STIX™(结构化威胁信息表达)是一种用于捕获和共享网络威胁信息的结构化语言, STIX 版本已更新到2.1 ,组织可以使用 STIX 和 TAXII™(指标信息的可信自动交换)来共享威胁情报。
通过威胁参与者、入侵集和活动域对象来描述有关对手采取行动的原因以及他们如何组织自己的信息。 STIX 领域模型的其他部分包括可观察的、指标和行动方案。杀伤链阶段是攻击模式、指标、恶意软件和工具的可选属 性。 STIX 没有指定一组杀伤链阶段,而是允许其用户指定杀伤链模型。
基于MITRE ATT&CK框架,PRE-ATT&CK为组织提供了基于某些攻击指标防止攻击的知识目前定义了十七类信息,网络防御者可以使用这些信息来确定网络威胁情报数据采集和分析的优先级。
特定的威胁模型按照上文描述的方法框架去开发,其中一些威胁模型是面向企业的,而另一些则面向威胁行为者可能针对特定的技术环境描述的。NIST SP 800‑30R1指南其附录中提供的有用的威胁信息,通常被引用参考。这些模型主要包括ATT&CK,CAPEC、WEB应用威胁模型、云计算的威胁模型,DoD的NSCSAR,大型金融企业的威胁模型等。
ATT&CK 的目标是记录常见的战术、技术和程序(TTP) ,被高级持续性威胁 (APT) 用于攻击、攻击和攻击对手执行特定动作的原因。在企业网络中运行,以提供庞大的知识库对抗性技术。为了帮助企业侧重攻击前的准备,Mitre提出了上节描述的Pre ATT&CK框架,这两者的区别是,Pre ATT&CK覆盖了攻击前的阶段。
通用攻击模式枚举和分类 (CAPEC™) ,提供了公开可用的攻击模式目录以及全面的模式和分类分类法,攻击模式是对用于攻击网络功能的常见元素和技术的描述,攻击模式有助于以有意义的方式对攻击进行分类,以提供一种连贯的方式来指导设计和开发人员,如何有效的防御对系统可能会受到的攻击。
CAPEC 本身并不是一种威胁建模方法,但作为攻击模式的分类,拥有了500多个不同的威胁分类,可帮助了解威胁的广度和分类。因此,CAPEC 最适合应用程序威胁建模。
图25:CAPEC威胁分类-攻击模式视图
主要以OWASP模型威胁,OWASP还推出了开源的在线威胁建模工具 Threat Dragon,对 Web 和桌面应用程序进行建模以绘制图表并自动生成威胁和缓解措施。
对于云计算,一种对攻击进行分类的方法是:数据泄露和数据丢失、逃避来源、恶意服务攻击、恶意管理员攻击、 虚拟机 (VM) 威胁和网络威胁等,或者通过STRIDE-LM来对云的威胁进行分类分析,目前没有统一的共识。
CSA提出了云威胁模型的实践,扩展了标准威胁建模实践,以解释独特的云服务以及应用程序的质量和注意事项,认为云威胁建模不同于非云威胁建模,云威胁建模补充了攻击面识别和变化,有助于抽象不同云服务提供商的安全需求,并通知风险管理。其他通过模型卡来推进威胁的分析,并和安全控制相关联。
图27: CSA威胁模型卡
图28: CSA威胁模型卡-威胁控制映射
所有的威胁建模方法都有最初的开发目的,这也限制了在不同环境下的可用性。以下为简要的优缺点评估,更详细的和更多维度的评估,可参见HSSEDI出版物中的描述。
如前文所述,各个威胁模型框架都出于不同目的构建,从下图对的适用性比较也可以看出不同的用法。
图30:威胁模型适用性比较
从以上对比可看出每个威胁模型都有其优缺点和适用条件,NGCI Apex计划对将要定制的网络威胁模型设定了评估具体标准,并分别对各个模型进行详细评估,详细评估结果可参考官方文档。
评估模型有效性的三个维度:规范,在分类、关系和算法方面的详细程度,决定了可复用和可再现的程度;覆盖范围,模型覆盖范围的完整性,多大程度覆盖代表的领域,如代表网络攻击生命周期、内部威胁、供应链攻击还是非网络攻击;具体性,模型的具体程度如何。
支持的风险度量的定义和评估
• 适应性和可扩展性,模型调整的难易程度,如表示不断演变的威胁能力,扩展模型包括的其他概念、属性和因素的难易程度如何?
• 可行性,能否获得必要的数据,是否可在合理的时间段内对数据进行分析,模型的与现有治理的匹配程度
• 可采用性,采用模型和/或指标集的难易程度
• 可扩展性:模型的范围是什么?指标是否可以聚合、汇总或以其他方式组合以产生更广泛的指标
• 信息共享:模型与用于共享威胁或风险信息的模型或标准的兼容性如何
为网络攻防演练提供基础
• 以识别技术、实践以及支持政策和标准方面的差距,并评估针对关键基础设施部门的网络安全问题提出或实施的解决方案的相对有效性
• 特定建模结构的威胁模型所需的详细程度取决于演练的范围。例如,一个练习可能假设一个单一的对手目标
• 威胁模型用于为演习或一系列相关演习开发威胁场景。任何网络演习都将仅限于少数威胁情景