《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 解決方案 > 派拓網(wǎng)絡(luò)Unit 42:AWS多個(gè)Log4Shell熱補(bǔ)丁可導(dǎo)致容器逃逸和權(quán)限提升

派拓網(wǎng)絡(luò)Unit 42:AWS多個(gè)Log4Shell熱補(bǔ)丁可導(dǎo)致容器逃逸和權(quán)限提升

2022-05-05
來(lái)源:派拓網(wǎng)絡(luò)

隨著Log4Shell漏洞威脅愈演愈烈,為了幫助用戶應(yīng)對(duì)該問(wèn)題,AWS發(fā)布了三個(gè)熱補(bǔ)丁解決方案以監(jiān)測(cè)存在漏洞的Java應(yīng)用程序和容器,并在運(yùn)行中安裝補(bǔ)丁。每個(gè)解決方案適用于不同的環(huán)境,涵蓋獨(dú)立服務(wù)器、Kubernetes集群、Elastic Container Service(ECS)集群和Fargate。熱補(bǔ)丁是一種向存在漏洞并且正在運(yùn)行的應(yīng)用程序注入修復(fù)程序的進(jìn)程,可以作為在部署應(yīng)用程序最新修復(fù)版本前的短期解決方案。它們并非AWS環(huán)境所獨(dú)有,而是可以安裝在任何云或本地環(huán)境中。

然而,Palo Alto Networks(派拓網(wǎng)絡(luò))威脅情報(bào)團(tuán)隊(duì)Unit 42的研究人員發(fā)現(xiàn)這些補(bǔ)丁解決方案存在嚴(yán)重的安全問(wèn)題,并隨后與AWS合作對(duì)其進(jìn)行修復(fù)。在為服務(wù)器或集群安裝補(bǔ)丁服務(wù)后,該環(huán)境中的每個(gè)容器都可以利用其接管其底層主機(jī)。在裝有熱補(bǔ)丁服務(wù)或熱補(bǔ)丁Daemonset的主機(jī)上,現(xiàn)有容器也可以逃逸。例如,如果給一個(gè)Kubernetes集群安裝熱補(bǔ)丁,那么集群中的每個(gè)容器都可以逃逸,直到禁用該熱補(bǔ)丁或升級(jí)至修復(fù)后的版本為止。除了容器,無(wú)權(quán)限的進(jìn)程也可以利用該補(bǔ)丁來(lái)提升特權(quán),獲得根代碼執(zhí)行。

無(wú)論容器是否運(yùn)行Java應(yīng)用程序,或其底層主機(jī)是否運(yùn)行Bottlerocket(AWS為運(yùn)行容器而構(gòu)建的Linux發(fā)行版),容器都可以逃逸。使用用戶命名空間或以非root用戶身份運(yùn)行的容器也會(huì)受到影響。Unit 42指定CVE-2021-3100、CVE-2021-3101、CVE-2022-0070和CVE-2022-0071來(lái)追蹤這些漏洞。

 

惡意“java”——欺騙熱補(bǔ)丁的罪魁禍?zhǔn)?/strong>

AWS的熱補(bǔ)丁解決方案會(huì)持續(xù)搜索Java進(jìn)程,并在運(yùn)行中針對(duì)Log4Shell安裝補(bǔ)丁。無(wú)論是在容器內(nèi)部還是外部,任何運(yùn)行名為“java”的二進(jìn)制文件的進(jìn)程都被認(rèn)為是熱補(bǔ)丁的候選對(duì)象。

為了修補(bǔ)容器內(nèi)的Java進(jìn)程,熱補(bǔ)丁解決方案會(huì)調(diào)用特定的容器二進(jìn)制文件。例如,它們會(huì)運(yùn)行容器的“java”二進(jìn)制文件兩次:一次是檢索Java版本,另一次是注入熱補(bǔ)丁。問(wèn)題在于它們調(diào)用了容器二進(jìn)制文件,卻沒(méi)有正確地將它們?nèi)萜骰?,即未?duì)運(yùn)行的新進(jìn)程施加適用于容器進(jìn)程的限制。

例如,通過(guò)nsenter命令在容器命名空間中調(diào)用“java”二進(jìn)制文件(不包括用戶命名空間)。但除此之外,它是由所有Linux功能衍生的,沒(méi)有通常限制容器的隔離技術(shù),比如seccomp和cgroups。它還以根用戶的身份運(yùn)行,不受容器用戶的影響。

因此,一個(gè)惡意容器可能包含一個(gè)名為“java”的惡意二進(jìn)制文件。該文件可以欺騙熱補(bǔ)丁解決方案并以較高的權(quán)限調(diào)用它。然后,惡意“java”進(jìn)程就能濫用權(quán)限逃離容器并接管底層主機(jī)。目前,修復(fù)后的熱補(bǔ)丁解決方案可以在容器二進(jìn)制文件運(yùn)行之前先將它們?nèi)萜骰?/p>

除了容器,熱補(bǔ)丁服務(wù)也以類似的方式修復(fù)主機(jī)進(jìn)程。沒(méi)有權(quán)限的惡意進(jìn)程可以通過(guò)創(chuàng)建并運(yùn)行一個(gè)名為“java”的惡意二進(jìn)制文件,欺騙熱補(bǔ)丁服務(wù)并以高權(quán)限執(zhí)行它?,F(xiàn)在,修復(fù)后的熱補(bǔ)丁服務(wù)產(chǎn)生的“java”二進(jìn)制文件與修復(fù)后的Java進(jìn)程權(quán)限相同。

 

Log4Shell影響深遠(yuǎn),不容小覷

鑒于Log4Shell漏洞的危害迫在眉睫,多數(shù)用戶已經(jīng)大規(guī)模部署了熱補(bǔ)丁,不經(jīng)意間將容器環(huán)境置于危險(xiǎn)之中。甚至在Java應(yīng)用程序安裝了針對(duì)Log4Shell的補(bǔ)丁后,用戶仍有可能因?yàn)槿狈ψ銐虻囊瞥齽?dòng)機(jī)而繼續(xù)運(yùn)行熱補(bǔ)丁進(jìn)行深度防御。

容器通常被視作同一機(jī)器上運(yùn)行的不同應(yīng)用程序之間的安全邊界。容器逃逸使攻擊者可以將活動(dòng)擴(kuò)展到單個(gè)應(yīng)用程序之外,損害相鄰服務(wù)。以Kubernetes集群為例,單個(gè)容器逃逸有時(shí)就足以接管整個(gè)集群。無(wú)論容器配置如何,這些漏洞都可能被利用。所以即使是啟用了高級(jí)隔離技術(shù)的環(huán)境(如在用戶命名空間中或作為非root用戶運(yùn)行容器)也會(huì)受到影響。除容器之外,無(wú)權(quán)限進(jìn)程也可以利用這些漏洞提升權(quán)限并獲得對(duì)其底層服務(wù)器的完全控制。

 

運(yùn)行修復(fù)版本,杜絕容器逃逸和權(quán)限提升

Unit 42建議任何安裝了這些熱補(bǔ)丁的用戶升級(jí)到修復(fù)版本。AWS為每個(gè)熱補(bǔ)丁解決方案發(fā)布了一個(gè)修復(fù)方案。一旦主機(jī)運(yùn)行修復(fù)版本,就能徹底杜絕容器逃逸和權(quán)限提升。

在Kubernetes集群中,可以通過(guò)部署AWS提供的最新Daemonset來(lái)安裝修復(fù)后的熱補(bǔ)丁版本——kubernetes-log4j-cve-2021-44228-node-agent      Daemonset 1.1-16版,該版本安裝了更新后的程序包。值得注意的是,僅刪除熱補(bǔ)丁Daemonset并不能刪除節(jié)點(diǎn)中的熱補(bǔ)丁服務(wù)。

在獨(dú)立主機(jī)上,可以通過(guò)運(yùn)行      log4j-cve-2021-44228-hotpatch程序包1.1-16版進(jìn)行升級(jí),該版本捆綁了熱補(bǔ)丁服務(wù)。

Hotdog用戶需要升級(jí)到最新版本——Hotdog 1.02版。這是一個(gè)基于開(kāi)放容器倡議(OCI)hook的Bottlerocket主機(jī)的熱補(bǔ)丁解決方案。

另外,如果確認(rèn)環(huán)境已經(jīng)安裝了針對(duì)Log4Shell的補(bǔ)丁,可以通過(guò)運(yùn)行sudo touch /etc/log4j-cve-2021-44228-hotpatch.kill來(lái)禁用主機(jī)上的熱補(bǔ)丁服務(wù)。若要禁用Hotdog,可以運(yùn)行apiclient set oci-hooks.log4j-hotpatch-enabled=false。

Prisma Cloud用戶可以在漏洞選項(xiàng)卡下識(shí)別受影響的主機(jī)。平臺(tái)會(huì)檢測(cè)熱補(bǔ)丁程序包,并對(duì)運(yùn)行漏洞版本的虛擬機(jī)發(fā)出警報(bào)。如要搜索這些漏洞,可以使用相關(guān)的Amazon Linux Security Advisories(ALAS)ID:ALAS-2021-1554、ALAS-2021-1732、ALAS-2022-1580和ALAS-2022-1773。


proxy1.png

圖1 Prisma Cloud檢測(cè)到有漏洞的log4j-cve-2021-44228-hotpatch版本并發(fā)出警報(bào)

派拓網(wǎng)絡(luò)的Prisma Cloud、Cortex XDR和下一代防火墻(NGFW)可以檢測(cè)到后續(xù)的攻擊行為并破壞命令和控制通信。

 

提高警惕,與容器安全交互

CVE-2021-3100、CVE-2021-3101、CVE-2022-0070和CVE-2022-0071增加了大量容器逃逸漏洞。這些漏洞源自主機(jī)進(jìn)程與運(yùn)行容器的直接交互。在有惡意容器的情況下,即使像復(fù)制文件或生成一個(gè)新的容器化進(jìn)程這樣簡(jiǎn)單的任務(wù),都可能產(chǎn)生意想不到的后果。

如果用戶正在圍繞容器構(gòu)建軟件,那么當(dāng)涉及容器進(jìn)程或文件系統(tǒng)操作時(shí),需要遵循runc等成熟的容器運(yùn)行時(shí)。雖然容器運(yùn)行時(shí)自身也存在漏洞,但它們?nèi)允瞧駷橹菇?jīng)歷過(guò)最多審查且最成熟的容器安全交互程序。

 

結(jié)語(yǔ)

隨著Log4Shell漏洞的威脅日趨嚴(yán)峻,對(duì)用戶而言最好的辦法是盡快升級(jí)到修復(fù)后的熱補(bǔ)丁版本。相比之下,多租戶容器環(huán)境和運(yùn)行不可信鏡像的集群面臨的風(fēng)險(xiǎn)更大。

如果用戶正在安裝針對(duì)Log4Shell的補(bǔ)丁,可以優(yōu)先完成這項(xiàng)任務(wù)。盡管目前出現(xiàn)的問(wèn)題可能導(dǎo)致針對(duì)容器環(huán)境的嚴(yán)重攻擊,但作為有史以來(lái)威脅最大的漏洞之一,Log4Shell仍被頻繁利用。

值得慶幸的是,AWS的熱補(bǔ)丁幫助社區(qū)阻止了無(wú)數(shù)攻擊。隨著這些漏洞的修復(fù),現(xiàn)在已經(jīng)可以在保證容器環(huán)境安全性的前提下,通過(guò)熱補(bǔ)丁來(lái)應(yīng)對(duì)Log4Shell漏洞。

AETweidian.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。