大家好,我是明哥!
近期 LOG4J 围绕JNDI的安全漏洞频繁暴雷,着实让小伙伴们忙活了一阵。
本文我们就一起来看下,CDH/HDP/CDP 等大数据平台中如何快速应对 LOG4J 的 JNDI 系列漏洞。
1 LOG4J 概述
2 LOG4J JNDI 系列漏洞概述
3 深入了解 LOG4J 与 JNDI
4 应对 LOG4J JNDI 系列漏洞的思路
5 常见大数据组件如何应对 LOG4J JNDI 系列漏洞
6 CDH/HDP/CDP 等大数据平台中如何快速应对LOG4J的 JNDI 系列漏洞
1 LOG4J 概述
Apache Log4j 是一款基于 Java 的开源日志框架,而 Apache Log4j2 在 Log4j 的基础上,参考了另一款日志框架 logback,做了大量改进增加了很多丰富的特性。
在实现上,log4j2 做到了 api seperation, 包括 log4j-core 和 log4j-api, 其中前者是日志框架的具体实现(Logback是日志框架的另一款具体实现),后者则是日志门面/日志抽象 logging facade(Simple Logging Facade for Java (slf4j)是另一款日志门面/日志抽象)。
在性能上,Log4j2 由于使用了 Asynchronous loggers,(应用代码在调用 Logger.log 时,其实是将 I/O 操作的执行交给了另一个 IO 线程,并立即返回了应用线程),在多线程环境下,可以做到 LOG4J1.X 和 logback 18倍的吞吐量,并有着更低的延迟。
在架构上,log4j2 采用了插件机制,所以用户不需要额外编写代码,即可根据自己的情况配置自己的 Appender/Layout/Pattern Converter, log4j2 会自动识别配置文件并使用其中配置的插件。
正式由于以上诸多优点,log4j 成为了 JAVA 生态中应用最广泛的日志框架。
2 LOG4J JNDI 系列漏洞概述
近期暴雷的 JNDI 系列漏洞,包括以下三个:
CVE-2021-44228:12月9日,由阿里云发现并报告该漏洞,基于该漏洞,攻击者可以构造恶意请求,触发远程代码执行漏洞;Log4j 团队在发现该问题后马上发布了 2.15.0 版本,并给出了临时解决方案;(危险等级:critical)
CVE-2021-45046:12 月 1