公司出品开放源码中国
文副局长
源自 Google Open Source Insights Team 的安全可靠科学研究相关人员透过展开调查 Maven Central 中大部份应用软件的大部份版,以更快地介绍前段时间爆出的 Log4j 安全可靠漏洞对整座 JVM 词汇自然生态系的负面影响,与此同时还追踪了已经开始展开的减轻受负面影响应用软件的组织工作。
科学研究相关人员辨认出,截止2021年 12月 16日,源自 Maven Central 的35,863个需用应用软件倚赖于存有安全可靠漏洞的 log4j 标识符。这意味著 Maven Central 上少于8%的应用软件最少有一个版受安全可靠漏洞负面影响(此位数不主要包括大部份 Java 应用软件,比如间接递送的十进制文档)
就自然生态系负面影响而言,8%是十分非常大的位数。即使对 Maven Central 自然生态的平均值负面影响值为2%,平均值收入则高于0.1%。

如历史记录安全可靠漏洞的 CVE 所说,绝大多数受负面影响的应用软件源自间接地倚赖项(即另一方面倚赖项的倚赖项),换句话说它没将 log4j 明晰表述为倚赖项,而要做为传达倚赖项被导入进去。

这便是 JVM 自然生态总体上复原此安全可靠漏洞极度十分困难的其原因。安全可靠科学研究相关人员称,在编写该文时,只复原了近五十个受负面影响的应用软件,除了30000数个应用软件会受安全可靠漏洞的负面影响。

单纯而言是,安全可靠漏洞在倚赖亲密关系链中冗余得越远,复原安全可靠漏洞所需的关键步骤就越多。右图表明了受负面影响的 log4j 包(核心理念或 api)首度再次出现在倚赖图中的广度的灰阶。对少于80%的软件包,该安全可靠漏洞的广度少于一级,其中绝大多数受负面影响的级别下降了5 个级别(有些甚至下降了9 个级别)。这些包将需要在倚赖树的大部份部分展开复原,而且首先从最深处的倚赖亲密关系开始。

复原安全可靠漏洞的另一个十分困难之处由解析算法(resolution algorithm)和需求规范约定中自然生态系层级的选择引起。
在 Java 自然生态中,开发者通常的做法是指定软件版方面的“软”要求——假设没其它版的相同包再次出现在倚赖亲密关系图中,解析算法会使用指定的明晰版。对此类复原,通常需要维护者采取更加明晰的行动,以将倚赖需求更新为修补后的版。这种做法与其它自然生态形成了鲜明的对比,比如在 npm 应用软件中,开发者通常会为倚赖项指定开放范围。开放范围允许解析算法选择满足倚赖性要求的前段时间发布的版,从而导入新的复原。
最后,对整座自然生态需要耗费多少时间来完成安全可靠漏洞复原,目前也很难评估。在查看了大部份公开披露的受负面影响 Maven 应用软件中,安全相关人员辨认出只有不到一半(48%)得到了复原。