漏洞性質(zhì):
任意代碼執(zhí)行
漏洞描述:
Apache Log4j 是 Apache 的一個(gè)開(kāi)源項(xiàng)目,Apache Log4j2是一個(gè)基于Java的日志記錄工具。該工具重寫了Log4j框架,并且引入了大量豐富的特性。我們可以控制日志信息輸送的目的地為控制臺(tái)、文件、GUI組件等,通過(guò)定義每一條日志信息的級(jí)別,能夠更加細(xì)致地控制日志的生成過(guò)程。該日志框架被大量用于業(yè)務(wù)系統(tǒng)開(kāi)發(fā),用來(lái)記錄日志信息。log4j2是全球使用廣泛的java日志框架,同時(shí)該漏洞還影響很多全球使用量的Top序列的通用開(kāi)源組件,例如 Apache Struts2、Apache Solr、Apache Druid、Apache Flink等。
漏洞危害:
Log4j-2中存在JNDI注入漏洞,當(dāng)程序?qū)⒂脩糨斎氲臄?shù)據(jù)被日志記錄時(shí),即可觸發(fā)此漏洞,成功利用此漏洞可以在目標(biāo)服務(wù)器上執(zhí)行任意代碼,可能對(duì)用戶造成不可挽回的損失。
影響版本:
Apache Log4j 2.x <= 2.14.1
檢測(cè)方案:
①由于攻擊者在攻擊過(guò)程中可能使用 DNSLog 進(jìn)行漏洞探測(cè),建議企業(yè)可以通過(guò)流量監(jiān)測(cè)設(shè)備監(jiān)控是否有相關(guān) DNSLog 域名的請(qǐng)求。
②我們建議企業(yè)可以通過(guò)監(jiān)測(cè)相關(guān)流量或者日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符來(lái)發(fā)現(xiàn)可能的攻擊行為。
臨時(shí)修復(fù)方案:
①修改jvm參數(shù) -Dlog4j2.formatMsgNoLookups=true
②修改配置
log4j2.formatMsgNoLookups=True
③將系統(tǒng)環(huán)境變量
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設(shè)置為 true
修復(fù)建議:
1、廠商已發(fā)布升級(jí)修復(fù)漏洞,用戶請(qǐng)盡快更新至安全版本:log4j-2.15.0-rc1
下載鏈接:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1
2、升級(jí)已知受影響的應(yīng)用及組件,如srping-boot-strater-log4j2/Apache Solr/Apache Flink/Apache Druid
3、手動(dòng)替換 log4j2 版本為 2.15.1-SNAPSHOT
log4j-core:https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-core/2.15.1-SNAPSHOT/log4j-core-2.15.1-20211209.191737-4.jar
log4j-api:
https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-api/2.15.1-SNAPSHOT/log4j-api-2.15.1-20211209.191737-4.jar
log4j-slf4j18-impl:https://repository.apache.org/content/groups/snapshots/org/apache/logging/log4j/log4j-slf4j18-impl/2.15.1-SNAPSHOT/log4j-slf4j18-impl-2.15.1-20211209.191737-4.jar