fbpx

(最新更新至3/14) Pentaho – Apache Log4j 漏洞官方建議處置

【前情提要】

2021年12月9日,Apache Log4j 被揭漏有重大風險漏洞 Log4Shell,漏洞編號 CVE-2021-44228。駭客可以利用該漏洞發動遠端程式碼執行攻擊,最嚴重可以接管整台系統,影響範圍擴及 Apache Log4j 2 中 logging library 的多個版本,資安專家稱為近 10 年來最嚴重漏洞,研究人員也發現已經有針對該漏洞的攻擊行動。

Pentaho

截至 2022 年 2 月 28 日,本文中提到的漏洞已在 Pentaho Service Pack 8.3.0.26 和 9.2.0.3 中得到解決。這些服務包將升級 Pentaho 升級到使用Log4j版本2.17.1來記錄。本文中的手動步驟是提供給使用 Service Pack 版本之前的 Pentaho 版本的客戶。如果您無法升級到 Pentaho 8.3.0.26 或 9.2.0.3,那麼您可能需要遵循以下手動緩解步驟。

CVE-2021-4104 處置

當前支援的 Pentaho 版本中不存在此漏洞,因為預設情況下沒有使用易受攻擊的類別(Classes)。 

但是為了響應最近發布的 CVE-2021-44228 漏洞,Hitachi Vantara 的資訊團隊對已發布的軟體 (包括 Pentaho) 進行了測試。  (註:本文章僅摘錄 Pentaho 相關之內容,其他 Hitachi Vantara 軟體處置請見官方原文)

針對 Pentaho 用例,該漏洞僅在以下情況下才會出現:  

  • 使用 Java 8u120 或更早的版本。 
    注意:Pentaho 從 v8.3 開始支援 Java 8u251
     
  • 已將以下 java 系統屬性設置為 true 
    com.sun.jndi.rmi.object.trustURLCodebase 
    com.sun.jndi.cosnaming.object.trustURLCodebase
    注意: 這些屬性在 Java 8u121 及更新的版本中預設為 false 
     
  • 正在使用 JmsAppender
    注意:Pentaho 沒有使用 JMSAppender,但仍有可能將它添加到 log4j 屬性 (properties) 並啟用它

在上述場景中,可以通過更改設置或自定義使用 JMSAppender 來啟用這些項目。  

為了確保易受攻擊的類別 (class) 不會被利用,您可以對包含 JMSAppender 類的 jar 文件執行以下指令。 

  1. activemq-all-5.15.11.jar (預設位置\pentaho-server\pentaho-solutions\system\kettle\plugins\pdi-jms-plugin\lib) 
  2.  log4j jar 文件位於以下位置: 
  • \client-tools\aggregation-designer\lib\log4j-1.2.17.jar 
  • \client-tools\data-integration\lib\log4j-1.2.17.jar 
  • \client-tools\data-integration\jdbc-distribution\lib\log4j-1.2.17.jar 
  • \client-tools\metadata-editor\libext\pentaho\log4j-1.2.17.jar 
  • \client-tools\report-designer\lib\log4j-1.2.17.jar 
  • \client-tools\report-designer\jdbc-distribution\lib\log4j-1.2.17.jar 
  • \jdbc-distribution\lib\log4j-1.2.17.jar 
  • \license-installer\lib\log4j-1.2.17.jar 
  • \pentaho-server\tomcat\webapps\pentaho\WEB-INF\lib\log4j-1.2.17.jar 

zip -q -d activemq-all-5.* “org/apache/log4j/net/JMSAppender.class” 
zip -q -d log4j-1.2.* “org/apache/log4j/net/JMSAppender.class” 
注意:需要在 log4j jar 文件所在的所有位置執行上述指令 
 

如果使用 7-zip 命令: 
7z d activemq-all-5.15.11.jar “org/apache/log4j/net/JMSAppender.class”  
7z d log4j-1.2.17.jar “org/apache/log4j/net/JMSAppender.class”
注意:以上命令需要在 log4j jar 文件存在的所有位置執行。 
 
要驗證 JMSAppender.class 是否不存在,請使用任何 zip 程式打開上述指令中的 jar 文件並到 \org\apache\log4j\net\ 檢查 JMSAPENDER.class 是否存在。如果它不存在,則該命令成功並且無法再調用 JMSAppender 類別。 

CVE-2021-44228 處置

log4j 1.2 版中沒有易受攻擊的類別,但是,其中一個插件存在該類別,即使它並沒有被使用。這個類別在 8.3 及之前的版本並不存在。

為了確保該易受攻擊的類別不會被利用,您可以對包含 JndiLookup 類的 jar 文件執行以下指令。

注意:第二個位址會要求先解壓縮 pentaho-mapreduce-libraries.zip 主檔 (parent archive),並使用修改後的 pax-logging-log4j2 重新創建它。  

  1. pentaho-server\pentaho-solutions\system\karaf\system\org\ops4j\pax\logging\pax-logging-log4j2\1.10.2\pax-logging-log4j2-1.10.2.jar  
  2. pentaho-server\pentaho-solutions\system\kettle\plugins\pentaho-big-data-plugin\pentaho-mapreduce-libraries.zip\system\karaf\system\org\ops4j\pax\logging\pax-logging-log4j2\ 1.10.2\pax-logging-log4j2-1.10.2.jar  

  • zip -d -q pax-logging-log4j2-1.10.2.jar “org/apache/logging/log4j/core/lookup/JndiLookup.class” 

如果使用 7zip 指令: 
 7z d pax-logging-log4j2-1.10 .2.jar “org/apache/logging/log4j/core/lookup/JndiLookup.class”  

要驗證 JndiLookup 不存在,請使用任何 zip 程式打開上述指令中的 jar 文件,並到 \org\apache\logging\log4j\core\lookup\ 檢查 JndiLookup.class 是否仍然存在。如果它不存在,則該命令成功並且無法再調用 JndiLookup 類別。 

CVE-2021-45056 處置

此漏洞的處置步驟與 CVE-2021-44228 相同。如果您已應用這些步驟,則此漏洞不存在。

CVE-2021-45105 處置

這個問題不會影響 Pentaho,因為我們不使用 log4jv2。此問題僅影響 Apache Log4j2 版本 2.0-alpha1 到 2.16.0

CVE-2021-44832 處置

這個問題不會影響 Pentaho,因為我們默認不使用這些類。上述 CVE 緩解步驟將完全刪除該類。

CVE-2021-42392 處置

此問題僅影響默認情況下不應在生產中使用的樣本資料連接。您可以刪除 H2 驅動程式並禁用 SampleData 資料庫以立即解決該漏洞。

注意:請注意,僅當您在生產環境中不使用任何 H2 連接時才建議這樣做。

  1. 從 Pentaho 中刪除樣本資料:
  • Pentaho 9.2:https://help.hitachivantara.com/Documentation/Pentaho/9.2/Setup/Manage_the_Pentaho_Server#Remove_sample_data_from_the_Pentaho_Server
  • Pentaho 8.3:https://help.hitachivantara.com/Documentation/Pentaho/8.3/Setup/Manage_the_Pentaho_Server#Remove_sample_data_from_the_Pentaho_Server

      2. 從以下位置刪除 H2 驅動程序:

  • /server/pentaho-server/tomcat/lib/h2-1.x.xxx.jar
  • /server/pentaho-server/tomcat/webapps/pentaho/WEB-INF/lib/h2-1.x.xxx.jar
  • /client-tools/data-integration/lib/h2-1.x.xxx.jar
  • /client-tools/metadata-editor/libext/JDBC/h2-1.x.xxx.jar
  • /client-tools/report-designer/lib/jdbc/h2-1.x.xxx.jar

CVE-2022-23302 處置

默認情況下,Pentaho 不使用 JMSSink 類。為確保不使用易受攻擊的類,您可以對包含 JMSSink 類的 jar 文件執行以下命令:

刪除 big-data-plugin 下的 log4j jar。 jar 可以在以下文件夾中找到:

  • design-tools\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\emr511\lib\client\log4j-1.2.17.jar
  • design-tools\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar
  • design-tools\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar
  • design-tools\metadata-editor\plugins\pentaho-big-data-plugin\hadoop-configurations\emr511\lib\client\log4j-1.2.17.jar
  • design-tools\metadata-editor\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar
  • design-tools\report-designer\plugins\pentaho-big-data-plugin\hadoop-configurations\emr511\lib\client\log4j-1.2.17.jar
  • design-tools\report-designer\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar

刪除 pax-logging-service 捆綁包(pax-logging-service bundle) 。它可能位於以下位置:

  • \pentaho-server\pentaho-solutions\system\karaf\system\org\ops4j\pax\logging\pax-logging-service
  • \design-tools\data-integration\system\karaf\system\org\ops4j\pax\logging\pax-logging-service
  • \design-tools\metadata-editor\system\karaf\system\org\ops4j\pax\logging\pax-logging-service

刪除 activemq-all-5.15.11 組件。 activemq-all-5.15.11.jar 位於以下位置:

  • \pentaho-server\pentaho-solutions\system\kettle\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\data-integration\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\metadata-editor\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\report-designer\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar

刪除 log4j jar。該文件位於以下位置:

  • \design-tools\aggregation-designer\lib\log4j-1.2.xx.jar
  • \design-tools\data-integration\lib\log4j-1.2.xx.jar
  • \design-tools\data-integration\jdbc-distribution\lib\log4j-1.2.xx.jar
  • \design-tools\metadata-editor\libext\pentaho\log4j-1.2.xx.jar
  • \design-tools\report-designer\lib\log4j-1.2.xx.jar
  • \design-tools\report-designer\jdbc-distribution\lib\log4j-1.2.xx.jar
  • \jdbc-distribution\lib\log4j-1.2.xx.jar
  • \license-installer\lib\log4j-1.2.xx.jar
  • \pentaho-server\tomcat\webapps\pentaho\WEB-INF\lib\log4j-1.2.xx.jar

請注意:根據您的 Pentaho 版本,上述文件可能會出現在其他目錄中。

CVE-2022- 23305 處置

默認情況下,Pentaho 不使用 JDBCAppender 類。為確保不使用易受攻擊的類,您可以對包含 JDBCAppender 類的 jar 文件執行以下命令:

刪除 activemq-all-5.15.11 組件。 activemq-all-5.15.11.jar 位於以下位置:

  • \pentaho-server\pentaho-solutions\system\kettle\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\data-integration\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\metadata-editor\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\report-designer\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar

刪除 log4j jar。該文件位於以下位置:

  • \design-tools\aggregation-designer\lib\log4j-1.2.xx.jar
  • \design-tools\data-integration\lib\log4j-1.2.xx.jar
  • \design-tools\data-integration\jdbc-distribution\lib\log4j-1.2.xx.jar
  • \design-tools\metadata-editor\libext\pentaho\log4j-1.2.xx.jar
  • \design-tools\report-designer\lib\log4j-1.2.xx.jar
  • \design-tools\report-designer\jdbc-distribution\lib\log4j-1.2.xx.jar
  • \jdbc-distribution\lib\log4j-1.2.xx.jar
  • \license-installer\lib\log4j-1.2.xx.jar
  • \pentaho-server\tomcat\webapps\pentaho\WEB-INF\lib\log4j-1.2.xx.jar

請注意:根據您的 Pentaho 版本,上述文件可能會出現在其他目錄中。

  • zip -q -d activemq-all-5.* “org/apache/log4j/jdbc/JDBCAppender.class”
  • zip -q -d log4j-1.2.* “org/apache/log4j/jdbc/JDBCAppender.class”

注意:上述命令需要在 log4j jar 文件存在的所有位置上執行。

如果使用 7-zip,命令將是:

  • 7z d activemq-all-5.* “org/apache/log4j/jdbc/JDBCAppender.class”
  • 7z d log4j-1.2.* org/apache/log4j/jdbc/JDBCAppender.class”

注意:上述命令需要在 log4j jar 文件存在的所有位置上執行。

要驗證 JDBCAppender 組件是否存在,請用任何壓縮工具打開上述命令中的 jar 文件,並鑽到\org\apache\log4j\jdbc\,檢查 JDBCAppender.class 是否仍然存在。如果它不存在,則命令成功並且無法再調用 JDBCAppender.class。

CVE-2022- 23307 處置

默認情況下,Pentaho 不使用任何鏈鋸類別(chainsaw classes)。為確保不使用易受攻擊的類,您可以對包含鏈鋸組件(chainsaw component)的 jar 文件執行以下命令。

刪除 big-data-plugin 下的 log4j jar。 jar 可以在以下文件夾中找到:

  • design-tools\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\emr511\lib\client\log4j-1.2.17.jar
  • design-tools\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar
  • design-tools\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar
  • design-tools\metadata-editor\plugins\pentaho-big-data-plugin\hadoop-configurations\emr511\lib\client\log4j-1.2.17.jar
  • design-tools\metadata-editor\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar
  • design-tools\report-designer\plugins\pentaho-big-data-plugin\hadoop-configurations\emr511\lib\client\log4j-1.2.17.jar
  • design-tools\report-designer\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp30\lib\client\log4j-1.2.17.jar

刪除 pax-logging-service 捆綁包。它可能位於以下位置:

  • \pentaho-server\pentaho-solutions\system\karaf\system\org\ops4j\pax\logging\pax-logging-service
  • \design-tools\data-integration\system\karaf\system\org\ops4j\pax\logging\pax-logging-service
  • \design-tools\metadata-editor\system\karaf\system\org\ops4j\pax\logging\pax-logging-service

刪除 activemq-all-5.15.11 組件。 activemq-all-5.15.11.jar 位於以下位置:

  • \pentaho-server\pentaho-solutions\system\kettle\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\data-integration\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\metadata-editor\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar
  • \design-tools\report-designer\plugins\pdi-jms-plugin\lib\activemq-all-5.15.11.jar

刪除 log4j jar。該文件位於以下位置:

  • \design-tools\aggregation-designer\lib\log4j-1.2.xx.jar
  • \design-tools\data-integration\lib\log4j-1.2.xx.jar
  • \design-tools\data-integration\jdbc-distribution\lib\log4j-1.2.xx.jar
  • \design-tools\metadata-editor\libext\pentaho\log4j-1.2.xx.jar
  • \design-tools\report-designer\lib\log4j-1.2.xx.jar
  • \design-tools\report-designer\jdbc-distribution\lib\log4j-1.2.xx.jar
  • \jdbc-distribution\lib\log4j-1.2.xx.jar
  • \license-installer\lib\log4j-1.2.xx.jar
  • \pentaho-server\tomcat\webapps\pentaho\WEB-INF\lib\log4j-1.2.xx.jar

請注意:根據您的 Pentaho 版本,上述文件可能會出現在其他目錄中。

  • zip -q -d activemq-all-5.* org/apache/log4j/chainsaw/*
  • zip -q -d log4j-1.2.* org/apache/log4j/chainsaw/*

注意:上述命令需要在 log4j jar 文件存在的所有位置上執行。

如果使用 7-zip,命令將是:

  • 7z d activemq-all-5.* org/apache/log4j/chainsaw/*
  • 7z d log4j-1.2.* org/apache/log4j/chainsaw/*

注意:上述命令需要在 log4j jar 文件存在的所有位置上執行。

要驗證鏈鋸組件是否存在,請用任何壓縮工具打開上述命令中的 jar 文件並鑽取到 \org\apache\log4j\chainsaw\ 並檢查鏈鋸是否仍然存在。如果它不存在,則命令成功並且無法再調用鏈鋸組件。


本文章為歐立威科技整理原廠官方文件與網路資源,並非即時更新,僅供使用者參考,使用者應自行審慎評估自身環境及官方最新建議以採取最佳行動,若需要任何技術支援歡迎聯絡我們。

參考資料:

 

相關文章