org.apache.logging.log4j:log4j 组件安全漏洞及健康度分析

文章更新时间:2023年8月25日 11:40

org.apache.logging.log4j:log4j

组件简介

维护者apache组织许可证类型Apache-2.0
首次发布2012年7月30日最新发布时间2023年6月23 日
GitHub Star3139GitHub Fork1535
依赖包8,582依赖存储库82,953

Apache Log4J 的实现,这是一种高度可配置的日志记录工具,专注于性能和低垃圾生成。 它有一个插件架构,使其可扩展并支持基于 LMAX Disruptor 的异步日志记录。

官网:https://logging.apache.org/log4j/2.x/

仓库地址:https://github.com/apache/logging-log4j2

参考链接:

https://packages.ecosyste.ms/registries/repo1.maven.org/packages/org.apache.logging.log4j:log4j

组件健康度

技术健康度该组件具有较高的技术健康度,它支持多种日志记录 API,包括 Log4j 2 API, Log4j 1.2 API, SLF4J, Commons Logging 和 java.util.logging。它还利用了 LMAX Disruptor 库来实现基于无锁队列的高效异步日志记录。它还提供了多种日志格式,如 JSON, XML, YAML, HTML 等。
社区健康度该组件由 Apache 软件基金会管理,拥有活跃的开发者和用户社区。它在 GitHub 上有超过 2000 个星标和 800 多个分支,在 Stack Overflow 上有超过 2 万个问题和答案。它还定期发布新版本和安全补丁,以修复已知的漏洞和增加新功能。
更新和维护频率该组件的更新和维护频率较高,它在过去一年内发布了 10 个版本,其中包括针对最近发现的几个严重的远程代码执行漏洞(CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 和 CVE-2021-44832)的紧急修复。它还提供了不同的版本分支,以适应不同的 Java 平台(Java 6, Java 7 和 Java 8 及以上)。
兼容性该组件具有较好的兼容性,它可以与多种日志记录 API 协同工作,也可以与多种应用程序服务器和框架集成,如 Spring Boot, Apache Tomcat, Jetty, Dropwizard 等。它还支持多种配置方式,如 XML, JSON, YAML, Properties 等。
文档和支持该组件提供了详细的文档和支持,包括用户手册,开发者指南,API 文档,示例代码,FAQs 等。它还有一个用户邮件列表和一个开发者邮件列表,可以用于提问和讨论。此外,它还可以在 Stack Overflow 等第三方平台上寻求帮助。

综上所述,org.apache.logging.log4j:log4j 是一个技术先进、社区活跃、更新频繁、兼容广泛、文档完善的 Java 日志记录框架。

参考链接:

https://logging.apache.org/log4j/2.x/

https://logging.apache.org/log4j/2.x/manual/configuration.html

https://logging.apache.org/log4j/2.x/security.html

许可证解读

Apache License 2.0 是一种开源软件许可证,广泛用于授权开源项目和代码。Apache License 2.0 允许用户自由地使用、修改和分发受许可的软件,而无需支付版权费用或专利费用。它鼓励开发者共享他们的代码,并保护用户的权利。以下是该许可证的一些重要特点:

  1. 代码使用权:用户可以自由地使用、复制、修改、合并、发布、分发和销售受许可软件。
  2. 版权声明:用户必须在所有源代码副本中保留原始的版权声明、许可证声明和免责声明。
  3. 修改代码:如果用户对代码进行了修改,需要清楚标明哪些部分发生了变化,并不能暗示原作者同意这些修改。
  4. 商标使用:Apache License 2.0 并未授予使用原软件的任何商标或名称的权利。
  5. 专利许可:该许可证授予了在使用、修改或分发受许可软件时相关专利的非独占许可。这意味着如果用户授权其他人使用该软件,相关专利许可也会传递给接收方。
  6. 再许可:用户可以将受 Apache License 2.0 许可的代码作为一部分整合到其它开源项目中,并使用不同的许可证授权整个项目。但是,需要在代码中显式地说明使用了 Apache License 2.0 许可的部分。

需要注意的是,Apache License 2.0 并不保证软件没有缺陷或不稳定性,使用该软件的风险由用户自行承担。

许可证原文链接:https://github.com/apache/logging-log4j2/blob/2.x/LICENSE.txt

组件漏洞版本及修复方案

漏洞编号漏洞标题漏洞等级影响版本修复版本
MPS-2023-5545Apache Log4j 1.x 存在拒绝服务漏洞中危[1.0.4,2.0.0)2.0.0
MPS-2021-38327Apache Log4j2 JDBC Appender远程代码执行漏洞中危[2.0-beta7,2.3.2)2.3.2
MPS-2021-38752Apache Log4j2 自引用拒绝服务漏洞中危[2.0-beta9,2.3.1)2.3.1
MPS-2021-38665Apache Log4j2 基于上下文查找的远程代码执行漏洞严重[2.0-beta9,2.3.1)2.3.1

同类可替代组件

  • Logback:这是 Log4j 的一个后继者,它提供了更快的实现,更多的配置选项,以及更灵活的归档旧日志文件的功能。官网:https://logback.qos.ch/
  • Logstash:这是一个用于收集、处理和转发日志的开源工具,它可以与 Elasticsearch, Kibana 等平台集成,实现日志的可视化和分析。官网:https://www.elastic.co/cn/logstash
  • Castle Core:这是一个用于 .NET 平台的日志记录框架,它支持多种日志记录级别,以及对 AOP, DynamicProxy, DictionaryAdapter 等特性的支持。官网:https://github.com/castleproject/Core
  • Loki:这是一个用于 Kubernetes 和 Grafana 的水平可扩展、高性能、多租户的日志记录系统,它可以实现高效的日志查询和聚合。官网:https://github.com/grafana/loki

组件SBOM

org.apache.flume:flume-ng-core1.11.0maven
io.netty:netty-codec4.1.97.Finalmaven
com.sun.mail:javax.mail1.6.2maven
org.apache.yetus:audience-annotations0.5.0maven
org.apache.commons:commons-lang33.12.0maven
org.apache.maven:maven-model3.9.0maven
org.springframework.integration:spring-integration-core5.5.18maven
io.netty:netty-transport4.1.97.Finalmaven
org.slf4j:slf4j-ext2.0.6maven

该SBOM清单仅展示部分内容

完整SBOM清单及检测报告:https://www.murphysec.com/console/report/1694919296269316096/1694919306222399488?allow=1

(1)
上一篇 2023年8月25日 下午4:55
下一篇 2023年8月25日 下午5:03

相关推荐