2021年12月报Log4j1.2网络安全漏洞排查和修复建议
Posted java组长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年12月报Log4j1.2网络安全漏洞排查和修复建议相关的知识,希望对你有一定的参考价值。
-
漏洞影响范围
Apache Log4j2远程代码执行漏洞CVE-2021-4104:Apache Log4j 1.2
Apache Log4j2远程代码执行漏洞CVE-2021-44228:Apache Log4j 2.0-beta9 - 2.12.1 、Apache Log4j 2.13.0 -
2.15.0-rc1
Apache Log4j2 拒绝服务攻击漏洞CVE-2021-45046:Apache Log4j 2.0-beta9 - 2.12.1、Apache Log4j 2.13.0-2.15.0
Apache Log4j2 拒绝服务漏洞CVE-2021-45105:Apache Log4j 2.0-beta9 - 2.16.0
-
Log4j1.2 受影响
远程代码执行漏洞CVE-2021-4104
修复方法如下(优先采用缓解措施):
ApacheLog4j 1.2中存在RCE漏洞(CVE-2021-4104,仅配置为使用JMSAppender时存在,非默认),建议相关用户升级到Log4j 2的最新版本。
缓解措施:
注释或删除 Log4j 配置中的 JMSAppender。
使用此命令从log4j jar包中删除 JMSAppender 类文件:
zip -q -d log4j-*.jar org/apache/log4j/net/JMSAppender.class
参考链接:
http://mail-archives.apache.org/mod_mbox/www-announce/202112.mbox/%3C1a5a0193-71c4-0613-ca92-f50f801543d9@apache.org%3E
-
Log4j2.x 受影响
拒绝服务漏洞CVE-2021-45046
修复方法如下(优先采用缓解措施):
Java8或更高版本应升级到 Apache Log4j 2.16.0 版本。
使用Java 7 的用户应升级到Apache Log4j 2.12.2版本。
删除 JndiLookup 类:
zip-q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
参考链接:
http://mail-archives.apache.org/mod_mbox/www-announce/202112.mbox/%3C13e07d4e-ceb6-e510-be98-7d2ee8fa0a85@apache.org%3E
下载链接:
https://logging.apache.org/log4j/2.x/download.html
注:只有log4j-core JAR文件受CVE-2021-44228和CVE-2021-45046漏洞的影响。只使用log4j-api JAR文件而不使用log4j-core JAR文件的应用程序不会受到影响
远程代码执行漏洞CVE-2021-44228
修复方法如下(优先采用缓解措施):
受影响用户应升级到Apache Log4j 2.15.0-rc2及以上版本,建议升级到 2.16.0 版本(Java 8或更高版本)。
使用Java 7的用户应升级到Apache Log4j 2.12.2版本。
删除 JndiLookup 类:
zip -q -dlog4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
参考链接:
拒绝服务漏洞CVE-2021-45105
Log4j 1.x:不受 CVE-2021-45105 漏洞影响。
Log4j 2.x:Java 8 或更高版本用户建议升级到 2.17.0 版。
缓解措施:
1、在日志配置的 PatternLayout 中,用线程上下文映射模式(%X,%mdc 或%mdc)
替换上下文查找,如$ctx:loginId或$$ctx:loginId。
2、否则,在配置中,删除对上下文查找的引用,如 $ctx:loginId 或 $$ctx:
loginId,它们源自应用程序外部的源,如 HTTP 头或用户输入。
下载链接:
https://logging.apache.org/log4j/2.x/download.html
注 : 只 有 log4j-core JAR 文件受 CVE-2021-44228 、 CVE-2021-45046 和
CVE-2021-45105 漏洞的影响。只使用 log4j-api JAR 文件而不使用 log4j-core JAR 文件的应用程序不会受到影响。
通用临时方案(CVE-2021-44228)
- 建议JDK使用6u211、7u201、8u191、11.0.1及以上的版本;
- 对于>=2.10版本:
- 添加jvm启动参数:-Dlog4j2.formatMsgNoLookups=true;在log4j2.component.properties配置文件中增加如下内容:log4j2.formatMsgNoLookups=true;系统环境变量中将LOG4J_FORMAT_MSG_NO_LOOKUPS设置为true;
- 对于2.7-2.14.1版本:
- 可以修改所有PatternLayout模式,将消息转换器指定为%mnolookups,而不仅仅是%m。
- 对于2.0-beta9-2.7版本:
- 唯一的缓解措施是删除jndiookup类:
zip -q -dlog4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
- 禁止安装log4j的服务器访问外网,并在边界对dnslog相关域名访问进行检测。
- log4j本地检测使用方法
检测结果出现log4j 1.2、log4j 2.x表示受漏洞影响,具体受影响漏洞类型及修复参考第一、二、三章节。
- windows系统
建议将程序放到磁盘根目录下面,通过cmd控制台执行。若文件较多,时间较长,请耐心等待。
- linux系统
需将程序放到磁盘 / 根目录下面后,将程序设置为执行权限;
chmod +x log4j_vul_check_linux
附:排查的小工具分享
以上是关于2021年12月报Log4j1.2网络安全漏洞排查和修复建议的主要内容,如果未能解决你的问题,请参考以下文章
2021 年 12 月头号恶意软件:TrickbotEmotet 和 Log4j 攻击