Stav zabezpečení prostředí DevOps

Dokončeno

S nárůstem kybernetických útoků na systémy správy zdrojového kódu a kanály kontinuální integrace/průběžného doručování je zásadní zabezpečení platforem DevOps proti nejrůznějším hrozbám identifikovaným v DevOps Threat Matrix. Takové kybernetické útoky můžou umožnit injektáž kódu, eskalaci oprávnění a exfiltraci dat, což může potenciálně vést k rozsáhlému dopadu.

Správa stavu DevOps je funkce v Programu Microsoft Defender pro cloud, která:

  • Poskytuje přehled o stavu zabezpečení celého životního cyklu dodavatelského řetězce softwaru.
  • Používá pokročilé skenery pro podrobná posouzení.
  • Pokrývá různé prostředky od organizací, kanálů a úložišť.
  • Umožňuje zákazníkům snížit prostor pro útoky tím, že odhalí a bude reagovat na poskytnutá doporučení.

Skenery DevOps

Ke zjištění používá správa stavu DevOps skenery DevOps k identifikaci slabých míst ve správě zdrojového kódu a v kanálech kontinuální integrace/průběžného doručování spuštěním kontrol konfigurace zabezpečení a řízení přístupu.

Skenery Azure DevOps a GitHubu se interně používají v Microsoftu k identifikaci rizik spojených s prostředky DevOps, což snižuje prostor pro útoky a posiluje podnikové systémy DevOps.

Jakmile je prostředí DevOps připojené, Defender for Cloud automaticky nakonfiguruje tyto skenery tak, aby prováděl opakované kontroly každých 24 hodin napříč několika prostředky DevOps, mezi které patří:

  • Buildy
  • Zabezpečené soubory
  • Skupiny proměnných
  • Připojení služeb
  • Organizace
  • Úložiště

Snížení rizik v matici hrozeb DevOps

Správa stavu DevOps pomáhá organizacím zjišťovat a opravovat škodlivé chybné konfigurace na platformě DevOps. To vede k odolnému prostředí DevOps, které je posíleno proti řadě hrozeb definovaných v matici hrozeb DevOps. Mezi primární ovládací prvky správy stavu patří:

  • Vymezený tajný přístup: Minimalizujte vystavení citlivých informací a snižte riziko neoprávněného přístupu, úniku dat a laterálních přesunů tím, že zajistíte, že každý kanál má přístup pouze k tajným kódům nezbytným pro jeho funkci.
  • Omezení spouštěčů v místním prostředí a vysokých oprávnění: zabrání neoprávněným spuštěním a potenciálním eskalacím tím, že se vyhnete spouštěčům v místním prostředí a zajistíte, aby oprávnění kanálu ve výchozím nastavení byla jen pro čtení.
  • Rozšířená ochrana větví: Zachování integrity kódu vynucením pravidel ochrany větví a zabráněním injektážem škodlivého kódu.
  • Optimalizovaná oprávnění a zabezpečená úložiště: Snižte riziko neoprávněného přístupu, úpravy sledováním minimálních základních oprávnění a povolením ochrany tajných kódů pro úložiště.

Matice hrozeb DevOps

Naším cílem pro vývoj matice hrozeb pro DevOps je vytvořit komplexní znalostní bázi, kterou můžou defenderi používat k udržení přehledu a budování obrany proti relevantním technikám útoku. Pomocí architektury MITRE ATT&CK jako základ jsme shromáždili techniky a vektory útoku přidružené k prostředím DevOps a vytvořili matici vyhrazenou pro metody útoku DevOps.

Stojí za zmínku, že taktika v této matici se musí podívat z hlediska DevOps. Například techniky spouštění ve virtuálním počítači s operačním systémem Windows nebo Linux se liší od spouštění v kanálu DevOps. V případě Linuxu znamená spuštění kódu v operačním systému. Když mluvíme o prostředích DevOps, znamená to spuštění kódu v prostředcích kanálu nebo DevOps. Kromě použití této matice hrozeb ke kategorizaci útoků a odpovídajících metod ochrany můžou Defendery spolupracovat s červenými týmy, aby nepřetržitě testovali předpoklady a našli nové potenciální techniky útoku.

Definice MITRE ATT&CK

Matice MITRE ATT&CK je veřejně přístupná znalostní báze pro pochopení různých taktik a technik používaných útočníky během kybernetického útoku.

Znalostní báze je uspořádaná do několika kategorií: pre-attack, initial access, execution, persistence, privilege escalation, defense únik, credential access, discovery, lateral movement, collection, exfiltration, and command and control.

Taktika (T) představuje "důvod" techniky ATT&CK nebo dílčí techniky. Jedná se o taktický cíl nežádoucího člověka: důvod provedení akce. Nežádoucí osoba může například chtít dosáhnout přístupu k přihlašovacím údajům.

Techniky (T) představují způsob, jakým nežádoucí osoba dosahuje taktického cíle provedením akce. Nežádoucí osoba může například výpisem přihlašovacích údajů dosáhnout přístupu k přihlašovacím údajům.

Běžné znalosti (CK) v ATT&CK jsou zkratkou pro běžné znalosti, v podstatě zdokumentované modus operandi taktiky a technik prováděných nežádoucími osobami.

Počáteční přístup

Taktika počátečního přístupu odkazuje na techniky, které útočník může použít k získání přístupu k prostředkům DevOps – úložištím, kanálům a závislostem. Následující techniky mohou být předpokladem pro další kroky:

Ověřování správy zdrojového kódu (SCM) – Přístup pomocí metody ověřování pro správu zdrojového kódu organizace. Může se jednat o osobní přístupový token (PAT), klíč SSH nebo jakékoli jiné povolené přihlašovací údaje pro ověřování. Příkladem metody, kterou útočník může použít k dosažení této techniky, je použití útoku phishing proti organizaci.

Ověřování služby kontinuální integrace (CI) a průběžného doručování (CD) – podobně jako ověřování SCM může útočník využít ověřování ke službě CI/CD, aby mohl napadnout DevOps organizace.

Veřejná úložiště organizace – přístup k veřejným úložištím organizace, která jsou nakonfigurovaná s možnostmi CI/CD. V závislosti na konfiguraci organizace můžou tato úložiště po vytvoření žádosti o přijetí změn aktivovat spuštění kanálu.

Ohrožení koncového bodu – Pomocí existujícího ohrožení zabezpečení může útočník využít ohroženou pracovní stanici vývojáře, čímž získá přístup k SCM, registru nebo jinému prostředku organizace, ke které má vývojář přístup.

Nakonfigurované webhooky – Pokud má organizace nakonfigurovaný webhook, útočník ho může použít jako počáteční metodu přístupu do sítě organizace pomocí samotného SCM k aktivaci požadavků v této síti. To by mohlo útočníkovi udělit přístup ke službám, které nejsou veřejně vystavené nebo které používají staré a zranitelné verze softwaru v privátní síti.

Provádění

Taktika provádění odkazuje na techniky, které může nežádoucí osoba se zlými úmysly použít k získání přístupu ke spuštění u prostředků kanálu – samotného kanálu nebo prostředků nasazení. Některé techniky v této části obsahují vysvětlení různých způsobů jejich provedení nebo volání dílčích technik:

Otrávené spuštění kanálu (PPE) – odkazuje na techniku, kdy útočník může vložit kód do úložiště organizace, což vede ke spuštění kódu v systému CI/CD úložiště. Pro provádění kódu existují různé dílčí techniky:

  • Direct PPE (d-PPE) – případy, kdy útočník může přímo upravit konfigurační soubor uvnitř úložiště. Vzhledem k tomu, že kanál aktivuje nová žádost o přijetí změn a spustí se podle konfiguračního souboru – útočník může do konfiguračního souboru vložit škodlivé příkazy a tyto příkazy se spustí v kanálu.
  • Nepřímý OOP (i-OOP) – případy, kdy útočník nemůže přímo změnit konfigurační soubory nebo že tyto změny se při aktivaci nezohlední. V těchto případech může útočník nakazit skripty používané kanálem, aby mohl spustit kód, například make-files, testovací skripty, skripty sestavení atd.
  • Veřejný OOP – případy, kdy je kanál aktivován opensourcovým projektem. V těchto případech může útočník použít d-OOP nebo i-OOP ve veřejném úložišti, aby mohl kanál nakazit.

Manipulace s závislostmi – odkazuje na techniku, kdy útočník může spustit kód v prostředí DevOps nebo produkčním prostředí vložením škodlivého kódu do závislostí úložiště. Proto se při stažení závislosti spustí škodlivý kód. Mezi dílčí techniky, které je možné použít k dosažení provádění kódu, patří:

  • Záměna veřejných závislostí – technika, kdy nežádoucí osoba publikuje veřejné škodlivé balíčky se stejným názvem jako soukromé balíčky. V tomto případě, protože vyhledávání balíčků v mechanismech řízení balíčků obvykle vypadá jako první ve veřejných registrech, stáhne se škodlivý balíček.
  • Veřejný balíček únos ("repo-jacking") – únos veřejného balíčku převzetím kontroly nad účtem správce, například zneužitím funkce přejmenování uživatele GitHubu.
  • Překlepování – Publikování škodlivých balíčků s podobnými názvy známých veřejných balíčků Útočník tak může zmást uživatele, aby si místo požadovaného balíčku stáhl škodlivý balíček.

Ohrožení zabezpečení prostředků DevOps – Kanály jsou v jádru sadou výpočetních prostředků, které provádějí agenty CI/CD spolu s jiným softwarem. Útočník může tyto prostředky zacílit zneužitím chyby zabezpečení v operačním systému, kódu agenta, jiného softwaru nainstalovaného ve virtuálních počítačích nebo jiných zařízeních v síti, aby získal přístup ke kanálu.

Řízení společného registru – Útočník může získat kontrolu nad registrem používaným organizací, což vede ke škodlivým imagím nebo balíčkům spuštěným virtuálními počítači kanálu nebo produkčními virtuálními počítači.

Uchování

Taktika trvalosti se skládá z různých technik, které útočník může použít k zachování přístupu k prostředí oběti:

Změny v úložišti – Nežádoucí osoba můžou použít automatické tokeny z kanálu pro přístup k úložišti a nasdílení kódu do úložiště (za předpokladu, že má automatický token dostatečná oprávnění k tomu). Díky několika dílčím technikám mohou dosáhnout trvalosti tímto způsobem:

  • Změna nebo přidání skriptů v kódu – můžeme změnit některé inicializační skripty nebo přidat nové skripty, aby si stáhly zadní vrátka/starter pro útočníka, takže pokaždé, když kanál tyto skripty spouští, kód útočníka se také spustí.
  • Změňte konfiguraci kanálu – před pokračováním v procesu sestavení můžeme do kanálu přidat nové kroky pro stažení skriptu řízeného útočníkem do kanálu.
  • Změňte konfiguraci umístění závislostí – a použijte balíčky řízené útočníkem.

Vložení do artefaktů – některá prostředí CI mají funkce pro vytváření artefaktů, které se mají sdílet mezi různými spuštěními kanálu. Například na GitHubu můžeme ukládat artefakty a stahovat je pomocí akce GitHubu z konfigurace kanálu.

Úprava imagí v registru – v případech, kdy mají kanály oprávnění pro přístup k registru imagí (například pro zápis imagí do registru po dokončení sestavení), by útočník mohl upravit a zasazovat škodlivé image v registru, které budou dál spouštěny kontejnery uživatele.

Vytvoření přihlašovacích údajů služby – Nežádoucí osoba se zlými úmysly může využít přístup, který už má v prostředí, a vytvořit nové přihlašovací údaje pro případ ztráty počáteční metody přístupu. Můžete to provést vytvořením přístupového tokenu pro SCM, samotné aplikace, cloudových prostředků a dalších.

Eskalace oprávnění

Techniky eskalace oprávnění používá útočník ke zvýšení oprávnění v prostředí oběti a získání vyšších oprávnění pro již ohrožené prostředky:

Tajné kódy v privátních úložištích – využití již získané metody počátečního přístupu může útočník zkontrolovat skryté tajné kódy v privátních úložištích. Pravděpodobnost nalezení skrytých tajných kódů v privátním úložišti je vyšší než ve veřejném úložišti, protože z pohledu vývojáře je to nepřístupné mimo organizaci.

Potvrzení/nasdílení změn do chráněných větví – kanál má přístup k úložišti, které může být nakonfigurováno s podmíněným přístupem, což by mohlo umožnit nasdílení kódu přímo do chráněných větví, což nežádoucímu uživateli umožňuje vložit kód přímo do důležitých větví bez zásahu týmu.

Certifikáty a identity ze služeb metadat – Jakmile útočník běží v kanálech hostovaných v cloudu, může útočník přistupovat ke službám metadat z kanálu a extrahovat certifikáty (vyžaduje vysoká oprávnění) a identity z těchto služeb.

Přístup k přihlašovacím údajům

Techniky přístupu k přihlašovacím údajům používají útočník k krádeži přihlašovacích údajů:

Přihlašovací údaje uživatele – V případech, kdy zákazník vyžaduje přístup k externím službám z kanálu CI (například externí databáze), se tyto přihlašovací údaje nacházejí v kanálu (můžou být nastaveny tajnými kódy CI, proměnnými prostředí atd.) a můžou být přístupné nežádoucímu uživateli.

Přihlašovací údaje služby – Existují případy, kdy útočník může najít přihlašovací údaje služby, jako jsou hlavní názvy služeb (SPN), tokeny sdíleného přístupového podpisu (SAS) a další, které by mohly umožnit přístup k jiným službám přímo z kanálu.

Laterální pohyb

Taktika laterálního pohybu odkazuje na techniky používané útočníky k pohybu mezi různými prostředky. V prostředíCH CI/CD se to může týkat přesunu na prostředky nasazení, sestavení artefaktů a registrů nebo nových cílů.

Ohrožení artefaktů sestavení – stejně jako v jiných útocích dodavatelského řetězce, jakmile má útočník kontrolu nad kanály CI, může kolidovat s artefakty sestavení. Tímto způsobem může být škodlivý kód vložen do stavebních materiálů před sestavením, a proto vložte škodlivé funkce do artefaktů sestavení.

Injektáž registru – Pokud je kanál nakonfigurovaný s registrem pro artefakty sestavení, útočník by mohl registr nakazit škodlivými imagemi, které se později stáhnou a spustí kontejnery pomocí tohoto registru.

Šíření do prostředků nasazení – Pokud je kanál nakonfigurovaný s přístupem k prostředkům nasazení, má útočník stejný přístup k těmto prostředkům, což útočníkovi umožní šíření. To může mít za následek spuštění kódu, exfiltraci dat a další v závislosti na oprávněních udělených kanálům.

Obrana před únikem

Techniky úniku obrany můžou útočníci použít k obejití obrany používaných v prostředí DevOps a umožnit útokům pokračovat pod radarem:

Manipulace s protokoly služeb – Protokoly služeb umožňují defenderům detekovat útoky ve svém prostředí. Útočník spuštěný v prostředí (například v kanálech buildu) může protokoly změnit, aby zabránil defenderům v pozorování útoku. To se podobá útočníkovi, který mění protokoly historie na počítači s Linuxem a brání tomu, aby každý pozorovatel viděl příkazy spuštěné útočníkem.

Manipulace s kompilací – pokud útočník chce nechat ve službě SCM žádné stopy, může útočník změnit proces kompilace, aby vklikl škodlivý kód. Můžete to udělat několika způsoby:

  • Změna kódu za běhu – změna kódu těsně před zahájením procesu sestavení, aniž byste ho změnili v úložišti a nechali v něm trasování.
  • Zfalšovaný kompilátor – Změna kompilátoru v prostředí sestavení tak, aby zavedl škodlivý kód, aniž by před zahájením procesu opustil jakékoli trasování.

Změna konfigurace ochrany větví – Nástroje pro ochranu větví umožňují organizaci nakonfigurovat kroky před schválením žádosti o přijetí změn a potvrzení do větve. Jakmile má útočník oprávnění správce, může tyto konfigurace změnit a zavést kód do větve bez zásahu uživatele.

Dopad

Taktika dopadu odkazuje na techniky, které by útočník mohl použít ke zneužití přístupu k prostředkům CI/CD pro škodlivé účely, a ne jako další krok v útoku, protože tyto techniky by mohly být hlučné a snadno rozpoznatelné:

Distribuovaný útok DoS (DDoS) – nežádoucí osoba by mohla využít výpočetní prostředky, ke kterým získal přístup, k provádění distribuovaných útoků na odepření služeb (DDoS) na externí cíle.

Kryptografické dolování – Výpočetní prostředky lze použít k kryptografickému dolování řízené nežádoucím člověkem.

Local Denial-of-Service (DoS) – Jakmile útočník běží na kanálech CI, může útočník prostřednictvím vypnutí agentů, restartování nebo přetíženívirtuálních služeb (DOS) provést útok na dostupnost služby (DoS) – jakmile útočník běží na kanálech CI, může provést útok do služby DoS (Denial-of-Service) zákazníkům vypnutím agentů, restartováním nebo přetížením virtuálních počítačů.

Odstranění prostředků – Útočník s přístupem k prostředkům (cloudové prostředky, úložiště atd.) by mohl trvale odstranit prostředky, aby dosáhl odepření služeb.

Exfiltrace

Taktika exfiltrace odkazuje na různé techniky, které by mohl útočník použít k exfiltraci citlivých dat z prostředí oběti:

Klonování privátních úložišť – Jakmile útočníci mají přístup ke kanálům CI, získají také přístup k privátním úložištím (například GITHUB_TOKEN je možné použít na GitHubu), a proto by mohli kód klonovat a přistupovat k němu, a získat tak přístup k privátní IP adrese.

Protokoly kanálu – Nežádoucí osoba může získat přístup k protokolům spuštění kanálu, zobrazit historii přístupu, kroky sestavení atd. Tyto protokoly můžou obsahovat citlivé informace o sestavení, nasazení a v některých případech i přihlašovací údaje ke službám, uživatelským účtům a dalším.

Exfiltrujte data z produkčních prostředků – v případech, kdy kanály mají přístup k produkčním prostředkům, budou mít k těmto prostředkům přístup i útočníci. Proto mohou tento přístup zneužít k exfiltraci produkčních dat.

Doporučení pro správu stavu DevOps

Když skenery DevOps odhalí odchylky od osvědčených postupů zabezpečení v rámci systémů správy zdrojového kódu a kanálů kontinuální integrace/průběžného doručování, Defender for Cloud nabízí přesná a použitelná doporučení. Tato doporučení mají následující výhody:

  • Vylepšená viditelnost: Získejte komplexní přehled o stavu zabezpečení prostředí DevOps a zajistěte si přehled o všech existujících ohroženích zabezpečení. Identifikujte chybějící pravidla ochrany větví, rizika eskalace oprávnění a nezabezpečená připojení, abyste zabránili útokům.
  • Akce založená na prioritách: Vyfiltrujte výsledky podle závažnosti, abyste mohli efektivněji utratit prostředky a úsilí tím, že nejprve řešíte nejdůležitější ohrožení zabezpečení.
  • Snížení prostoru pro útoky: Vyřešte zvýrazněné mezery v zabezpečení, aby se výrazně minimalizovaly ohrožené plochy útoků, a tím posílit ochranu před potenciálními hrozbami.
  • Oznámení v reálném čase: Možnost integrace s automatizacemi pracovních postupů, aby dostávala okamžitá upozornění při změně zabezpečených konfigurací, což umožňuje rychlou akci a zajištění udržitelného dodržování bezpečnostních protokolů.