Apache?Log4j2?遠(yuǎn)程代碼執(zhí)行漏洞分析+檢測+防護(hù)(最新推薦)
分析:
Apache Log4j2是一款開源的Java日志框架,被廣泛地應(yīng)用在中間件、開發(fā)框架與Web應(yīng)用中,用來記錄日志信息。由于Apache Log4j2某些功能存在遞歸解析功能,未經(jīng)身份驗證的攻擊者通過發(fā)送特別構(gòu)造的數(shù)據(jù)請求包,可在目標(biāo)服務(wù)器上執(zhí)行任意代碼。漏洞PoC已在網(wǎng)上公開,默認(rèn)配置即可進(jìn)行利用,該漏洞影響范圍極廣,建議相關(guān)用戶盡快采取措施進(jìn)行排查與防護(hù)。
根據(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
防護(hù):
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ù)后再進(jìn)行升級。
升級供應(yīng)鏈中已知受影響的應(yīng)用及組件:Apache Solr、Apache Flink、Apache Druid、srping-boot-strater-log4j2
2、流量攔截 rulel $(jndi:ldap://rule2 $(jndi:rmi://
以上流量特征可能出現(xiàn)在流量中的任何地方,也包括各種類型的請求(GET、POST等),所以需要對 整個請求流量做特征匹配。
以上正則對業(yè)務(wù)中的正常jndi流量無影響(惡意流量須包含${jndi:rmi或${jndi:ldap,正常 業(yè)務(wù)jndi流量通常只包含rmi://、 ldap:// ),但是如果你的正常流量也包含上述特征請慎用。
3、臨時防護(hù)
從官方給的信息和復(fù)現(xiàn)情況來看,利用手段是jndi注入無疑,jndi注入無非ldap、rmi,需要外連請 求Idap-server/exp-server,禁止外連能在一定程度上緩解,但是不能防御攻擊者已控其他內(nèi)部服務(wù) 器的情況。此外,JDK11.0.1、8u191、7u201、6u211或者更高版本默認(rèn)是無法利用JNDI注入,JDK6u141、7u131、8u121或者更高版本無法利用RMI注入,網(wǎng) 上的一些bypas s方法也是依賴本地特定的lib(相當(dāng)于找了新的gadgets),所以總結(jié):
1、禁止使用Iog4j的服務(wù)器外連(日志服務(wù)器正常不需要外連)
并在邊界對dnslog相關(guān)域名訪問進(jìn)行檢測。
部分公共dnslog平臺如下:
ceye.io
dnslog.link
dnslog.cn
dnslog.io
tu4.org
awvsscan119.autoverify.cn
burpcollaborator.net
s0x.cn
2、建議JDK使用高版本
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
到此這篇關(guān)于Apache Log4j2 遠(yuǎn)程代碼執(zhí)行漏洞分析+檢測+防護(hù)的文章就介紹到這了,更多相關(guān)Apache Log4j2 遠(yuǎn)程代碼執(zhí)行漏洞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux自動化構(gòu)建工具make和Makefile詳解
這篇文章主要介紹了Linux如何自動化構(gòu)建工具make和makefile,文章中有詳細(xì)的圖片示例,對學(xué)習(xí)有一定的參考價值,感興趣的小伙伴可以參考一下2023-04-04CentOS7 重新分配分區(qū)大小的實現(xiàn)方法
這篇文章主要介紹了CentOS7 重新分配分區(qū)大小的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11詳解CentOS 6.4下PXE+Kickstart無人值守安裝操作系統(tǒng)
這篇文章主要介紹了詳解CentOS 6.4下PXE+Kickstart無人值守安裝操作系統(tǒng) ,PXE(Pre-boot Execution Environment,預(yù)啟動執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù),有興趣的可以了解一下。2016-12-12Linux解決RocketMQ中NameServer啟動問題的方法詳解
這篇文章主要為大家詳細(xì)介紹了Linux解決RocketMQ中NameServer啟動問題的方法,文中通過圖片和示例代碼進(jìn)行了詳細(xì)講解,需要的小伙伴可以參考下2023-08-08