Tenable Research objevil v Google Cloud Platform (GCP) chybu zabezpečení týkající se eskalace oprávnění, která je nyní opravena a kterou jsme nazvali ConfusedComposer. Tato chyba zabezpečení mohla umožnit identitě s oprávněním (composer.environments.update) upravovat prostředí Cloud Composer za účelem eskalace oprávnění na výchozí účet služby Cloud Build. Výchozí účet služby Cloud Build zahrnuje oprávnění k samotné Cloud Build a také ke Cloud Storage, Artifact Registry a dalším.
Co je Cloud Composer a Cloud Build?
- Cloud Composer je plně spravovaná služba organizace workflow v GCP založená na Apache Airflow, která se používá pro plánování a automatizaci datových kanálů.
- Cloud Build je plně spravovaná služba kontinuální integrace a doručování (CI/CD) v GCP, která vytváří, testuje a nasazuje aplikace a kontejnery ve velkém měřítku.
- Cloud Composer používá Cloud Build k vytváření balíčků a to je přesně místo, kde útočníci mohli tento proces zneužít k eskalaci oprávnění.
Podrobnosti o zranitelnosti ConfusedComposer
Cloud Composer umožňuje uživatelům instalovat vlastní balíčky PyPI do jejich prostředí. Tato funkce však přinesla chybu zabezpečení týkající se eskalace oprávnění kvůli tomu, jak Composer spolupracuje s Cloud Build. Když uživatel určí vlastní balíček PyPI, Composer zahájí proces sestavení v zákulisí a účet služby Cloud Composer automaticky zřídí instanci Cloud Build v projektu uživatele. Tato instance je připojena k výchozímu účtu služby Cloud Build, což je vysoce privilegovaná identita s širokými oprávněními ke službám GCP včetně samotné Cloud Build a také ke Cloud Storage, Artifact Registry nebo Container Registry a dalším. (Kliknutím sem získáte další informace o výchozích oprávněních účtu služby Cloud Build).
Útočník s oprávněním creator.environments.update mohl zneužít proces orchestrace služby Cloud Composer k eskalaci oprávnění. Útok by byl proveden vložením škodlivého balíčku PyPI kontrolovaného útočníkem do konfigurace vlastního balíčku Composer oběti:
Když Cloud Build nainstaluje tento balíček ve snaze vytvořit prostředí, použije Pip.
Ale jak by se dal spustit vzdálený kód přidáním balíčku do služby Composer? Ukázalo se, že Pip automaticky spouští instalační skripty před a po sbalení. To by útočníkovi umožnilo spustit libovolný kód v korelovaném prostředí Cloud Build pomocí instalačních skriptů uvnitř jejich škodlivého balíčku, a to i přes nedostatek přímé kontroly nad základním servisním účtem Composer.
K eskalace oprávnění by došlo, když útočník vložil kód, který přistupoval k rozhraní API metadat Cloud Build. Protože instance sestavení běží s výchozím účtem služby Cloud Build, útočník mohl extrahovat a exfiltrovat její token. S tímto tokenem by útočník získal kontrolu nad účtem privilegované služby, což by umožnilo další eskalaci v rámci projektu GCP oběti. Tento útok byl obzvláště nebezpečný, protože útočník nepotřeboval přímý přístup k servisnímu účtu skladatele nebo k servisnímu účtu Cloud Build – pouze možnost aktualizovat prostředí skladatele. Pouhým přidáním balíčku PyPI do Composeru mohli manipulovat s důvěryhodným automatizačním kanálem a eskalovat oprávnění nad jejich původní úroveň přístupu. Abychom objasnili dopad nyní opravené chyby zabezpečení: získání plného vlastnictví projektu z výchozího účtu služby Cloud Build bylo na dosah.
Oprava zranitelnosti a další kroky provedené GCP ke zvýšení celkového zabezpečení
Dříve, během aktualizačních operací k provádění instalací modulu PyPI, Composer používal účet služby Cloud Build, který mohl mít širší oprávnění než uživatel provádějící operaci. Po implementaci opravy přestal Composer používat účet služby Cloud Build a místo toho bude k provádění instalací modulů PyPI používat účet služby prostředí Composer.
Oprava již byla zavedena do nových instancí aplikace Composer (poznámky k rel.) a stávající instance by měly být aktualizovány, aby vykazovaly toto chování do dubna 2025 (poznámky k rel.).
Zjištění navíc vedla GCP k aktualizaci částí dokumentace Composeru, jako jsou sekce: Řízení přístupu, Instalace závislostí Pythonu a Přístup k rozhraní CLI toku vzduchu.
Nová třída útoků: Sleduje zranitelnost ConfusedFunction
Zranitelnost ConfusedComposer týkající se eskalace privilegií v GCP staví na širší třídě útoků zranitelností v cloudových službách, které nazýváme „Jenga®“. Tento vektor útoku je variantou ConfusedFunction, další zranitelnosti v oblasti eskalace oprávnění GCP, kterou jsme objevili minulý rok, a využívá poněkud skryté nesprávné konfigurace poskytovatele cloudu související s oprávněními cloudových služeb k eskalaci oprávnění nad zamýšlené úrovně přístupu. Tato varianta zdůrazňuje, jak mohou útočníci zneužívat propojené služby, které poskytovatel cloudu automaticky nasazuje v zákulisí jako součást procesu organizace služeb.
(JENGA® je registrovaná ochranná známka společnosti Pokonobe Associates.)
Pro více informací nás neváhejte kontaktovat.
Zdroj: Tenable


