当我们谈及开源漏洞时,我们会发现其数量永远处于增长状态。根据安全公司 Mend 研究发现,在 2022 年前九个月发现并添加到其漏洞数据库中的开源漏洞数量比 2021 年增加了 33%。该报告从 2022 年 1 月到 2022 年 9 月对大约 1,000 家北美公司进行了代表性抽样,结果显示已知漏洞中只有 13% 得到了修复。面对数量庞大的漏洞,企业不得不对其进行优先级排序,例如像 log4j 这类能够造成严重业务风险的漏洞会被优先处理,其他漏洞则暂时忽略。
因此,有效地确定漏洞的优先级对于企业来说十分关键。在本文中,我们将一同探讨漏洞优先级排序的六大关键因素。
1. 严重程度(Severity)
严重程度可以说是最直接的考虑因素。每个漏洞都被归类在常见漏洞和披露 (CVE) 列表中,并被赋予一个表示其严重性的常见漏洞分数(CVSS)。一般来说,严重性越高,修复漏洞的优先级越高。然而,情况并非总是如此。例如,CVSS 分数可能需要一些时间才能分配给新漏洞,因此零日漏洞可能会被忽视。此外,只有当漏洞与企业代码中使用的组件或依赖项相关联时,它才会带来风险。如果并无关联,那么它不会威胁到企业的代码库。
2. 可利用性(Exploitability)
有一些漏洞很容易在攻击中使用或利用,这也导致这些漏洞被恶意攻击者利用的概率大大增加。需要注意的是,往往具有潜在严重影响的漏洞其可利用性反而较低,而不太严重的漏洞可能很容易且经常被利用。在这种情况下,不太严重的漏洞可能会带来更高的利用风险,因此优先考虑这类漏洞是十分必要的。
3. 可达性(Reachability)
漏洞只有在可访问的情况下才能被利用。换句话说,当攻击者可以找到从代码到漏洞的清晰路径时,攻击者才会利用这个漏洞。如果企业正在调用易受攻击的代码,那么该代码中的漏洞可能会被利用。如果没有路径,代码无法直接调用漏洞。当威胁行为者发现了含有漏洞的代码,但代码并未被企业软件或应用程序执行,这类漏洞的可达性非常低。因此对于企业来说优先考虑可到达的漏洞,因为这些漏洞更容易被利用。
4. 经营风险(Business Risk)
在进行优先级排序时还有一个重要问题是:企业的软件或应用程序存在哪些业务风险?这种考虑主要围绕数据,特别是客户的财务和个人身份数据。这种信息对恶意行为者来说很有价值,常常成为攻击者的目标。因此,处理此类数据的软件和应用程序中的漏洞是优先考虑的主要对象。
5. 应用程序的使用(Application Usage)
同样,企业应该考虑如何使用企业自行开发的软件或应用程序。这个软件/应用程序是边缘应用程序还是关键应用程序?它会被大量和各种各样的用户频繁使用吗?该应用程序是否连接到网络(这对攻击者来说是一个有吸引力的接入点)?是否用于生产?它仅供内部使用,还是也供客户和合作伙伴等第三方实时使用?实际上,如果频繁使用的关键应用程序,且对其他用户和组织开放,并在生产中使用,这类应用程序可能更容易受到攻击,并会让企业面临更大的风险,因此企业应当优先考虑这类应用程序中的漏洞。
6. 修复可用性(Fix Availability)
还有一个优先级参考因素是修复可用性。如果没有可用的修复程序,那么确定漏洞的优先级就会变得毫无意义。在该漏洞发布修复程序之前,企业是无法采取任何措施来进行修复和补救的。
考虑上下文
在确定漏洞的优先级时,应根据上下文考虑所有上述注意事项。实施基于上下文的优先级排序是十分必要的,因为有时在一些情况中很严重的漏洞但在另一些用例中的影响并不大或根本没有影响。例如,企业可能会遇到一个严重的 CVE,它使任何运行特定应用程序的 Windows 机器都可以利用某些远程代码执行,攻击者甚至可以接管该应用程序。但是实际企业使用的是 Linux,因此尽管该漏洞可能会对数百万 Windows 用户产生巨大影响,但它对企业没有不利影响。根据不同的环境,漏洞的威胁会立即从高变为零。
而对于该企业更需要关注的是 Linux 中的中等严重性漏洞,即使这个漏洞严重性并不高,也可能对企业造成损害。
使用优先级漏斗
企业的应用程序安全解决方案应该能够通过这些考虑因素中的每一个来收集和评估漏洞。使用优先级漏斗,数以千计的未区分和未过滤的漏洞进入漏斗的顶部。随着通过无数层的考虑标准,许多漏洞被过滤掉,例如:
- 轻度严重
- 不可利用或可利用性低
- 不可达
- 很少或从未在代码库中使用
- 对敏感数据存在低风险或无风险
- 仅存在于内部应用程序中,对第三方没有威胁
- 在操作环境中无效
- 已经可以修复
图片来源:Mend
所有上述情况可能确实是漏洞,但重点是它们对企业的特定代码、软件和应用程序的威胁可以忽略不计。从企业的角度来看,这些漏洞是误报,可以忽略它们,或者至少降低优先级,从而让企业有更多时间和精力来处理那些处于漏斗底部的漏洞。这些漏洞能够构成真实、直接和严重威胁,是企业真正需要优先考虑的。而通过漏斗过滤这一过程,企业能够清楚地区分和意识哪些漏洞应当被优先解决。
参考链接:
https://www.mend.io/resources/blog/what-are-the-key-considerations-for-vulnerability-prioritization/