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