可能的受影响应用及组件(包括但不限于)如下:
Redis Elasticsearch Apache Solr Apache Flink Apache Druid Apache Struts2 srping-boot-strater-log4j2 flume dubbo logstash kafka
影响范围log4j版本
Apache Log4j 2.x < 2.16.0
检查攻击
1. 可以通过检查日志中是否存在 “jndi:ldap://”、“jndi:rmi” 等字符来发现可能的攻击行为。
攻击者在利用前通常采用 dnslog 方式进行扫描、探测,对于常见利用方式可通过应用系统报错日志中的"javax.naming.CommunicationException"、"javax.naming.NamingException: problem generating object using object factory"、"Error looking up JNDI resource"关键字进行排查。
2. 攻击者的数据包中可能存在:"${jndi:}" 字样,攻击代码举例如下:
2.升级方法下载编译好的jar包
wget https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.16.0/log4j-api-2.16.0.jar wget https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.16.0/log4j-core-2.16.0.jar wget https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-1.2-api/2.16.0/log4j-1.2-api-2.16.0.jar wget https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl/2.16.0/log4j-slf4j-impl-2.16.0.jar
替换之前的jar包
cp log4j-*2.16.0.jar /elasticsearch/lib/ cd /elasticsearch/lib/ chown ries:ries log4j-*2.16.0.jar rm -f log4j-*2.9.1.jar
重启es
ps -ef| grep elasticsearch kill 2312 elasticsearch -d > /dev/null &
检查es是否启动成功
curl http://127.1:9200/_cluster/health?pretty=true3.临时缓解措施
使用jvm参数启动 -Dlog4j2.formatMsgNoLookups=true 设置 log4j2.formatMsgNoLookups=True 系统环境变量中将 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为true



