2020-VCPEC: Vulnerability Correlation Analysis Based on Privilege Escalation and Coritivity Theory
VCPEC:基于权限提升和核度理论的漏洞相关性分析
摘要
漏洞相关性分析已经成为漏洞分析领域的一项关键技术,它有效地解决了只分析孤立漏洞的局限性。尽管现有技术已经证明了它们在评估弱点之间的复杂关系方面的有效性,但是它们在准确定位关键弱点方面仍然是有限的。为了解决这个问题,我们设计了一个漏洞相关性分析方法,命名为VCPEC,使用扩展的核度理论来发现关键漏洞。其核心思想是根据系统权限分级策略和漏洞权限提升路径构建漏洞关联图(VCG ),降低图中的复杂度。然后利用扩展核度理论计算VCG的核心,这意味着可以进一步识别关键漏洞。这样,通过修复关键漏洞来实现对目标系统的高效保护,节省了修复漏洞的成本。我们设计并执行了实验来验证VCPEC在真实软件系统中的可行性和有效性。结果表明,VCPEC能够准确定位关键漏洞。
文章贡献
- 一种新的关联图模型。我们提出了一个基于系统权限分级策略和权限提升路径的图模型。
- 扩展核心与核度理论。将传统的core和cortivity理论扩展到漏洞分析领域(即从无向无权图扩展到有向带权图),并设计了一种新的计算公式,使其适用于漏洞相关图模型,这是本方法的主要贡献。这样,我们将关键漏洞识别问题转化为图模型中核心的精确计算。
- 评价。为了检验VCPEC的性能,我们在真实世界的计算机系统上设计并执行了两个实验,同时引入保护期望作为度量。结果清楚地表明,我们的方法可以准确地发现关键漏洞。在此基础上,管理员可以通过修复这些关键漏洞来进一步有效地保护目标系统并节省修复成本。
VCG图结构
权限等级
软件系统通常使用权限分级来约束不同角色的行为,从而进行安全管理。根据系统特性的不同,特权策略并不完全相同。具体来说,对于n级系统,特权可以分为{l1,l2, ..., ln}从高到低,其中l1指的是root,也就是系统管理员。并且设设O是表示非特权提升漏洞的终止级别的特殊级别。因此,一个n级软件系统的完整权限等级是{O,l1,l2,...,ln}。
权限向量
权限向量表示漏洞的权限提升操作。在基于权限提升的攻击中,攻击者利用漏洞所需的级别称为起始级别,利用漏洞后达到的级别称为终止级别。因此,特权向量可以用二元组(li,li-1)的形式表示,其中li表示起始级别,li-1表示终止级别。基于此,n级特权系统中的特权向量可以如下表所示进行枚举。

VCG图结构
- 对于前述的n级特权系统{O,l1,l2,...,ln},VCG应该包括n层。请注意,O和l1被置于同一级别,因为事实上它们对系统安全性有相同的影响。
- 图上每个点表示具有相同权限向量的不同类型漏洞的集合。集合中漏洞的数量进一步表示该顶点的权重。即每个顶点都包含多个漏洞,这大大降低了图的规模
- VCG中的边是有向的,表示一对顶点之间的权限提升关系。
原始核度理论
度理论是一种图论方法,该理论利用核心来刻画复杂系统中的一些重要实体,并采用核度来定量度量核心的重要性,进而获得系统的连通性和稳定性。
核心
设X是一个有n个实体的现实世界系统,表示为X (e1,e2,..., en), 核心是一组最重要的实体,当一起移除时,它们将对系统产生最显著的影响。
核度
对于真实世界的系统X,表示为h(X)的核度是量化X中核心的重要程度的度量。
具体来说,核度理论将现实世界的系统抽象为一个无向无权重图,其中一个顶点代表系统的一个实体,一条边代表一对实体之间的关系。然后通过计算核度,得到重要顶点集作为核。考虑到图的拓扑特性,这些实体的重要性可以用顶点割集和图的连通性来描述。
原始核度计算

其中C(G)是G中所有顶点切割集的集合。G-S表示去除S中所有顶点得到的图。ω(G-S)表示G-S的连接分量的数量。|S|是集合S中的顶点的数量。
扩展核度理论
最初的核度理论主要致力于解决无向无权重图的问题。但是,VCPEC构建了一个有向点加权图。因此,原来对核度的计算不适用于本文的VCG。更详细地说,根据前文公式如何确定连通分量的个数对于核度的计算至关重要。
VCG连通性新定义
给定一个VCG,如果一个顶点同时有一个前任和一个后继,则它们被认为属于同一连通分量(起始顶点只考虑后继,而终止的v Ertex只考虑前一个)。
无效顶点
在VCG中,如果一个顶点失去了它的所有前置节点或其所有的后继点(起始顶点只能失去后继点,而终止顶点只能失去其前置节点),这个顶点就变成了一个无效的顶点。
连通分量
给定一个VCGG,无效顶点中的每个漏洞都被视为一个连通分量。也就是说,图G的连通分量的个数是在所有无效顶点中漏洞数量的总和。
扩展核度计算

其中C(G)是G.的所有顶点切割集的集合。|ω(G-S)|表示从G中去除S中的所有顶点后的无效顶点的权值之和。|S|是Se中的顶点的权值之和。
保护效率
我们引入了保护效率作为衡量实验结果的指标。
给定软件系统M,m表示M中实际修复的漏洞数量,n表示修复M个漏洞后M中减少的漏洞数量。则n/m (n >= m)的值称为保护效率(PE)。注意,减少的漏洞数量是无效漏洞和已修复漏洞的总和。因此,显然保护效率至少为1。如果它大于1,我们认为保护是有效的。
性能评价
我们分别在win8和win7进行两组测试。
- 在win8中,我们发现漏洞数量为29个,通过核度理论优先修补7个漏洞之后,我们发现漏洞补丁的总数从29个减少到了18个。也就是实际上相当于修复11个漏洞补丁的效果。因此,保护效率为11 / 7 ≈ 1.57,大于1。这一结果表明,VCPEC确定的核心补丁确实比其他补丁更重要。
- 在win7中共检测到47个漏洞补丁,VCPEC认定其中4个补丁为核心补丁。然后在修复了核心补丁之后,剩下的漏洞补丁变成了42个,减少了5个漏洞补丁。因此,保护效率为5/4 = 1.25。

浙公网安备 33010602011771号