不久前,Apache Log4j2问题引起Java圈的大震荡。压测引擎Apache Jmeter是基于Java的压力测试工具,Jmeter的Beanshell组件中使用了日志功能,自然也受到了Log4j2的影响。
漏洞描述
Apache Log4j2是一个开源的Java日志记录组件,该日志框架被大量用于业务系统开发,包括不限于Apache Struts2、Apache Solr、Apache Druid、Apache Flink等知名应用,用来记录日志信息。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。
了解详细内容可参考:
- 国家信息安全漏洞共享平台:https://www.cnvd.org.cn/webinfo/show/7146
- 【安全通报】Apache Log4j2 远程代码执行漏洞:https://nosec.org/home/detail/4917.html
- Apache logging services官方文档:https://logging.apache.org
- 漏洞原理视频详解:https://www.bilibili.com/video/BV1FL411E7g3
影响范围
Apache Log4j 2.x < 2.15.0-rc2
只需检测Java应用是否引入 log4j-api , log4j-core 两个jar。若存在log4j应用的使用,极大可能会受到影响。
解决方案
步骤1:升级并替换lib里面的Log4j 插件为Apache Log4j 2.15.0-rc2及以上
目前,Apache官方已发布新版本完成漏洞修复,但没有覆盖到所有的Jmeter版本。大家从官网下载Jmeter需自行检查Log4j jar包是否在2.15.0及以上。
截止发文时间(2021年12月20日),apache-jmeter-5.4.2官方版本的Log4j插件已更新至2.16.0版本,无需替换jar包
apache-jmeter-5.2.1 官方版本的Log4j插件版本为,需手动替换jar包
步骤2:更改bin里面的log4j.xml的配置参数
步骤3:分布式启动jvm参数配置添加 -Dlog4j2.formatMsgNoLookups=true
jmeter -n -t demo.jmx -Rxxxxx -Dlog4j2.formatMsgNoLookups=true