如何正确对待通用安全漏洞评分系统(CVSS)
对任何处理软件漏洞的人而言,CVE和CVSS通常是寻找细节过程中的第一步,通过这两步,人们可以发现有关漏洞的全部细节。
通用漏洞评分系统(CVSS)诞生于2007年,是用于评估系统安全漏洞严重程度的一个行业公开标准。CVSS现在已经进入第二个版本,第三版正在开发中。它的主要目的是帮助人们建立衡量漏洞严重程度的标准,使得人们可以比较漏洞的严重程度,从而确定处理它们的优先级。CVSS得分基于一系列维度上的测量结果,这些测量维度被称为量度(Metrics)。漏洞的最终得分最大为10,最小为0。得分7~10的漏洞通常被认为比较严重,得分在4~6.9之间的是中级漏洞,0~3.9的则是低级漏洞。
大多数商业化漏洞管理软件都以CVSS为基础,因此各企业看待漏洞的视角通常是从CVSS得分出发。尽管CVSS在快速进行漏洞优先级排序和甄别漏洞方面效果显著,其排序速度往往基于企业对其进行本地化配置的情况。
CVSS是强大的监测工具,但进行评分所依赖的所有量度都是很笼统的。为了达到最高的监测效率,需要根据具体环境对CVSS进行本地化配置。但现实是,大多数企业病不这样做。它们直接使用Rapid7、Qualys、Tenable公司的信息,并不根据企业的特定环境和特定风险进行专门配置。
举例而言,Rapid7公司在谈及CVSS时直率地表示,CVSS基本量度只评估漏洞的潜在风险,在评估过程中并不需要收集时间和环境数据。因此,通过CVSS基本量度得出的漏洞评分并未考虑到全公司上下的整体情况。
从严格意义上来讲,CVSS评分并不代表具体事件可能发生的概率。它只代表了公司被入侵成功的概率。
CXOWare公司董事长、《衡量与管理信息风险》一书合作者杰克·琼斯(Jack Jones)在近期召开的“信息安全世界”大会上发表了一些有关CVSS的批评言论。
CVSS是很有潜力的工具,但人们对它知之甚少。大多数公司使用CVSS的方式都不对。
琼斯并不是CVSS的唯一批评者。有些人认为,CVSS在将安全风险公式化方面做得并不好,而且其评估漏洞风险的过程可能过于复杂。
另一个问题在于,CVSS通常被用于漏洞评分,进而与风险度量模块结合。结果是,这样浪费了资源,公司没办法甄别出最重要的安全问题。
琼斯对CVSS的主要疑虑来源于该系统的加权模式。CVSS的说明文档中并不包括确定权重分配的内在逻辑,因此,用户是在并不理解原理的前提下使用CVSS的。根据琼斯的个人经验,这些权重往往只适用于一小部分特殊情况,而对大多数安全事件没有概括能力。如果考虑到描述上的歧义、限制范围、应用情景,在有些情况下得到的CVSS评分可能完全没有意义。既然用户都在使用这些权重值,开发者应当至少提供一些合适的说明,以让用户在知情状态下决定何时使用这些权值。
设计和实现情况是评价CVSS这样的统计学工具的唯一指标。在近期发售的新书《统计学错了》中,作者写道:即使是在那些最智慧的使用者手里,统计学也经常是错的。科学家们大范围地错误使用统计学,令人吃惊。对于使用CVSS的用户而言,我们应该再次强调此书作者的观点。
CVSS分数计算器允许用户对权重进行自定义设置,以适应用户本公司的环境。不过,大多数公司还是使用标准的CVSS权重,并不会进行手动定制。事实上,每个公司都应当根据自身情况确定权重和分数,而不是使用官方提供的默认值。如果确认权重的工作量过重,可以从定制CVSS环境和时间变量开始进行调整,并把对权重的调整放到之后来做。
CVSS是强大的工具,提供大量的评估维度。对那些想要快速获取关于漏洞的简要评分的人而言,CVSS能够胜任。但快速和简要的评估并不能满足信息安全工作人员的需要。每个公司都应该根据自身情况定制漏洞管理策略。概括性的评分可能有用,但无法被优化。
采取以下措施来让CVSS更有效:
·理解公司暴露在风险中的方式。只有这样才能理解CVSS,并将其和漏洞管理项目绑定在一起。
·确定公司的损失暴露情况。最终,修补漏洞缺陷这类努力的效果还是要反映到减少公司损失上。应当将注意力集中在漏洞对业务的影响上。举例而言,在面向Web的系统上找的敏感信息泄露漏洞的优先级应当大于那些并不面向外界的漏洞。
·需要保证公司的漏洞评分并不基于CVSS默认设置。应当改变CVSS的环境和时间变量,以获得完整的分数。
·如果公司同时遇到了两个漏洞:一个CVSS得分很高,但还没有被入侵;另一个CVSS得分很低,但已经被入侵。公司应当如何抉择呢?公司越能把CVSS和漏洞管理项目绑定在一起,就越容易做出这类决断。尽管两家公司都使用CVSS,其对CVSS的利用深度可能完全不同。对CVSS进行定制,可以尽可能地发挥评级系统的功能,允许企业作出更明智的判断。