Elastic|Apache Log4j2 Remote Code Execution (RCE) Vulnerability – CVE-2021-44228 – ESA-2021-31

瀏覽人次: 1651
2021-12-16 更新

ELK Logo

Elastic 前言

Log4j 的 Github 公開了一個影響 Apache Log4j 2 多個版本的高嚴重性漏洞 (CVE-2021-44228)。該漏動影響了 Apache Log4j 2 的 2.0 到 2.14.1 版本。

Elasticsearch 建議參數調整

2021.12.13 所發布的 7.16.1 版本,不會升級 Log4j 至 2.16.0,而是透過設定 JVM 的 -Dlog4j2.formatMsgNoLookups=true 來補救,並移除了一些易受攻擊的 JndiLookup 類別程式。

但某些漏洞偵測軟體,可能還是會認為有潛在風險,但是 Elastic 目前的測試認為,上述的補救方式,已具有一定程度的保護力。

建議做法:

vim /etc/elasticsearch/jvm.options

於最後新增:

-Dlog4j2.formatMsgNoLookups=true

重新啟動每一個 Elasticsearch 節點:

systemctl restart elasticsearch

升級至 7.16.1 可以參考 es-rolling-upgrade 做法:

https://blog.bimap.com.tw/2021/07/06/elasticsearch-rolling-upgrade

Logstash 建議參數調整或更新

建議用戶可以將版本升級至 7.16.1,此版本的 Log4j 已升級至 2.15。如前言所述,雖然 Log4j 2 已發布了 2.16.0 版本,但並不影響 Elastic 建議的調整方式。

線上更新:

yum update logstash

離線環境:

重新安裝,將版本號修正為 7.16.1:

https://blog.bimap.com.tw/2021/04/29/logstash-offline-install

如果 Logstash 無法升級的話,可採用以下官方建議作法:

這邊需要注意的是 -Dlog4j2.formatMsgNoLookups=true,這種 JVM 的補救方式,並不能有效的解決於 Logstash 中的漏洞,如果無法升級 Logstash,則需要從 Log4j 2 的核心 jar 檔中刪除 JndiLookup 類別,使用的指令為:

zip -q -d <LOGSTASH_HOME>/logstash-core/**/*/log4j-core-2.* org/apache/logging/log4j/core/lookup/JndiLookup.class

並重新啟動 Logstash

systemctl restart logstash

快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。