漏洞可用性交流(VEX)介绍

admin 2022年2月21日09:55:44评论462 views字数 4368阅读14分33秒阅读模式

写在前面:2021年是软件供应链安全重要的一年,由此开始重视软件组件检查。目前主要的工具是软件成分分析(SCA),分析开源组件之后,输出软件物料清单(SBOM)。然后呢,就是分析这些漏洞的危险性和可利用性,也就是本文的漏洞可用性交流(VEX),有点类似漏洞优先级排序(VPT)。

漏洞可利用性交换(Vulnerability Exploitability Exchange,Vex),一种新的软件漏洞管理的工具或概念,正在今年慢慢崛起。厂商和软件供应商发现产品中第三方组件中的漏洞,并评估这些漏洞的可利用性。


概述


       本白皮书解释了VEX的概念,及其在软件物料清单(SBOM)和漏洞管理领域中的重要作用。VEX代表 Vulnerability Exploitability eXchange,漏洞可用性交流。其概念和格式是美国国家通信和信息管理局(NTIA)开发,虽然开发VEX是为了满足软件物料清单(SBOM)的特殊需求,被美国国家电信和信息管理局(NTIA)称之为SBOM的“伴侣制品”(companion artifact),但VEX并不限于要和SBOM一起使用。

       VEX主要用来判断有关产品是否受到特定漏洞的影响,如果受到影响,是否已建议采取补救措施,确定是否存在其他防护手段,保证此漏洞无法有效利用等。

        为减少用户在漏洞确认方面所花精力,厂商可以发布VEX,判断漏洞的状态:

  • 不受影响– 无需对此漏洞进行补救。

  • 受影响– 建议采取措施来修复或解决此漏洞。

  • 已修复 – 表示这些产品版本包含针对漏洞的修复。

  • 调查中——尚不清楚这些产品版本是否受到漏洞影响。将在以后的版本中提供更新。

        由于VEX是机器可读的,就可以集成到更广泛的自动化工具和流程中,和多种数据源一起提供漏洞状态的最新视图,采用更有针对性的方法,做出基于风险的决策。

       产品制造商和软件供应商在他们产品的第三方依赖库中发现漏洞(使用类似FACT的工具),抢先评估这些漏洞的可利用性。因为不是所有的漏洞都是可实现的,很多都要求特定的条件。

       完成评估后,供应商能把这些结果导入到标准的、机器可读的“VEX 文档”中,客户能够访问,很容易插入。

       这样就有了SBOM,漏洞评估,VEX文档三个文档,使用资产管理系统(或FACT)处理VEX文档,决定哪个漏洞是真正能实现的,而且,VEX文档包含各种修复建议。

 漏洞可用性交流(VEX)介绍

 

VEX如何减少漏洞管理的工作量和成本


       为理解VEX所提供的方案,首先要了解问题,下边的例子做了很好的说明。

       考虑到一个资产所有者,在关键系统中使用一个软件产品。他们需要判定产品是否暴露了风险。为达到这个目的,资产所有者要求软件提供商提供产品的SBOM。拿到SBOM后,资产所有者能检查软件组件,执行和每个组件有关的漏洞评估。

        想像一下,评估发现了产品中200个漏洞。一些漏洞在国家漏洞库(NVD)标记为严重,这时资产管理者有些担心,跑到OEM厂商那里寻求解决方法。

       厂商的客户支持代表,被很多其他客户咨询同样的问题,给每个受影响的客户发送电子邮件进行解释,虽然理论上漏洞能影响组件,但他们的成功取决于开发团队的编译方式。代表接着说明,测试和代码检查表明没有一个严重漏洞影响产品,事实上仅有20个低风险漏洞可被利用。

        现在资产所有者放松了,决定两个低风险漏洞不需要紧急修复,等待下一次维护关机的时候更新软件。不幸地是,一个月以后在其他子系统发现好几个新的严重漏洞,资产所有者(和其他客户)又开始了新一轮折腾。

      尽管很消耗时间,没有永久解决问题,仍可以看作沟通漏洞风险和管理这些漏洞的成功例子。但非常依赖厂商及时提供准确的SBOM;然后根据报告的漏洞,每个资产所有者有效地关联多个软件组件。这两件事都很困难。然而最大的问题是浪费许多时间在客户和厂商之间反复地沟通,要求人工阅读邮件和支持PDF文档,很明显,这个场景不是对任何客户都很理想。

        本方案授权产品厂商发现他们产品中第三方依赖库的漏洞,抢先评估这些漏洞的可用性,完成评估后,供应商可以把结果导出到标准的、机器可读的、客户能访问和容易理解的VEX文档格式

       这之所以重要,因为不是所有漏洞都需要处理。在许多情况,也许依赖组件中存在漏洞,但对于特定产品,或者已经被厂商开发团队缓解,或者攻击者无法访问。类似例子是OpenSSL 中著名的HeartBleed漏洞,例如在防火墙产品中,要求特定的产品功能被激活才能利用这个漏洞。

         回到上述场景,由于有了VEX文档,我们可以探索如何能够提供更好的方案。

       资产所有者已经得到SBOM和漏洞评估结果,但这一次也从厂商那里得到了VEX文档。总共三个文档,他们使用资产管理系统处理VEX文档,判定200个漏洞中哪些是真正可实现的。发现只有20g个漏洞能够被真正利用,而且都是低风险。这是需要资产所有者实际解决处理的数量,而不是置之不理。而且,VEX文档对可利用的漏洞还包含修复措施,资产所有者能快速检查选项,缓解风险,而不是一定要联系厂商。

       下图中,NTIA对于这个过程提供了总结,有助于理解:

漏洞可用性交流(VEX)介绍


VEX文档格式


        定义了用例之后,我们现在看看,VEX文档是什么样子。

       当前SBOM有三个标准的格式:SPDX,CycloneDX,SWID。幸运的是,VEX文档目前只有一种标准格式:通用安全建议框架(Common Security Advisory Framework ,CSAF)。这种格式由OASIS开源组织发布,基于欧洲,非盈利,为了网络安全和相关课题产生的开源标准。对已经熟悉OASIS的人,CSAF是OASIS 2017年发布的通用漏洞报告框架(Common Vulnerability Reporting Framework ,CVRF)v1.2的主要修订版的重命名版本。

       CSAF模式可用来作为发布安全建议或VEX 文档的标准格式,当用于发布VEX文档时,CSAF文档由三部分组成:

文档

       这个部分包含典型的文档信息,如文档时间戳、CSAF版本号,作者。

产品树

       产品树部分包括已经被评估了漏洞可用性的产品细节

漏洞

       漏洞部分包括一个或多个漏洞信息,含有产品树部分和产品有关的状态细节(被影响、不受影响、正在调查等)。

       结合这些部分,VEX文档给资产所有者提供一个路径,识别来自厂商的哪个产品事实上包含可被利用的漏洞。

漏洞可用性交流(VEX)介绍

       在上图中,CVE-2021-1234影响产品A的1.0版本,而不影响产品A的1.1版本,厂商常常对一个漏洞执行可利用性评估,发现在厂商的任何产品上都无法成功。在这种情况,VEX文档将在所有产品上注明“已知-未影响”。和直觉相反,这种类型文档事实上非常有用,因为它帮助我们将资产上发现的200个漏洞,减少到20个。

       进入到CSAF JSON模式,我们能看到这些部分如何编码成机器可读文档。

漏洞可用性交流(VEX)介绍

再看看“产品”部分

漏洞可用性交流(VEX)介绍


产品树部分

漏洞可用性交流(VEX)介绍


产品树举例:

漏洞可用性交流(VEX)介绍

       注意,产品树从厂商开始,然后通过一系列分支(branches),深入展开,最后截止于产品(product)和产品id(product_id)。在这个用例中,最后的产品是来自cisco的服务包,产品id是CVRFPID-103736,这个产品id后边用来把这个产品和漏洞绑定到一起。

       在漏洞部分,保持命名空间的连续是一个挑战,因此CSAF通过砍掉product_identification_helper字段,消除了VEX中潜在的歧义性。这些字段能够添加到产品id,帮助资产所有者和任何自动化系统,保VEX文档事实上参考了产品。这些helper主要包括下列信息,如CPE 字符串、文件哈希值、PURL和SBOM标识,在接下来的几个月内,将会变得更加流行。


漏洞部分

漏洞可用性交流(VEX)介绍


       漏洞部分通过产品状态(product_status组,包括哪个产品被哪个漏洞影响的细节,当产品id列为已知-受到影响,一个VEX文档能包含修复信息,帮助资产所有者将来缓解风险。而且,由于漏洞被利用的程度根据产品线的不同而不同,CSAF模式允许厂商对被同一个漏洞影响的产品,提供不同的CVSS打分。


VEX自动化


       CSAF文档要实现机器可读,产品树(product_tree)格式结构很快ji就会变得复杂,但通过使用product_identification_helper字段,实现自动化处理,把VEX文档导入到补丁管理实现扩展。这些文档将会变成SBOM重要的伴侣制品(companion artifact),他们通过给资产所有者提供一个方法推进漏洞管理,自动聚焦能够导致风险的可利用漏洞,不再需要冗长的电子邮件链。

       CSAF文档也很灵活,厂商能够维护单独VEX文档,包含整个产品线所有相关的漏洞,或厂商可以选择发布所有产品线中只包含新发现漏洞的VEX文档,对于CSAF模式,这两个都是可行的选择。


如何得到一个VEX文档


       如果你是一个终端用户,想得到你所部署软件的VEX文档,你需要向你的软件提供商提出要求,或和像aDolus这样的VEX提供商一起合作。

       如果你是软件提供商,有许多现成的工具帮助你生成VEX文档,例如:

  • Secvisogram:

       由德国BSI公司开发的web工具,按照CSAF2.0的格式,手动创建和编辑安全公告。

  • FACT (Framework for Analysis and Coordinated Trust):

       创建生成SBOM和VEX文档的平台,并和多个漏洞数据库关联,保证固件/软件包(他们的子组件)合法,不受阻碍地安全安装。

        如果你是一个资产管理方案的提供商,想把VEX文档集成到你的系统中,你可以联系aDolus寻求指导。


参考文档:


NTIA Minimum Elements of SBOMs:

https://www.ntia.doc.gov/report/2021/minimum-elements-software-bill-materials-sbom

SPDX: https://spdx.dev/

CycloneDX: https://github.com/CycloneDX/specification

SWID: https://www.iso.org/standard/65666.html

Common Security Advisory Framework (CSAF): https://json.csaf.io

FACT: http://www.adolus.com  ( FACT产品是软件组件情报的有力工具)

 

(完)


原文始发于微信公众号(安全行者老霍):漏洞可用性交流(VEX)介绍

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月21日09:55:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞可用性交流(VEX)介绍https://cn-sec.com/archives/794822.html

发表评论

匿名网友 填写信息