基于攻击图的网络安全性定量评估方法

1 引言

随着网络技术的快速发展,网络在人们的日常生活中发挥着越来越重要的作用。与此同时,网络攻击类型和漏洞数量迅速增加,许多网络和信息系统面临着安全威胁。随着越来越多的隐私面临泄露风险,网络安全的责任也愈发重大。因此,有必要对网络安全进行评估,以衡量网络的安全状况。网络安全评估有助于安全专业人员优化安全配置。为此,需要一个评估系统来解决上述所有问题。

在本文中,我们基于攻击图构建了一个网络的网络安全评估模型。首先,该模型基于攻击图[1–3]。攻击图可以生成攻击路径以分析网络漏洞,向用户展示在网络分析过程中影响网络安全风险的薄弱环节。其次,在该模型中,安全风险值由一个基于两个参数的函数计算得出,这两个参数分别是节点重要性和节点最大可达概率。攻击图中的节点对网络安全具有不同的影响。节点重要性越高,其对网络安全的影响越大。因此,我们根据主要因素对节点重要性进行量化。节点最大可达概率是网络安全的一个重要因素。然后,我们构建了一个基于上述两个参数的安全评估函数,并计算网络的安全风险值。最后,安全专业人员可以根据风险值区分安全等级并制定相应的对策。我们方法所需的参数易于收集,且模型的计算复杂度较低。因此,我们的方法可推广到任何网络用于衡量网络安全。

论文的组织结构如下。我们在第2节讨论相关工作。然后,在第3节中描述我们用于评估网络安全的模型。在第4节中,基于一个简单的攻击图对我们的模型进行测试。最后,我们在第5节分别给出结论和致谢。

2 相关工作

2.1 攻击图生成

已经提出了各种方法来自动生成攻击图。早期的方法使用网络状态,导致生成的图表呈指数级增长。

Sheyner 等人使用模型检验技术来计算攻击图[2]。Phillips 和 Swiler[3]开发了一种用于生成攻击图的工具。Ritchey 和 Ammann[4]使用模型检验进行网络漏洞分析。Ou 等人[5]尝试生成逻辑攻击图,并开发了一个名为 MulVAL 的工具。目前,它已成为堪萨斯州立大学的一个开源项目。

Sheyner 等人[6]使用改进的模型检验器 NuSMV 来生成攻击图。尽管他们的模型能够生成所有攻击路径,但可扩展性问题更为严重。随后,P. Ammann 等人[7]将单调性假设引入生成过程,将计算成本降低至多项式级别。

Jajodia 等人[8]开发了一款名为 TVA(拓扑漏洞分析工具)的工具。该工具能够自动分析网络漏洞并挖掘弱点以生成攻击图。

2.2 网络安全分析

一些研究人员还尝试基于攻击图对网络安全进行定量评估[9–12]。许多数学算法已被应用于网络安全评估领域。

J. Pamula 等人[9]描述了一种衡量网络安全的方法。他们的方法将目标表示为所需初始属性的最小集合,安全度量则是能够成功渗透网络的最弱攻击者的强度。Wang 等人[10]利用攻击图对网络度量进行了进一步分析,并提出一个简单的安全度量框架,主要描述了算子的基本原理和基本要求。随后,Wang 等人[11]给出了以成功概率为度量的例子,讨论了攻击图中的环路处理方法。但遗憾的是,他们的方法适用于单一目标,难以整体描述网络的安全性。

M. Frigault 等人[12]解释将攻击图视为特殊的动态贝叶斯网络,其突出贡献在于考虑了动态环境中漏洞之间的相互影响现。有的网络安全分析方法为我们将攻击图与数学方法相结合的工作提供了思路。攻击图基于网络中已知的漏洞路径,为关联和优先处理入侵警报提供了必要的上下文。数学方法可以使安全风险的评估更加准确。

3 模型描述

3.1 攻击图描述

我们的工作并不关注如何自动构建攻击图,因为已有大量论文致力于解决这一问题。我们仅基于已获得攻击图的假设来分析网络安全态势。本文中,我们通过MulVAL[4]生成攻击图。本论文所讨论的攻击图指的是无环攻击图。攻击图[1–3]的定义如下。

定义1。 攻击图的结构是一个有向图。可定义为 $ G = (V_o \cup V_d; T; E) $,其中节点集合 $ V_o \cup V_d $ 表示脆弱系统和网络配置,节点集合 $ T $ 表示目标节点,集合 $ E $ 中的元素 $ v_{ij} \in E $ 是从 $ v_i $ 到 $ v_j $ 的转移关系。

此外,攻击图应满足以下条件:只有当前置条件全部满足后,才能实现某个利用;如果某个可达条件的任意前置利用已实现,则该条件可以被满足。

3.2 节点的重要性

攻击图中的节点对网络安全的影响不同。在先前研究取得的有意义成果的基础上,我们从攻击者的角度出发,分析了可能影响节点重要性的因素,并提出了一种名为TNI的度量方法来评估节点重要性水平。

Mehta 等人提出使用谷歌PageRank算法来评估攻击图中节点重要性[13],该方法主要考虑拓扑结构和链接关系。PageRank算法是一种链接分析算法,它为超链接文档集中的每个元素分配一个数值权重。由于攻击序列的步骤越多,攻击成功的难度越大,攻击者倾向于选择最短的攻击路径进行攻击。考虑到最短路径,我们使用介数中心性[16]来评估节点的重要性水平。介数中心性是基于最短路径的图中一种衡量中心性的指标。

关于TNI的数学描述如下。首先,我们需要分别计算节点的PageRank值和介数中心性。

然后,我们将上述两个值在(0, 1)范围内归一化,并取上述两个参数的平均值。节点 $ v_i $ 的TNI记为 $ TNI(v_i) $:

$$
TNI(v_i) = \frac{PR(v_i) + BC(v_i)}{2}
\quad (1)
$$

在本段中,我们将详细讨论如何计算PageRank值。我们使用迭代算法来计算PageRank值。节点 $ v_i $ 在时间 $ t $ 的PageRank值表示为 $ PR(v_i, t) $:

$$
PR(v_i, t+1) = \frac{1 - d}{N} + d \sum \frac{PR(v_j, t)}{L(v_i)}
\quad (2)
$$

在(2)中,$ d $ 是常数k;$ M(v_i) $ 是链接到节点 $ v_i $ 的节点集合;$ L(v_i) $ 是该节点链接到其他节点的数量。首先 $ t = 0 $,将每个节点的PageRank值初始化为 $ PR(v_i, 0) = \frac{1}{N} $;然后,按照(2)进行迭代,直到满足(3)为止。最后一次迭代得到的值即为各节点的PageRank值。

$$
|PR(v_i, t+1) - PR(v_i, t)| \leq \epsilon
\quad (3)
$$

在(3)中,$ \epsilon $ 是一个可根据不同情况调整的常数。$ \epsilon $ 越小,公式收敛越困难。

在图中的每对节点之间都存在一条最短路径,使得该路径经过的边数最少。每个节点的介数中心性是指经过该节点的最短路径的数量。节点的介数中心性记为 $ BC(v_i) $。

$$
BC(v_i) = \sum_{s \neq i \neq t} \frac{r_{st}(v_i)}{r_{st}}
\quad (4)
$$

在(4)中,$ r_{st}(v_i) $ 是经过节点 $ v_i $ 的最短路径数量。$ r_{st} $ 是从节点s到节点t的最短路径总数。我们使用Dijkstra算法处理单源最短路径,并计算 $ r_{st}(v_i) $ 和 $ r_{st} $ 的值。

3.3 节点的最大可达概率

在攻击图中,可能存在多条从初始节点到目标节点的路径。对于不同的攻击序列,攻击难度也不同。攻击者倾向于选择最容易的路径进行攻击,因此网络安全取决于其最薄弱部分的安全性。我们将攻击者选择最容易路径攻击某个节点时的概率定义为最大可达概率。

如果节点 $ v \in V_d $,则节点 $ v $ 的最大可达概率可通过其父节点计算。若节点 $ c $ 是节点 $ v $ 的父节点之一,且 $ P(c) $ 为节点 $ v $ 的最大可达概率,则从节点 $ c $ 到节点 $ v $ 的可达概率为 $ P(v) = d(v) \cdot P(c) $。其中 $ d(v) $ 为节点 $ v $ 的访问概率。

我们从基于CVSS的数据库中获取访问概率的数据。对于节点 $ v $,最大可达概率为 $ P(v) = d(v) \cdot \max{P(c)} $,其中 $ c \in Pre(v) $。

若节点 $ v $ 属于 $ T $,根据攻击图的定义,其父节点的所有条件必须满足。我们可以推导出与初始节点相对应的公式。最大可达概率为 $ P(v) = d(v) \cdot \prod_{c \in Pre(v)} P(c) $。

对于初始节点和目标节点,我们定义它们的最大可达概率如下。初始节点表示攻击者可以利用的初始条件。目标节点是攻击者攻击网络的目标。在计算目标节点的最大可达概率时,需要先计算初始节点的概率。

定义2。 在攻击图 $ G = (V_o \cup V_d; T; E) $ 中,$ d(v_i) $ 是节点 $ v_i $ 自身的访问概率,$ Pre(v_i) $ 是节点 $ v_i $ 的父节点。节点 $ v_i $ 的最大可达概率定义为 $ P(v_i) $:

  • 若节点 $ v_i \in V_d $,则节点 $ v_i $ 的最大可达概率为 $ P(v_i) = d(v_i) \cdot \max{P(c)} $,其中 $ c \in Pre(v) $;
  • 若节点 $ v_i \in T $,则节点 $ v_i $ 的最大可达概率为 $ P(v_i) = d(v_i) \cdot \prod_{c \in Pre(v_i)} P(c) $。

我们可以根据定义2计算所有节点的最大可达概率。为了描述攻击者的多步攻击过程,我们使用广度优先搜索算法。为了模拟攻击者对多条路径的选择以及最长攻击路径的限制,我们在算法中定义了最长攻击长度L,并逐步搜索最优路径。长度L代表攻击者攻击网络的能力,应根据实际情况进行调整。

同时,我们定义了一种数据结构来记录攻击序列的轨迹,以避免环路路径。当出现环路路径时,我们应该find该环路路径的等效路径,而不是简单地取消环路路径。当存在多条路径时,我们的算法将根据定义2选择成功率最高的路径。

节点自身的概率可以从标准CVE(通用漏洞披露)名称[14]中查询得到。我们根据定义2采用不同的方法,在父节点计算完成后获取该节点的最大可达概率。最后,当所有步骤完成时,我们得到了每个节点的概率。

3.4 构建评估模型

综上所述,两个参数决定了网络安全态势:节点重要性和攻击图中节点的最大可达概率。设 $ V(v_i) $ 为计算节点 $ v_i $ 安全风险评分的函数,则可以得出:

  • 当 $ TNI(v_i) $ 不变时,$ P(v_i) $ 越高,$ V(v_i) $ 就越高。$ V(v_i) $ 与 $ P(v_i) $ 成正比。
  • 当 $ P(v_i) $ 不变时,$ TNI(v_i) $ 越高,$ V(v_i) $ 就越高。$ V(v_i) $ 与 $ TNI(v_i) $ 成正比。
  • 当 $ P(v_i) $ 和 $ TNI(v_i) $ 不变时,常数k越高,$ V(v_i) $ 的变化越明显。

基于上述判断及函数的单调性,我们可以构造一个安全风险函数:

$$
V(v_i) = k \cdot TNI(v_i) \cdot P(v_i)
\quad (5)
$$

我们还可以评估整个网络的安全状况。设 $ V $ 表示一个计算整个网络安全风险评分的函数。我们只需将各风险评分相加,即可得到整个网络的风险评分。然后,我们将该评分在(0, 1)范围内归一化,以便进行比较和评估。根据表达式(2)、(4)和(5),我们得出描述网络安全风险的数学模型如下:

$$
V = \log_N \left( \sum_{i \in [1,N]} e^{k \cdot TNI(v_i) \cdot P(v_i)} - 1 \right)
\quad (6)
$$

安全风险评分用于区分网络安全的等级。通过我们的方法,管理人员可以定期检查网络并收集安全风险信息。根据安全风险值,管理员能够了解整个网络的状况,并采取相应的措施,以相对确保网络的安全。

不同网络的安全区间也各不相同。此外,计算不同网络的安全评分需要不同的评分标准。因此,我们的方法不适合直接比较不同网络之间的安全状况。但是,我们的方法非常适用于同一网络的安全监控与评估。利用我们的方法处理同一网络的安全问题时,安全风险值的变化反映了网络安全水平的变化。管理者可以通过多次评估判断网络是否安全。

4 实验

在本节中,我们研究了一个相对真实的网络,以验证所提出算法的合理性和可行性。实验环境为 Intel Pentium E5400 (2.70 GHz)、2 GB内存、Windows XP。该算法在 Eclipse 3.2 中实现。

示意图0
| CVE名称 | CVSS评分 | 漏洞位置 | 访问复杂度 |
| — | — | — | — |
| CVE‐2006‐3747 | 7.5 | Apache服务器 | High |
| CVE‐2008‐4250 | 10 | Apache服务器 | Low |
| CVE‐2012‐0021 | 2.6 | Apache服务器 | High |
| CVE‐2012‐0578 | 4.0 | SQL服务器 | Low |
| CVE‐2011‐4671 | 7.5 | SQL服务器 | Low |

表1中的信息来自国家标准与技术研究院(NIST)发布的国家漏洞数据库。这些漏洞使用标准的通用漏洞披露(CVE)名称[15]进行存储。对于数据库中的每个漏洞,NVD提供1到10范围内的CVSS[16]评分。我们使用特定的数值来表征漏洞的访问复杂度。具体而言,我们使用0.37表示高访问复杂度,0.61表示中等访问复杂度,0.71表示低访问复杂度和未定义级别。

示意图1

节点 TNI TMP
c1 0.1 1
c2 0.1 1
c3 0.83 1
c4 0.1 1
c5 0.1 0.54
c6 0.35 0.35
c7 0.43 0.35
c8 0.1 1
c9 0.52 0.71
c10 0.1 1
c11 0.34 0.35
c12 0.5 0.64
e1 0.52 0.35
e2 0.41 0.35
e3 0.44 0.71
e4 0.53 0.35
e5 0.54 0.49
e6 0.55 0.50

图2展示了我们使用MulVAL生成的攻击图。由于图中每个节点的语义信息过长,我们将其替换为不同的字母编号。在此攻击图中,包含12个中间节点和6个目标节点。我们采用本文提出的算法计算两个参数,进而得到安全风险评分。TNI和最大可达概率的结果如表2所示。

该网络的安全值为0.62,相对较高。根据各个节点的最大可达概率,管理员可以了解哪些节点容易被泄露,进而采取相应的措施,以确保网络的安全。当某些漏洞被修复后,安全值会急剧下降。我们的方法可用于定期检查网络并收集安全风险信息。通过比较历史安全风险信息和风险值,网络管理员能够了解网络的安全状况。

5 结论

我们提出了一种基于攻击图的评估网络安全性的定量方法。我们分析网络的主机信息、拓扑信息和漏洞信息,获取所有可能的攻击路径并生成攻击图。在本论文中,我们基于网络构建了一个网络安全评估模型。然后,我们定义并计算攻击图中节点的重要性和节点的最大可达概率。最后,基于上述两个参数构建模型。该方法提供了一种分析攻击路径、计算网络安全风险值的途径,并帮助安全专业人员根据相关因素的条件决策偏好选择适当的对策。我们的后续工作是优化攻击概率评估算法,并在大规模网络上测试我们的方法。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐