攻击图技术总结
攻击图
定义
攻击图是一种有向图,展示了攻击者可能发动的攻击顺序和攻击效果,由顶点和有向边两部分构成。
在理论上攻击图可以构建完整的网络安全模型,反映网络中各个节点的脆弱性并刻画出攻击者攻陷重要节点的所有途径,弥补了以往技术只能根据漏洞数量和威胁等级评估节点和全网的安全性,而不能根据节点在网络中的位置和功能进行评估的缺陷。
规则 和 推导 是攻击图理论的核心。
攻击图的规则系统由许许多多的规则组成,而攻击图的推导引擎依据规则系统自动完成攻击路径的推导。
攻击路径就是从“初始条件”到“要证目标”的推导过程,将这个推导过程可视化便成了攻击树;由于推导过程可能有多种可能,就有多条攻击树,形成了攻击图。
状态攻击图
在状态攻击图中可以有多个状态顶点表示同一种全局状态。 随着状态的迁移,过于快速的状态增长使状态攻击图难以被应用到大规模网络中,且状态攻击图在视觉上不够直观,因此目前已少有针对状态攻击图的研究。
属性攻击图
概念定义
属性攻击图通常包含2类顶点和2类边:
-
顶点:
- 漏洞:存在漏洞的服务和通过利用该漏洞攻击者可以获取的权限,在图中表示为矩形顶点;
- 条件:攻击者当前所具有的权限,在图中表示为椭圆顶点。
-
边:
- 条件->漏洞:漏洞的前置条件;
- 漏洞->条件:漏洞的后置条件。
当漏洞顶点的全部前置条件都满足时该漏洞才被成功利用;任意一个条件顶点,只要是将其作为后置条件的某个漏洞被成功利用,都认为该条件可以被满足。
属性攻击图通常可表示为 \(AG=(C,V,E)\) ,其中:
- \(C\) 表示条件集合(包括所有初始条件、前置条件和后置条件);
- \(V\) 表示漏洞集合;
- \(E\) 表示边集合。
图例
条件
\(AG\) 满足以下条件:
对于 \(∨q∈ V\), \(Pre(q)\) 为前置条件集合,\(Post(q)\) 为后置条件集合,则有 \((∧Pre(q)) → (∧Post(q))\) 。
表明满足所有前置条件时可完成漏洞利用,从而满足该漏洞的所有后置条件。
贝叶斯攻击图
概念定义
在贝叶斯网络中,初始节点被赋予概率值,有向边表示了节点之间的因果关系,根据初始节点的概率值和节点间的因果关系可推导出后续所有节点的条件概率。
因此,目前对攻击路径发生概率和节点被攻陷概率的计算研究,大多基于贝叶斯网络进行,通常将基于贝叶斯网络的攻击图称为贝叶斯攻击图。
贝叶斯攻击图(BAG, Bayesian attack graph)是 一个有向无环图,可以表示为 \(BAG=(S,A,E,R,P)\), 具体定义如下。
- \(S\) 为属性节点集合,分为三类,即 \(S=S_{start}∪S_{transition}∪S_{target}\) ,其中,\(S_{start}\) 为网络攻击的发起节点,\(S_{transition}\) 为攻击行为的过程节点,\(S_{target}\) 为攻击者的目标节点。其中,\(S_i=\{0,1\}\),1 表示攻击者已经成功利用该属性节点漏洞占用该节点,0 表示该节点未被占用。
- \(A=\{A_i|i=1,2,...,n\}\) 为原子攻击集合,表示攻击者对节点漏洞的攻击行为,即属性节点的迁移方式,可表示为 \(A_i:S_{pre}→S_{next}\)。
- \(E=\{E_i|i=1,2,...,n\}\) 为攻击图中的有向边集合, 表示属性节点间攻击行为的因果关系,其中\((S_{pre}, S_{next})∈E_i\) 表示从 \(S_{pre}\) 攻击 \(S_{next}\) 的一条有向边。
- \(R\) 表示父子属性节点间的关系,可用二元组 \(<S_j,d_j>\) 表示,其中 \(d_j∈\{AND,OR\}\) 。AND 表示只有到达 \(S_j\) 的所有父节点状态为真,攻击才能完成;OR 表示只要其中一个父节点状态为真即可。
- \(P\) 为攻击图中属性节点的可达概率;\(P_1\) 为攻击图中节点属性的静态可达概率;\(P_2\) 为攻击图中节点属性的动态可达概率。
图例
评估标准
目前计算漏洞被利用概率一般通过 通用漏洞评分系统 (CVSS, common vulnerability scoring system ) 评分计算得到。
CVSS 是安全内容自动化协议(SCAP)的一部分,通常 CVSS 同 CVE 一同由美国国家漏洞库(NVD)发布并保持数据的更新。
CVSS 3.0 的中文说明文档:CVSS 3.0 计算公式及说明 ,目前最新版本为 CVSS 3.1,相关文档可在官网查阅。
攻击图生成工具
参考
罗智勇, 杨旭, 刘嘉辉, 等. 基于贝叶斯攻击图的网络入侵意图分析模型[J]. 通信学报, 2020, 41(9): 160-169.