研究人員披露微軟Azure Service Fabric服務(wù)一項(xiàng)漏洞,最嚴(yán)重可導(dǎo)致Azure集群執(zhí)行程序甚至接管集群。
這項(xiàng)漏洞微軟已在6月修補(bǔ),發(fā)現(xiàn)該漏洞的安全廠商Palo Alto Unit 24研究團(tuán)隊(duì)于本周才說(shuō)明細(xì)節(jié)。
這個(gè)漏洞影響微軟微服務(wù)應(yīng)用平臺(tái)Azure Service Fabric。Service Fabric上,Azure云計(jì)算上的應(yīng)用可切分成許多微服務(wù),以便在不動(dòng)到底層架構(gòu)情況下獨(dú)立更新、維護(hù)。微軟表示,Service Fabric已托管超過(guò)100萬(wàn)個(gè)應(yīng)用程序,每日?qǐng)?zhí)行核心數(shù)百萬(wàn)。它也是Azure許多服務(wù)的底層,包括Azure Service Fabric、Azure SQL Database和Azure CosmosDB,以及Cortana及Power BI等其他微軟服務(wù)。
微軟6月修補(bǔ)編號(hào)CVE-2022-30137的漏洞時(shí),僅描述它是容器權(quán)限擴(kuò)張漏洞,列為中度風(fēng)險(xiǎn)漏洞。
Service Fabric是以容器執(zhí)行應(yīng)用程序,在每次啟動(dòng)容器時(shí),Service Fabric會(huì)在每個(gè)容器內(nèi)創(chuàng)建具有讀寫(xiě)權(quán)限的新log目錄。所有l(wèi)og目錄又以Service Fabric的資料搜集代理程序(DCA)集結(jié)以便稍后執(zhí)行。為了訪問(wèn)所有目錄,DCA具有在所有節(jié)點(diǎn)以根權(quán)限執(zhí)行的特權(quán),但另一方面DCA處理的文件又可為容器修改,因此只要能修改這些文件,即可造成容器逃逸,并取得該節(jié)點(diǎn)的根執(zhí)行權(quán)限。
漏洞就出在DCA里一個(gè)讀取文件、檢查內(nèi)容格式及修改、復(fù)寫(xiě)文件內(nèi)容的函數(shù)(GetIndex)。該函數(shù)又使用2個(gè)子函數(shù)負(fù)責(zé)讀?。↙oadFromFile)及修改文件(SaveToFile)的行為。研究人員指出,這里產(chǎn)生了符號(hào)連接競(jìng)爭(zhēng)(symlink race),讓進(jìn)駐容器內(nèi)的攻擊者先加載惡意文件(或不知情的用戶執(zhí)行文件),在DCA讀取及復(fù)寫(xiě)處理下,利用DCA根權(quán)限,以惡意文件復(fù)寫(xiě)掉節(jié)點(diǎn)文件系統(tǒng)中的文件。結(jié)果是用戶在節(jié)點(diǎn)內(nèi)執(zhí)行惡意程序,或是攻擊者接管容器甚至集群。
不過(guò)研究人員指出,雖然這類行為可在Linux及Windows容器內(nèi)觀察,但開(kāi)采漏洞僅能在Linux容器內(nèi)實(shí)現(xiàn),因?yàn)閃indows容器內(nèi),沒(méi)有授權(quán)的攻擊者無(wú)法創(chuàng)建符號(hào)連接。
微軟已針對(duì)Linux版本Azure Service Fabric發(fā)布更新。研究人員并未發(fā)現(xiàn)有任何成功開(kāi)采漏洞的情形,微軟建議未啟動(dòng)自動(dòng)更新的客戶應(yīng)升級(jí)Linux集群到最新版Service Fabric。微軟及安全廠商也呼吁用戶,不要執(zhí)行未獲信任的應(yīng)用程序。