12 únor 2024 / 14 minut čtení
Zranitelnost:
V našem komplexním hodnocení zabezpečení jsme identifikovali kritickou zranitelnost, na kterou by si měl dát pozor každý vývojář: možnost nasadit škodlivý kód přímo do produkčního prostředí. Nejedná se pouze o hypotetické úvahy, protože jsme byli při nasazení úspěšní.
Podrobnosti:
Nesprávně nakonfigurovaný pracovní postup nasazení: (Continuous Integration/Continuous Deployment). Tento klíčový proces postrádal ochranná opatření nezbytná k zajištění toho, aby každý nasazený kus kódu byl důkladně zkontrolován a schválen. Absence těchto ochranných opatření dává útočníkům velkou moc a příležitost k útoku. Zneužívání zranitelností:
Zneužitím zranitelností CI/CD se nám podařilo do produkčního prostředí nasadit webshell NodeJS - typ škodlivého kódu, který útočníkovi poskytuje vzdálené rozhraní příkazového řádku k webovému serveru. Nejednalo se o běžné produkční prostředí, ale o prostředí umístěné v rámci clusteru OCP4 (OpenShift Container Platform 4), který je typický svými robustními bezpečnostními funkcemi.
Proč se to stalo?
K této zranitelnosti přispělo několik faktorů:
Jak zmírnit následky:
Chcete-li tuto bezpečnostní díru odstranit, doporučujeme provést následující kroky:
Tento incident poukazuje na nutnost ostražitosti a přísných bezpečnostních protokolů v dnešním digitálním prostředí. Je to výzva pro organizace, aby přezkoumaly a posílily své strategie kybernetické bezpečnosti.
GitHub je titánem v oblasti správy zdrojových kódů, který spravuje miliony úložišť kódu. Je však velmi důležité vědět, jak data v úložištích ukládat. Nedávný bezpečnostní audit/test upozornil na významnou bezpečnostní chybu: chybějící správně nakonfigurované tajné skenování. Toto nedopatření poukazuje na důležitost dodržování osvědčených postupů při správě úložišť, aby byla zajištěna integrita a bezpečnost dat.
Zranitelnost:
Naše posouzení zabezpečení odhalilo, že tajné skenování, automatická funkce služby GitHub (https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning) určená k odhalování citlivých informací, jako jsou hesla a soukromé klíče, nebylo povoleno. Kromě toho nebyla zavedena žádná ochrana nebo detekce, která by zabránila ukládání citlivých údajů do úložišť, takže úložiště organizací byla zranitelná vůči náhodnému vyzrazení citlivých údajů.
Podrobnosti:
Možné dopady:
Proč se to stalo?
Nedostatečná konfigurace skenování citlivých dat může být důsledkem:
Jak zmírnit následky:
Ke zmírnění této zranitelnosti by měla být okamžitě přijata následující opatření:
Je nutné si uvědomit, že zabezpečení úložišť kódu je stejně důležité jako zabezpečení infrastruktury, na které jsou nasazena.
Nedávno se nám podařilo zneužít funkci GitHub Actions Branch Protection Rules, která je klíčová pro zachování integrity kódu ve více vývojových prostředích, pomocí známého řešení.
Zranitelnost:
Tato zranitelnost se v podstatě týká neoprávněného obejití mechanismů ochrany větví služby Github. Pravidla ochrany větví mají zásadní význam pro zajištění toho, aby změny v důležitých větvích vyžadovaly řádnou kontrolu a schválení. Známé řešení, které jsme v systému GitHub použili, umožňuje zneužít funkci GitHub Actions k obejití procesu povinného přezkoumání. Toto porušení umožňuje neoprávněné vložení nepřezkoumaného kódu do zabezpečené větve. Taková mezera může vést k neúmyslnému použití škodlivého kódu jinými uživateli nebo k jeho neúmyslnému začlenění do produkčního prostředí.
Podrobnosti:
Mechanismus obcházení: Proces zneužití zahrnoval využití oprávnění Github Actions. Využitím oprávnění k zápisu na koncovém bodě API žádosti o stažení jsme byli schopni vytvořit žádost o stažení a začlenit škodlivý kód do chráněné větve. Ačkoli takový požadavek na stažení obvykle nelze sloučit bez schválení, bot Github Actions spojený s GITHUB_TOKEN jej mohl schválit. Vzhledem k tomu, že bot není členem organizace, ale přesto je používán pro účely schvalování, umožňuje útočníkovi požadavek na stažení nezávisle schválit, čímž účinně obejde ochranné mechanismy větve. Tato skutečnost umožňuje neoprávněné vložení neschváleného kódu do zabezpečené větve. Taková mezera nás vede k neoprávněnému zařazení kódu do produkčního prostředí.
Rizika a hrozby:
Proč se to stalo?
Tento problém vznikl kvůli mezeře v nastavení Githubu, která umožňovala akcím GitHubu schvalovat žádosti o stažení, což bylo ve stávajících organizacích nebezpečné. Jak zmírnit následky:
K řešení tohoto významného rizika jsou navržena následující řešení:
Tato zranitelnost zdůrazňuje zásadní význam neustálé ostražitosti a pravidelných aktualizací bezpečnostních konfigurací ve všech aspektech vývojových operací. Zavedením doporučených změn mohou organizace ochránit svůj kód před takovými zneužitími a posílit důvěru v procesy nasazení.
Integrita každého vývojového prostředí závisí na bezpečném a kontrolovaném přístupu k jeho artefaktům. Při nedávném posouzení zabezpečení, které jsme provedli, se nám podařilo zneužít díru ve službě Artifactory k přihlášení bez výslovných oprávnění.
Zranitelnost:
Služba Artifactory umožňuje přihlášení libovolnému uživateli domény bez nutnosti explicitního oprávnění. Po přihlášení může uživatel prohlížet a stahovat artefakty a kontrolovat zprávy o zranitelnostech z prověřování Xray týkající se úložišť.
Podrobnosti:
Příliš permisivní řízení přístupu: výchozí konfigurace umožňovala přístup ke službě Artifactory každému uživateli v doméně. Tato konfigurace opomíjí princip nejmenších oprávnění, který je pro zabezpečení citlivých dat zásadní.
Tímto způsobem je každému uživateli domény zpřístupněno mnoho citlivých informací. Schopnost určit, které aplikace obsahují kritické zranitelnosti, mohou využít hackeři typu black hat ke zneužití těchto zranitelností. Kromě toho mohou artefakty obsahovat citlivé údaje, protože neexistuje předepsané skenování těchto údajů.
Rizika a důsledky:
Proč se to stalo?
Důvody této chybné konfigurace mohou být následující:
Jak zmírnit následky:
Řešení této zranitelnosti zahrnuje strategickou revizi přístupových oprávnění:
Riziko odhalení dat ve službě Artifactory je jasnou připomínkou toho, že i ty nejdůvěryhodnější služby v rámci vývojového prostředí organizace je třeba pečlivě prověřit z hlediska bezpečnostních nedostatků. Rozhodnými kroky k opravě těchto chybných nastavení mohou organizace posílit svou obranu proti vnějším i vnitřním hrozbám.
Agilita a škálovatelnost, které prostředí poskytují, mohou také představovat významné bezpečnostní riziko, pokud nejsou správně řízeny. Nedávné hodnocení osvětlilo závažnou chybu v konfiguraci clusteru OpenShift a upozornilo na zranitelnost, která může mít vážné důsledky pro bezpečnost sítě.
Zranitelnost:
Jde o chybu konfigurace populární platformy OpenShift. Tato konfigurační chyba umožňovala, aby pody (nejmenší nasaditelné výpočetní jednotky, které lze v OpenShift vytvářet a spravovat) měly možnost dosáhnout na IP adresu hostitelského počítače, a dokonce na celou podsíť hostitele. Laicky řečeno, pokud byl pod kompromitován, útočník měl neomezený přístup k potenciálně citlivým interním síťovým zdrojům.
Podrobnosti:
Široká viditelnost sítě: To znamená, že nasazený pod v systému OpenShift může vidět a potenciálně komunikovat s velkým počtem interních systémů. Tento přístup se podobá tomu, jako kdybyste někomu dali klíče od království a mohli je zneužít s ničivým účinkem.
Rizika a důsledky:
Proč se to stalo?
Hlavní příčinou této chybné konfigurace může být:
Jak zmírnit následky:
Aby organizace napravily toto nebezpečné nedopatření, měly by přijmout následující opatření:
Případ chybné konfigurace systému OpenShift slouží jako varovný příběh o zásadní potřebě důsledných postupů zabezpečení sítě v kontejnerových prostředích. Při pečlivé správě a neustálé ostražitosti mohou organizace své sítě před takovými zranitelnostmi ochránit.
Zranitelnost:
Nedávné posouzení zabezpečení upozornilo na zjevný problém v konfiguraci úložiště GitHub, kde byl zdrojový kód aplikace uložen v rámci organizace GitHub, což otevíralo dveře zranitelnosti, která mohla vést k neoprávněnému a potenciálně škodlivému nasazení.
Podrobnosti:
Jádro tohoto problému spočívá v permisivitě výchozích konfigurací úložiště a v absenci přísných mechanismů řízení toku. Protože neexistují žádná pravidla ochrany větví, žádná prostředí zásad a žádná citlivá data, umožňuje tato situace komukoli s přístupem k zápisu do úložiště provádět potenciálně škodlivé činnosti, jako je čtení jakýchkoli citlivých dat, vytváření jakýchkoli artefaktů (včetně škodlivých), odstraňování kontrol statické analýzy zdrojového kódu v pipeline a potenciální zneužití samoobslužných běhových programů.
Rizika a důsledky:
Přístup ke všem tajným údajům, které má role CI k dispozici, jako jsou citlivé údaje vložené jako proměnné prostředí nebo jiná data uložená v CI. Vzhledem k tomu, že systémy CI/CD jsou zodpovědné za generování kódu a nasazování artefaktů, obsahují obvykle desítky pověření a tokenů vysoké hodnoty - například k poskytovateli cloudu, k registrům artefaktů a k samotnému SCM.
Proč se to stalo?
Tento problém často pramení z:
Jak zmírnit následky:
Aby se zabránilo takovému neoprávněnému nasazení a zvýšilo se zabezpečení, doporučujeme provést následující kroky:
Dalším bodem bylo objasnění zranitelnosti ve způsobu správy a nasazování artefaktů. Pokud by se tento problém neřešil, mohl by připravit půdu pro významné bezpečnostní hrozby v produkčních prostředích.
Zranitelnost:
Během procesu nasazování artefaktů uložených v databázi Artifactory jsme zjistili, že artefakty, dokonce i ty s kritickými nebo vysoce zranitelnými místy, lze nasadit do produkčního prostředí bez jakéhokoli ověření před nasazením. Tato chyba v procesu ověřování ponechává produkční prostředí otevřené potenciálnímu narušení bezpečnosti.
Artifactory X-ray: node. Js webshell docker image obsahující kritickou zranitelnost. Později nasazen do produkce.
Uvědomujeme si, že zablokování všech zranitelných artefaktů by mohlo narušit proces sestavení/nasazení a mohlo by mít komerční důsledky. Nicméně tyto zranitelnosti by měly být před nasazením alespoň zkontrolovány a schváleny, aby se snížilo riziko zanesení bezpečnostních chyb do produkčního prostředí.
Dopad:
Řešení:
Ke zmírnění těchto rizik se důrazně doporučují následující opatření:
Závěr:
Naším cílem bylo obejít všechna bezpečnostní opatření a nasadit škodlivý kód do produkčního prostředí s přístupem ke konfiguraci OCP4, pokud by celá linka CI/CD s přiděleným prostorem v clusteru.
Zjistili jsme, že scénář je proveditelný pomocí řetězce chybných konfigurací a zranitelností, které jsou konkrétně popsány v následujících částech:
Nakonec se nám podařilo nasadit škodlivou aplikaci - NodeJS webshell do produkčního prostředí v rámci clusteru OCP4. Chceme tím poukázat na důležitost odpovědnosti vývojářů a na to, že kombinace malých zranitelností může vyústit v kritickou situaci, kdy může být ohrožena veškerá tvrdá práce a bezpečnost klientů.
Nejste si jisti bezpečností vaší pipeline? Otestujte to s námi.
Přihlaste se k odběru našeho newsletteru a získejte všechny důležité novinky v oblasti kybernetické bezpečnosti a etického hackování.