攻击图中关键攻击集的识别

攻击图中关键攻击集的识别

Identification of Critical-Attacks Set in an Attack-Graph

申明
版权归原文作者及出版单位所有,如有侵权请联系删除。

摘要

SCADA/ICS(监控与数据采集/工业控制系统)网络成为先进多方面攻击的目标,并且攻击图的使用被提出用于建模复杂的攻击场景,这些场景利用现有原子漏洞之间的相互依赖性,连接攻击路径,可能危及系统级安全性质。虽然这种攻击场景的分析使安全管理员能够建立适当的安全措施来保护系统,但时间和成本的实际考虑限制了他们一次性解决所有系统漏洞的能力。在本文中,我们提出了一种方法,通过识别标签割来自动识别一组关键攻击,当阻止时,可以确保系统安全。我们利用给定攻击图的强连通分量(SCCs)生成攻击图的抽象版本,即SCCs之间的树,然后在该树上进行迭代的向后搜索,以识别一组向后可达的SCCs,以及它们的出边和标签,从而识别形成关键攻击集的具有最少标签的剪切。我们还报告了该算法在一个真实案例研究中的实施和验证,即用于水处理的SCADA网络的网络物理系统。
关键词:安全、网络物理系统、物联网、工业控制系统、SCADA系统、攻击图、最小标签剪切

I.介绍

SCADA/ICS系统是许多关键基础设施的控制骨干,例如电力网络、核电厂、交通系统和水/气分配网络。近年来,由于云计算和物联网革命,且其容易受到网络攻击的威胁,导致了SCADA/ICS连接性的逐步演进,包括了互联网/云。攻击图作为一种有助于图形化表示SCADA/ICS系统级安全漏洞的工具被提出。攻击图提供了一个全面的概述,展示了攻击者如何可能通过以相互依赖的方式利用组件级原子漏洞来危害系统。这种深入的表示还使系统管理员能够优化他们的防御资源的分配。

一般而言,即使是小型系统也可能有大而复杂的攻击图,因此对于受限于系统停机时间、预算和资源的系统管理员来说,保护攻击图中包含的所有漏洞可能是不可行的。此外,攻击图的规模使其难以完全依赖人工。因此,保护SCADA/ICS系统需要一种自动化工具,帮助系统管理员分析攻击图,以确定可以在可行的方式下帮助保护其系统的最小防御措施。

攻击图(Attack-graphs)是带标签的有向图,其中每个顶点表示系统状态和攻击者权限,每条边表示攻击者可能执行的原子攻击以获取更多权限,从初始节点到最终节点的每条路径表示攻击者可能遵循的攻击路径,以破坏系统级安全属性。因此,系统管理员的目标是找到最小数量的攻击,以防止攻击者从初始节点到最终节点的任何路径。在图论中,这被称为“割(cut)”。由于攻击图是一个有向带标签的图,找到能够切断从初始节点到最终节点所有路径的最小攻击数量,这是“最小标签割(min label-cut)”(MLC)[1, 2]问题的一个实例,需要找到必须从图中移除的最小数量的标签,以切断从初始节点到最终节点的所有路径。直接应用MLC在计算上具有限制,因为MLC通常是一个NP完全问题[1, 2]。

在这篇论文中,我们提出了一种基于攻击图分析的多项式复杂度、自动化的关键攻击集识别方法。首先,我们计算给定攻击图的强连通分量(SCCs),并利用它们生成攻击图的抽象版本,即其SCC的树形结构。(回顾一下,有向图的子图被称为连通分量,如果组成连通分量的每个顶点都存在一条从任意顶点到该连通分量中其他顶点的有向路径,在路径上的所有顶点都在该连通分量内。)接下来,我们在抽象的攻击图(SCC的树形结构)上进行向后搜索,从终止节点开始,每次一步,逐步找到能够以不断增加的步数到达终止节点的节点集,并确定它们出边的标签(每个标签形成一个切割)。最后,我们通过识别具有最小标签数量的切割,即SCC诱导的最小标签割(min SCCiMLC)。

本文的剩余部分结构如下:第I-A节回顾相关工作。第II节描述问题的定义和我们用于识别关键攻击集的算法。第III节介绍了应用于新加坡iTrust实验室的水处理CPS示例和实验结果。第IV节总结了研究结果并提出了未来的研究方向。

A. 相关工作

[1]通过将最小覆盖问题简化为寻找最小关键攻击集(等价于最小标签割,MLC)的问题,证明了其NP完全性。[2]通过将Hitting-Set问题简化为MLC问题,证明了其NP完全性,并提出了一种贪婪算法来解决Hitting-Set问题,该算法首先选择具有最高命中率的元素。[3]证明了MLC的一种松弛版本(寻找对MLC的一定逼近)本身也是NP完全的。他们提出了一种在
O(√n)因子内找到MLC解的近似算法。[4]改进了这项工作,提出了一个在O(n2/3)因子内找到MLC的近似解的方法。他们的方法计算了与近似命中集对应的最小多面体。[5, 6]研究了最小成本网络加固问题,本质上研究了找到最小成本的网络组件加固措施的问题,利用它们之间的依赖关系(如攻击图的情况)。[7, 8]提出了使用基于Google PageRank的方法,其中的思想是连续删除PageRank最高的节点,以最大程度地减少整体连通性。[9]提出了一种在AND/OR有向依赖攻击图中找到最小割集的遗传算法,其中割集表示一组安全对策,可以阻止攻击者达到目标。[10]研究了寻找最小标签生成树和最小标签路径的相关问题,但这些问题不一定导致割。

本文提出了一种新的基于最小强连通分量诱导的标签割方法,通过自动将攻击图抽象成其强连通分量的树,并使用向后迭代在越来越多的跳数内找到向后可达的强连通分量,利用它们的出边来识别潜在的割,然后选择具有最小标签数量的割。

II.关键攻击集计算

考虑一个攻击图G = (V, E, s, t, L, l \mathcal{l} l),其中V是顶点集合,E ⊆ V × V是连接顶点的边集合,s是源顶点,t是终止顶点,L是标签集合,每个标签表示一个原子攻击, l \mathcal{l} l : E → L是边标记函数。图1展示了一个攻击图示例,其中从源顶点s开始并以终止顶点t结束的每条边序列表示可以危害系统的攻击序列。基于模型的方法可以根据系统描述、原子攻击动作和感兴趣的安全性质计算攻击图,相关工作可以参考[2, 11, 12]。

Figure 1: Attack-Graph Example

图1:攻击图图例

原子攻击动作可以通过消除其根本原因漏洞(例如,通过提供可用的软件补丁)来减轻,这相当于从攻击图中删除相应的带标签的边。为了使整个系统安全,使得无法通过一系列原子攻击动作违反所期望的系统级安全性质,可以减轻一组原子攻击,从而从攻击图中删除相应的带标签的边,使终止顶点从源顶点不可达。

这样一组原子攻击可以被视为诱导攻击图的一个标记切割(labeled cut),其中标记切割就是一个标签集合 L’ ⊆ L,其删除携带这些标签的边将断开源顶点和终止顶点之间的连接。能够断开给定攻击图的攻击集合被称为关键攻击集(critical-attacks set)。因此,一个理想的目标是找到一个最小的关键攻击集,即寻找一个最小标记切割(min labeled-cut)问题的实例。这个问题的目标是确定一个最小的标签集合 L‘ ⊆ L,使得在从攻击图中删除携带标签集合 L’ 的边后,源顶点 s 和终止顶点 t 不再连通。

最小标记切割(MLC)问题已被证明是一个 NP 完全问题。为了以多项式时间复杂度找到一个“近似最小的关键攻击集” CA ⊆ L,本文引入了“强连通分量诱导的最小标记切割(SCCiMLC)”的概念,以近似表示一个最小的关键攻击集。

A. 强连通分量诱导的最小标记切割

在我们之前的工作中[11, 12],我们开发了一种名为A2G2V(Automated Attack Graph Generation and Visualization)的算法,用于基于模型的自动攻击图生成,并扩展了[2]的初始工作,以处理可以作为状态轨迹谓词的安全属性,而不仅仅是状态的谓词。A2G2V又依赖于我们的Automated Network Device and Vulnerability Identification(ANDVI)工具[13]的方法,该工具被动观察网络流量以发现网络连接性和指纹网络设备(fingerprint network devices),然后参考其漏洞数据库,列举设备漏洞以及相关的原子攻击行为。A2G2V使用ANDVI的输出(设备漏洞和其连接性)来枚举所有原子攻击行为的嵌套组合,以生成一个攻击图,其中包含所有可以威胁系统级安全属性的原子攻击行为序列(“attack-paths”)。

我们提出的SCCiMLC算法(图2)以多项式时间逼近了MLC问题的解,通过以下方式识别关键攻击集。首先,它创建给定攻击图的抽象树版本(即无环图),定义在其强连通分量(SCCs)的顶点集上。接下来,从终止节点开始,它使用向后搜索的方式迭代地识别在k步或更少步骤内可以达到终止节点的节点集,并且还识别与后向k步可达节点相关的割,即这些节点的出边。具有最小标签数的割形成SCCiMLC。

为了可视化所提出的SCCiMLC算法,考虑一个更简单的情况,即攻击图中从源节点s到终止节点t的所有边都是正向边,即给定的攻击图没有环(是一棵树),因此每个节点都是其自身的 S C C 注 ( 1 ) SCC^{注(1)} SCC(1)。从t开始,每次向后一跳,可以迭代地识别在1步或更少步骤内到达t的节点集、在2步或更少步骤内到达t的节点集、在3步或更少步骤内到达t的节点集等等。对于每个可以在k步或更少步骤内到达t的节点集(k ≥ 1),存在一组出边,割掉这些边将诱导出一个割。在这些割中,具有最小标签数的割就是SCCiMLC。同样的思想可以应用于给定攻击图的SCCs上的树图,通过在该树上进行向后搜索,得到距离终止节点k步或更少步骤的SCCs,并将其出边的标签识别为标签割。

【注:(1)处我的理解是,由于是树,根据强连通分量的定义,强连通分量只会包含1个点】

图二:关键攻击识别(CAI)算法的构建

定义1:对于图 (V, E),如果对于所有的 u, v ∈ C,存在一条边的序列 (u, v1)(v1, v2). . .(vi, vi+1)(vi+1, vi+2). . .(vn, v),连接 u 到 v,并且 v1 . . . vn ∈ C,则 C ⊆ V 是一个强连通分量(SCC)。SCC C 的边集 Ec 简单地定义为 Ec := E ∩ (C × C)。

定义2:对于攻击图 (V, E, s, t, L, l \mathcal{l} l),我们可以得到其强连通分量集合上的一个抽象图,( ν \nu ν, ε \varepsilon ε, Cs, Ct, L, l \mathcal{l} l),其中 ν \nu ν 是 (V, E) 的强连通分量集合; ε \varepsilon ε := {(C, C’) ∈ ν × ν \nu × \nu ν×ν|∃u ∈ C, v ∈ C’, (u, v) ∈ E} 是连接任意两个强连通分量的边的集合;Cs, Ct ∈ ν \nu ν 分别是包含 s, t 的强连通分量(即 s ∈ Cs, t ∈ Ct);对于任意的边(C, C’) ∈ E, l \mathcal{l} l((C, C’)) = {l ∈ L|∃u ∈ C, v ∈ C’, l = (u, v)},即它是连接 C 到 C’ 的所有边的标签的并集。

一旦生成了抽象图(强连通分量之间(over)的树形结构),我们使用迭代的反向遍历算法,每次迭代一步,从终止强连通分量 C t C_t Ct 开始,找到能够在 k ≥ 0 步迭代中到达终止强连通分量的一组强连通分量 ν k ⊆ ν \nu_k ⊆ \nu νkν,初始时 ν 0 = C t \nu_0 = C_t ν0=Ct。我们还记录 ν k \nu_k νk 的出边集合 ε k ⊆ ε \varepsilon_k ⊆ \varepsilon εkε 和它们的标签集合 L k ⊆ L L_k ⊆ L LkL,初始时 ε 0 \varepsilon_0 ε0 = L 0 L_0 L0 = ∅。以下是在 0 ≤ k ≤ ∣ ν ∣ − 1 0 ≤ k ≤ |\nu| − 1 0kν1 的迭代计算中执行的步骤。

初始化:
k = 0 ; ν k k = 0;\nu_k k=0νk = { C t C_t Ct}; ε k \varepsilon_k εk = L k L_k Lk = ∅;
迭代:
ν k + 1 \nu_{k+1} νk+1 := {C ∈ ν \nu ν | ∃ C ′ C' C ∪ i ≤ k ν i ∪_{i≤k} \nu_i ikνi,使得 ( C , C ′ C, C' C,C) ∈ ε \varepsilon ε};
ε k + 1 \varepsilon_{k+1} εk+1 = {( C , C ′ C, C' C,C) ∈ ε \varepsilon ε ∣ C ∈ ν k + 1 | C ∈ \nu_{k+1} Cνk+1 C ′ C' C ∪ i ≤ k ν i ∪_{i≤k} \nu_i ikνi};
L k + 1 : = l ( ε k + 1 ) L_{k+1} := \mathcal{l}(\varepsilon_{k+1}) Lk+1:=l(εk+1)
终止条件:
如果 ∪ 0 ≤ i ≤ k + 1 ∪_{0≤i≤k+1} 0ik+1 ν i = ν \nu_i = \nu νi=ν,则设置 i ∗ : = a r g i^∗ := arg i:=arg m i n 1 ≤ i ≤ k + 1 ∣ L i ∣ , L ∗ : = L i ∗ min_{1≤i≤k+1} |L_i|,L^∗ := L_{i^∗} min1ik+1LiL:=Li,并停止;否则,设置 k = k + 1 k = k + 1 k=k+1 并跳转到迭代步骤。
该算法选择 i ∗ i^∗ i 作为标签数量最小的索引( i ∗ = a r g m i n 1 ≤ i ∣ L i ∣ i^∗ = argmin_{1≤i} |L_i| i=argmin1iLi)。然后, L i ∗ L_{i^∗} Li 是一个近似的期望 SCCiMLC,它逼近了 MLC。
下面给出了 SCCiMLC 的具体步骤的算法形式化:
在这里插入图片描述

在算法1中,生成SCC、构建SCC树以及在树上进行反向可达性搜索以找到SCCiMLC,所有这些步骤都可以在给定攻击图的大小的线性复杂度下完成。这意味着找到SCCiMLC的算法具有线性复杂度。我们使用C语言对上述找到SCCiMLC的算法进行了编码。该算法接收我们的A2G2V算法的输出(用于生成攻击图),而A2G2V算法又接收我们的ANDVI算法的输入,该算法处理网络流量以识别(i)网络设备,并将其与现有数据库进行映射以识别它们的漏洞和相应的原子攻击动作,以及(ii)网络连接性。为了验证我们的最小SCCiMLC实现,我们在用于控制新加坡iTrust实验室水处理测试台的SCADA网络的攻击图上进行了测试[14]。下一节将对此进行描述。

III. 水处理CPS案例研究

为了展示所提出的方法在实际的工业控制系统中的适用性,我们选择了iTrust实验室的水处理测试平台作为案例研究(图3)。
在这里插入图片描述

图3:水处理系统的SCADA架构

该系统基于iTrust实验室的一个功能完全的水处理CPS测试平台[14]。该系统由十三个主机组成:Host-0是远程站点;host-1是SCADA服务器;host-2是SCADA工作站;host-3是工程师的笔记本电脑;host-4是操作员的人机界面(HMI);host-5是控制室;host-6到host-11是通过传感器和执行器控制物理过程的可编程逻辑控制器(PLC);host-12是远程终端单元(RTU)。我们假设攻击者已经获得了对远程站点(host-0)的访问权限。防火墙分隔了host-0、host-1、host-2、host-3和系统的其他部分。防火墙限制了从远程站点到host-1、host-2和host-3的访问,并允许从host-1、host-2和host-3到系统的其他部分的访问。PLC与host-4和host-5进行通信,但彼此之间不进行通信。远程站点(host-0)与RTU(host-12)进行通信,RTU(host-12)与PLC-6进行通信。SCADA系统的组件和服务都是西门子产品。在线数据库[15, 16]列出了这些组件可能存在以下漏洞,我们假设这些漏洞对我们的方法进行说明:

  1. SCADA服务器是一个SINEMA服务器,其中:
    a)iws:集成的Web服务器位于端口4999/TCP和端口80/TCP,如果攻击者可以访问服务器的网络,则可能允许未经身份验证的远程代码执行。
    b)lmw:如果受影响的产品未安装在默认路径(C:\ P rogramF iles\ * 或相应的本地化路径)下,本地Microsoft Windows操作系统用户可以提升其特权。
  2. SCADA工作站是SIMATIC Wincc flexible运行时,在其中:
    a)rmm:SIMATIC Wincc flexible面板的远程管理模块在网络上传输的凭据(credentials)受到较弱的保护。攻击者可以捕获远程管理模块的网络流量并重构凭据。
    b)inws:Siemens Wincc flexible允许具有用户访问权限的远程攻击者通过未指定的向量注入任意的Web脚本或HTML。
  3. 工程笔记本电脑运行着Wincc TIA portal,在其中:
    a) bac:当用户登录时,应用程序设置可预测的认证令牌/cookie值。这可能允许攻击者绕过身份验证检查。
    b) inws:Wincc TIA portal允许远程攻击者通过未指定的向量注入任意的Web脚本或HTML
  4. HMI运行的Wincc runtime advanced中存在以下漏洞:
    a) rmm: Wincc runtime advanced的远程管理模块在网络上传输的凭据受到较弱的保护。攻击者可以捕获远程管理模块的网络流量并重构凭据。
    b) inws: Siemens Wincc runtime advanced允许远程攻击者通过未指明的途径注入任意的Web脚本或HTML。
  5. 控制中心运行的是Wincc Runtime Professional,其中:
    a) rmm:SIMATIC Wincc Runtime Professional的远程管理模块通过网络传输弱保护的凭证。攻击者可以捕获远程管理模块的网络流量并重建凭证。
    b) inws:Siemens Wincc Runtime Professional允许远程攻击者通过未指定的向量注入任意的网页脚本或HTML代码。
  6. PLC设备为西门子SIMATIC S7-1500 CPU PLC,其中:
    a) rng:西门子SIMATIC S7-1500 CPU PLC设备上的随机数生成器缺乏足够的熵,这使得远程攻击者更容易通过未指定的向量来破解加密保护机制并劫持会话。
  7. RTU(SICAM RTUs SM-2556 COM模块):
    a)osdi:受影响设备的集成Web服务器(端口80/tcp)可能允许未经身份验证的远程攻击者通过网络获取敏感设备信息。
    b)uxac:受影响设备的集成Web服务器(端口80/tcp)可能允许未经身份验证的远程攻击者在受影响设备上执行任意代码。

上述列出的SCADA系统的原子漏洞可以被利用,导致以下原子攻击:
1)远程代码执行(rce):该攻击利用了SINEMA集成Web服务器在端口4999/TCP和端口80/TCP上的漏洞,如果攻击者能够访问服务器,则可以实现该攻击,使攻击者获得对被攻击主机的用户访问权限。
2)未引用的服务路径(usp):该攻击利用了SINEMA服务器Windows操作系统中的漏洞,允许本地用户提升权限以获得对被攻击主机的根访问权限。
3)用户凭证构造(ucc):该攻击利用了SIMATIC Wincc flexible、SIMATIC Wincc advanced和SIMATIC Wincc professional中的弱密码凭证,使攻击者获得对被攻击主机的用户访问权限。
4)跨站脚本攻击(xss):该攻击利用了Wincc TIA portal、SIMATIC Wincc flexible、SIMATIC Wincc advanced和SIMATIC Wincc professional中的Web脚本和HTML代码注入漏洞,使攻击者获得对被攻击主机的根访问权限。
5)身份验证令牌/cookie(atc):该攻击利用了Wincc TIA portal中可预测的身份验证令牌/cookie值,使攻击者获得对被攻击主机的根访问权限。
6)加密保护机制(cpm):该攻击利用了SIMATIC S7-1500 CPU中的随机数生成器漏洞,如果攻击者能够访问PLCs,则可以实现该攻击,使攻击者获得对被攻击主机的根访问权限。
7)未经授权的远程嗅探(urs):该攻击利用了SICAM RTUs SM-2556集成Web服务器在端口80/TCP上的漏洞,如果攻击者能够访问服务器,则可以实现该攻击,使攻击者获得对被攻击主机的用户访问权限。
8)未经授权的远程执行(urx):该攻击利用了SICAM RTUs SM-2556集成Web服务器在端口80/TCP上的漏洞,如果攻击者能够访问服务器,则可以实现该攻击,使攻击者获得对被攻击主机的根访问权限。

水处理系统的形式化规范如下:
1)主机集合 H = 0 , 1 , 2 , ⋅ ⋅ ⋅ , 12 H = 0, 1, 2, · · · , 12 H=0,1,2,⋅⋅⋅,12;变量 i ∈ 0 , 1 , 2 , ⋅ ⋅ ⋅ , 12 i ∈ {0, 1, 2, · · · , 12} i0,1,2,⋅⋅⋅,12(静态参数)。
2)系统连接性, C ⊆ H × H C ⊆ H × H CH×H;布尔值; c i j = 1 c_{ij} = 1 cij=1 当且仅当主机 i i i与主机 j j j连接(静态参数)。
3)系统服务S;布尔值; s i = 1 s_i = 1 si=1 当且仅当服务 s s s ∈ { SCADA服务器为SINEMA,SIMATIC Wincc runtime flexible, Wincc runtime advanced, Wincc runtime professional, Wincc TIA portal, SIMATIC S7-1500 CPU,
SICAM RTUs SM-2556 }在主机 i i i上运行(动态变量)。
4)系统漏洞 V V V;布尔值; v i = 1 v_i = 1 vi=1当且仅当漏洞 v v v ∈ { i w s , l m w , r m m , i n w s , b a c , r n g , o s d i , u x a c iws, lmw, rmm, inws, bac, rng, osdi,uxac iws,lmw,rmm,inws,bac,rng,osdi,uxac} 存在于主机 i i i上(静态参数)。
5)攻击实例 A I ⊆ A × H × H A_I ⊆ A × H × H AIA×H×H;标记 a i j ≡ a_{ij} ≡ aij从源 i i i到汇 j j j的攻击 a , a ∈ r c e , u s p , u c c , x s s , a t c , c p m , u r s , u r x a,a ∈ {rce, usp, ucc, xss, atc, cpm, urs, urx} aarce,usp,ucc,xss,atc,cpm,urs,urx(静态参数)。
6)信任关系 T ⊆ H × H T ⊆ H × H TH×H;布尔值; t i j = 1 t_{ij} = 1 tij=1 当且仅当 i i i j j j信任(动态变量)。
7)攻击者在主机 i i i上的权限级别 L L L;变量 l i ∈ n o n e , u s e r , r o o t l_i ∈ {none, user, root} linone,user,root(动态变量)。
8)攻击前置条件:
P r e ( r c e i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j = n o n e ) ∧ i w s = 1 Pre(rce_{ij} ) ≡ c_{ij} = 1∧(l_i \geq user)∧(lj = none) ∧ iws = 1 Pre(rceij)cij=1(liuser)(lj=none)iws=1
P r e ( u s p i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j < r o o t ) ∧ l m w = 1 Pre(usp_{ij} ) ≡ c_{ij} = 1 ∧ (l_i \geq user) ∧ (lj < root) ∧ lmw = 1 Pre(uspij)cij=1(liuser)(lj<root)lmw=1
P r e ( u c c i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j = n o n e ) ∧ r m m = 1 P re(ucc_{ij} ) ≡ c_{ij} = 1∧(l_i \geq user)∧(lj = none)∧ rmm = 1 Pre(uccij)cij=1(liuser)(lj=none)rmm=1
P r e ( x s s i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j < r o o t ) ∧ i n w s = 1 Pre(xss_{ij} ) ≡ c_{ij} = 1 ∧ (l_i \geq user) ∧ (lj < root) ∧ inws = 1 Pre(xssij)cij=1(liuser)(lj<root)inws=1
P r e ( a t c i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j = n o n e ) ∧ b a c = 1 Pre(atc_{ij} ) ≡ c_{ij} = 1 ∧ (l_i \geq user) ∧ (lj = none) ∧ bac = 1 Pre(atcij)cij=1(liuser)(lj=none)bac=1
P r e ( c p m i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j = n o n e ) ∧ r n g = 1 Pre(cpm_{ij} ) ≡ c_{ij} = 1∧(l_i \geq user)∧(lj = none)∧ rng = 1 Pre(cpmij)cij=1(liuser)(lj=none)rng=1
P r e ( u r s i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j = n o n e ) ∧ o s d i = 1 Pre(urs_{ij} ) ≡ c_{ij} = 1∧(l_i \geq user)∧(lj = none)∧ osdi = 1 Pre(ursij)cij=1(liuser)(lj=none)osdi=1
P r e ( u r x i j ) ≡ c i j = 1 ∧ ( l i ≥ u s e r ) ∧ ( l j = n o n e ) ∧ u x a c = 1 Pre(urx_{ij} ) ≡ c_{ij} = 1∧(l_i \geq user)∧(lj = none)∧ uxac = 1 Pre(urxij)cij=1(liuser)(lj=none)uxac=1
9)攻击后置条件:
p o s t ( r c e i j ) ≡ ( l j = u s e r ) ∧ ( i w s = 0 ) post(rce_{ij}) ≡ (l_j = user) ∧ (iws = 0) post(rceij)(lj=user)(iws=0)
p o s t ( u s p i j ) ≡ ( l j = r o o t ) ∧ ( l m w = 0 ) post(usp_{ij} ) ≡ (l_j = root) ∧ (lmw = 0) post(uspij)(lj=root)(lmw=0)
p o s t ( u c c i j ) ≡ ( l j = u s e r ) ∧ ( r m m = 0 ) post(ucc_{ij} ) ≡ (l_j = user) ∧ (rmm = 0) post(uccij)(lj=user)(rmm=0)
p o s t ( x s s i j ) ≡ ( l j = r o o t ) ∧ ( i n w s = 0 ) post(xss_{ij} ) ≡ (l_j = root) ∧ (inws = 0) post(xssij)(lj=root)(inws=0)
p o s t ( a t c i j ) ≡ ( l j = u s e r ) ∧ ( b a c = 0 ) post(atc_{ij} ) ≡ (l_j = user) ∧ (bac = 0) post(atcij)(lj=user)(bac=0)
p o s t ( c p m i j ) ≡ ( l j = r o o t ) ∧ ( r n g = 0 ) post(cpm_{ij} ) ≡ (l_j = root) ∧ (rng = 0) post(cpmij)(lj=root)(rng=0)
p o s t ( u r s i j ) ≡ ( l j = u s e r ) ∧ ( o s d i = 0 ) post(urs_{ij} ) ≡ (l_j = user) ∧ (osdi = 0) post(ursij)(lj=user)(osdi=0)
p o s t ( u r x i j ) ≡ ( l j = r o o t ) ∧ ( u x a c = 0 ) post(urx_{ij} ) ≡ (l_j = root) ∧ (uxac = 0) post(urxij)(lj=root)(uxac=0)
10)初始状态: l 0 = r o o t ∧ ( l 1 = l 2 = ⋅ ⋅ ⋅ = l 11 = n o n e ) ∧ ( ∀ i j ∈ H × H : t i j = 0 ) ∧ ( i w s = l m w = r m m = i n w s = b a c = r n g = o s d i = u x a c = 1 ) l_0 = root ∧ (l_1 = l_2 = · · · = l_{11} = none) ∧ (∀ij ∈ H × H : t_{ij} = 0) ∧ (iws = lmw = rmm = inws = bac = rng = osdi = uxac = 1) l0=root(l1=l2=⋅⋅⋅=l11=none)(ijH×H:tij=0)(iws=lmw=rmm=inws=bac=rng=osdi=uxac=1)
(初始时,攻击者在主机0上具有root权限,在其他主机上没有权限,主机之间互不信任,SCADA系统组件上运行着 i w s , l m w , r m m , i n w s , b a c , r n g , o s d i 和 u x a c iws, lmw, rmm, inws, bac, rng, osdi和uxac iws,lmw,rmm,inws,bac,rng,osdiuxac。)
11)感兴趣(of interest)的安全属性φ在攻击者在主机4、主机5或主机6上具有root权限时被违反。这可以通过计算树逻辑(CTL)公式来描述:
¬ φ ≡ A G ( ( l 4 = r o o t ) ∨ ( l 5 = r o o t ) ∨ ( l 6 = r o o t ) ) . ¬φ ≡ AG((l_4 = root) ∨ (l_5 = root) ∨ (l_6 = root)). ¬φAG((l4=root)(l5=root)(l6=root)).

我们使用之前开发的A2G2V工具[11, 12]生成了破坏该属性的攻击图,如图4所示。
在这里插入图片描述

图4:生成的水处理SCADA CPS攻击图

A2G2V的输入包括网络拓扑,以AADL(Architecture Analysis & Development Language)[17]规范表示,以及与每个网络设备相关的原子攻击操作(及其前置条件和后置条件),在AADL的AGREE Annex [18]中进行了说明。需要注意的是,水处理SCADA系统有12个设备,它们之间有23个连接。这些设备面临7种不同类型的漏洞,并受到8种不同类型的原子攻击(如上所列)。在特定的前置条件下,可以对设备进行原子攻击,以提升攻击者在连接设备上的特权级别。攻击图随着利用连接设备的漏洞进行的原子攻击而跟踪攻击者在所有12个设备上的动态特权级别的变化。这些原子攻击可以嵌套在一起形成150种不同的攻击序列(见图4),攻击者可以执行这些攻击序列来违反系统级的安全属性(即,在主机4、主机5或主机6上获得root访问权限)。所有这些攻击序列都是使用我们的A2G2V工具自动计算并以图形方式显示的。

我们对提出的SCCiMLC算法的实现计算出关键攻击集为 C A CA CA = { c p m − 6 cpm-6 cpm6, x c c − 5 xcc-5 xcc5, x c c − 4 xcc-4 xcc4},这意味着防止攻击者利用这96个原子攻击行为中的这三个可以确保水处理SCADA系统的系统级安全属性。快速分析表明,移除任何较小的攻击子集,即 C A CA CA的真子集,不会使攻击图断开连接。因此,所提出的SCCiMLC算法能够找到应用程序的最小关键攻击集,这是令人鼓舞的。
在一台标准计算机上,使用Core i5/2.2GHz/4GB RAM,运行Win 10操作系统,我们的算法花费1分钟从给定的攻击图中计算出最小关键攻击集。为了充分了解计算出的关键攻击集的大小与最小关键攻击集的大小,我们计划在撰写更完整的手稿时对更大的测试攻击图集进行进一步的模拟。

IV. 结论和未来工作

对于一个攻击图来说,关键攻击集是一小组攻击,防止这些攻击可以使系统更安全。这实际上是一个最小标签割(MLC)问题的实例,一般情况下是一个NP完全问题。我们提出了一种多项式复杂度的自动关键攻击集识别方法,引入了强连通分量诱导的最小标签割(SCCiMLC)的概念来近似解决MLC问题。为此,我们使用强连通分量的顶点集构建了一个抽象的攻击图(一棵树状图),然后迭代地识别终止节点的后向可达节点,步数逐渐增加,并使用它们的出边构建割,并使用割的标签形成标签割。其中最小的标签就是一个SCCiMLC。

我们扩展了我们的工具链ANDVI [13]和A2G2V [11, 12],对它们生成的攻击图进行分析,自动构建SCC-抽象的攻击图,并进行所需的计算以在多项式时间内找到SCCiMLC,其中SCCiMLC代表所需的关键攻击集。我们通过将该方法应用于iTrust实验室的一个真实水处理SCADA系统实验台来证明了该方法的有效性。

在SCADA/ICS系统中识别关键攻击集是改善其整体网络安全的重要第一步,可以帮助系统管理员更优化地分配资源以加强安全防御。下一步是将所提出的方法与运行时安全防御/补丁实施工具集成起来,以实现最佳资源分配和防御实施,从而提高整体安全性和防御策略来应对潜在的网络攻击。

鸣谢

本研究部分得到了美国国家科学基金会(NSF)的支持,项目编号为NSF-CCF-1331390、NSF-ECCS-1509420和NSF-IIP-1602089,以及Rockwell Collins通过NSF-IUCRC、S2ERC的支持。作者们感谢iTrust团队分享了用于验证我们提出的方案的水处理系统SCADA数据。

参考文献

[1] O. Sheyner, J. Haines, S. Jha, R. Lippmann, and J. M.
Wing, “Automated generation and analysis of attack
graphs,” in Proceedings 2002 IEEE Symposium on Security and Privacy. IEEE, 2002, pp. 273284.
[2] S. Jha, O. Sheyner, and J. Wing, “Two formal analyses
of attack graphs,” in Proceedings 15th IEEE Computer
Security Foundations Workshop. CSFW-15. IEEE, 2002,
pp. 4963.
[3] P. Zhang, J.-Y. Cai, L.-Q. Tang, and W.-B. Zhao, “Approximation and hardness results for label cut and related problems,” Journal of Combinatorial Optimization,
vol. 21, no. 2, pp. 192208, 2011.
[4] T. Dutta, L. S. Heath, V. A. Kumar, and M. V. Marathe,
“Labeled cuts in graphs,” Theoretical Computer Science,
vol. 648, pp. 3439, 2016.
[5] S. Noel, S. Jajodia, B. O’Berry, and M. Jacobs, “Efficient
minimum-cost network hardening via exploit dependency
graphs,” in 19th Annual Computer Security Applications
Conference, 2003. Proceedings. IEEE, 2003, pp. 8695.
[6] L. Wang, S. Noel, and S. Jajodia, “Minimum-cost network hardening using attack graphs,” Computer Communications, vol. 29, no. 18, pp. 38123824, 2006.
[7] R. E. Sawilla and X. Ou, “Identifying critical attack
assets in dependency attack graphs,” in European Symposium on Research in Computer Security. Springer,
2008, pp. 1834.
[8] R. Sawilla and C. Burrell, Course of action recommendations for practical network defence. Defence R&D
Canada-Ottawa, 2009.
[9] M. Alhomidi and M. Reed, “Finding the minimum cut
set in attack graphs using genetic algorithms,” in 2013 International Conference on Computer Applications Technology (ICCAT). IEEE, 2013, pp. 16.
[10] R. Hassin, J. Monnot, and D. Segev, “Approximation
algorithms and hardness results for labeled connectivity problems,” Journal of Combinatorial Optimization,
vol. 14, no. 4, pp. 437453, 2007.
[11] A. T. Al Ghazo, M. Ibrahim, H. Ren, and R. Kumar,
“A2G2V: Automated attack graph generator and visualizer,” in Proceedings of the 1st ACM MobiHoc Workshop
on Mobile IoT Sensing, Security, and Privacy. ACM,
2018, p. 3.
[12] A. T. Al Ghazo, M. Ibrahim, H. Ren, and R. Kumar,
“A2G2V: Automatic attack graph generation and visualization and its applications to computer and scada
networks,” IEEE Transactions on Systems, Man, and
Cybernetics: Systems, pp. 111, 2019.
[13] A. T. A. Ghazo and R. Kumar, “Ics/scada device recognition: A hybrid communication-patterns and passivefingerprinting approach,2019 IFIP/IEEE Symposium on
Integrated Network and Service Management (IM), pp.
1924, 2019.
[14] iTrust. (2019) Secure water treatment tesetbed.
Accessed:4/24/2019. [Online]. Available: https://itrust.
sutd.edu.sg/testbeds/secure-water-treatment-swat/
[15] CVE. (2018) Siemens common vulnerabilities.
Accessed:4/25/2019. [Online]. Available: https://cve.
mitre.org/cgi-bin/cvekey.cgi?keyword=siemens
[16] D. of Homeland Security. (2018) ICSCERT. Accessed:4/25/2019. [Online]. Available: https://search.usa.gov/search?utf8=%E2%9C%93&
affiliate=us-cert-ics&sort by=&query=siemens
[17] Carnegie-Mellon-University. (2016) Open source aadl
tool environment for the sae architecture analysis and
design language (aadl). Accessed:1/11/2018. [Online].
Available: http://osate.org/about-osate.html
[18] Rockwell-Collins and Uof-Minnesota. (2016) The
assume guarantee reasoning environment. Pittsburgh,
Pennsylvania, USA,. Accessed:1/11/2018. [Online].
Available: http://standards.sae.org/as5506/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值