曹旭博,钟 夫
(中电科网络安全科技股份有限公司,四川 成都 610095)
在漏洞管理过程中,通常是根据通用漏洞评分系 统(Common Vulnerable Scoring System,CVSS)评分[1]来确定漏洞修复优先级,一般会优先修复CVSS 评分高的漏洞。CVSS 由基础指标得分、时间指标得分和环境指标得分三部分组成,但当前国内外官方漏洞库,包括美国国家信息安全漏洞库(National Vulnerability Database,NVD)[2]、中 国国家信息安全漏洞库(China National Vulnerability Databse of Information Security,CNNVD)、中国国家信息安全漏洞共享平台(China National Vulnerability Databse,CNVD)[3-4]等都只提供基础指标得分,而基础指标得分仅能反映漏洞自身的严重程度,不一定与组织的实际风险相匹配,如同一漏洞在生产服务器和测试服务器中的实际风险是不同的,仅通过CVSS 评分无法进行区分。也就是说,虽然CVSS 评分作为漏洞严重性指标较为准确,但是利用CVSS 评分来确定漏洞的优先级存在一定局限性。因此,极有必要采用基于风险的漏洞优先级评估模型,对组织中存在的安全漏洞进行评估和优先级排序,帮助用户识别出真正有威胁的、需优先修复的漏洞。
目前关于漏洞优先级评分的模型算法较少,大多数是关于漏洞安全性的评估,两者具有相似之处,但也有不同之处。相似之处在于都是通过某种评估技术得到分数,不同之处是漏洞优先级评估侧重的是排序,而安全性评估侧重的是评分的准确性。目前漏洞安全性评估主要从定性、定量及定性与定量相结合的角度对系统安全漏洞评估方法进行探索研究[5-8]。例如,黎学斌等人[9]通过建立漏洞分类和资产分类两个指标体系,运用层次分析法对系统漏洞进行危害程度评估。Liu 等人[10]在CVSS 系统的基础上引入漏洞类别因素,对漏洞的严重性进行评估。由于在设计安全漏洞库的过程中,漏洞评估占据着重要的位置,因此大部分的评分模型设计都是基于安全漏洞库CVSS 进行指标评估设计,但基于CVSS 评分进行漏洞优先级排序存在以下问题:
(1)安全人员利用CVSS 评分时,很难把握漏洞对组织造成的实际风险;
(2)未考虑对不确定性进行量化,CVSS 对于大多数漏洞只提供基础得分,其对时间的影响性关注较少;
(3)目前评估算法主要侧重于准确性,忽略了其排序的优先性。
针对当前已有漏洞优先级评估模型存在的问题,本文从漏洞对组织造成的实际风险出发,对漏洞优先级评估模型进行设计,包括CVSS 评分、时间因子、用户实际环境因子、资产重要性、漏洞情报五个方面,详情如表1 所示。
表1 评估指标
CVSS 是一种用于评估计算机系统中安全漏洞严重程度的开放式标准。CVSS 评分系统根据漏洞的重要性、利用难度、影响范围等因素,为漏洞提供一个0 至10 分的评分,以帮助安全人员了解漏洞的威胁程度。
CVSS 评分系统包括基本指标、时间指标、环境指标3 个指标,当前国内外主流安全漏洞库提供的CVSS 评分为漏洞基本指标得分,因此可将CVSS评分作为漏洞优先级评估模型的一个重要评估指标。
时间因子是为了弥补CVSS 评分的不足,综合漏洞修复时间延后、漏洞利用方法普及等因素,满足漏洞风险随时间动态变化的特性。在漏洞公开的前5 天,由于曝光率的增加,漏洞被利用的概率会急剧增加,时间因子的影响将会达到短暂的峰值,随后急剧下降。随着时间的推移,对漏洞成熟的利用手段将越来越多,漏洞实际利用难度在下降,时间因子的权重趋于稳定,不会对漏洞优先级评估的结果产生明显影响。
1.3.1 网络暴露
如果一个漏洞同时出现在面向公网的资产和内网资产上,需要选择一个优先修复,那么当然会选择先修复面向公网的资产,将内网资产的修复工作稍稍延后,因此漏洞所在资产的网络暴露面(双网卡、互联网、内网)是评估漏洞风险的重要指标。综合考虑漏洞的攻击途径(远程利用、相邻网络、本地利用、物理),可进行多种方式的组合,其中资产为双网卡且漏洞可远程利用时风险最高,需要优先修复,其他以此类推。
1.3.2 防护措施
考虑到资产防护措施对漏洞利用的影响,需要将资产防护措施纳入漏洞优先级评估指标,包括主机安全防护和Web 应用安全防护两部分,其中:主机安全防护是指是否部署能检测或防止漏洞利用的安全产品,如主机防病毒、端点检测和响应(Endpoint Detection Response,EDR)等,不包括主机审计等;Web 应用安全防护是指提供Web 服务的资产是否在Web 应用防火墙(Web Application Firewall,WAF)防护范围内。
资产的重要性体现了资产的业务价值,漏洞出现在资产业务价值越高的资产上,对应的风险程度也越高。例如,一个漏洞在OA、邮件等核心服务器和在一台普通的服务器上被成功利用后造成的影响是截然不同的,因此有必要将资产重要性纳入评估指标。
漏洞情报从漏洞利用代码成熟度、漏洞置信度、漏洞修复成本、漏洞曝光程度、漏洞技术细节等多维度对漏洞信息进行补充和完善。
(1)是否存在EXP:如果漏洞有漏洞利用程序(Exploit,EXP),则利用难度会非常低,非专业人员也可利用,修复优先级应提高。
(2)是否存在POC:如果漏洞有漏洞验证程序(Proof of Concept,POC),则利用复杂度会降低,攻击成功率更高,修复优先级应提高。
(3)是否人工确认:经过人工确认的漏洞,置信度高,修复优先级应提高。
(4)修复方式:对于无补丁和临时规避措施(修改配置文件等)的漏洞,由于漏洞不能立即修复,漏洞风险相对较高,漏洞修复优先级应提高。
(5)修复影响:修复漏洞是否会导致业务中断或信息丢失,如果是,则修复优先级应降低。
(6)是否在野利用:部分在野利用的漏洞无公开的EXP,也就是说,在野利用的漏洞数量大于有公开EXP 的漏洞数量,因此,在野利用的漏洞修复优先级应提高。
(7)技术细节状态:部分漏洞刚公开时可能评分较高,但技术细节未公开,其修复优先级可降低。
(8)漏洞热度:热度较高的漏洞,修复优先级应提高。
(9)漏洞流行度:热度较高的漏洞,修复优先级应提高。
本文的权重设计主要是指对评估模型中的指标进行量化,指标量化分为静态指标量化和动态指标量化。目前指标量化主要有模型训练得到相关权重、基于专家经验的量化方法及通过资料确定对应的权重3 种方法,其中基于模型训练的方法需要相关标准的评分标签数据,实际很难获取相应的数据,因此,本文设计的属性量化方法如表2 所示。
表2 指标量化方法
静态指标量化主要是指CVSS 评分、用户实际环境因子、资产重要性、漏洞情报这4 个指标项,其中CVSS 评分通过关联安全漏洞库获取,用户实际环境因子、资产重要性、漏洞情报则通过层次分析法(Analytic Hierarchy Process,AHP)确定权重。AHP 层次分析法[5]的主要步骤为:确定评分标准,建立判断矩阵,一致性检验,确定属性权重。通过AHP 层次分析法,同时考虑多层上级指标项权重对评分的影响,得到相关的权重如表3 所示。
表3 AHP 层次分析法相关权重
漏洞是动态变化的,如果一个漏洞已经存在了很长时间,那么它的修复优先级可能会降低,因为攻击者已经有足够的时间来利用这个漏洞。相反,如果一个漏洞是最近发现的,那么它可能会被认为是更紧急的问题,因为攻击者还没有利用它的机会。研究发现,在漏洞公开的前5 天,由于曝光率的增加,该漏洞被利用的概率会急剧增加,时间因子将会达到短暂的峰值,随后急剧下降,因此时间对漏洞的影响是一个服从gamma 分布的函数。为了控制其gamma 分布的峰度和宽度,设计如下时间函数:
式中:λ为输入参数,该参数为f'(i)函数取最大值时X轴的取值,T(i)为漏洞的动态时间影响因子。当λ=5时,T(i)分布函数如图1 所示。式(1)中i表示时间的输入,min(f'(i))=0,max(f'(i))=0.175 467 369 767 850 7。
图1 T(i)分布函数
漏洞优先级评估分为两个步骤:第一步在综合考虑指标权重的基础上利用评估算法得到的数值确定漏洞的实际风险,第二步根据具体数值进行排序。
在实际过程中,直接利用相关评估算法得到的数值结果差异性不是特别明显,数据的分布呈现比较接近,难以区分,不利于安全人员确定其优先级,且本文更加关注漏洞评分的优先级,因此对指标权重进行重新分布处理,相关算法设计目标如下:
(1)新的指标权重分布与原始分布保持一致;
(2)新的指标权重分布的方差较大,目的是使原始权重中难决策的区分点在新空间中具有可区分性。
新的指标权重用X'表示,原始指标权重用X表示,D(X')表示新的指标权重的方差,为了满足上述要求,构造如下函数:
从而得到:
漏洞优先级评估算法主要结合静态因子和动态因子对漏洞影响的大小进行综合评估,静态因子主要结合漏洞自身的危害程度和漏洞所处环境因素等对业务造成影响程度进行评估;动态因子主要是随着时间推移漏洞风险呈现一个波动。漏洞优先级评估方法如下:
设静态属性的权重为V=(v1,v2,…,vm),静态属性的评分向量为S=(s1,s2,…,sm),则漏洞的静态属性评分为ST=S×VT,结合动态因子权重T(i),则漏洞优先级评分为:
根据上述分析,本文漏洞优先级评估算法如下:
(1)对静态指标和动态指标进行量化;
(2)根据式(5)得到新的指标权重X';
(3)利用式(6)进行漏洞优先级评分;
(4)根据步骤(3),进行漏洞优先级排序。
本文通过搭建简单的网络环境,对网络中4 台主机进行扫描,获取相关漏洞信息,并利用本文所提出的漏洞优先级评估模型算法进行评估,从而验证该方法的有效性,扫描的漏洞结果如表4 所示。
表4 实验网络主机漏洞
从表4 中可以看出,网络中一共扫描得到11个漏洞,根据漏洞CVE 编号从漏洞库中提取漏洞基本信息,根据第3 节的评估方法,得到新的指标权重,选取B 主机上的CVE-2021-44228 漏洞进行举例,B 主机上设置的时间为“2021-12-17”,其漏洞CVE-2021-44228发布的时间为“2021-12-10”,对此筛选出B 主机漏洞CVE-2021-44228 新指标权重与原始指标权重对比,如表5 所示。
表5 新指标权重与原始指标权重对比
把计算得出的最终漏洞优先级评分和CVSS 评分进行对比,如表6 所示。
表6 漏洞优先级评分与CVSS 评分对比
对漏洞优先级评分和CVSS 评分进行分析得出:
(1)不同漏洞在不同机器上的评估分数排序与CVSS 的评分具有一致性,如CVE-2022-31692和CVE-2021-44228 漏洞在B 机器上利用本文算法的分数为[11.36,13.98],CVSS 评估分数为[9.8,10]。
(2)漏洞CVE-2021-44228 在主机B 上的评分结果与CVSS 评分相差4 左右,这是因为加入了时间因子和资产重要性、漏洞情报影响的,与实际情况相符合。
(3)漏洞CVE-2021-44228 在主机B 和C 上的评分结果13.98 和12.87 具有差异性,而CVSS 评分是相同的,说明利用新权重产生的评分结果具有差异性,但整体的排序又与CVSS 排序一致,说明本文的评分结果在保证一致性的同时加大了其差异性。
通过以上结果的横向和纵向对比分析,可以得出,本文漏洞优先级评估模型算法具有有效性和可行性,并且使得漏洞的优先级排序具有差异性,能够为组织提供可靠的漏洞优先级排序,帮助组织在处置资源有限的情况下,优先处置构成真实、直接和严重威胁的漏洞。
本文在CVSS 评价指标体系基础上,从漏洞对组织造成的实际风险出发,研究了漏洞优先级评估模型和算法。本文所提评估模型包括CVSS 评分、时间因子、用户实际环境因子、资产重要性、漏洞情报等多个维度。通过建立评估模型,可以对组织中存在的安全漏洞进行综合风险评估和优先级排序,帮助组织识别出真正有威胁的、需优先修复的漏洞,能够推动漏洞管理工作有效闭环,有较高的实用价值。