近期,apache log4j2远程代码执行漏洞(cnvd-2021-95914)曝光,引发社会广泛关注。攻击者利用该漏洞,可在未授权的情况下远程执行代码,获得服务器控制权限。经中心综合技术分析研判,该漏洞具有危害程度高、利用难度低、影响范围大的特点。为正确处置突发漏洞风险,降低漏洞带来的损失,中心整理《apache log4j2远程代码执行漏洞排查及修复手册》以供相关单位、企业及个人参考。
一、漏洞情况分析
apache log4j是一个基于java的日志记录组件。apache log4j2是log4j的升级版本,通过重写log4j引入了丰富的功能特性。该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息。
log4j2组件在处理程序日志记录时存在jndi注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发log4j2组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。
cnvd对该漏洞的综合评级为“高危”。
二、漏洞排查方法
2.1 版本排查
存在该漏洞的log4j2组件版本为:log4j2.x≤log4j组件版本(1)根据java jar解压后是否存在org/apache/logging/log4j相关路径结构,查询log4j2组件及其版本情况。
(2)若程序使用maven打包,查看项目的pom.xml文件中org.apache.logging.log4j相关字段及版本情况。
(3)若程序使用gradle打包,可查看build.gradle编译配置文件,查看中org.apache.logging.log4j相关字段及版本情况。
2.2 中间件排查
apache log4j2组件通常会嵌套在其他中间件使用,需要相关人员查看开发文档或联系系统开发商、维护人员进行判断是否有使用相关中间件。
涉及的受影响中间件或应用,包括但不限于:apache solr、apache druid、apache struts2、apache flink、flume、dubbo、redis、logstash、elasticsearch、kafka、ghidra、minecraft、apache hive、datax、streaming、dolphin scheduler、storm、spring等。
三、攻击情况排查
3.1 日志排查
攻击者常采用dnslog方式进行扫描、探测,对于常见漏洞利用方式对应用系统报错日志中的“javax.naming.communicationexception”、“javax.naming.namingexception: problem generating object using object factory”、“error looking up jndi resource”等关键字段进行排查。
3.2 流量排查
攻击者的漏洞利用数据包中可能存在
等字样,通过监测相关流量是否存在上述字符以发现可能的攻击行为。
四、漏洞修复建议
4.1 官方补丁
目前,apache官方已发布新版本完成漏洞修复,请及时升级至最新版本2.16.0:。
4.2 临时修复措施(任选其一)
(1)添加jvm启动参数-dlog4j2.formatmsgnolookups=true;
(2)在应用classpath下添加log4j2.component.properties配置文件,文件内容为log4j2.formatmsgnolookups=true;
(3)jdk使用11.0.1、8u191、7u201、6u211及以上的高版本;
(4)限制受影响应用对外访问互联网;
(5)禁用jndi。如在spring.properties里添加spring.jndi.ignore=true;
(6)部署使用第三方防火墙产品进行安全防护,并更新waf、rasp规则等。
五、参考建议
安全厂商-链接地址
1 奇安信科技集团股份有限公司
2 绿盟科技集团股份有限公司
3 上海斗象信息科技有限公司
4 深信服科技股份有限公司
5 北京数字观星科技有限公司
6 杭州安恒信息技术股份有限公司
7 安天科技股份有限公司
8 启明星辰信息技术集团股份有限公司
9 北京天融信网络安全技术有限公司
10 远江盛邦(北京)网络安全科技股份有限公司
11 东软集团股份有限公司
感谢奇安信科技集团股份有限公司、绿盟科技集团股份有限公司、上海斗象信息科技有限公司、深信服科技股份有限公司、北京数字观星科技有限公司和杭州安恒信息技术股份有限公司等为本报告提供的凯发k8官方的技术支持。