Apache Log4j 2 是一款开源的日志记录工具,被广泛应用于各类框架中。近期,Apache Log4j 2 被爆出存在漏洞,漏洞现已公开,本文为 KubeSphere 用户提供建议的修复方案。

此次漏洞是由于 Log4j 2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。由于大量的软件都使用了 Log4j 2 插件,所以大量的 Java 类产品均被波及,包括但不限于 Apache Solr、srping-boot-strater-log4j2、Apache Struts2、ElasticSearch、Dubbo、Redis、Logstash、Kafka...更多组件可以参考 Log4j 2 相关文档

受影响的 Log4j 版本为 Apache Log4j 2.x < 2.15.0-rc2。目前官方发布了 Apache 2.15.0-rc2 版本对该漏洞进行了修复,但是该版本并非正式发行版,故存在不稳定的因素,如要升级建议对相关数据进行备份。

同时,也提供了三种方法对漏洞进行补救,为

  • 将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
  • 修改配置 log4j2.formatMsgNoLookups=True
  • 修改 JVM 参数 -Dlog4j2.formatMsgNoLookups=true

以下三种解决方法,您可以任选其中一种进行参考。

方法一:修改系统环境变量

由于 KubeSphere 默认使用了 ElasticSearch 收集日志,所以也应该在 KubeSphere 修改相应的配置来对漏洞进行修复。以下说明如何在 KubeSphere 中进行相应的操作对 ElasticSearch 进行修复。

将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 True,为此,我们需要修改 ElasticSearch 的 Yaml 文件,因为它是一个 StatefulSet 文件,所以需要进行如下修改:

kubectl edit  statefulset  elasticsearch-logging-data -n kubesphere-logging-system
kubectl edit statefulset elasticsearch-logging-discovery -n kubesphere-logging-system

在这两个 Yaml 文件中插入环境变量设置:

env:
- name: FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS
value: "true"

方法二:修改 Log4j 2 配置

另外,您也可以修改配置 log4j2.formatMsgNoLookups=True,您可以执行如下命令:

kubectl edit configmaps elasticsearch-logging  -n kubesphere-logging-system

然后插入上面所提到的配置:

log4j2.properties: |-
status=error
appender.console.type=Console
appender.console.name=console
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
rootLogger.level=info
rootLogger.appenderRef.console.ref=console
logger.searchguard.name=com.floragunn
logger.searchguard.level=info
# 插入此行
log4j2.formatMsgNoLookups=true

注意:

  1. 修改后请注意相关配置是否挂载进去,如果没有挂载进去,请重启 Pod。
  2. 如果您将 KubeSphere Logging 组件重新安装,ks-installer 可能会导致该 ConfigMap 的配置被重置,需要再参考方法二手动配置一遍,或者采取方法一,设置系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 为 true

方法三:修改 ElasticSearch 的 JVM 参数

除了上述两种方法,您还可以选择在 KubeSphere 集群中的 ElasticSearch 添加配置文件,单独配置 JVM 参数,详见 ElasticSearch 公告声明

相关参考

本文由博客一文多发平台 OpenWrite 发布!

KubeSphere 对 Apache Log4j 2 远程代码执行最新漏洞的修复方案的更多相关文章

  1. Apache ActiveMQ Fileserver远程代码执行漏洞

    扫端口的时候遇到8161端口,输入admin/admin,成功登陆,之前就看到过相关文章,PUT了一句话上去,但是没有什么效果,于是本地搭建了一个环境,记录一下测试过程. 环境搭建: ActiveMQ ...

  2. Apache Druid 远程代码执行 CVE-2021-25646 漏洞复现

    Apache Druid 远程代码执行 CVE-2021-25646 漏洞复现 前言 Apache Druid 是用Java编写的面向列的开源分布式数据存储,旨在快速获取大量事件数据,并在数据之上提供 ...

  3. Tomcat CGIServlet enableCmdLineArguments远程代码执行_CVE-2019-0232漏洞复现

    Tomcat CGIServlet enableCmdLineArguments远程代码执行_CVE-2019-0232漏洞复现 一.漏洞描述 该漏洞是由于tomcat CGI将命令行参数传递给Win ...

  4. Free MP3 CD Ripper_缓冲区溢出远程代码执行_CVE-2019-9766漏洞复现

    Free MP3 CD Ripper_缓冲区溢出远程代码执行_CVE-2019-9766漏洞复现 一.漏洞描述 Free MP3 CD Ripper是一款音频格式转换器.Free MP3 CD Rip ...

  5. Adboe Flash远程代码执行_CVE-2018-4878漏洞复现

    Adboe Flash远程代码执行_CVE-2018-4878漏洞复现 一.漏洞描述 该漏洞可针对windows用户发起定向攻击.攻击者可以诱导用户打开包含恶意Flash代码文件的Microsoft ...

  6. WebLogic 任意文件上传远程代码执行_CVE-2018-2894漏洞复现

    WebLogic 任意文件上传远程代码执行_CVE-2018-2894漏洞复现 一.漏洞描述 Weblogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限.Oracle 7月 ...

  7. windows RDP远程代码执行_CVE-2019-0708漏洞复现

    windows RDP远程代码执行_CVE-2019-0708漏洞复现 一.漏洞概述 2019年5月14日微软官方发布安全补丁,修复了windows远程桌面服务的远程代码执行漏洞,该漏洞影响了某些旧版 ...

  8. Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现

    Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现 一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: ...

  9. IE浏览器远程代码执行高危漏洞(CVE-2019-1367)

    IE浏览器远程代码执行高危漏洞(CVE-2019-1367)加固遇到的问题 一.背景介绍 Internet Explorer,是微软公司推出的一款网页浏览器.用户量极大.9月23日微软紧急发布安全更新 ...

  10. 远程代码执行MS08-067漏洞复现失败过程

    远程代码执行MS08-067漏洞复现失败过程 漏洞描述: 如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码. 在微软服务器系统上,攻击者可能未经身份验证即可利用此漏洞运行 ...

随机推荐

  1. Google的TPU的逐元素操作特性 —— TPU数据操作时最基本的操作原语(primitive)

    地址: https://jax.readthedocs.io/en/latest/pallas/tpu.html TPU是原来进行矩阵计算加速的一个科学计算的设备,功能大致等同于NVIDIA的GPU的 ...

  2. ChatGPT到底有用没用?—— 个人观点:有用,但不多

    今天接到在大连某高校任职的师弟电话,师弟十分喜欢用ChatGPT,尤其是其文字自动生成的功能,这对于我们这种文字工作者来说简直就是"福音",但是我对这个观点却是有所保留. 当年区块 ...

  3. plsql中的常用功能整理

    1.关键字查找 2.保存登录密码 完美!

  4. vue之es6语法

    1.背景 2.let与var与const的区别 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  5. 一直让 PHP 程序员懵逼的同步阻塞异步非阻塞,终于搞明白了

    大家好,我是码农先森. 经常听到身边写 Java.Go 的朋友提到程序异步.非阻塞.线程.协程,让系统性能提高到百万.千万并发,使我甚是惊讶属实羡慕.对于常年写 PHP 的我来说,最初听到这几个词时, ...

  6. 纯css美化滚动条样式

    https://www.emperinter.info/2020/09/20/scrollbar-in-browser/ 自己完善自己博客再Ipad等移动端的菜单时选用了左右滑动的菜单模式!当然就会使 ...

  7. [nRF24L01+] 4. 增强型ShockBurst

    4. 增强型ShockBurst 增强型的ShockBurst是一个数据链路层,具有自动数据包组装和数据包的发送.定时.自动确认和重传.这些特性能够显著提高双向和单向系统的能效,而不会增加主机控制器侧 ...

  8. CVSS(Common Vulnerability Scoring System)打分规则解读

    CVSS(Common Vulnerability Scoring System)提供了一种根据漏洞的主要特征进行打分,反映其严重性的方法.CVSS 已成为被广泛使用的标准. 下面是CVSS 3.1版 ...

  9. 【音视频通话】使用asp.net core 8+vue3 实现高效音视频通话

    引言 在三年前,写智能小车的时候,当时小车上有一个摄像头需要采集,实现推拉流的操作,技术选型当时第一版用的是nginx的rtmp的推拉流,服务器的配置环境是centos,2H4G3M的一个配置,ngi ...

  10. win10找不到无线网络报错:Windows无法自动将IP协议堆栈绑定到网络适配器

    win10找不到无线网络报错:Windows无法自动将IP协议堆栈绑定到网络适配器 问题描述: 今天启动电脑,忽然发现连不上WIFI了,但可以拨号连接有线网.大致情况如下: 上图是修复后的结果,在未修 ...