;

Kubernetes v podnikovém nasazení

11. 6. 2020
Doba čtení: 7 minut

Sdílet

 Autor: © ra2 studio - Fotolia.com
Od nástupu kontejnerizačních technologií uběhlo několik let a kontejnery se staly upřednostňovaným způsobem nasazování a migrace aplikací. Dobře promyšlený plán, do něhož jsou od počátku zapojení všichni zainteresovaní, je prvním krokem k vybudování bezpečnějšího kontejnerového prostředí.

Kontejnerové technologie nabízejí spolehlivější a efektivnější způsoby zavádění a škálování softwaru na různých platformách, ale zároveň otevírají nové cesty útočníkům. V uplynulých letech se výrazně zlepšila bezpečnost kontejnerů a jejich řídicích systémů, jako je Kubernetes, ale objevilo se i několik závažných bezpečnostních chyb a zneužitelných zranitelností.

Nástroje pro zavádění a správu kontejnerů jako Kubernetes umožňují podnikům automatizovat prakticky každý aspekt nasazení aplikací, což má řadu úžasných výhod. Na druhé straně, větší zájem o využití Kubernetes zvyšuje zájem kyber­zločinců o zneužití této kontejnerové platformy.

Bezpečnostní experti se obecně shodují, že rozšiřování Kubernetes s sebou nese i rostoucí bezpečnostní rizika. V nedávné době došlo k řadě bezpečnostních incidentů v oblasti cloudu a mobilního vývoje včetně narušení provozu, neoprávněné těžby kryptoměn, vyděračského softwaru a krádeže dat.

Tyto typy implementací jsou samozřejmě stejně náchylné na exploity a útoky zvenčí i zevnitř jako tradiční prostředí. Je proto důležité zajistit, aby vaše prostředí Kubernetes bylo postavené na správné architektuře a praktikovali jste doporučené bezpečnostní postupy.

Širším zaváděním se platforma Kubernetes dostává do centra pozornosti kyberzločinců. „Rychlý vzestup Kubernetes pravděpodobně odkryje bezpečnostní nedostatky, které zůstávaly nepovšimnuté, a zároveň přiláká větší pozornost útočníků,“ říká Amir Jerbi, CTO společnosti Aqua Security.

Od roku 2015 byly odhalené kritické a važné zranitelnosti, které přiměly bezpečnostní a DevOps týmy pečlivěji zvažovat a plánovat architekturu pro zavádění aplikací. Mezi závažnější chyby patří získání úplného administrátorského přístupu na libovolném serveru běžícím v klastru Kubernetes, což útočníkům umožňuje spustit škodlivý kód, zhavarovat celé klastrové prostředí nebo ukrást citlivá data.

Bezpečnost klastrů

Z hlediska bezpečnosti klastrů je nutné brát v úvahu několik aspektů. Dynamická povaha kontejnerů komplikuje bezpečnost prostředí Kubernetes.

U zabezpečení klastrů je potřeba věnovat pozornost zejména:

  • Potenciálnímu prostoru pro útok tvořenému souborem zranitelností jednotlivých kontejnerů, zejména při použití nástrojů pro orchestraci kontejnerů, jako je Docker nebo Kubernetes.
  • Zvýšenému objemu horizontálního provozu, který je nutné monitorovat, zejména v serverových a cloudových prostředích. Schopnosti bezpečnostního týmu zajistit, aby automatizace zabezpečení dokázala držet krok s dynamickými změnami kontejnerového prostředí.
  • Viditelnosti procesu nasazování a samotných podů Kubernetes včetně jejich vzájemné komunikace. Způsobům detekce škodlivé aktivity v horizontální komunikaci mezi kontejnery včetně odhalování exploitů v jednotlivých podech nebo kontejnerech.
  • Uplatňování nejlepší bezpečnostní praxe, revizi/plánování a dokumentaci klastrů Kubernetes za účelem lepšího pochopení interních hrozeb.

Je také velmi důležité zefektivnit celý bezpečnostní proces, aby nijak nebrzdil a nenarušoval vývoj aplikací. Jedna otázka, kterou je nutné uvážit u kontejnerizovaných implementací v podniku i mimo něj, je nutnost zkrátit dobu schvalování v rámci bezpečnostního procesu. Kromě toho je potřeba zjednodušit proces bezpečnostních upozornění a zajistit, aby snadno odhaloval nejvýznamnější útoky. A nakonec, prostředí Kubernetes musí řádně segmentovat síťová připojení a některé kontejnery.

Bezpečnostní rizika podnikové implementace Kubernetes

Jak jsme již zmínili, růst obliby těchto nástrojů je doprovázen zvýšeným rizikem útoků. Tolerance rizika se u některých zranitelností liší podle velikosti, složitosti a prostředí.

Mezi hlavní bezpečnostní rizika, která je nutné mít na zřeteli, patří:

  • Útoky v prostředí Kubernetes mohou dělat osoby zvnějšku i zevnitř – vědomě i nevědomě (typicky jako důsledek phishingu).
  • Kontejnery mohou být napadnutelné, je-li přehlédnutá zranitelnost aplikace nebo chybná konfigurace, díky níž získá útočník přístup a může začít hledat další skuliny pro rozsáhlejší napadení.
  • Neoprávněná připojení podů – opět kvůli napadeným kontejnerům, kdy se pody snaží o přístup k jiným podům na týchž nebo okolních serverech. Monitorování sítě a filtrování musí probíhat na vrstvě L7, aby dokázalo detekovat a blokovat útoky proti důvěryhodným IP adresám.
  • Krádež dat (tzv. exfiltrace) ve vašem prostředí. Existuje řada způsobů, jak takový útok učinit a zamaskovat, například pomocí tunelového síťového připojení.
  • Napadení samotné infrastruktury Kubernetes, jako jsou Kubelets nebo API server.
  • Průnik do orchestračního nástroje umožní útočníkovi napadnout aplikace a získat přístup k dalším prostředkům potřebným pro běh prostředí.

Osvědčená praxe pro zabezpečení Kubernetes

Jedno staré rčení praví, že člověk by měl dělat určitou věc správně, nebo vůbec. Někdy to možná není tak zřejmé, ale obzvlášť na tom záleží u celkového zabezpečení – Kubernetes je nutné od počátku zavádět podle správných konceptů a se správnou archi­tekturou.

Obliba Kubernetes stoupá díky rozšiřování možností tohoto orchestračního nástroje – od jednoduché archi­tektury podů přes implementace menšího rozsahu po rozsáhlou integraci Kubernetes s různými platformami. Stejně tak ale vzrůstá složitost těchto implementací a související bezpečnostní rizika.

ICTS24

Hlavní zásady a doporučená praxe při práci s Kubernetes:

  • Důsledně uplatňovat pravidlo nejnižších nutných oprávnění. Tento model brání útočníkovi v získání širšího přístupu a umožňuje útoky snáze izolovat a neutralizovat. Nejvhodnější je nastavit schopnosti podu pomocí integrovaných bezpečnostních pravidel.
  • Vždy užívat silné ověřování a vyžadovat ověřování u všech modulů Kubernetes.
  • Nastavit segmentaci klastrů podle stejných principů jako nejnižší nutná oprávnění. Ideální je, pokud se útok nemůže rozšířit mimo vymezenou část klastru. Doporučený postup je používat vzájemně oddělené virtuální klastry na téže infrastruktuře.
  • Užití firewallu nativního pro daný kontejner při segmentaci pomáhá blokovat nežádoucí síťové aktivity.
  • Monitorovat v prostředí výskyt bezpečnostních incidentů, k nimž dojde navzdory uplatňování nejlepší bezpečnostní praxe. Na trhu existují specifické externí bezpečnostní nástroje, které brání šíření útoků a odhalují porušení bezpečnostních pravidel v kontejnerovém prostředí.
  • Vymezit role provozního, vývojového a bezpečnostního týmu. Doporučuje se oddělit jednotlivé role a jednoznačně stanovit příslušné pravomoci a odpovědnosti.

Faktory, které je potřeba vzít v úvahu:

  • Bez ohledu na velikost projektu a prostředí – od jediného interního podu pro migraci určité platformy po rozsáhlou cloudovou implementaci s mnoha klastry – je důležité, aby bezpečnostní tým a tým DevOps při plánování úzce spolupracovaly.
  • To zahrnuje stanovení rolí a odpovědností a nastavení pravidelné komunikace. Stručně řečeno, dobře promyšlený plán, do něhož jsou od počátku zapojení všichni zainteresovaní, je prvním krokem k vybudování bezpečnějšího kontejnerového prostředí.