教育数字化知识图谱
打开微信扫一扫
近日监测到Apache Log4j 2存在任意代码执行漏洞,经过分析, 由于Apache Log4j 2 新增的 lookup 功能未对输入进行严格的判断,存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。
据悉,Apache log4j 2是一款开源的Java日志记录框架,提供方便的日志记录,通过定义每一条日志信息的级别,能够更加细致地控制日志生成过程,以便用于编写程序时进行调试,在项目上线后出现状况时也可根据日志记录来判断原因,被广泛大量用于业务系统开发环境中。经验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等众多组件与大型应用均受影响, 该漏洞 无需授权即可远程代码执行 ,一旦被攻击者利用会造成严重后果,影响范围覆盖各行各业,危害极其严重,请各单位高度重视,迅速自查修复漏洞,以防遭受黑客攻击。
漏洞详情
危害等级: 严重
影响范围
受影响版本:
Apache Log4j 2.x <= 2.15.0-rc1
已知受影响应用及组件:
Apache Solr
Apache Flink
Apache Druid
srping-boot-strater-log4j2
不受影响版本:
Apache log4j-2.15.0-rc2
自主检测
1、相关用户可根据Java jar解压后是否存在org/apache/logging/log4j相关路径结构,判断是否使用了存在漏洞的组件,若存在相关Java程序包,则很可能存在该漏洞。
2、若程序使用Maven打包,查看项目的pom.xml文件中是否存在下图所示的相关字段,若版本号为小于2.15.0,则存在该漏洞。
3、若程序使用gradle打包,可查看build.gradle编译配置文件,若在dependencies部分存在org.apache.logging.log4j相关字段,且版本号为小于2.15.0,则存在该漏洞。
解决方案
攻击排查
1、目前攻击者主要采用dnslog方式进行扫描、探测,常见的漏洞利用方式可通过应用系统报错日志中的
javax.naming.CommunicationException
javax.naming.NamingException: problem generating object using object factory
Error looking up JNDI resource
关键字进行排查。
2、攻击者发送的数据包中可能存在“${jndi:}”字样,建议使用全流量或WAF设备进行检索排查。
修复建议
1. 尽快通过参考链接中官网地址升级到最新版本:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2. 配置网络防火墙,禁止系统主动外连网络,包含不限于DNS、TCP/IP、ICMP。
5.紧急加固缓解措施:
① 设置参数:
log4j2.formatMsgNoLookups=True
② 修改JVM参数:
-Dlog4j2.formatMsgNoLookups=true
③ 系统环境变量:
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS设置为true
④ 禁止 log4j2 所在服务器外连
参考链接:
[1] https://github.com/apache/logging-log4j2
[2] https://github.com/apache/logging-log4j2/commit/7fe72d6
(转自:国家信息安全漏洞共享平台)