Log4j安全漏洞修复策略
2021-12-13 05:34
Log4j
暴露了一个严重的安全漏洞。据评,此次漏洞的影响范围挺大。同时,阿里云也检测到了通过该漏洞服务器被攻击的事实。但由于本人刚刚晋升奶爸,一天还是挺忙的,O(∩_∩)O哈哈~这会刚好抽时间简单写一下如何应对该漏洞。漏洞描述
Apache Log4j2 <=2.14.1 在配置、日志消息和参数中使用的 JNDI 功能不能防止攻击者控制的 LDAP 和其他 JNDI 相关端点。当启用消息查找替换时,可以控制日志消息或日志消息参数的攻击者可以执行从 LDAP 服务器加载的任意代码。从 log4j 2.15.0 开始,默认情况下已禁用此行为。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.
漏洞复现
以下是在 Bilibili 上看到的讲解,讲的很明白了。偷个懒,引用一下。原站点地址:https://www.bilibili.com/video/BV1FL411E7g3/由于本人担心将B站视频搬到这里后会引起某些误会,大家可以自行去以上地址观看视频。或者点击本文章左下角的阅读原文查看。另外,建议通过 https://www.jeremysong.cn/cn/CVE-2021-44228/ 个人博客阅读本篇文章以获得最佳阅读体验。修复方案
一般方案
由于 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
类:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
参考
•CVE-2021-44228 (http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228)•CVE-2021-44228 Detail (https://nvd.nist.gov/vuln/detail/CVE-2021-44228)•Apache Log4j 2 (https://logging.apache.org/log4j/2.x/index.html)
欢迎关注我的公众号“须弥零一”,更多技术文章第一时间推送。