Streamlining Attack Tree Generation: A Fragment-Based Approach / 优化攻击树生成:采用基于片段的方法

摘要

攻击图是分析安全漏洞的一种工具,能够捕捉对系统的不同攻击和潜在攻击。作为一种威胁建模工具,攻击图展示了攻击者可以利用的实现特定目标的可能路径。然而,由于每天都会发布大量漏洞,攻击图可能会迅速膨胀。因此,生成攻击图需要大量资源。此外,由于自适应系统或人工智能等复杂系统的性质,它们会不断变化,因此生成这些系统的复合攻击模型非常困难。在本文中,我们提出了一种基于片段的攻击图生成方法,该方法利用了公开可用的信息安全数据库。此外,我们还提出了一种领域特定语言(DSL)用于攻击建模,并在所提议的攻击图生成方法中使用。最后,我们展示了一个演示实例,展示了攻击生成器复制安全专家验证的攻击链的能力。

关键词:攻击树、攻击链、DSL(领域特定语言)、攻击建模

1. 引言

由于需要评估的各种架构和软件组件,系统的安全保证过程可能变得极其复杂。此外,系统的规模正在变得巨大,使得整体保证和测试耗时且昂贵。因此,有必要优先保护关键点或组件,并识别可能的攻击路径,否则,这可能导致保护非常有限,使攻击者可以自由破坏系统。

随着网络物理系统(CPSs)在安全威胁方面的复杂性不断增加,研究和开发新的安全保证方法变得至关重要(Skandylas 和 Khakpour,2021)。这包括适用于复杂系统的方法,例如具有自我管理能力的自适应和人工智能系统。这使得它们能够在没有人工干预的情况下适应环境或需求的变化。在这方面,Skandylas 和 Khakpour,2021 提出了一种正式方法来建模与自我保护系统相关的威胁。同样地,为了捕捉因安全攻击而引发的安全问题,Witte 等人,2022 提出了一个用于建模自适应系统的安全和安全方面的结合方法。此方法旨在以攻击-故障树(AFTs)的形式捕捉这些系统中固有的漏洞和风险。

为了提供更高效的安全保障手段,有必要自动化各种程序和过程。尽管其中一些程序(例如渗透测试)非常难以自动化,但其他活动可能会更高效地进行。例如,威胁建模,更具体地说是攻击建模,提供了可能的攻击者行为的概述。这些模型可以为渗透测试人员和安全专家提供所需的情报,确保他们的努力集中在正确的地方(Pekaric 等人,2023)。尽管如此,威胁模型的生成和分析仍然存在一些限制。Shandilya 等人(2014)强调了使用攻击图用于安全系统时的一些挑战。此类系统的攻击图生成必须具有可扩展性和高效性。另一方面,生成的攻击图必须能够进行安全属性和违规检测的分析和制定,以便了解系统的影响,并能够表达系统所需的安全保障级别。

本文针对上述研究空白,提出了一种新颖的基于片段的攻击图生成方法,该方法依赖于领域特定语言(DSL)。DSL用于为生成的模型指定概念和规则,这些模型以攻击树的形式出现。所提议的方法还提供了一种将生成的片段组合成更复杂攻击的方法,通过形成攻击链。图1展示了所提议的生成方法的概述。

在这里插入图片描述
我们开发的方法可以应用于包括自适应系统和机器学习(ML)驱动系统在内的大多数网络物理系统(CPSs)。其主要思想是生成大量较小的“树”模型,这些模型可以通过考虑现有的攻击模式组合成更广泛的模型。我们通过提供一个生成现有公开识别的攻击链的工作示例来展示我们的方法。

本文的其余部分组织如下:第2节提供了攻击建模和安全数据库的背景信息。第3节概述了与攻击建模和攻击模型生成相关的工作。第4节概述了为攻击图的生成方法开发出的DSL(特定领域语言),并详细解释了生成方法以及如何生成攻击树。第5节提供了一个演示示例和对所提出方法的讨论。最后,第6节对本文进行了总结。

2. 背景

本节涵盖了攻击建模技术的背景信息,并讨论了在所提出的方法中使用的公共信息安全数据库。

2.1 攻击建模

攻击模型展示了包括与安全相关的信息的各种结构,如攻击、漏洞利用、威胁、资产、漏洞和对策。模型中包含的信息取决于模型的总体目标。例如,如果只关注攻击者行为和目标的概述,则不需要包括对策。一般来说,攻击模型用于提供系统或组件安全性的概述,并用于促进进一步的行动和分析。这使得安全专家能够更好地了解潜在威胁和攻击者最有可能的目标。Husak 等人(2018)将攻击模型描述为“网络安全中的预测和预报方法”,并引入了一个分类方案,将其分为四类:(1) 离散模型,(2) 机器学习和数据挖掘模型,(3) 连续模型和(4) 其他模型。图2展示了上述分类。

本文重点讨论以攻击图形式的离散模型(Haque 等人,2017)。这些图可以是循环图和非循环图,描绘了可能的实际攻击场景和攻击者行为的映射。攻击图通常以攻击路径的形式展示,显示攻击者为了成功攻击可以执行的各种步骤。例如,这可以包括针对ssh库中多个已识别漏洞的各种漏洞利用。因此,攻击图为进一步开发和生成攻击模型提供了基础。这是通过扩展攻击图,添加附加信息或方法(如添加条件变量、概率、状态和转换)来实现的。

更具体地说,所提出的方法针对的是攻击树。攻击树由一个根节点组成,其后是表示攻击者为了达到目标可能采取的步骤的中间节点。每个中间节点可以有多个子节点,表示攻击者在该步骤中可以采取的各种选项。为了在树节点之间提供连接和关系,可以使用各种逻辑门来形成攻击链。例如,OR门可以表示在多个漏洞利用之间的选择。同样,AND门表示为了成功执行攻击,每个节点都需要满足。最后,树的叶节点展示了攻击者为了实现其目标必须采取的初始步骤。
在这里插入图片描述

2.2 公共信息安全数据库

为了在各种漏洞之间进行唯一区分,使用了常见漏洞和暴露(CVE)数据。每个漏洞或CVE条目都有其唯一的ID、标准化分数和描述。为了对CVE进行某种形式的层次结构和基于影响进行分组,创建了常见漏洞枚举(CWE)表示。每个CWE代表一个特定的高级别组或弱点类型,所有的CVE都被分配到相应的CWE。

为了为CVE数据提供各种度量,创建了通用漏洞评分系统(CVSS)向量。它提供了与漏洞严重性相关的定性分数。向量中包含三种度量类型:基本度量、时间度量和环境度量。每种度量的分数范围从0到10。在大量可用的CVE中,能够判断它们影响的元素(系统、软件、平台)变得非常重要。这是通过通用平台枚举(CPEs)实现的,CPEs使用统一资源标识符(URI)语法表示。每个CPE条目还包括软件或库的确切版本,可以与一个或多个漏洞相关联。

CIA三元组描述了表示核心信息安全原则的标准化形式(Samonas和Coss,2014)。这些原则被认为是重要的,因为它们是CVSS向量的一部分。这意味着每个CVE都为上述所有原则分配了分数。为了对各种类型的系统进行攻击,攻击者利用一个或多个漏洞(CVE)。通过利用多个漏洞以实现特定目标,例如获得系统的根访问权限,形成了攻击链。许多应用的攻击链利用了影响相同CPE的CVE。这些可以通过调查不同CWE之间的关系并将这些链接传播到CVE来识别。实现相同目标的另一种方法是调查现有的攻击模式,例如常见攻击模式枚举和分类(CAPEC)。

3. 相关工作

本节介绍了攻击建模和攻击模型生成的相关工作。显然,攻击图/树的语法和语义在不同的方法中有不同的解释,这使得比较这些方法变得困难。

Kotenko 和 Chechulin(2013)提出了关于攻击图的核心工作之一。他们提出了一种用于安全信息和事件管理(SIEM)系统的攻击建模和安全评估方法,该方法利用攻击图来建模攻击者的行为,提供实时警报,并开发评估程序。这是通过考虑各种安全度量来实现的,从而开发出攻击建模和安全评估组件(AMSEC)。该组件为SIEM系统提供了额外的安全评估能力。总体方法包括六个步骤:(1) 数据库更新器,(2) 规格生成器,(3) 恶意行为建模器,(4) 攻击图生成器,(5) 安全评估器,(6) 报告生成器。结果包括可能的漏洞列表、攻击树、对手行为预测、攻击度量以及根据现有安全策略和工具提高安全性的建议。尽管该工作基于所谓的恶意行为和网络拓扑构建攻击图,我们的工作则使用从系统分析中获得的CPE信息并爬取CVE数据库以获取相应漏洞。结合CWE信息,我们生成了攻击图。

Al Ghazo等人在2019年提出了一种自动化生成计算机和SCADA网络攻击图的方法(A2G2V)。该方法利用现有的模型检查和架构描述工具来设计可能的攻击路径,这些路径可以从原子漏洞中被利用。此外,他们还设计了一种方法,能够解析并编码反例,并遍历这些反例,直到识别出所有可能的攻击序列。最后,他们还实现了生成的攻击图的可视化。与我们的方法相比,他们的攻击树是基于各种安全属性生成的,而不是基于公开可用的安全数据库。这些攻击树也不是基于DSL生成的,也不能与其他树结合。

Z. Li等人在2022年介绍了一种从网络威胁情报(CTI)报告中构建攻击图的方法。这是通过使用OpenIoC和STIX格式定义的结构化威胁情报来实现的。此外,作者还提出了一种技术知识图谱(TKG),用于展示从各种攻击图中派生出的更高层次的技术。该方法针对来自MITRE ATT&CK的179种技术的7373个程序和从不同来源获取的1515个CTI报告进行了测试。虽然这种方法没有使用CVE信息,但将ATT&CK信息集成到我们的方法中可能是一个有趣的研究课题。

T. Li 等人(2022)提出了一个完全不同的攻击图视角。他们尝试在系统日志中寻找可能的攻击步骤线索,并将其组合成完整的攻击图。他们开发了DeepAG框架,该框架基于系统日志条目识别威胁并预测可能的攻击路径。这是通过利用变压器模型实现的,这些模型允许通过建模从系统日志中获取的语义信息进行高级持续威胁检测。该方法应用了长短期记忆(LSTM),引入了双向预测。这导致了引入处理新攻击模式的OOV(Out-Of-Vocabulary)词处理机制。结果显示,在15000个序列中,DeepAG检测到了超过99%。与我们的工作相比,该工作的目标不是提前识别可能的漏洞,而是识别当前正在进行的具体攻击。

Sonmez 等人(2022)引入了攻击动态(Attack Dynamics),这是一种能够基于CAPEC、CWE、系统拓扑、相关供应商产品和元数据中的已知漏洞自动生成攻击图的新工具。他们的工具还能将MITRE ATT&CK框架中的企业缓解措施链接到它发现的安全缺陷。此外,它能够通过生成的JSON输出与外部优化工具集成,以在实时和离线情况下减少安全成本。相比之下,我们的方法更偏向自下而上,即我们不是从最抽象的层次(CAPECs)开始,而是从系统中使用的组件的CVE层次开始。然后我们通过获取到常见弱点(CWEs)的层次变得更抽象。在攻击动态中,在进一步分析和修改攻击图之前,必须为每个建模组件手动添加漏洞。

Khakpour 等人(2019)的研究重点是自适应系统在发生适应期间的瞬态状态中的漏洞。同样,必须手动将漏洞信息添加到架构描述中,利用Acme(Garlan等人,2000)的组件属性。最后,他们使用MulVAL(Ou等人,2005)生成概率攻击图。节点的概率是从相关CVE的CVSS向量中得出的。为了定义攻击树每个叶子的概率分布参数,我们利用epss框架,并且不专注于特定类型的系统。

与我们的工作不同,Ou等人(2006)生成了攻击树,但侧重于基于网络的模型。作者将为不同网络节点手动创建的部分攻击图作为Prolog规则进行组合和分析,以找到可能成功的攻击路径。

总而言之,我们的自下而上的方法以新的方式结合了部分现有工作,并结合了新发展,如利用epss概率来生成攻击树,使用所提出的DSL语法生成给定系统配置的所有组件的攻击树。组件的漏洞是从公共信息安全数据库中自动爬取的,并通过逻辑门按CWE对每个CPE进行分组,这些逻辑门通常用于故障树。此外,我们的方法自动生成攻击链,并使用AND、SAND和OR门组合这些链,这些逻辑门基于弱点或CWE之间的层次关系。此外,该方法还通过考虑CAPEC条目和半自动关联攻击链,使用额外的逻辑门如PAND、SOR、FDEP、SPARE和VOT门生成更复杂的攻击树。

4. 生成方法

本节介绍用于生成方法的数据集(4.1节)、攻击树DSL语言(4.2节)以及生成方法本身(4.3节)。所提出的方法涉及设计工件,包括DSL和基于片段的生成方法。因此,它考虑了设计科学研究原则(Peffers等人,2007)。

4.1. 数据集

国家漏洞数据库(NVD)的CVE数据集,以及来自MITRE的CWE和CPE数据集,为识别和分析安全漏洞提供了全面的资源。NVD的CVE数据集包含超过150,000条条目,每条条目详细说明了一个独特的漏洞及其严重性评级、潜在影响和受影响的系统。而CWE数据集包含800多种不同类型的软件弱点。至于CPE数据集,则包括超过265,000个唯一的产品名称和版本。

这些数据集被应用于一个综合的攻击图生成方法中,旨在识别针对特定系统的所有可能的攻击路径。这些数据集的选择是基于Sauerwein等人(2019)对公共信息安全数据源的分析和分类研究的结果。通过利用CVE、CWE和CPE数据集中提供的信息,可以识别漏洞及其根本原因,以及受每个漏洞影响的具体硬件和软件产品(Pekaric等人,2021)。此外,这些数据集之间的关系被用于生成具体漏洞之间的连接并计算与攻击相关的指标。获取CVE数据使用NVD API,而CWE和CPE数据则从MITRE以.csv格式获取。

4.2 领域特定语言

为了表示攻击树,我们提出了一种攻击树DSL。该DSL是使用Xtext框架开发的,Xtext是用于开发编程语言和DSL的工具。选择Xtext的主要原因是它允许直接定义DSL。此外,它能够为Eclipse IDE生成一个功能齐全的编辑器,包括自动补全和语法高亮等功能。所有使用Xtext创建的DSL都是基于EMF(Steinberg,2008)的,这使得将生成的攻击树与Xtext语法中指定的其他模型无缝集成成为可能。例如,攻击树可以通过模型转换与故障树以及任何其他模型集成(Witte等人,2022;Groner等人,2023)。列表1显示了构成我们攻击树DSL基础的语法的简化摘录。
在这里插入图片描述
在所提出的DSL中,通过关键词AttackTarget引入攻击树的根节点。AttackTarget提供了多个属性来表示由CPE标识符为特定库或平台提供的不同可能信息。需要注意的是,我们定义了特殊规则来表示CPE、CWE和CVSS向量,以确保即使是手动使用我们的DSL创建的攻击树,也能强制执行其指定结构。此外,所有属性都是可选的,并且可以按任何顺序出现。这使得创建攻击树更加方便,也可以为部分信息可用的情况生成攻击树。

列表2展示了为CPE cpe:2.3 : a:x.org:libx11:1.5.99.901: * : * : * : * :*生成的攻击树。可以看到,例如,在AttackTarget的规范中没有使用description属性。
在这里插入图片描述

AttackTarget的属性CVSS非常重要,因为它提供了与CVE相关的严重性指标。这对于将攻击树与其他模型结合起来特别有用(Kumar和Stoelinga,2017)。例如,CVSS向量中编码的CIA值可以用来决定是否可以将攻击树与故障树结合,以得出攻击故障树。

攻击树的叶节点在我们的DSL中由AttackSteps定义。AttackStep表示由CVE条目指定的单个漏洞。因此,AttackStep在我们的DSL中通过多个可选属性提供了建模CVE条目信息的可能性。我们还定义了通过名称引用其他攻击树中的攻击步骤的可能性,这被视为ID。例如,列表2中第11行开始定义的AttackStep可以通过其ID CVE202014344被其他攻击树引用。这使得攻击树的定义更加方便和模块化。

由于一个CPE标识符与一个或多个CWE相关联,我们提供了在我们的DSL中使用逻辑门将单个AttackSteps和子树结合起来的可能性。如列表1第26行所示,我们提供了SAND门,此外还有通过AND和OR门组合AttackSteps或子树的可能性。SAND门定义了必须从左到右发生的AttackSteps或子树才能激活该门。在列表2中的攻击树里,我们使用了一个OR门来组合两个攻击步骤,它们代表与CPE cpe:2.3:a:x.org:libx11:1.5.99.901:*:*:*:*:*相关联的CWEs。

4.3 攻击树的生成

生成攻击树的过程包括两个主要步骤。首先生成基础树,然后基于第一步生成的树构建更复杂的树。在本文的其余部分,我们将这些分别称为基础攻击树和派生攻击树。生成工具是用Python 3实现的,并已在一个开源仓库中提供。

基础树严格根据CVE、CPE和CWE数据之间的关系生成。由于生成过程的输入是CPE条目列表,因此需要确定哪些CVE影响所涉及的平台。这是通过CPE和CWE之间的多对多关系以及CWE和CVE之间的多对多关系实现的。结果是为每个CPE生成一个独立的文件,其中包含与该特定CPE相关的所有CWE数目相同的树。换句话说,每个CPE的树数等于相关CWE的数量,这些用AttackTarget节点表示。这是为了为每个特定CPE获得“简单”的基础树,使它们可以作为派生树的构建模块。因此,基础树是根据第4.2节描述的DSL语法生成的。例如,对于CPE cpe:2.3: a:x.org:libx11:1.5.99.901: * : *: *: *: *(libx11库,版本1.5.99.901)和CWE-190(整数溢出或回绕),生成了列表2中所示的攻击树。攻击树段的等效图形化可视化在图3中显示。
在这里插入图片描述
这棵攻击树仅代表了生成的树之一。为了演示的清晰,其他树以及一些额外的注释在此省略。该树包括两个漏洞,即CVE-2020-14344和CVE-2020-14363,它们包含了CVSS(通用漏洞评分系统)和EPSS(漏洞利用预测评分系统)得分。

这些漏洞使用OR门连接,并且每个CVE都表示为树的叶子(AttackStep节点)。这些CVE与所示的CPE直接相关联,通过CWE-190。这意味着攻击者可以利用这两个漏洞中的任何一个来攻击目标系统。在生成基础树时,唯一使用的门是OR门。这是因为每个漏洞都是独立的,可以是单个攻击的一部分。然而,在第二个生成步骤中,它们被用作派生树中的攻击链的主要构建块。关于树中CVE的分数和指标,这些分数会传播到树的根(AttackTarget)。对于每个分数,包括BaseScore、ImpactScore和ExploitabilityScore以及CVSS向量,都进行传播。这是因为在将攻击树与其他模型(如故障树)集成时可能会使用这些指标。由于使用的是OR门,因此只有与单个CVE相关的分数会被使用。然而,只有在执行模型集成后才能确定这一点。epss分数不传播的原因是这些分数涉及到随时间变化的概率,将它们传播到树顶部是没有意义的。

与基础树类似,派生树也针对特定的CPE生成。派生树的目标是为特定的软件或软件库生成可能的攻击链。为了生成这些链接,使用了来自CWE数据库的关系信息。这包括ChildOf、ParentOf、RequiredBy、Requires、CanFollow和CanPrecede等关系。

CWE中的ChildOf和ParentOf关系用于显示所有的层次关系。Requires关系表示某个弱点或漏洞是另一个弱点存在或被利用所必需的。类似地,RequiredBy关系表示某个弱点或漏洞是另一个弱点存在或可利用的先决条件。CanFollow关系表示一个弱点可以在事件序列中跟随另一个弱点,而CanPrecede关系表示一个弱点可以在事件序列中出现在另一个弱点之前。

根据前述的CWE-CVE关系和DSL语法,攻击树生成器在特定的CPE生成的所有CVE之间形成额外的链接。除了现有的OR门关系外,基于RequiredBy、Requires、CanFollow和CanPrecede关系,现在还可以使用AND和SAND门将CVE相关联。换句话说,如果CWE a通过RequiredBy关系与CWE b相关联,那么CWE a中的每个CVE也与CWE b中的CVE相关联。因此,这些CVE将作为新生成树的一部分使用AND门连接。就CVSS评分的传播而言,与OR门相比,SAND和AND门的处理方式不同。这是因为每个AttackStep或CVE都需要被利用才能激活门。因此,CVSS评分(BaseScore、ImpactScore和ExploitabilityScore)的均值被传播到AttackTarget节点。然而,所有CVSS向量都被传播(与OR门的情况一样),因为无法计算向量中某些指标的均值,例如攻击向量(AV)指标。这个指标提供了漏洞利用可能发生的上下文。

攻击链的生成是通过不断检查漏洞之间的关系并形成新的链条进行递归地进行的。为了防止过度生成,特别是在具有大量相关CWE和CVE的CPE的情况下,可以指定生成的攻击树的最大深度。该实现还通过确保特定CVE不会多次出现在单个链中来限制攻击链中的循环。列表3展示了生成的派生树的示例,其中使用SAND门演示了一个攻击链。攻击链包括CVE-2020-14344和CVE-2021-31535,其CVSS评分的均值被计算。接下来的部分将展示一个演示例子,展示了如何使用提出的方法生成现有的攻击链。

在这里插入图片描述

5. 讨论

在本节中,我们提供了一个演示示例(5.1节)、对提出方法的影响(5.2节)以及该方法的局限性(5.3节)。

5.1 演示示例

为了展示所提出的攻击树生成器的有效性,我们尝试重新创建网络安全社区已经识别的现有攻击链。CVE条目CVE-2019-9500的描述如下:[…]。这个漏洞可以被利用,通过被破坏的芯片组攻击宿主,或者与CVE-2019-9503结合使用,可以远程[…]。通过在NVD页面上进行简单的检查,可以看出这两个漏洞都与CPE cpe:2.3:a:broadcom:brcmfmac driver:-:*:*:*:*:*:* 相关联,这与Broadcom brcmfmac驱动程序有关。

列表 4 展示了针对前述的 CPE 生成的输出,而图 4 则提供了其可视化。生成的树包括两个 CVE,它们被表示为不同的 AttackSteps,属于两个不同的 CWE(CWE-20 和 CWE-122)。CVE-2019-9500 与 CWE-787 之间的关系由于展示目的而在树中被省略。出于同样的原因,与列表 3 不同,不使用 CVE 标签。第三个 AttackTarget 表示要重新创建的攻击链。它使用 SAND 门连接了两个 CVE,这意味着它们可以从左到右以一定顺序依次被利用,也可以完全独立地被利用。换句话说,不正确的输入验证可能导致基于堆的缓冲区溢出。选择了这个特定的用例,因为它不涉及太多的 CVE 和攻击链,使其呈现更具吸引力。

在这里插入图片描述
在这里插入图片描述

5.2 影响

接下来,我们讨论所提出的攻击树生成方法的可能影响。由于 CVE 的总数不断增加,这导致了复杂攻击图的生成。因此,需要大量的计算能力和时间来生成。然而,从片段生成攻击图也有其好处,因为它允许专注于特定的弱点、库和高严重性的漏洞。如果需要,这些片段可以后续连接起来形成更复杂的攻击。这可以通过手动开发攻击模式并考虑来自 CAPEC 数据库的现有模式来进行半自动化操作。根据这一点,还可以在组合生成的片段时考虑其他类型的门,例如 PAND、SOR、FDEP、SPARE 和 VOT 门。

接下来,我们讨论所提出的攻击树生成方法的可能影响。由于 CVE 的总数不断增加,这导致了复杂攻击图的生成。因此,需要大量的计算能力和时间来生成。然而,从片段生成攻击图也有其好处,因为它允许专注于特定的弱点、库和高严重性的漏洞。如果需要,这些片段可以后续连接起来形成更复杂的攻击。这可以通过手动开发攻击模式并考虑来自 CAPEC 数据库的现有模式来进行半自动化操作。根据这一点,还可以在组合生成的片段时考虑其他类型的门,例如 PAND、SOR、FDEP、SPARE 和 VOT 门。

尽管存在潜在的好处,但从片段完全自动化生成攻击图是具有挑战性的,因为公共安全数据库中存在缺失的字段和关系。然而,这种方法允许更有针对性和高效地分析漏洞。通过专注于特定的弱点和软件库,分析人员可以优先考虑最关键的漏洞,并制定更有效的缓解策略。这种方法还可以帮助识别不同漏洞之间的依赖关系。这可以用于更好地理解潜在的攻击路径,并开发更有效的防御机制。这种方法的一个可能挑战是存在假阳性或假阴性的可能性。在生成单独的树片段时,可能会忽略漏洞之间的有意义的连接或关系。然而,以半自动化方式组合片段可以减少这种风险,并开发更全面的攻击图。

此外,从片段生成攻击图的半自动化方法已经显示出在缓解复杂系统(如自适应系统和人工智能系统)的漏洞方面具有潜力。这些类型的系统以持续的适应和变化为特征,包括它们使用的软件和库的变化。在这种情况下,重新生成攻击树可能变得非常复杂。然而,使用攻击图生成中的片段允许仅重新生成受影响的片段。这显著减少了所需的时间和计算能力。此外,可以为系统的特定组件生成树,以后,如果有必要,可以将这些独立的树集成起来。但是,针对人工智能逻辑的攻击必须手动集成到生成的攻击树中。总的来说,这种方法为未来在这个方向的研究提供了坚实的基础,使复杂系统中的威胁分析和漏洞管理更加全面。尽管半自动化方法可能需要大量的专业知识,但其潜在好处使其成为高级威胁分析和漏洞管理的有价值工具,适用于任何安全从业者,包括来自行业和学术界的安全专家。

5.3 局限性

一个重要的限制是公开可用的信息安全数据库中数据不完整。在所提出的方法中,只利用了当前可用的数据。由于这些数据的完整性无法保证,这可能导致研究结果不完整或存在偏见。此外,不同组织维护这些数据库,数据的一致性和准确性存在威胁。因此,在数据的录入和管理方面缺乏标准化。这使得研究人员难以使用这些数据进行准确和全面的分析。因此,需要采用标准化方法来维护和管理这些数据库。这可以帮助确保数据的完整性、一致性和准确性,从而可能产生更可靠的研究结果。然而,这需要整个网络安全社区的大力支持。

在软件供应链中的另一个限制是将 CPE 数据与软件和库进行匹配。这是由于各种原因,例如软件和库的数量不断增加,包括大量的版本以及CPE数据命名的不一致。关于攻击链的生成,存在多个限制,主要与 CWE 数据之间的缺失依赖关系有关。这是因为许多条目不包含任何关系,这可能导致未能检测到相关的攻击链。所提出的攻击图生成方法可被认为是可推广的,因为它不限于特定类型的系统,无论其类型或复杂性如何。

6. 结论

在 CPS(网络物理系统)中存在着越来越复杂的问题,包括那些需要自我管理能力以及那些由机器学习和人工智能实现的系统。这种细微差别需要高效且可扩展的先进安全保障技术。在本文中,我们提出了一种基于片段的方法,用于复杂的网络物理系统的安全威胁建模,这种方法也可以用于其他类型的系统。该方法依赖于定义攻击树模型,使用 Xtext 框架中的一种提出的 DSL 语法来生成简单的攻击树。因此,可以根据定义的攻击模式将它们组合成更复杂的攻击链模型。

未来的工作包括进一步改进攻击树生成器。这包括对安全数据进行自然语言处理分析,这将允许识别出额外的攻击链,并使用额外的门来创建更复杂的攻击树。例如,可以通过更详细地分析 CVE 描述以及使用 CAPEC 和手工制作的攻击模式来实现。通过这样做,可以指导形成包括对不同软件和库的利用的攻击链。此外,将进行进一步的实证研究,以进一步提高生成树的效率和有效性。将进行进一步评估,包括设计模型检查器来验证生成的攻击树。此外,计划在实际案例中测试所提出的方法,与我们的工业合作伙伴一起进行测试。

原文信息:Pekaric I, Frick M, Adigun J G, et al. Streamlining Attack Tree Generation: A Fragment-Based Approach[J]. arXiv preprint arXiv:2310.00654, 2023.

  • 13
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值