页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。


目录

背景

近日,Apache Log4j2 的远程代码执行漏洞细节被公开,该漏洞一旦被攻击者利用会造成严重危害。

此漏洞对Smartbi各版本影响范围以及相关解决方法如下:

影响范围

1、Smartbi 主服务器:V8~V10版本 。

2、Smartbi 数据挖掘模块:V8~V10版本 。


模块Smartbi版本Apache Log4j版本解决方法
Smartbi war包

V8系列


 2.8.2

关于Smartbi war包存在Apache Log4j2 漏洞的解决方法
V9系列
V10系列
数据挖掘

V8系列--无影响
V9系列2.11.0关于数据挖掘存在Apache Log4j2 漏洞的解决方法

V10系列2.14.0
跨库联合数据源

V8系列1.2.17无影响
V9系列、V10系列1.2.17无影响
V9系列、V10系列2.9.1关于跨库联合数据源存在Apache Log4j2 漏洞的说明
SmartbiMPP

V8系列


--



无影响

V9系列
V10系列
多维引擎

V8系列1.2.8无影响

V9系列1.2.17
V10系列1.2.17无影响

2.12.1

该版本是功能较少的api版本,没有jndilookup功能,该漏洞对多维引擎无影响


注意

当前Smartbi V7及以下系列版本使用的是log4j 1.x,不存在远程代码执行漏洞

解决方法

Smartbi war包
Smartbi war包

 1. Smartbi war包

Smartbi War 包中存在的Apache Log4j2 漏洞可以通过更新以下补丁包进行修复, 根据实际情况可选择在线更新补丁包 “手动更新补丁包 ,详情请参考文档 安全补丁

补丁包资源:patch .patches

数据挖掘
数据挖掘

 2. 数据挖掘

该方法通过修改JVM 参数方式,适用于V95,V97,V10。

Windows 环境

(1) 修改"挖掘引擎启动文件"

此文件位于:“挖掘引擎安装目录\engine\sbin\experiment-daemon-start.bat”,在文件中找到如下内容

代码块
languagejava
java -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx2g -Xms2g -cp .;../lib/* smartbix.datamining.engine.experiment.ExperimentApplication

将其修改为:

代码块
languagejava
java -Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx2g -Xms2g -cp .;../lib/* smartbix.datamining.engine.experiment.ExperimentApplication

(2) 修改“服务引擎启动文件

此文件位于:挖掘引擎安装目录\engine\sbin\service-daemon-start.bat”,在文件内找到如下内容

代码块
languagejava
java -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx1g -Xms1g -cp .;../lib/* smartbix.datamining.engine.service.ServiceApplication

修改为:

代码块
languagejava
java -Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx1g -Xms1g -cp .;../lib/* smartbix.datamining.engine.service.ServiceApplication

Linux环境

(1)编辑“挖掘引擎启动文件”

文件位于:“挖掘引擎安装目录/smartbi-mining-engine-bin/engine/sbin/experiment-daemon.sh,在文件中找到如下内容

代码块
languagejava
JAVA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx5g -Xms5g -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$APP_HOME/../logs/dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$APP_HOME/../logs/gc-detail-`date +%s`.log"

将其修改为

代码块
languagejava
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx5g -Xms5g -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$APP_HOME/../logs/dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$APP_HOME/../logs/gc-detail-`date +%s`.log"

(2)编辑“服务引擎启动文件”

文件位于:“挖掘引擎安装目录/smartbi-mining-engine-bin/engine/sbin/service-daemon.sh”,在文件中找到如下内容

代码块
languagejava
JAVA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx3g -Xms1g -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$APP_HOME/../logs/dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$APP_HOME/../logs/gc-detail-`date +%s`.log"

将其修改为

代码块
languagejava
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx3g -Xms1g -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$APP_HOME/../logs/dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$APP_HOME/../logs/gc-detail-`date +%s`.log"

(3)编辑“python服务启动文件”

注意

此方法适用于V9.5版本

文件位于:挖掘引擎安装目录/smartbi-mining-engine-bin/engine/sbin/python-daemon.sh,在文件内找到如下内容

代码块
languagejava
JAVA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx2g -Xms2g -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$APP_HOME/../logs/dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$APP_HOME/../logs/gc-detail-`date +%s`.log"

将其修改为

代码块
languagejava
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx2g -Xms2g -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$APP_HOME/../logs/dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$APP_HOME/../logs/gc-detail-`date +%s`.log"

(4)编辑python服务启动文件

注意

此方法适用于V97、V10 版本

文件位置:挖掘引擎安装目录/smartbi-mining-engine-bin/engine/sbin/agent-daemon.sh,在文件内找到如下内容

代码块
languagejava
JAVA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx$AGENT_ENGINE_XMX -Xms$AGENT_ENGINE_XMS -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR/agent-dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$LOG_DIR/agent-gc-detail-`date +%s`.log"

将其修改为

代码块
languagejava
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xmx$AGENT_ENGINE_XMX -Xms$AGENT_ENGINE_XMS -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:MaxGCPauseMillis=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR/agent-dump.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:$LOG_DIR/agent-gc-detail-`date +%s`.log"


跨库联合数据源
跨库联合数据源

3. 跨库联合数据源

注意

跨库联合数据源包含了不同的内置连接器以及Smartbi 开发的连接器,其中Smartbi 开发的连接器不包含Log4j2,即不会包含此漏洞

若发现内置的 presto-elasticsearch 连接器存在此漏洞,但Smartbi 不会主动使用此连接器;此连接器的使用必须由用户手工在跨库联合数据源的配置目录中,手工上传或编辑 配置文件,指定使用。

因此,如果项目中没有手工配置连接文件,不会触发此漏洞。

如果用户仍有担忧,可在停止跨库联合数据源的服务后,手动删除目录“ <SmartbiUnionServer安装目录>/plugin/presto-elasticsearch”,然后重启即可