威胁建模攻击树和攻击库
- 1.攻击树概述
- 2.创建新的攻击树🌲
- 3.真实攻击树的案例
- 诈骗攻击树
- 思维导图式SSL风险攻击树
- 4.攻击库概述
- 5.CAPEC攻击模式
- 6.OWASP
1.攻击树概述
攻击树(Attack Tree)是一种用于分析和描述系统安全的工具,广泛用于信息安全领域
攻击树是一种结构化的方法,用于表示和分析对系统的潜在攻击。它以树状结构的形式展现,目标是通过将攻击的各种方法和路径组织在一起,帮助识别和防御安全威胁
假设我们要分析一个网络系统的攻击树,目标是“非法访问系统的敏感数据”。攻击树可能如下:
2.创建新的攻击树🌲
1、确定表示方法
两种基本的表示方法是“与”(AND)树和“或”(OR)树。它们用于表示攻击目标的不同实现路径和条件
“与”树表示一个节点的状态依赖于其所有子节点的状态都为真。换句话说,要实现这个节点的目标,必须同时满足所有子节点的条件。这个表示方法适用于那些必须满足多个条件才能完成攻击的情况。
例如:
[成功绕过多重安全防护]
/ \
[绕过登录认证] [获取管理员权限]
/ \ / \
[破解密码] [绕过双因素认证] [利用提权漏洞] [伪造管理员凭证]
在这个例子中,要实现根节点的目标“成功绕过多重安全防护”,攻击者必须同时绕过登录认证和获取管理员权限。每个内部节点的所有叶子节点都需要满足,才能实现整个攻击目标
“或”树表示一个节点的状态只依赖于其任何一个子节点的状态为真。也就是说,只要子节点中的任何一个条件为真,根节点的目标就可以实现。这种表示方法适用于那些只需要满足其中一个条件就能完成攻击的情况。
例如:
[成功获取访问权限]
/ \
[获取用户凭证] [绕过安全控制]
/ \ / \
[钓鱼攻击] [暴力破解] [漏洞利用] [会话劫持]
在这个例子中,要实现根节点的目标“成功获取访问权限”,攻击者只需要满足其中一个子节点的条件。例如,只需要通过钓鱼攻击获取凭证,或绕过安全控制中的任何一个方法,都会实现目标。
2、创建根节点
- 组件根节点:如果根节点是一个组件(例如一个软件模块或系统),则根节点代表该组件可能的失效状态或安全漏洞。
- 攻击目标根节点:如果根节点是攻击者的目标(例如“获取系统管理员权限”),则根节点表示攻击者最终想要实现的目标。
3、创建子节点
- 组件失效:识别导致根节点状态的具体原因。例如,组件的子节点可能是特定的攻击手段或失效模式,如“输入验证失败”、“权限检查漏洞”等。
- 攻击目标:识别攻击者可以采用的具体方法来实现目标。例如,获取系统管理员权限的子节点可能包括“利用提权漏洞”、“伪造管理员凭证”等。
之后应该对每个子节点进行详细描述。例如,“利用提权漏洞”可以进一步细化为“利用漏洞A”、“利用漏洞B”等。继续分解节点,直到达到足够的细节层次,使得每个叶子节点代表具体的攻击手段或方法。
一个攻击树的例子:
[获取系统管理员权限]
/ \
[绕过登录认证] [获取管理员凭证]
/ \ / \
[破解密码] [绕过双因素认证] [利用提权漏洞] [伪造管理员凭证]
4、修剪树
修剪攻击树是一个重要的步骤,旨在优化攻击树,使其仅关注真正有效的攻击路径
对于每个内部节点,审视它的所有子节点。确定是否有子节点的攻击方式在实际中被阻止了,或是否存在重复的攻击路径。如果某个攻击路径已经被有效地阻止(例如,通过安全措施、补丁或其他保护措施),在攻击树中标记这些节点以表明它们不再需要进一步分析
例如:
[获取系统管理员权限]
/ \
[绕过登录认证] [获取管理员凭证]
/ \ / \
[破解密码] [绕过双因素认证] [利用提权漏洞] [伪造管理员凭证]
(无效) (无效)
3.真实攻击树的案例
诈骗攻击树
思维导图式SSL风险攻击树
4.攻击库概述
攻击库是一个收集和组织各种攻击手段和工具的资源库,对于识别和理解系统中的潜在威胁非常有帮助。构建攻击库可以采用多种方式,以下是一些关键点:
- 攻击工具汇集:攻击库可以包括各种攻击工具,从概念验证代码到充分开发的“武器化”可利用代码。这些工具可以帮助安全团队理解和模拟可能的攻击。
- 缺乏建模和抽象:在传统的攻击库中,通常没有对攻击进行系统化的建模和抽象描述,这意味着每次使用时,用户都需要投入大量时间和精力来理解和模拟这些攻击。
- 提供抽象概念的必要性:如果攻击库能够提供一些抽象的攻击概念,这将会大大提高其使用效率。与STRIDE(一个常用的威胁建模方法)相比,这些抽象概念可能更具体和实用。
5.CAPEC攻击模式
CAPEC(通用攻击模式列表和分类)是由非营利机构MITRE维护的一套标准,用于定义和分类计算机系统和网络中的常见攻击模式。CAPEC的目的是帮助安全专业人员和组织理解、识别和应对各种网络攻击,截止目前已经有559种攻击模式
1、CAPEC按攻击机制的攻击列表
https://capec.mitre.org/data/definitions/1000.html
2、CAPEC按攻击域的攻击列表
https://capec.mitre.org/data/definitions/3000.html
虽然逐条检查每个CAPEC条目需要大量时间,但可以确保对每种潜在攻击都进行了详尽的审查。这种方法适用于需要全面安全评估的重要系统
CAPEC将攻击模式分为15类,可以按类别进行检查。这种方法可以减少工作量,并使得检查过程更加有条理和高效。例如,针对特定的系统,优先检查与该系统最相关的攻击类别
同样,也可以开发或使用现有的自动化工具,将CAPEC条目与系统的安全检测和评估流程集成。自动化工具可以在更短时间内扫描和识别潜在的威胁
CAPEC和STRIDE各有优势和应用场景。CAPEC适用于技术启发和具体威胁的深入分析,而STRIDE适用于高层次的威胁建模和安全属性的维护。对于许多威胁建模者来说,CAPEC的详细性和具体性使其更具吸引力,而通过速查表、助记符和软件工具等手段,可以进一步提高CAPEC的可用性,使其在实践中更为有效。
6.OWASP
OWASP是一个在全球范围内具有重要影响力的非营利组织,通过提供免费和开放的安全资源、促进社区协作和举办各种活动,致力于提高Web应用程序的安全性。其核心项目和资源,如OWASP Top Ten、ASVS和ZAP等,已成为Web应用程序安全领域的标准和最佳实践指南。
2021年OWASP Top Ten:
- A01:2021-访问控制失效:访问控制失效指的是攻击者能够绕过应用程序的访问控制措施,获得未经授权的访问权限
- A02:2021-加密故障:加密故障指的是在使用加密技术保护数据时出现的错误或不当实施。这包括不正确的加密算法、不安全的密钥管理、不充分的加密范围等,导致敏感数据在传输或存储过程中易于被攻击者窃取或篡改。
- A03:2021-注入:注入攻击发生在应用程序通过不可信数据来构造命令或查询,并将这些命令发送到解释器(如SQL数据库、LDAP服务器、操作系统等)执行。攻击者通过构造恶意输入数据,插入或“注入”到解释器中,使其执行未预期的命令或访问未经授权的数据。
- A04:2021-不安全设计:不安全设计是指在应用程序的设计和架构阶段未能充分考虑安全因素,导致系统在实现和部署后容易受到攻击。这些设计缺陷可能包括缺乏安全控制、错误的安全假设、不完整的安全要求等。
- A05:2021-安全配置错误:安全配置错误是指系统或应用程序在配置过程中由于不当设置、缺乏必要的安全控制或使用默认设置,导致系统存在安全漏洞。这些错误可能出现在各种层面,包括操作系统、Web服务器、应用服务器、数据库、框架和应用程序自身。
- A06:2021-易受攻击和过时的组件:易受攻击和过时的组件指的是在应用程序中使用的第三方组件(如开源库、框架、插件等)存在已知的安全漏洞或不再得到维护。由于这些组件的安全漏洞可能会被攻击者利用,因此整个应用程序的安全性也会受到影响。
- A07:2021-识别和身份验证失败:识别和身份验证失败指的是在处理用户身份识别和验证的过程中存在漏洞或不足,导致攻击者能够绕过身份验证过程,获取未授权的访问权限。这包括识别过程中的错误、身份验证机制的缺陷以及不安全的实施方法。
- A08:2021-软件和数据完整性故障:软件和数据完整性故障指的是缺乏适当的机制来确保软件和数据在存储、传输和处理过程中的完整性和可靠性。这可能导致数据被恶意篡改、伪造或损坏,从而影响应用程序的正常运行和数据的可信度。
- A09:2021-安全日志记录和监控故障:安全日志记录和监控故障指的是在记录和监控应用程序及其环境中的活动时存在的缺陷,导致无法有效检测、记录和响应安全事件。这可能包括缺乏适当的日志记录、日志未能覆盖所有重要事件、监控机制不足等问题。
- A10:2021-服务器端请求伪造:SSRF攻击发生在攻击者能够控制服务器发出的请求并伪造这些请求,从而使服务器端以攻击者指定的方式访问内部或外部的资源。这种攻击通常利用了应用程序向外部服务发起请求的功能,导致应用程序无意中执行了恶意请求。