什麼是 Apache Log4j (Log4Shell) 漏洞?

Log4Shell (CVE-2021-44228CVE-2021-45046CVE-2021-45105) 是一種遠端程式碼執行 (RCE) 漏洞,可讓駭客從遠端執行任意的 Java 程式碼,進而掌控被攻擊的伺服器。

Log4Shell 漏洞簡介

2021 年是零時差漏洞非常忙碌的一年,其中最嚴重的就是 Log4Shell 漏洞,這是一個使用廣泛的 Java 記錄檔函式庫 Apache Log4j 被發現的一個重大漏洞。CVE 正式編號為 CVE-2021-44228,在通用漏洞評分系統 (CVSS v3.1) 當中屬於等級最嚴重的 10 分 (滿分 10 分)。

此漏洞最早是在 2021 年 11 月 24 日通報給 Apache,然後在 2021 年 12 月 9 日被公開揭露,並在 Apache Log4j 2.15.0 版當中首次修正。

接著,有關網路上實際攻擊案例的新聞,使得有多個國家的網路資安單位對外發布警告,包括:美國網路資安與基礎架構安全局 (Cybersecurity and Infrastructure Security Agency,簡稱 CISA) 、英國國家網路資安中心(National Cyber Security Center,簡稱 NCSC) 以及加拿大網路資安中心 (Canadian Center for Cyber Security)。由於 Apache Log4j 非常受歡迎,因此全球有數以百萬計的裝置受到影響。

Log4Shell 如何運作

Log4Shell 是一個 Java 命名與目錄介面 (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

相關研究

相關文章