1. 程式人生 > 其它 >Apache Log4j 任意程式碼執行漏洞

Apache Log4j 任意程式碼執行漏洞

安全風險通告

1章 安全通告

近日,相關機構監測到 Apache Log4j 存在任意程式碼執行漏洞,經過分析,該元件存在 Java JNDI 注入漏洞,當程式將使用者輸入的資料進行日誌,即可觸發此漏洞,成功利用此漏洞可以在目標伺服器上執行任意程式碼。

經驗證,Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等眾多元件與大型應用均受影響,鑑於此漏洞危害巨大,利用門檻極低,建議儘快參考緩解方案阻止漏洞攻擊。

當前漏洞狀態:

技術細節

PoC 狀態

EXP 狀態

在野利用

已公開

已公開

已公開

已發現

2 漏洞資訊

2.1 漏洞描述

Apache Log4j 是 Apache 的一個開源專案,Apache log4j2 是 Log4j 的升級版本,我們可以控制日誌資訊輸送的目的地為控制檯、檔案、GUI 元件等,通過定義每一條日誌資訊的級別,能夠更加細緻地控制日誌的生成過程。

近日,奇安信 CERT 監測到 Apache Log4j 存在任意程式碼執行漏洞,經過分析,該元件存在 Java JNDI 注入漏洞,當程式將使用者輸入的資料進行日誌,即可觸發此漏洞,成功利用此漏洞可以在目標伺服器上執行任意程式碼。經驗證,Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等眾多元件與大型應用均受影響,鑑於此漏洞危害巨大,利用門檻極

低,建議儘快參考緩解方案阻止漏洞攻擊。

Apache Log4j 任意程式碼執行漏洞

漏洞名稱

Apache Log4j 任意程式碼執行漏洞

漏洞型別

程式碼執行

風險等級

緊急

漏洞 ID

暫無

公開狀態

已公開

在野利用

已發現

漏洞描述

Apache Log4j 是 Apache 的一個開源專案,通過定義每一條

日誌資訊的級別,能夠更加細緻地控制日誌生成過程。經過分

析,Log4j2 中存在 JNDI 注入漏洞,當程式將使用者輸入的資料進行 日誌記錄時,即可觸發此漏洞,成功利用此漏洞可以在目標伺服器上執行任意程式碼。

參考連結

https://github.com/apache/logging-log4j2

2.2 風險等級

緊急

3 影響範圍

Apache Log4j 2.x < 2.15.0-rc2

4 處置建議

1. 漏洞排查

1)排查應用是否引入了 Apache Log4j2 Jar 包,若存在依賴引入,則可能存在漏洞影響。 相關使用者可根據 Java JAR 解壓後是否存在org/apache/logging/log4j 相關路徑結構,判斷是否使用了存在漏洞的元件,若存在相關 Java 程式 包,則極可能存在該漏洞。

2)若程式使用 Maven 打包,檢視專案的 pom.xml 檔案中是否存在如下圖

所示的相關欄位,若版本號為小於 2.15.0-rc2,則存在該漏洞。

3)若程式使用 gradle 打包,檢視 build.gradle 編譯配置檔案,若在dependencies 部分存在 org.apache.logging.log4j 相關欄位,且版本號為小於 2.15.0-rc2,則存在該漏洞。

2. 攻擊排查

a) 攻擊者在利用前通常採用 dnslog 方式進行掃描、探測,對於常見利用方式可通過應用系統報錯日誌中的

"javax.naming.CommunicationException"、

"javax.naming.NamingException: problem generating object usingobject factory"、"Error looking up JNDI resource"關鍵字進行排查。

b) 流量排查:攻擊者的資料包中可能存在:“${jndi:rmi”、“${jndi:ldap”字樣。

3. 修復建議

a) 升級到最新版本:

請聯絡廠商獲取修復後的官方版本:https://github.com/apache/logginglog4j2 ;

請儘快升級 Apache Log4j2 所有相關應用到最新的 log4j-2.15.0-rc2 版本,地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

b) 緩解措施:

1)新增 jvm 啟動引數 -Dlog4j2.formatMsgNoLookups=true

2)在應用程式的 classpath 下新增 log4j2.component.properties 配置檔案,檔案內容:log4j2.formatMsgNoLookups=True

3)設定系統環境變數 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS設定為 true

4)建議 JDK 使用 11.0.1、8u191、7u201、6u211 及以上的高版本

5)限制受影響應用對外訪問網際網路