上下文感知分析:对最重要的漏洞进行优先级排序

创提信息
2022/03/28

分享到

如今,产品安全团队在漏洞管理程序方面面临着难以置信的挑战。嵌入式软件更为普遍,由开源软件(OSS)、商业软件和专有代码组成,而且要复杂得多。

 
结果是:攻击面增加,控制能力下降,风险大大增加。而且,漏洞的数量仍在增加;仅在2020年,NVD就发布了超过18000个CVE!
 
为了确保公司在面对不断增长的威胁(就数量和复杂性而言)时能够以最大的效率运行,产品安全团队必须相应地扩展他们的漏洞管理能力。这一挑战取决于时间、金钱和人力资源的合理分配与否。
 
产品安全团队如何才能确切地了解他们的软件中有什么,哪些漏洞与他们的产品安全相关,以及如何对他们的工作进行优先级排序?


解决方案——基于上下文的分析
 
更好地理解产品组件运行的上下文,以及特定漏洞可能应用于它们的方式,是任何产品安全团队需要做的事情。
 
重要的是,您要了解您所选择使用的产品相关的所有信息。同样关键的是,要了解若不执行将产品的整个上下文考虑在内的全量分析会产生的影响。
 
例如,如果某个CVE只适用于64位系统(而不是32位系统),那么了解所分析的产品到底属于哪一类,可以帮助您避免将宝贵的资源浪费在可能根本不会影响系统的漏洞上。
 
Cybellum,这种认知和上下文理解是通过创建并利用Cyber Digital Twins获得的。


Cyber Digital Twins是什么?
 
受Digital Twins的启发,Cyber Digital Twins是一个软件组件的详细表示,可以洞察其组成、内部运作和设备软件运行的上下文。与Digital Twins一样,Cyber Digital Twins也与诸如(但不限于)车辆、医疗设备和工业物联网(IoT)设备等机器有关,重点关注为它们提供动力的软件。
 
它包括软件材料清单(也称为SBOM或C-SBOM)、底层硬件架构、操作系统(OS)配置、加密机制和密钥、加固机制、完整的控制流、使用的API调用等。
 
通过增强对产品组件运行的上下文的理解,产品安全团队可以过滤掉许多无关的“噪音”,从而找出真正影响产品并可能危及整个产品运行的漏洞子集。
 
这样做可以取得显著的效果。例如,在某个案例中,一个特定组件的90%有潜在影响而实际不相关的漏洞都被过滤掉了,从而使分析人员只关注33个相关的漏洞。


基于上下文的分析——实际示例
 
1) CVE-2019-19537——USB设备依赖项:USB接口是嵌入式软件中最常见的攻击载体之一。在这种情况下,问题就是可能由USB字符设备驱动程序层内的USB恶意设备引起的条件错误,从而影响linux内核。
 
考虑到这一点,上下文分析的第一步是检查USB端口是否被启用。在这样做的过程中,可以根据启用USB的设备筛选CVE并提供支持。
 
2) CVE-2020-25212——Linux内核存在TOCTOU不匹配在5.8.3版本之前的Linux内核中,NFS客户端代码存在time-of-check time-of-use(TOCTOU)不匹配。它可能被本地攻击者用来破坏内存,或可能造成未指明的其他影响,仅仅因为尺寸检查是在fs/nfs/nfs4proc.c 中而不是在fs/nfs/nfs4xdr.c 中执行的。
 
我们了解到,这个CVE只有在配置了CONFIG_NFS_V4_SECURITY_LABEL时才有效。因此,具备基于编译符号过滤与Linux内核相关的许多CVE的能力是解决这类问题的关键。
 
因此,在这个例子中,二进制分析是关键。最终,我们能够通过检查已编译的标志来过滤Linux内核CVE,并当固件中缺少特定标志时排除这些CVE。
 
3) CVE-2020-11899——Ripple20:6.0.1.66版本之前的Treck TCP/IP堆栈都包含IPv6Out-of-bounds Read。CVE是Ripple20的一部分——一组由Treck TCP/IP软件库中的JSOF专家发现的19个零日漏洞。
 
由于一次成功的利用可能会影响到多方,确保软件供应链安全的第一步是检查这些CVE是否与所分析设备的上下文相匹配,从而节约原本用于修复不相关CVE的资源。
 
在这种情况下,只有为使用IPV6通信而配置的固件会受到影响且需要注意。但是由于被分析的设备使用的是IPv4,所以它不受这个特定CVE的影响。由于仅通过检查源代码无法获得网络配置,因此这里进行二进制分析也是关键。
 
注意,针对这个CVE的另一个可能的上下文感知分析还与内核体系结构是否与应用程序隔离有关。在这种情况下,漏洞的影响可能远没有那么严重,因为这种隔离保护了整个系统免受恶意行为的损害。


为什么二进制分析对上下文感知很重要?
 
产品安全团队应该利用二进制分析,从编译后的软件分析中获益,以捕获更全面、更广泛的被测组件范围,而不仅仅是ECU/固件源代码。它涵盖了操作系统(OS)相关的漏洞、驱动程序相关的安全问题、配置问题等。在识别漏洞时,二进制分析出现的误报更少,从而实现更好的时间与资源管理。记住,这不仅仅与代码有关,还与如何使用代码有关。相关性是关键。


总结
 
如上述例子所示,上下文感知使得产品安全团队能够确定行动的优先次序,从而节省宝贵的时间和资源。
 
有无数种方法可以利用上下文感知分析来优化CVE过滤,比如:通过CPU架构、操作系统(OS)、命令/函数等。因此,将您的漏洞管理实践与上下文感知分析相结合,可以为任何公司的风险管理工作带来价值和效果。
 
Cybellum可以通过上下文感知分析来使您的软件供应链更明晰,并保护您的客户和业务。我们制定了一系列产品安全新标准,从最初的开发阶段一直到集成和生产阶段,以及在产品投入运营使用时,消除了网络风险并促进了合规。
 
若您想了解如何查看所有软件资产,熟知每个漏洞的实际影响并在它们造成任何危害之前减轻安全风险,立刻与我们联系吧!