[譯] Docker Blog - Apache Log4j 2 CVE-2021-44228
2021/12/13 更新
部分 CVE-2021-44228 漏洞已在版本 2.15.0 修正,其餘在 CVE-2021-45046 追蹤。建議更新至 2.16.0 版本
2021/12/15 12:49 PM PT
我們知道你們中有很多人正在努力修正 CVSS 分數為 10.0 的 Log4j 2 CVE-2021-44228 漏洞。我們也利用 #hugops 向所有致力於此漏洞工作的人發送相關資訊和最大的祝福,現在使用 Log4Shell。在這個常見的 Java 日誌函式庫 Log2j 的漏洞,能夠遠端執行程式碼,攻擊者可以很容易在各種情境下使用。例如﹔在 Minecraft 伺服器發現允許在聊天紀錄中輸入指令然後這些指令會被送到日誌。這是非常嚴重的漏洞,在函式庫被廣泛使用的情況下很容易被利用。很多開源程式的維護者正努力地修正這個問題。
我們希望在這個充滿挑戰的時刻儘可能協助您,也為您收集相關資訊,包含如何偵測 CVE 和解決辦法
原文將會持訊更新
我中了漏洞了嗎?
Log4j 2 版本 2.0 到 2.14.1 具有此漏洞。第一個修正的版本是 2.15.0。但 2.15.0 修正並不完全,目前建議更新的版本是 2.16.0。如果您使用的是 2.0 之前的版本則沒有此漏洞。
如果您使用上述沒有漏洞的版本或者您的日誌紀錄不包含任何使用者輸入的資料,可能不會受到攻擊。然而如果不完全了解全部程式碼或可能輸入日誌的來源可能很難確認。因此您可能希望升級有漏洞的版本。
不幸的是 Docker Desktop 4.3.0 和較早版本的 docker scan
不會在掃描時發現這個漏洞,請升級到 4.3.1+
如果您是在 Linux 上使用 docker scan
您可以從 Github 下載並依照指示。我們將儘速更新 Linux CLI 版本。
如果您是在新版本是用指令則您應該見到下面訊息
1 | Upgrade org.apache.logging.log4j:log4j-core@2.14.0 to org.apache.logging.log4j:log4j-core@2.15.0 to fix |
要測試這個功能您可以使用包含漏洞的映象檔
1 | docker scan elastic/logstash:7.13.3 |
或者擷取出相關資訊
1 | docker scan elastic/logstash:7.13.3 | grep 'Arbitrary Code Execution' |
更多資訊請參考
Docker Hub Scans
Docker Hub 安全掃描在 2021/12/13/ 17:00 UTC 時間之後已經可以識別 Log4j 2 漏洞。在這個時間之前的掃描則不會正確反應問題。我們正在研究如何修正此問題。請在更新版本使用 docker scan
補救措施
您可能想要使用應用程式層的防火牆 (WAF) 來解決這個問題。在 2.16.0 之前的版本您可以在類別路徑(classpath)移除 JndiLookup
類別
1 | zip -q -d log4j-core-*.jarorg/apache/logging/log4j/core/lookup/JndiLookup.class |
Docker 官方映像檔
許多官方的映像檔都包含了這個漏洞。更多關於最新狀態可以參考
其他映像檔
我們正和合格的提供者進行相關工作。同時在尋找向您顯示”受影響映像檔”的方法,隨著我們得到更多資訊,我們將繼續更新這篇文章。
Docker 基礎設施是否受到影響?
Docker Desktop 和 Docker Hub 並未受到 Log4j 2 漏洞影響。Docker 大量使用 Go 語言並不是 Java 。雖然我們內部有使用一些 Java 應用程式,但我們已經確認並未受到 CVE-2021-44228 和 CVE-2021-45046 影響。
[譯] Docker Blog - Apache Log4j 2 CVE-2021-44228