Log4j 漏洞处置方案汇总
#Log4j2 (CVE-2021-44228/CVE-2021-45046/CVE-2021-45105)
安全建议
1、排查应用是否引入了Apache log4j-core Jar包,若存在依赖引入,且在受影响版本范围内,则可能存在漏洞影响。请尽快升级Apache Log4j2所有相关应用到安全 log4j-2.17.0 及其以上版本,地址https://logging.apache.org/log4j/2.x/download.html。
2、对于 Java 8及其以上用户,建议升级Apache Log4j2 至2.17.0 版本。
3、对于 Java 7 用户,建议升级至 Apache Log4j 2.12.3 版本,该版本为安全版本,用于解决兼容性问题。
4、对于其余暂时无法升级版本的用户,建议删除JndiLookup,可用以下命令
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
5、升级已知受影响的应用及组件,如 spring-boot-starter-log4j2/Apache Struts2/Apache
Solr/Apache Druid/Apache Flink
6、其余临时缓解方案可参见 缓解方案。目前已有安全版本,强烈建议不要采用临时缓解方案进行防御。
7、防止升级过程出现意外,建议相关用户在备份数据后再进行操作。
不受影响版本
Apache Log4j 2.17.0-rc1
Apache Log4j 2.17.0稳定版
Apache Log4j 2.12.3-rc1(支持Java 7)
Apache Log4j 2.12.3稳定版(支持Java 7)
Log4j2相关链接
1、https://logging.apache.org/log4j/2.x/security.html
2、https://github.com/advisories/GHSA-jfh8-c2jp-5v3q CVE-2021-44228
3、https://github.com/advisories/GHSA-7rjr-3q55-vv33 CVE-2021-45046
4、https://github.com/advisories/GHSA-p6xc-xr62-6r2g CVE-2021-45105
log4j (CVE-2021-4104)
Apache Log4j 1.2版本在特定配置时存在JMSAppender 反序列化代码执行漏洞(CVE-2021-4104),当攻击者具有修改 Log4j 配置的权限时,JMSAppender 容易受到不可信数据的反序列化,攻击者可以使用特定配置利用 JMSAppender 执行 JNDI 请求,从而造成远程代码执行。
安全建议
1、Apache Log4j 1.2 已于2015年8月终止。升级到Log4j2,因为它解决了以前版本中的许多其他问题。
2、防止升级过程出现意外,建议相关用户在备份数据后再进行操作。
缓解措施:
1)注释掉或删除 Log4j 配置中的 JMSAppender。
2)使用下列命令,从log4j jar包中删除 JMSAppender 类文件:
3)限制系统用户对应用程序平台的访问,以防止攻击者修改 Log4j 配置。
zip -q -d log4j-*.jar org/apache/log4j/net/JMSAppender.class
log4j相关链接
1、https://www.mail-archive.com/announce@apache.org/msg06936.html CVE-2021-4104
攻击排查方法
1、攻击者在利用前通常采用dnslog方式进行扫描、探测,常见的漏洞利用方式可通过应用系统报错日
志中的"javax.naming.CommunicationException"、"javax.naming.NamingException: problem
generating object using object factory"、"Error looking up JNDI
resource"、"StackOverflowError"关键字进行排查。
2、攻击者发送的数据包中可能存在"${jndi:}" 、"$${ctx:}"字样。
已知受影响应用及组件
VMware大部分产品
Jedis
Logging
Logstash
HikariCP
Hadoop Hive
ElasticSearch
Apache Solr
Apache Struts2
Apache Flink
Apache Druid
Apache Log4j SLF4J Binding
spring-boot-strater-log4j2
Camel :: Core
JBoss Logging 3
JUnit Vintage Engine
WSO2 Carbon Kernel Core
用log4j的组件可参考如下链接:
https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/usages?p=1