漏洞评分CVSS如何解读

wen 开源项目 2

本文目录导读:

漏洞评分CVSS如何解读

  1. 核心概念:分数不是全部,向量才是灵魂
  2. 深度解读:CVSS v3.1 基础指标(Metrics)
  3. CVSS 等级划分
  4. 如何在实际工作中使用CVSS?
  5. CVSS v4.0 即将到来(2024年更新)

这是一个很专业且实用的问题,CVSS(通用漏洞评分系统)是信息安全领域评估漏洞严重程度的标准,解读CVSS不仅仅是看最后的分数,而是要理解其背后的向量,这样才能真正了解漏洞的风险。

下面我为你系统地解读CVSS,主要基于最新的CVSS v3.1版本(以及即将普及的v4.0)。

核心概念:分数不是全部,向量才是灵魂

CVSS评分由三组指标组成:基础指标时间指标环境指标,最终得分是这三者综合计算的结果。

  • 基础指标(Base Score):最核心、最通用,描述漏洞固有的、不随时间或环境改变的特性。
  • 时间指标(Temporal Score):描述随时间变化的因素,如漏洞利用代码是否公开、是否有补丁。
  • 环境指标(Environmental Score):描述特定用户环境的影响,如受影响系统的资产价值、安全控制措施等。

通常我们看到的CVSS分数(例如7.5)是基础分,完整的CVSS会呈现为一个向量字符串CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

解读这个向量的过程,就是理解漏洞真正风险的过程。


深度解读:CVSS v3.1 基础指标(Metrics)

基础指标是核心,包含以下8个部分(按向量顺序):

AV:攻击向量(Attack Vector)

衡量攻击者需要多近的距离才能发起攻击。

  • N(网络):最严重,可通过互联网远程利用。
  • A(相邻网络):需要在同一局域网或物理相邻。
  • L(本地):需要本地访问权限(如登录到系统)。
  • P(物理):需要接触设备(如插U盘)。

AC:攻击复杂度(Attack Complexity)

衡量攻击所需的条件和难度。

  • L(低):攻击者可以预期成功利用,无需特殊条件。
  • H(高):需要特殊条件(如竞态条件、特定配置)。

PR:权限要求(Privileges Required)

衡量攻击者在利用前需要的权限等级。

  • N(无):无需任何权限。
  • L(低):只需要普通用户权限。
  • H(高):需要管理员或root权限。

UI:用户交互(User Interaction)

是否需要受害者参与。

  • N(无):无需用户操作(如蠕虫)。
  • R(需要):需要用户点击链接、打开文件等。

S:影响范围(Scope)

攻击是否可能影响不同安全域或权限组。

  • U(不变):攻击只能影响被攻击组件本身。
  • C(改变):攻击可影响超出原组件权限的其他资源(如从Web服务器入侵数据库服务器)。

C、I、A:机密性、完整性、可用性(Confidentiality, Integrity, Availability)

这是漏洞的直接影响。

  • H(高):完全丧失(如数据泄露、系统瘫痪)。
  • L(低):部分影响(如非关键数据泄露、轻微性能下降)。
  • N(无):不影响。

计算示例(回顾向量)

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

解读:

  • AV:N:可远程攻击。
  • AC:L:攻击容易,无需特殊条件。
  • PR:N:无需任何权限。
  • UI:N:无需用户交互。
  • S:U:影响范围不变(只影响被攻击的应用/系统)。
  • C:H:机密性完全丧失(数据泄露)。
  • I:N:完整性无影响。
  • A:N:可用性无影响。

计算结果: 这是一个 5分 (HIGH) 漏洞,原因:虽然利用门槛极低,但影响只限于机密性,且范围不变。

如果我们将 S:U 改为 S:C(影响范围改变,如从Web应用攻入数据库),分数会直接飙升至 8分 (CRITICAL)


CVSS 等级划分

  • None (0.0):无风险。
  • Low (0.1 - 3.9):低风险,通常需要物理接触或高权限。
  • Medium (4.0 - 6.9):中等风险,需要一定条件(如用户交互、特定配置)。
  • High (7.0 - 8.9):高风险,容易被利用,影响较大。
  • Critical (9.0 - 10.0):极危风险,通常可远程、无权限、无需交互,且影响大(如RCE、SQL注入、反序列化漏洞)。

如何在实际工作中使用CVSS?

  1. 不要只看分数,要看向量。 一个8.5分的漏洞,如果AV是L(本地),其真实威胁远低于一个7.5分但AV是N(网络)的漏洞。
  2. 结合业务环境。 一个对外暴露的Web服务(如官网)上的7.0分漏洞,其环境风险远高于内网数据库服务器上的8.0分漏洞,这时需要使用环境指标重新计算。
  3. 关注时间指标。 当漏洞的POC(概念验证代码)或EXP(利用代码)公开后,其时间分会上升,需要立即提高处理优先级。
  4. CVSS是参考,不是绝对标准。 它不评估被攻击资产的业务价值,一个影响核心交易系统的7.0分漏洞,可能比影响边缘业务的9.8分漏洞更需要优先修复。
  5. 警惕“分数膨胀”。 部分漏洞(如提供完整EXP的JNDI注入)虽评分可能不最高,但实际利用链极广,需特殊对待。

CVSS v4.0 即将到来(2024年更新)

CVSS v4.0 在v3.1基础上做了重要改进,主要变化包括:

  • 新增指标: Safety(物理安全影响)、Automatable(是否可自动化批量利用)、Recovery(恢复复杂性)。
  • 细化攻击复杂度: 增加了 Environmental 维度的复杂度选项。
  • 改进评分逻辑: 对部分组合(如低权限 + 高影响)的评分更合理,避免v3.1中某些低可信度漏洞被过度评分。
  • 标准化CVSS向量字符串格式: 更清晰。

未来一旦CVSS v4.0成为主流,解读方式类似,但需要额外关注新指标。

要正确解读CVSS,你可以按这个思路来:

  1. 分数(确定紧急程度等级)。
  2. 向量字符串(理解利用难度、权限要求、影响范围)。
  3. 问自己三个问题:
    • 它需要什么条件?(网络?权限?用户交互?)
    • 它破坏什么?(数据泄露?系统瘫痪?篡改结果?)
    • 它影响的范围有多大?(单个应用?整个网络?)
  4. 结合你的环境(资产价值、暴露面、已有防御措施)进行判断。

最理想的修复优先级排序公式是: 优先级 ≈ CVSS向量风险(Critical/High) × 业务影响程度(High) × 可利用性(Exploitable)

希望这个解读对你有所帮助,如果你有具体的CVSS向量需要分析,也可以发给我一起讨论。

抱歉,评论功能暂时关闭!