Apache Log4j 漏洞影响上万个开源项目,整个Java生态因此遭受沉重的打击


来自 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%)得到了修复。


相關推薦

2021-12-29

Apache Log4j 日志库中发现了另一个严重的远程代码执行漏洞,现在被跟踪为 CVE-2021-44832。这是 Log4j 库中的第五个 RCE 和第六个非常严重的漏洞,其次分别是 CVE-2021-44228 (RCE)、CVE-2021-45046 (RCE) 和 CVE-2021-45105 (DoS 攻击)。 目前,Apache

2021-12-23

们遭受了严重的网络攻击,该攻击基于此前我们报导的 Apache Log4j 相关漏洞。强烈的网络攻击导致比利时国防部的一些活动瘫痪,如邮件系统就已经停机了好几天。 比利时相关发言人奥利维尔·塞维林 (Olivier Séverin) 表示:“

2021-12-16

​近日,openLooKeng注意到Apache Log4j2反序列化远程代码执行漏洞(CVE ID为CVE-2021-44228),并修复失败。详细方案如下,建议所有用户不要升级。 Apache Log4j2远程代码执行漏洞修复解决方案 【漏洞描述】 Apache Log4j2是一个基于J

2021-12-17

8 和 CVE-2021-45046 之后发现的第五个 Log4Shell 漏洞。 距离 Apache Log4j “核弹级”漏洞的公开已过去将近一周,在此期间被记录的漏洞总共有两个,分别是 CVE-2021-44228 和 CVE-2021-45046。针对漏洞的补丁版本也早已发布: Apache L

2021-12-24

期:2021-12-23 漏洞简述 2021年12月23日,360CERT监测发现Apache官方发布了安全通告 ,修复了多个漏洞,其中包含的漏洞编号有:CVE-2021-44224、CVE-2021-44790,漏洞等级:高危,漏洞评分:8.2。 Apache HTTP Server是Apache软件基金会的一

2021-12-16

基于 Java 的日志记录工具 Apache Log4j2 近日出现了一个高危漏洞,攻击者可以利用其 JNDI 注入漏洞远程执行代码,此漏洞牵涉面非常广,以至于国内外的个人或公司用户都对此高度关注,而 Log4j2 开发组在漏洞曝光后及时发布了 A

2023-10-07

开源下载存在已知风险,且仍有 23% 的 Log4j 下载存在严重漏洞。 开源项目的主动维护也变得越来越少。研究表明,去年有近五分之一(18.6%)的项目停止维护,影响了 Java 和 JavaScript 生态系统。只有 11% 的开源项目实际上得到

2021-12-20

Apache Log4j 的 2.0-alpha1 到 2.16.0 版本存在新的漏洞 CVE-2021-45105 ,此漏洞评分 7.5 ,且在刚发布的 Log4j 2.17.0 (Java 8) 中得到了修复。如果把安全公司 Praetorian 发现的第三个信息泄露漏洞也算进去,这应该是 Log4j 的第四个漏洞了。

2022-01-12

究人员将一些集中在年底的增长归因于 12 月发现的 Log4j 漏洞。Check Point 称,2021 年是网络攻击创纪录的一年,而 Log4j 漏洞让事情变得更加糟糕。 Check Point Software 的数据研究经理 Omer Dembinsky表示,“我们看到网络攻击数量在年

2022-02-14

框架。 官方表示,基于 IntelliJ 平台的 IDE 不受 Log4j 漏洞的影响,因为它们使用了 Log4j 1.2 的修复版本,并删除了所有与网络相关的代码,而且 Log4j 库的第 1 版和第 2 版是两个完全不同的代码库,具有不兼容的 API。但即便

2022-11-03

攻击者开始使用 XML 和 VBA 的组合来执行恶意活动。 Log4j 漏洞仍被广泛利用。在 2021 年 12 月 11 日至 2022 年 6 月 30 日期间,SonicWall 共记录了 5.575 亿次 Log4Shell 攻击尝试,平均每天 280 万次。 从 2022 年 1 月到 2022 年 7 月,加密

2021-12-20

者论坛指出,当前版本的 XCode 13.2 中似乎也包含了 Log4j 漏洞。对此,Xcode 团队在帖子中则回应道,他们已经意识到这个问题。“我们通常不会为修复错误的时间提供 ETA,但团队已经意识到存在这个安全问题。” 根据介绍

2022-09-19

Log4j 影响之后采取的行动。约有 31% 的受访者表示,安全漏洞是目前开源社区的最大挑战。 Anaconda 称,大多数组织都在使用开源软件;但在表示不使用的 8% 的受访者中,有一半以上(54%,比去年增加了13%)将安全风险作为理由

2022-11-19

作为开源的云原生 API 网关,Apache APISIX 致力于在性能和使用体验上为开发者和用户们带来更好更优异的表现,帮助企业解决一些关于云原生和微服务技术下遇到的新问题。 在 9 月底,Apache APISIX 发布了 3.0.0-beta 预览版,为用