甚麼是 Apache Log4J(Log4Shell)漏洞?

Log4Shell(CVE-2021-44228CVE-2021-45046CVE-2021-45105)是一個遠程代碼執行(RCE)漏洞,讓歹徒可以任意透過執行 Java 代碼來控制目標伺服器。

Log4Shell 漏洞總覽

零時差漏洞在 2021 年內極頻繁地出現,到年終更出現了 Log4Shell 這個在廣泛使用的 Java 目錄資料庫 Apache Log4j 內發現的重大缺陷。這個被正式確認為 CVE-2021-44228 的漏洞,在通用漏洞評分系統(CVSS)的 10 級嚴重性分級系統 CVSS v3.1 中名列第 10 級。

這漏洞在 2021 年 11 月 24 日首次被私下報告至 Apache。2021 年 12 月 9 日,Log4Shell 被公開披露並同時發佈 Apache Log4j 2.15.0 修補程式。

而隨之而來在不同機構發現的相關攻擊報導令多個國家網絡安全機構都發出警告,包括美國網絡安全及基礎設施安全局(CISA))、英國國家網絡安全中心(NCSC)及加拿大網絡安全中心。由於 Apache Log4j 的普及性,全球有數以億計的裝置都會受影響。

Log4Shell 如何運作

Log4Shell 是一個 Java Naming and Directory Interface™(JNDI)的注入漏洞,可容許遙距執行代碼(RCE)。歹徒可以將未獲信任的數據(例如惡意軟件孢子)包括在受影響 Apache Log4j 版本的目錄訊息內,透過搜尋 JNDI 來建立與惡意伺服器的連繫,結果是他們可以在全球任何地方全面登入您的系統。

由於 JNDI 搜尋可支援不同種類的目錄,如網域名稱系統(DNS)、為機構網絡裝置提供寶貴資料的輕型目錄存取協定(LDAP)、遠程方法調用(RMI)及物件請求代理間通信協定(IIOP),Log4Shell 亦會導致其他威脅,如:

  • 挖礦:歹徒會利用您的系統資源來挖掘加密貨幣,而這亦是一個代價高昂的威脅,因為大量用於運作雲端服務及應用程式的電腦效能都會被盜用。
  • 網絡阻斷服務攻擊(DoS):這威脅讓歹徒關閉及/或停用一個網絡、網站或服務,令被針對機構不能登入或進行存取。
  • 勒索程式:在進行遙距執行代碼後,歹徒可以搜集及加密數據作勒索用途。

 

以下為可能的感染途徑:

可能的感染鏈

帶漏洞的產品、應用程式及附加元件

基本上包括所有運行 2.0 至 2.14.1 版本 Apache Log4j 且連接互聯網的裝置。受影響版本包含在 Apache Struts、Apache Solr、Apache Druid、Elasticsearch、Apache Dubbo 及 VMware vCenter 之內。

補丁及緩解方法

Apache 已即時發佈 Apache Log4j 版本 2.15.0 來修補此漏洞,不過此版本只適用於 Java 8 之上。使用較舊版本的用戶需要應用臨時緩解方法。在本文發佈一刻,Apache 已發佈 2.16.0 版本,並建議用戶盡快更新可能被影響的資料庫。

其他獲強力推薦的緩解策略包括虛擬補丁及採用入侵偵測/防禦系統(IDS/IPS)。虛擬補丁可防止漏洞被進一步濫用,而 IDS/IPS 則可檢查入口和出口流量以找出可疑行為。

Apache Log4J

相關研究

相關資料