分析:
Apache Log4j2是一款開源的Java日志框架误证,被廣泛地應(yīng)用在中間件、開發(fā)框架與Web應(yīng)用中,用來記錄日志信息钾怔。由于Apache Log4j2某些功能存在遞歸解析功能却桶,未經(jīng)身份驗證的攻擊者通過發(fā)送特別構(gòu)造的數(shù)據(jù)請求包境输,可在目標服務(wù)器上執(zhí)行任意代碼。漏洞PoC已在網(wǎng)上公開颖系,默認配置即可進行利用嗅剖,該漏洞影響范圍極廣,建議相關(guān)用戶盡快采取措施進行排查與防護嘁扼。
根據(jù)Iog4j的用途和復(fù)現(xiàn)的情況來看信粮,攻擊入口取決于Iog4j從線上業(yè)務(wù)的哪些地方取數(shù)據(jù)放入 logger.error,所以沒有固定請求路徑趁啸。另外由于線上web業(yè)務(wù)的任何數(shù)據(jù)都可能寫入Iog4j强缘,甚 至一些pre-auth的地方,比如注冊莲绰、登錄欺旧,所以這個漏洞的影響可能會被放大到未授權(quán)命令執(zhí)行。
檢測:
人工檢測
1蛤签、相關(guān)用戶可根據(jù)Java jar解壓后是否存在org/apache/logging/log4j相關(guān)路徑結(jié)構(gòu)辞友,判斷是否使用了存在漏洞的組件,若存在相關(guān)Java程序包,則很可能存在該漏洞称龙。
2留拾、若程序使用Maven打包,查看項目的pom.xml文件中是否存在下圖所示的相關(guān)字段鲫尊,若版本號為小于2.15.0痴柔,則存在該漏洞。
3疫向、若程序使用gradle打包咳蔚,可查看build.gradle編譯配置文件,若在dependencies部分存在org.apache.logging.log4j相關(guān)字段搔驼,且版本號為小于2.15.0谈火,則存在該漏洞。
4舌涨、檢測Ivy依賴版本是否低于 2.15.0
5糯耍、 檢測SBT依賴版本是否低于 2.15.0
若沒有使用上述工具,那么可以全局搜索log4j的相關(guān)jar包囊嘉。
受影響版本:
Apache Log4j 2.x <= 2.14.1
已知受影響應(yīng)用及組件:
Apache Solr
Apache Flink
Apache Druid
srping-boot-strater-log4j2
更多組件可參考如下鏈接:
https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/usages?p=1
不受影響版本:
Apache log4j-2.15.0-rc1
防護:
1温技、升級
目前官方已發(fā)布測試版本修復(fù)該漏洞,受影響用戶可先將Apache Log4j2所有相關(guān)應(yīng)用到該版本扭粱,下載鏈接:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1
注:由于此版本非正式發(fā)行版舵鳞,可能出現(xiàn)不穩(wěn)定的情況,建議用戶在備份數(shù)據(jù)后再進行升級琢蛤。
升級供應(yīng)鏈中已知受影響的應(yīng)用及組件:Apache Solr系任、Apache Flink、Apache Druid虐块、srping-boot-strater-log4j2
2、流量攔截
rulel (jndi:rmi://
以上流量特征可能出現(xiàn)在流量中的任何地方嘉蕾,也包括各種類型的請求(GET贺奠、POST等),所以需要對 整個請求流量做特征匹配错忱。
以上正則對業(yè)務(wù)中的正常jndi流量無影響(惡意流量須包含{jndi:ldap儡率,正常 業(yè)務(wù)jndi流量通常只包含rmi://、 ldap:// )以清,但是如果你的正常流量也包含上述特征請慎用儿普。
3、臨時防護
從官方給的信息和復(fù)現(xiàn)情況來看掷倔,利用手段是jndi注入無疑眉孩,jndi注入無非ldap、rmi,需要外連請 求Idap-server/exp-server,禁止外連能在一定程度上緩解浪汪,但是不能防御攻擊者已控其他內(nèi)部服務(wù) 器的情況巴柿。此外,JDK11.0.1死遭、8u191广恢、7u201、6u211或者更高版本默認是無法利用JNDI注入呀潭,網(wǎng) 上的一些bypas s方法也是依賴本地特定的lib(相當于找了新的gadgets)钉迷,所以總結(jié):
1、禁止使用Iog4j的服務(wù)器外連(日志服務(wù)器正常不需要外連)
并在邊界對dnslog相關(guān)域名訪問進行檢測钠署。
部分公共dnslog平臺如下:
ceye.io
dnslog.link
dnslog.cn
dnslog.io
tu4.org
awvsscan119.autoverify.cn
burpcollaborator.net
s0x.cn
2糠聪、建議JDK使用11.0.1、8u191踏幻、7u201枷颊、6u211及以上的高版本
3、添加jvm啟動參數(shù):-Dlog4j2.formatMsgNoLookups=true
4该面、在應(yīng)用classpath下添加log4j2.component.properties配置文件夭苗,文件內(nèi)容為:log4j2.formatMsgNoLookups=true
5、將系統(tǒng)環(huán)境變量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設(shè)置為 true