漏洞利用交换(Vulnerability Exploitability eXchange,简称VEX)是一个信息安全领域的标准,旨在提供关于软件漏洞及其潜在利用的实时信息。根据美国政府发布的用例(PDF),由美国政府开发的漏洞利用交换(VEX)使供应商和用户都能够专注于构成最直接风险的漏洞,可避免在没有实际影响的漏洞上浪费时间。本文接下来会详细介绍VEX,包括其产生背景、维护组织以及主要内容。
1. 产生背景
随着信息技术的快速发展,软件安全漏洞成为网络安全的重要威胁之一。黑客通过利用这些漏洞,可以进行网络攻击,窃取敏感信息,甚至破坏关键基础设施。为了提高对漏洞和其潜在利用的响应速度和效率,需要有一个统一的、标准化的信息交换机制,使得安全研究人员、软件开发者、安全运维人员以及相关组织能够及时共享和更新漏洞信息。在这样的背景下,VEX标准应运而生。
2. VEX简介
VEX(Vulnerability Exploitability eXchange),即漏洞可利用性交换,是一个软件生产者与软件消费者共享其软件组件中存在的漏洞评估的系统。VEX提供了一种一致且标准化的方式来描述漏洞,包括漏洞的标准详细信息,如严重性、影响软件。还包括对漏洞的分析,例如漏洞是否可被利用,以及如何减轻或修复漏洞,以及可用于防范的任何已知解决方案。VEX是软件生产商对其软件中的漏洞进行分类和标记的机制。
VEX标准是由开放式标准组织OASIS(Organization for the Advancement of Structured Information Standards)维护的。OASIS CSAF(Common Security Advisory Framework)技术委员会负责VEX的制定和更新,其目的是推动安全信息的标准化和互操作性。虽然VEX概念是为了满足软件材料清单(SBOM)使用方面的特殊需求而开发的,但VEX并不局限于与SBOM一起使用,也不一定会包含在SBOM中。
3. VEX内容
VEX文档是产品信息、漏洞信息和相关状态详细信息的绑定。VEX文档的最小数据元素必须包括VEX元数据、产品详细信息、漏洞详细信息和产品状态。
- VEX元数据必须包括:VEX格式标识符、VEX文档的标识符字符串、作者、作者角色、时间戳。
- 产品详细信息必须包括:产品标识符或产品系列标识符(例如,唯一标识符或供应商名称、产品名称和版本字符串的组合,如既定SBOM指南中所述)
- 漏洞详细信息必须包括:漏洞标识符(CVE或其他标识符)和漏洞描述(如CVE描述)
- 产品状态详细信息(即有关该产品中漏洞的状态信息)必须来自以下列表:
- 不受影响:不需要对此漏洞进行补救
- 受影响:建议采取措施补救或解决此漏洞。
- 已修复:这些产品版本包含针对该漏洞的修复程序。
- 分析中:目前尚不清楚这些产品版本是否受到该漏洞的影响。更新将在稍后的版本中提供
其他VEX内容细节,如CVSS分数或到其他资源的链接,可以添加到VEX文档中,为客户增加价值。本文档介绍了每个用例所需的最小字段。产品状态字段中的状态信息在第4节中的3.1.1用例中介绍。
若想了解详细内容,可以参阅如下两个官方发布文档:
- vex_one-page_summary.pdf (访问密码: 6277)
- VEX_Use_Cases_Aprill2022.pdf (访问密码: 6277)
4. 使用案例
利用VEX可以清晰明了的体现下图中的漏洞影响场景,比如用例3.1.1表示单一产品、单一版本、单一漏洞、单一状态,用例3.2.2表示单一产品、单一版本、多个漏洞、单一状态。3.1.1这个用例表明公司要在在不同的VEX文档中对其产品的每个版本进行声明。对于给定产品的给定版本,特定漏洞只能具有单一状态。
假设Example Company获悉Log4j及其相关CVE2021-44228的安全漏洞。下面介绍了4种潜在的VEX状态,并分别举例说明:
-
不受影响:示例公司有一个ABC产品。当第一个Log4Shell漏洞(CVE-2021-44228)被披露时,Example Company的产品安全事件响应小组(PSIRT)发布了一份VEX文件,声明4.2版中的产品ABC不受影响。Example Company之所以作出此断言,是因为带有易受攻击代码的类在发货前已被删除。示例VEX文件
注意:为了告诉消费者为什么产品不受影响。在本例中,声明是易受攻击的库的“具有易受攻击代码的类在发货前已删除”
-
受影响:示例公司的产品DEF使用易受攻击的版本。DEF版本1.0中的Log4j库。当第一个Log4Shell漏洞(CVE-2021-44228)披露时,Example Company的PSIRT发布了一份VEX文件,声明产品DEF受到影响,客户应更新到产品DEF的1.1版本。示例VEX文件
为了告诉消费者他们应该这样做。在这个例子中,行动声明是“客户应该更新到产品DEF的1.1版本,这可以解决问题。”
-
分析中:示例公司有GHI产品。当第一个Log4Shell漏洞(CVE-2021-44228)被披露时,Example Company的PSIRT发布了一份VEX文件,声明目前正在调查GHI的17.4版本是否受到CVE-2021-4 4228的影响。示例VEX文件
预计VEX文件将在稍后的某个时间点更新分析结果。
-
已修复:示例公司有一个使用1.0版Log4j库的产品DEF。当第一个Log4Shell漏洞(CVE-2021-44228)被披露时,Example Company的PSIRT发布了一个更新和一份VEX文件,声明产品DEF版本1.1已修复。示例VEX文件
此状态主要与受影响状态结合使用(即,以前的版本受到影响,当前版本已修复),但也可以用作独立状态。
VEX补充了SBOM,并可用于提供产品或多个产品中给定漏洞的