Zpět na blog
13. dubna 2026

Zabezpečte své Kubernetes clustery pomocí cloudového Penetration Testing

Kubernetes se stal zlatým standardem pro orchestraci kontejnerů. Je výkonný, krásně se škáluje a umožňuje vývojářům dodávat kód rychleji než kdy dříve. Ale buďme upřímní: Kubernetes je také neuvěřitelně komplexní. Mezi API serverem, etcd, kubelet, pody a horou YAML souborů existuje spousta míst, kde se může něco pokazit. Jediné chybně nakonfigurované nastavení Role-Based Access Control (RBAC) nebo nadměrně privilegovaný servisní účet může proměnit drobnou chybu v plnohodnotné ovládnutí clusteru.

Většina týmů začíná s "výchozím" nastavením a myslí si, že spravovaná služba poskytovatele cloudu má vše zabezpečené. I když GKE, EKS a AKS poskytují slušný základ, magicky neopraví zranitelnosti na úrovni vaší aplikace ani vaše vlastní konfigurační chyby. Skutečnost je taková, že "attack surface" Kubernetes clusteru je masivní. Nezabezpečujete jen server; zabezpečujete distribuovaný systém propojených mikroservis.

Zde přichází na řadu cloudový Penetration Testing. Tradiční bezpečnostní skeny často přehlédnou jemné nuance toho, jak se útočník může pohybovat laterálně v rámci clusteru. Potřebujete proaktivní přístup, který simuluje, jak přemýšlí skutečný útočník – počínaje kompromitovaným podem a pokoušející se dosáhnout na uzel nebo metadata API poskytovatele cloudu. Než skener zranitelností označí CVE, zkušený útočník mohl již využít chybně nakonfigurované oprávnění k eskalaci svých privilegií.

V této příručce se ponoříme hluboko do specifik zabezpečení Kubernetes. Podíváme se na nejběžnější vektory útoku, jak posílit vaše clustery a proč vám využití cloudové platformy, jako je Penetrify, může pomoci najít tyto díry dříve, než to udělá někdo jiný.

Pochopení Attack Surface Kubernetes

Chcete-li zabezpečit cluster, musíte nejprve pochopit, jak jej lze prolomit. Kubernetes není monolit; je to kolekce komponent, které spolu komunikují. Pokud je některý z těchto komunikačních kanálů otevřený nebo důvěřivý, máte problém.

Řídicí rovina: Mozek operace

Řídicí rovina je primárním cílem každého útočníka. Pokud získají přístup k API serveru, je po všem. Mohou nasadit škodlivé pody, ukrást tajemství nebo smazat celou vaši infrastrukturu. Nejčastější problémy jsou:

  • Neověřený přístup k API: Stává se to častěji, než byste si mysleli. Někdo nechá API server otevřený pro veřejný internet pro "ladění" a zapomene jej zavřít.
  • Slabé RBAC zásady: Udělení privilegií cluster-admin vývojáři, který potřebuje pouze zobrazit protokoly, je recept na katastrofu.
  • Exponované etcd: etcd je databáze, kde je uložen veškerý stav clusteru. Pokud útočník zasáhne etcd přímo, může obejít API server a přepsat realitu clusteru.

Datová rovina: Kde se děje práce

Zde žijí vaše pody a uzly. Zatímco řídicí rovina je mozek, datová rovina je tělo. Útočníci se často snaží získat oporu nejprve zde.

  • Únik z kontejneru: Pokud kontejner běží jako root nebo má privilegovaný přístup, útočník se může "prolomit" z kontejneru a získat přístup k hostitelskému uzlu.
  • Komunikace mezi pody: Ve výchozím nastavení Kubernetes neblokuje provoz mezi pody. Pokud útočník kompromituje jeden malý webový pod, může buď odposlouchávat provoz, nebo zaútočit na každý jiný pod v clusteru.
  • Nezabezpečená správa tajemství: Ukládání hesel nebo API klíčů v prostém textu v rámci ConfigMap nebo dokonce používání základních K8s Secrets (které jsou pouze kódovány base64) je častá chyba.

Lidský a CI/CD prvek

Často zapomínáme, že cluster je spravován lidmi a pipelines.

  • Uniklé Kubeconfig soubory: Vývojář omylem odešle svůj .kube/config do veřejného GitHub repozitáře a najednou má svět administrátorský přístup k vašemu produkčnímu clusteru.
  • Otrávené obrazy: Použití neověřeného obrazu z Docker Hub, který obsahuje backdoor.
  • Zranitelnosti Pipeline: Útočníci cílí na Jenkins nebo GitLab runner, který má oprávnění k nasazení do clusteru.

Běžné zranitelnosti Kubernetes a jak je zneužít (a zastavit)

Jedna věc je přečíst si seznam rizik; druhá věc je pochopit, jak se skutečně odehrávají. Podívejme se na některé scénáře z reálného světa.

Scénář 1: Nadměrně privilegovaný servisní účet

Představte si pod, který spouští jednoduchého monitorovacího agenta. Z nějakého důvodu mu vývojář dal ServiceAccount s ClusterRole, který mu umožňuje list a get secrets v celém namespacu.

Útok:

  1. Útočník najde chybu remote code execution (RCE) v monitorovacím agentovi.
  2. Najde token servisního účtu připojený na /var/run/secrets/kubernetes.io/serviceaccount/token.
  3. Pomocí kubectl použije tento token k dotazování na API server: kubectl get secrets.
  4. Najde heslo k databázi a přístupové klíče poskytovatele cloudu.

Oprava: Implementujte Principle of Least Privilege. Používejte konkrétní Roles místo ClusterRoles, kdykoli je to možné. Používejte nástroje jako audit2rbac k analýze toho, jaká oprávnění se skutečně používají, a odstraňte zbytek.

Scénář 2: Privilegovaný únik z kontejneru

Tým nasadí nástroj pro protokolování, který vyžaduje "privilegovaný" režim, aby viděl síťová rozhraní hostitele.

Útok:

  1. Útočník kompromituje logging pod.
  2. Protože je pod privilegovaný, vidí zařízení hostitele.
  3. Připojí kořenový souborový systém hostitele (/) do kontejneru.
  4. Vytvoří cron job na hostiteli nebo přidá nový SSH klíč do souboru authorized_keys hostitele.
  5. Nyní mají plný root přístup k Node. Odtud mohou potenciálně přistupovat k dalším podům na stejném node.

Řešení: Vyhněte se privileged: true za každou cenu. Pokud potřebujete specifické schopnosti (jako NET_ADMIN), udělte pouze tyto specifické schopnosti pomocí bloku capabilities v bezpečnostním kontextu. Použijte Pod Security Admission (PSA) controller k vynucení zásad "Baseline" nebo "Restricted".

Scénář 3: Únik Metadata API

V cloudových prostředích (AWS, GCP, Azure) se pody často mohou dostat ke cloudové službě metadat (např. 169.254.169.254).

Útok:

  1. Útočník získá přístup k podu.
  2. Provede curl na metadata endpoint: curl http://169.254.169.254/latest/meta-data/iam/security-credentials/.
  3. Služba metadat vrátí dočasné AWS přihlašovací údaje pro roli IAM připojenou k worker node.
  4. Útočník použije tyto přihlašovací údaje pro přístup k S3 bucketům nebo pro úpravu nastavení VPC.

Řešení: Použijte Network Policies k zablokování veškerého odchozího provozu na IP adresu metadat. Alternativně použijte přístup založený na identitě, jako je AWS IRSA (IAM Roles for Service Accounts) nebo Azure Pod Identity, aby pody získaly své vlastní omezené identity namísto zdědění identity node.

Proč tradiční skenování nestačí

Pravděpodobně jste použili skener zranitelností. Ten vám řekne, že váš Alpine Linux image má tři CVE se střední závažností. To je užitečné, ale není to "zabezpečení".

Skenování je pasivní. Penetration Testing je aktivní.

Skener vám může říct, že knihovna je zastaralá. Nemůže vám říct, že vaše konfigurace RBAC umožňuje vývojáři omylem smazat produkční databázi. Nemůže vám říct, že útočník může použít specifický řetězec chybných konfigurací k přeskoku z frontend podu na cluster admin.

Cloudový Penetration Testing zahrnuje "exploit chain". Útočník nenajde jen jednu chybu; najde sekvenci malých chyb, které v kombinaci vedou k úplnému kompromisu.

Například:

  • Krok 1: Najděte zastaralý image (skener to najde).
  • Krok 2: Použijte tento image k získání shellu (skener to nedokáže).
  • Krok 3: Najděte uniklý token v souborovém systému (skener to může přehlédnout).
  • Krok 4: Použijte token k přesunu na privilegovanější pod (skener to určitě nedokáže).

Proto se podniky posouvají směrem k neustálým bezpečnostním hodnocením. Namísto ročního auditu používají cloudové platformy k neustálé simulaci těchto útoků. Penetrify to zjednodušuje tím, že poskytuje spravované prostředí, kde se tyto simulace mohou odehrávat, aniž byste si museli budovat vlastní "útočnou laboratoř".

Podrobný návod k posílení zabezpečení vašeho Kubernetes clusteru

Pokud zíráte na složitý cluster a nevíte, kde začít, postupujte podle tohoto kontrolního seznamu. Přejdeme od "snadných výher" ke složitějším architektonickým změnám.

Fáze 1: Nízko visící ovoce (snadné výhry)

  1. Zakažte automatické připojování tokenu výchozího Service Account: Ve výchozím nastavení K8s připojuje token v každém podu. Většina podů nepotřebuje komunikovat s API serverem. Nastavte automountServiceAccountToken: false ve vašem PodSpec.
  2. Aktualizujte své image: Použijte nástroj jako Trivy nebo Grype ke skenování vašich imagů během CI/CD pipeline. Pokud má image zranitelnost s vysokou závažností, selžete sestavení.
  3. Odeberte nepotřebná oprávnění: Auditujte své ClusterRoles. Pokud vidíte * v polích resources nebo verbs, je to varovný signál.
  4. Zabezpečte API Server: Zajistěte, aby API server nebyl přístupný z otevřeného internetu. Použijte load balancer s IP whitelistingem nebo privátní endpoint.

Fáze 2: Implementace síťových kontrol

  1. Default Deny Network Policy: Ve výchozím nastavení mohou všechny pody komunikovat se všemi pody. Změňte to. Vytvořte zásadu "Default Deny" pro veškerý příchozí a odchozí provoz a poté explicitně povolte pouze připojení, která jsou nutná pro fungování aplikace.
  2. Namespace Isolation: Použijte namespace k oddělení prostředí (dev, staging, prod) a různých týmů. I když namespace nejsou tvrdou hranicí zabezpečení, usnadňují aplikaci Network Policies a RBAC.
  3. Egress Filtering: Nenechte své pody komunikovat s celým internetem. Pokud váš pod potřebuje komunikovat pouze se specifickou platební bránou API, omezte odchozí provoz na tento specifický rozsah IP adres nebo DNS jméno.

Fáze 3: Zabezpečení běhu a vynucování zásad

  1. Implementujte Pod Security Admissions (PSA): Použijte vestavěný PSA, abyste zajistili, že žádné pody neběží jako root nebo nepoužívají hostitelskou síť.
  2. Použijte nástroj pro zabezpečení běhu: Nástroje jako Falco vás mohou upozornit v reálném čase, pokud je uvnitř podu otevřen shell nebo pokud je čten citlivý soubor (jako /etc/shadow).
  3. Root Filesystem pouze pro čtení: Kdekoli je to možné, nastavte readOnlyRootFilesystem: true. Tím se zabrání útočníkům stahovat sady nástrojů (jako nmap nebo netcat) do kontejneru, pokud získají shell.

Fáze 4: Správa identit a tajemství

  1. Přestaňte používat K8s Secrets pro citlivá data: K8s secrets jsou pouze kódovány pomocí base64. Používejte specializovaného správce hesel, jako je HashiCorp Vault, AWS Secrets Manager nebo Azure Key Vault.
  2. Krátkodobé tokeny: Přestaňte používat dlouhodobé tokeny. Používejte OIDC (OpenID Connect) pro autentizaci uživatelů do clusteru.
  3. Auditní protokolování: Povolte auditní protokoly Kubernetes. Pokud dojde k narušení, musíte přesně vědět, kdo a kdy volal které API. Bez protokolů jen hádáte.

Porovnání různých bezpečnostních přístupů

Je snadné se v záplavě bezpečnostních nástrojů ztratit. Zde je rozbor toho, jak se různé metody porovnávají a kam zapadají do vaší strategie.

Přístup Co dělá Výhody Nevýhody Kdy jej použít
Skenování zranitelností Kontroluje známé CVE v obrazech/balíčcích. Rychlé, automatizované, zachytí "známé" chyby. Přehlíží chybné konfigurace a logické chyby. Při každém sestavení v CI/CD.
Audit konfigurace Kontroluje YAML soubory podle benchmarků (jako je CIS). Najde běžné chyby (např. privilegované pody). Může produkovat mnoho "False Positives" nebo šumu. Před nasazením a periodicky.
Ochrana za běhu Monitoruje aktivní pody pro podivné chování. Zachytí Zero Day zranitelnosti a aktivní útoky. Může být složité ladit; vysoký objem upozornění. Produkční prostředí.
Cloud Pentesting Simuluje cestu lidského útočníka. Najde složité kill-chainy a logické chyby. Zabere více času než skenování. Čtvrtletně nebo po zásadních změnách.

Tajemství spočívá v tom, že žádný z těchto přístupů sám o sobě "nestačí". Potřebujete vrstvený přístup. Skenujete obrazy, abyste zastavili známé chyby, auditujete konfigurace, abyste zastavili běžné chyby, monitorujete běh, abyste zachytili aktivní hrozby, a provádíte Penetration Testing, abyste našli mezery, které ostatní tři přehlédli.

Škálování vaší bezpečnosti pomocí cloud-nativních platforem

Pro středně velkou společnost je najmutí odborníka na zabezpečení Kubernetes na plný úvazek drahé. Většina IT týmů je již tak přetížená. Zde model "Cloud Pentesting" řeší skutečný obchodní problém.

Místo toho, abyste se snažili vybudovat interní "red team," můžete použít platformu jako Penetrify k překlenutí mezery. Zde je důvod, proč na tom záleží konkrétně pro K8s:

1. Žádné hardwarové náklady Nastavení bezpečného prostředí pro provádění Penetration Testů na clusteru často vyžaduje zrcadlo vašeho produkčního prostředí. To je spousta cloudových výdajů. Cloud-nativní platforma vám umožňuje spouštět tato hodnocení prostřednictvím spravované architektury, čímž se snižuje potřeba spouštět drahé "testovací clustery," které jen tak sedí.

2. Škálování na vyžádání Vaše potřeby v oblasti zabezpečení se mění. Možná spouštíte novou mikroslužbu pro velkého klienta nebo migrujete ze staršího nastavení VM na EKS. Nepotřebujete pentestera každý den, ale potřebujete ho během těchto vysoce rizikových oken. Cloudové platformy vám umožňují škálovat frekvenci testování nahoru nebo dolů na základě vašeho cyklu vydávání.

3. Integrace s pracovními postupy Největším problémem tradičního Penetration Testing je "PDF Report." Získáte 50stránkový dokument, který tři týdny leží v e-mailu, a poté musí vývojář ručně vytvořit Jira tickety pro každé zjištění. Moderní platformy vkládají výsledky přímo do vašich stávajících SIEM nebo ticketingových systémů. Když je v K8s clusteru nalezena zranitelnost, měla by se okamžitě stát ticketem v backlogu, nikoli odrážkou v dokumentu.

Scénář z reálného světa: Útok "Cestou nejmenšího odporu"

Abychom ilustrovali, proč se zaměřujeme na "řetězce" zranitelností, pojďme si projít hypotetický útok na e-commerce stránku založenou na Kubernetes.

Nastavení:

  • Frontendová React aplikace běžící v podu.
  • Backendový API pod.
  • Databázový pod.
  • Prometheus instance pro monitorování.

Útočný řetězec:

  1. Vstup: Útočník najde Server-Side Request Forgery (SSRF) zranitelnost ve frontendové aplikaci. To je běžná webová chyba.
  2. Průzkum: Pomocí SSRF se útočník nemůže dostat k databázi, ale může se dostat k internímu Kubernetes DNS. Zjistí, že služba Prometheus běží na portu 9090.
  3. Pivot: Zjistí, že instance Prometheus má otevřený dashboard bez hesla. V dashboardu najde štítek, který odhaluje interní IP adresy všech ostatních podů v namespace.
  4. Eskalace: Znovu použije SSRF, ale tentokrát se zaměří na interní API server pomocí uniklého tokenu, který našel v protokolu Prometheus (který omylem protokoloval hlavičky).
  5. Korunovační klenoty: Token má oprávnění get secrets. Vytáhne root heslo databáze a vypíše celou tabulku zákazníků.

Jak zastavit tento řetězec? Všimněte si, že většina z nich nejsou samy o sobě "kritické" chyby. SSRF je špatný, ale pokud máte Network Policies blokující přístup k podu Prometheus, útok se zastaví v kroku 2. Pokud je Prometheus autentizován, zastaví se v kroku 3. Pokud token Service Account není automaticky připojen, zastaví se v kroku 4.

To je to, co cloud pentesting najde. Neříká jen "Máte SSRF"; říká "Váš SSRF umožňuje útočníkovi ukrást vaši databázi přes Prometheus." To je ten druh vhledu, který skutečně řídí bezpečnostní priority.

Běžné chyby, kterých se týmy dopouštějí při zabezpečování K8s

I s nejlepšími úmysly se lidé dopouštějí chyb. Zde jsou nejčastější úskalí.

1. Důvěra v "Cloud Default"

Mnoho týmů se domnívá, že protože používají GKE nebo EKS, je "cluster" zabezpečený. Pamatujte: poskytovatel cloudu zabezpečuje infrastrukturu (hardware, hypervisor, dostupnost řídicí roviny), ale vy zabezpečujete konfiguraci. Pokud nasadíte pod jako root, AWS vám v tom nezabrání.

2. Nadměrné spoléhání se na "Security Groups"

Security groups (firewally) jsou skvělé pro blokování externího provozu, ale jsou zbytečné pro interní provoz mezi pody. Jakmile je paket uvnitř clusteru, security group ho nevidí. Pro interní segmentaci musíte používat Kubernetes Network Policies.

3. Ignorování fáze "Build"

Čekání na naskenování aplikace až po jejím nasazení. To je pro vývojáře noční můra. Než jim řeknete "tento image je zranitelný," už se posunuli k další funkci. Přesuňte zabezpečení doleva. Umístěte skenování do CI/CD pipeline, aby vývojář dostal chybu, když ještě píše kód.

4. Netestování "Lidské" Stránky

Můžete mít nejbezpečnější cluster na světě, ale pokud váš vedoucí vývojář uloží cluster-admin kubeconfig do veřejného Slack kanálu, na ničem z toho nezáleží. Zabezpečení je kultura, nejen sada YAML souborů.

FAQ: Kubernetes Security a Cloud Pentesting

Otázka: Je automatické skenování totéž co Penetration Testing?

Odpověď: Ne. Automatické skenování je jako detektor kouře – upozorní vás na problém na základě známých vzorů. Penetration Testing je jako hasičský inspektor – člověk (nebo pokročilá simulace), který se podívá na strukturu budovy, zkontroluje východy a najde místo, kde by mohla vzniknout jiskra. Potřebujete obojí.

Otázka: Jak často bych měl provádět Penetration Test mých Kubernetes clusterů?

Odpověď: Minimálně jednou ročně. Pro společnosti s rychlými cykly vydávání jsou však lepší čtvrtletní testy nebo testy "založené na událostech" (po zásadní změně architektury nebo spuštění nové funkce). Průběžné hodnocení je zlatý standard.

Otázka: Může Penetration Testing shodit můj produkční cluster?

Odpověď: Může, pokud se provádí špatně. Proto se profesionální cloud Penetration Testing obvykle provádí ve stagingovém prostředí, které zrcadlí produkci. Dobrý pentester ví, jak testovat opatrně, aniž by shodil vaše pody.

Otázka: Co je důležitější: RBAC nebo Network Policies?

Odpověď: Ani jedno není "důležitější"; řeší různé problémy. RBAC řídí, kdo může dělat co (Autorizace). Network Policies řídí, kdo může komunikovat s kým (Komunikace). Pokud máte skvělé RBAC, ale žádné Network Policies, kompromitovaný pod může stále odposlouchávat provoz nebo útočit na jiné služby.

Otázka: Podporuje Penetrify spravované Kubernetes jako EKS nebo GKE?

Odpověď: Ano. Protože je Penetrify cloud-native, je navržen pro integraci s hlavními poskytovateli cloudu. Zaměřuje se na zranitelnosti, které existují bez ohledu na to, zda je cluster spravován sám nebo spravován.

Praktické Závěry: Váš 30denní Bezpečnostní Plán

Pokud se cítíte zahlceni, nesnažte se dělat všechno najednou. Rozdělte si to do měsíčního plánu.

Týden 1: Viditelnost a Základní Linie

  • Spusťte audit konfigurace (zkuste použít kube-bench nebo polaris).
  • Vypište každou jednotlivou ClusterRole a zjistěte, kdo má přístup cluster-admin.
  • Povolte auditní protokolování pro vaši řídicí rovinu.

Týden 2: Snížení Plochy Útoku

  • Nastavte automountServiceAccountToken: false pro všechny pody, které nepotřebují přístup k API.
  • Implementujte síťovou politiku "Default Deny" ve vašem dev namespace.
  • Aktualizujte všechny vaše základní image na nejnovější stabilní verze.

Týden 3: Zpřísnění Přístupu

  • Nahraďte všechny kontejnery "privileged: true" specifickými možnostmi.
  • Přesuňte svá citlivá hesla z K8s Secrets do správce hesel.
  • Nastavte Pod Security Admission policy pro blokování root kontejnerů.

Týden 4: Validace a Testování

  • Zde přestanete hádat a začnete vědět. Naplánujte si cloud Penetration Test prostřednictvím Penetrify, abyste zjistili, zda změny, které jste provedli v týdnech 1–3, skutečně fungovaly.
  • Použijte výsledky tohoto Penetration Test k vytvoření backlogu bezpečnostních oprav pro příští měsíc.

Závěrečné Myšlenky

Kubernetes je zvíře. Dává nám neuvěřitelnou sílu, ale tato síla přichází s velkou složitostí. Největší chybou, kterou můžete udělat, je předpokládat, že "komplexní" znamená "bezpečné." Ve skutečnosti se složitost často skrývá zranitelnosti.

Zabezpečení vašeho clusteru není jednorázový projekt; je to zvyk. Jde o přechod od myšlení "Doufám, že jsme v bezpečí" k "Vím, že jsme v bezpečí, protože jsem se to pokusil prolomit." Kombinací přísných RBAC, přísných síťových politik a pravidelného cloud Penetration Testing si můžete užívat výhod Kubernetes, aniž byste v noci nespali a přemýšleli, zda jediný chybně nakonfigurovaný YAML soubor nesrazí vaše podnikání na kolena.

Pokud jste připraveni přestat hádat, je čas otestovat vaši infrastrukturu. Ať už jste malý tým nebo obrovský podnik, cíl je stejný: najít díry dříve, než to udělají ti špatní. Platforma jako Penetrify činí tento proces zvládnutelným, škálovatelným a – co je nejdůležitější – akčním. Nečekejte na narušení, abyste zjistili, kde jsou vaše slabiny. Buďte o krok napřed ještě dnes.

Zpět na blog