Log4j安全漏洞修复策略

CVE-2021-44228漏洞修复方法

Posted by Jeremy Song on 2021-12-11
Estimated Reading Time 2 Minutes
Words 494 In Total
Viewed Times

今早刚起床就收到两条推送,大概意思是 Log4j 暴露了一个严重的安全漏洞。据评,此次漏洞的影响范围挺大。同时,阿里云也检测到了通过该漏洞服务器被攻击的事实。

但由于本人刚刚晋升奶爸,一天还是挺忙的,O(∩_∩)O哈哈~

这会刚好抽时间简单写一下如何应对该漏洞。

漏洞描述

Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default.

Apache Log4j2 <=2.14.1 在配置、日志消息和参数中使用的 JNDI 功能不能防止攻击者控制的 LDAP 和其他 JNDI 相关端点。 当启用消息查找替换时,可以控制日志消息或日志消息参数的攻击者可以执行从 LDAP 服务器加载的任意代码。 从 log4j 2.15.0 开始,默认情况下已禁用此行为。

漏洞复现

以下是在 Bilibili 上看到的讲解,讲的很明白了。偷个懒,引用一下。

原站点地址:https://www.bilibili.com/video/BV1FL411E7g3/

修复方案

一般方案

由于 Log4j 已经发布新版本 2.15.0 修复了此问题。因此,通用方案就是升级 Log4j 到 2.15.0 及以上版本即可。

无法升级2.15.0版本

2.10及以上版本

>=2.10 的版本中,可以通过将系统属性 log4j2.formatMsgNoLookups环境变量 LOG4J_FORMAT_MSG_NO_LOOKUPS 设置为 true 来规避此漏洞。

2.0-beta9到2.10版本

规避措施简单粗暴,是从类路径中删除 JndiLookup 类:

1
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

参考


欢迎关注我的公众号 须弥零一,跟我一起学习IT知识。


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !