12月09日,Apache Log4j任意代碼執(zhí)行漏洞被發(fā)現(xiàn),據(jù)了解Log4j-2中存在JNDI注入漏洞,當(dāng)程序?qū)⒂脩?hù)輸入的數(shù)據(jù)進(jìn)行日志記錄時(shí),即可觸發(fā)此漏洞,成功利用此漏洞可以在目標(biāo)服務(wù)器上執(zhí)行任意代碼。
對(duì)于該漏洞,目前官網(wǎng)上暫未有相關(guān)應(yīng)對(duì)舉措,因此,比特豹安全建議各位用戶(hù)先進(jìn)行自我排查,以下是比特豹安全工程師根據(jù)本次漏洞作出的有效自我排查方式,用戶(hù)可根據(jù)各自需求選擇其中一種或幾種進(jìn)行自我排查。
一、人工檢測(cè)
1、相關(guān)用戶(hù)可根據(jù)Java jar解壓后是否存在org/apache/logging/log4j相關(guān)路徑結(jié)構(gòu),判斷是否使用了存在漏洞的組件,若存在相關(guān)Java程序包,則很可能存在該漏洞。

2、若程序使用Maven打包,查看項(xiàng)目的pom.xml文件中是否存在下圖所示的相關(guān)字段,若版本號(hào)為小于2.15.0,則存在該漏洞。

3、若程序使用gradle打包,可查看build.gradle編譯配置文件,若在dependencies部分存在org.apache.logging.log4j相關(guān)字段,且版本號(hào)為小于2.15.0,則存在該漏洞。

二、攻擊排查
1、攻擊者在利用前通常采用dnslog方式進(jìn)行掃描、探測(cè),常見(jiàn)的漏洞利用方式可通過(guò)應(yīng)用系統(tǒng)報(bào)錯(cuò)日志中的"javax.naming.CommunicationException"、
"javax.naming.NamingException: problem generating object using object factory"、"Error looking up JNDI resource"關(guān)鍵字進(jìn)行排查。

2、攻擊者發(fā)送的數(shù)據(jù)包中可能存在"${jndi:}" 字樣,推薦使用全流量或WAF設(shè)備進(jìn)行檢索排查。

Apache Log4j2是一個(gè)基于Java的日志記錄工具。該工具重寫(xiě)了Log4j框架,并且引入了大量豐富的特性。該日志框架被大量用于業(yè)務(wù)系統(tǒng)開(kāi)發(fā),用來(lái)記錄日志信息,因此本次漏洞影響范圍廣泛,目前可確認(rèn)的受影響版本包括:
1. 目前官網(wǎng)暫未有相應(yīng)補(bǔ)丁下載鏈接,用戶(hù)可選擇下載臨時(shí)補(bǔ)丁,并時(shí)刻關(guān)注比特豹安全以獲得最新漏洞消息:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
2.升級(jí)已知受影響的應(yīng)用及組件,如 spring-boot-starter-log4j2/Apache Struts2/Apache Solr/Apache Druid/Apache Flink
3.緊急解決方案:
log4j2.formatMsgNoLookups=True
如遇緊急情況,可按照以下方式進(jìn)行緊急避險(xiǎn):