威胁建模基础
前期需要明白的几个基本概念:**
· 风险是基于对组织机构构成的威胁。
· 威胁关注的是有价值的资源。
1. 什么是威胁建模
威胁建模是一种结构化方法,用来识别、量化并应对威胁。威胁建模允许系统安全人员传达安全漏洞的破坏力,并按轻重缓急实施补救措施。
1.1 威胁建模主要包括三大主要元素:
-
资产:应保护哪些有价值的数据和设备
-
威胁:攻击者可能对系统实施的行为
-
漏洞:有哪些漏洞让攻击者对系统构成威胁
组织机构内部,不同层次组织结构和环境要应对的威胁大不相同。
1.2 威胁目标的三个主要层次:
-
网络:此威胁包括假冒、恶意的数据包等
-
主机:此威胁包括缓冲区溢出、恶意文件和代码等
-
应用程序:此威胁包括SQL注入、XSS、输入篡改等
理想情况下,在系统设计过程中(部署之前)创建威胁模型。在实践中,通常是为现有系统创建威胁模型,使其成为维护的一部分。
2. 为什么要做威胁建模
-
在早期发现 Bug
-
理解安全需求
-
建造和交付更好的产品
-
标记其他技术不能发现的问题
-
实验出物理实体是否能否承受住攻击等
1.1 威胁建模步骤
-
识别资产
-
描述架构
-
分解应用程序
-
识别威胁
-
归档并分类威胁
-
评价威胁
- 识别资产:识别对组织机构具有价值的潜在资产:
- 入口和出口点
- 系统资产和资源
- 信任级别(访问类别)
- 描述架构:在这个过程中,描述处理价值资产的架构,可能包括软件架构、版本和其它架构详情。
- 分解应用程序:分解与过程有关的应用程序,所有运行应用程序的子过程。
- 识别威胁:以描述的方式罗列威胁,以便审核,作进一步处理。
- 将威胁分类
按照预定义分类对威胁进行分类,预定义分类如下:
分类 |
---|
假冒身份 |
篡改数据 |
否认 |
信息泄露 |
拒绝服务 |
特权提升 |
- 评价威胁
这里介绍Microsoft的DREAD模型对威胁的严重性进行评价:
- 破坏潜力:如果漏洞被利用,损失有多大?
- 再现性: 重复被利用的难度有多大?
- 可利用性:漏洞被利用的难度有多大?
- 受影响的用户:多少用户可能受到影响?
- 可发现性:漏洞容易被发现吗?
3. ATT&CK
ATT&CK全称是Adversarial Tactics, Techniques, and Common Knowledges,即对抗战术、技术和常识。从这个组合名称就可以看出,ATT&CK不是单单某一项技术,而是很多战术、技术、知识的汇总或者集合,可以看作是一个更加底层的“知识库”。“战术”指的是ATT&CK的技术原因,是攻击者执行行动的战术目标,涵盖了攻击者在操作期间所做事情的标准和更高级别的表示。而“技术”指的是攻击者通过执行动作实现战术目标的方式,或者执行动作而获得的内容。在ATT&CK矩阵中可以到看到战术和技术的关系,可能有很多种方法或技术可以实现战术目标,因此每种战术类别有很多种技术。
ATT&CK的关键价值在于其提供了一个通用的分类、可以根据需求对特定技术进行实现和覆盖,不需要实现模型所列举的整个技术矩阵,优先关注实际的预防、检测和响应。
MITRE ATT&CK对这些技术进行枚举和分类之后,能够用于后续对攻击者行为的“理解”,比如对攻击者所关注的关键资产进行标识,对攻击者会使用的技术进行追踪和利用威胁情报对攻击者进行持续观察。MITRE ATT&CK也对APT组织进行了整理,对他们使用的TTP(技术、战术和过程)进行描述。
通过不断地攻击演练测试,就能提升分析程序的检测能力,不断扩大技术覆盖范围,不断缩小与攻击者的差距。
ATT&CK知识库的数据基础决定了其具有更贴近真实攻击者行为的实战效果,同时对APT攻击组织的分析和相关威胁情报的关联有得天独厚的优势。MITRE目前已发起的两轮基于ATT&CK的厂商能力评估中,也是以已知APT(APT3和APT29)作为攻击模拟的范本。
4. 威胁建模和知识库
威胁建模是网络安全威胁分析的一个重要环节,ATT&CK的概念抽象层次,是其区分与其他威胁模型、威胁知识库的关键。MITRE公司对威胁模型和威胁知识库的概念抽象层次进行了粗粒度的划分,如下所示。划分到不同层次的模型、概念没有优劣之分。区别在于不同的抽象层次决定了模型的表达能力和能够覆盖的概念的粒度。较高层抽象可谓高屋建瓴,从宏观的角度给威胁事件定性、给风险评级。较底层的概念更贴近细节,能够给威胁威胁事件更确切实际的解释、指导和评估。
ATT&CK被划分为中层次模型,相对的,Cyber Kill Chain和STRIDE威胁模型可以划分为高层次模型,可以用来表达和理解高层次的攻击者目标和防护系统风险。这些高层模型抽象层次高,自然难以表达具体的攻击行为和攻击行为关联的具体的数据、防护措施、配置资源等。例如,我们可将某一IOC或攻击行为对应到攻击链的“C&C”阶段,这提醒防御方需要采取必要的措施了,但采取怎样的措施,攻击链模型是难以表达的。而在ATT&CK中,该IOC可能对应到战术 “Command and Control”,同时采用的是“Multi-hop Proxy”的技术手段以达成战术目标,至此,我们可以进一步获取针对该技术手段的一些通用的防护措施。当然,中层次的ATT&CK所描述的仍然是TTP(技术、战术和过程)的抽象,具体到实例化的行为描述,仍然需要细粒度的划分。
漏洞库及漏洞利用模型划分为低层次概念。我们可以认为CAPEC、CWE属于这个抽象层次。CAPEC(Common Attack Pattern Enumeration and Classification)关注的是攻击者对网络空间脆弱性的利用,其核心概念是攻击模式Attack Pattern。从攻击机制的角度,CAPEC通过多个抽象层次对攻击进行分类和枚举。其目标是针对已知的应用程序脆弱性的攻击行为进行全面的归类。相对而言,ATT&CK的目标不是对不同攻击战术目标下技术的穷尽枚举,而是通过APT等攻击组织的可观测数据提取共性的战术意图和技术模式。战术意图是CAPEC枚举库难以表达的。从攻击检测的角度来看,只有明确攻击技术的战术意图,才能进一步推测攻击的关联上下文信息,以支持攻击威胁的评估和响应。此外,通过提供攻击组织(group)和软件(software)信息,ATT&CK还能够串联起威胁情报和事件检测数据,打通对威胁事件的理解链路。
5. 其他资料:
- https://blogs.msdn.microsoft.com/ptorr/2005/02/22/guerrilla-threat-modelling-or-threat-modeling-if-youre-american/
- https://msdn.microsoft.com/en-us/library/ff648644.aspx
- https://www.infoq.com/articles/developer-driven-threat-modeling
- https://www.owasp.org/index.php/Application_Threat_Modeling
- https://xz.aliyun.com/t/2061