Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Är er organisation uppdaterad med bästa praxis för Kubernetes-säkerhet?

Är din organisation uppdaterad med bästa praxis för Kubernetes-säkerhet?

Kubernetes är en öppen källkodsplattform för containerorkestrering som automatiserar distribution, skalning och hantering av containerbaserade applikationer. Den introducerar en komplex attackyta som inte finns i traditionella applikationsdistributioner: containerutbrott, lateral förflyttning mellan poddar genom tillåtande nätverkspolicyer, privilegieeskalering genom felkonfigurerad RBAC och exponering av hemligheter genom okrypterad etcd-lagring. Organisationer som använder Kubernetes för att distribuera applikationer måste implementera säkerhetskontroller över fem domäner: säkerhetshärdning för poddar, nätverksseparation, autentisering och auktorisering, granskningsloggning och kontinuerlig patchhantering. Den rekommenderade utgångspunkten: aktivera RBAC med rolldefinitioner med lägst privilegium, konfigurera etcd-kryptering i vila, tillämpa Pod-säkerhetsstandarder på begränsad nivå för alla arbetsbelastningar som inte kräver förhöjda privilegier, implementera nätverkspolicyer för att isolera namnrymder och aktivera granskningsloggning.

Snabbt svar: Vilka är de bästa säkerhetspraxiserna för Kubernetes?

Kubernetes-säkerhet är inte en enda kontroll utan en uppsättning härdningsbeslut över klusterarkitekturen. NSA/CISA Kubernetes Hardening Guide och CIS Kubernetes Benchmark organiserar båda kontroller kring samma fem domäner: pod-säkerhet (köra containrar som icke-root, oföränderliga filsystem, bildskanning, Pod Security Standards); nätverksseparation (nätverkspolicyer som isolerar namnrymder, TLS för all kommunikation i kontrollplanet, brandväggsregler runt kontrollplanet); autentisering och auktorisering (RBAC med roller med lägst behörighet, stark användarautentisering, inaktiverad anonym åtkomst); granskningsloggning (aktivera granskningsloggning, spara loggar, konfigurera mätvärdesloggning); och patchhantering (tillämpa säkerhetsuppdateringar omedelbart, genomföra sårbarhetsskanningar, ta bort oanvända komponenter). Krypteringskontroller skär igenom dessa domäner: etcd-kryptering i vila, TLS mellan klusterkomponenter och hemlighetshantering via ett KMS-integrerat externt hemlighetslager.

Kubernetes-arkitektur: Vad som behöver säkras

Ett Kubernetes-kluster består av ett kontrollplan och en eller flera arbetsnoder. Att förstå vad varje komponent gör avgör vad som behöver säkras:

Kontrollplanskomponenter (Master Node):

  • Server API: Den centrala komponenten som exponerar Kubernetes API och fungerar som gateway för alla klusterinteraktioner. Alla kubectl-kommandon, kontrollåtgärder och nodkommunikation passerar genom API-servern. Den framtvingar autentisering och auktorisering; felkonfigurerad RBAC eller aktiverad anonym åtkomst på API-servern är den mest påverkande felkonfigurationen i Kubernetes-säkerhet.
  • etc.: Ett distribuerat nyckel-värde-arkiv som innehåller all klusterstatus och konfigurationsdata, inklusive Kubernetes-hemligheter. Etcd är målet med högst värde i ett Kubernetes-kluster: läsåtkomst till etcd ger åtkomst till alla hemligheter, all konfiguration och all klusterstatus. Etcd måste skyddas med TLS för all kommunikation och kryptering i vila för all data.
  • Controllerchef: hanterar styrenheter som bibehåller önskat klustertillstånd. Bör konfigureras med TLS-klientautentisering och bör inte ha onödiga behörigheter.
  • Schemaläggare: tilldelar poddar till noder baserat på resurstillgänglighet. Säkerhetspolicyer kan påverka schemaläggningsbeslut för att förhindra att privilegierade arbetsbelastningar körs på känsliga noder.

Komponenter för arbetsnod:

  • Kubelett: agenten på varje nod som kommunicerar med API-servern och hanterar containerns livscykel. Kubelet exponerar ett HTTP API; om det inte är säkrat med autentisering och TLS kan det utnyttjas för att få kontroll över alla poddar på noden.
  • Kube-proxy: hanterar nätverksroutning till poddar. Nätverkspolicyer tillämpas via nätverksplugins som interagerar med kube-proxyregler.
  • Behållarens körtid: Programvaran som kör containrar (containerd, CRI-O). Bör säkras för att förhindra att containrar rymmer och bör hållas uppdaterad.

Skräddarsydda krypteringstjänster

Vi utvärderar, strategiserar och implementerar krypteringsstrategier och lösningar.

Kubernetes hotmodell

AttackvektorHur det fungerarPrimär härdningskontroll
ContainerutbrottAngripare utnyttjar en sårbarhet eller felkonfiguration i containerkörning (t.ex. montering av privilegierad container eller värdsökväg) för att undkomma containersandlådan och komma åt värdnoden.Pod-säkerhetsstandarder (begränsade); icke-root-behållare; oföränderliga filsystem; ta bort alla Linux-funktioner utom de som krävs
API-serverutnyttjandeAngripare utnyttjar oautentiserad API-åtkomst, alltför tillåtande RBAC eller en stulen tjänstkontotoken för att interagera med kluster-API:et och utföra destruktiva operationer.Inaktivera anonym autentisering; RBAC med roller med lägst behörighet; kortlivade tjänstkontotokens; brandvägg API-serverporten (6443) till endast auktoriserade IP-adresser
etcd-kompromissAngriparen får läsåtkomst till etcd (direkt eller via API-servern) och hämtar alla hemligheter och klusterstatus, inklusive inloggningsuppgifter för externa system.Aktivera etcd-kryptering i vila; begränsa etcd-åtkomst till API-servern endast via nätverksbrandvägg; använd TLS för all etcd-kommunikation med klientcertifikatautentisering
Lateral förflyttning via tillåtande nätverkspolicyerAngripare som komprometterar en pod använder standardnätverksbeteendet "tillåt alla" för att kommunicera med andra poddar och tjänster över namnrymder.Nätverkspolicyer med standardbaslinje för nekad funktion; namnrymdsisolering; tjänstenät med mTLS för pod-till-pod-kommunikation
Privilegieupptrappning via RBACAngripare med ett tjänstkonto som har överdrivna behörigheter använder dessa behörigheter för att skapa nya privilegierade poddar, ändra ClusterRoleBindings eller stjäla hemligheter.Granska RBAC för kluster-administratörsbindningar och jokerteckenbehörigheter; eliminera onödiga ClusterRole-tilldelningar; använd namnrymdsbaserade roller snarare än ClusterRoles där det är möjligt.
Hemlig exfiltreringAngriparen läser Kubernetes-hemligheter som lagras okrypterade i etcd eller monteras som miljövariabler i komprometterade poddarKryptera etcd i vila; begränsa åtkomst till hemligheter via RBAC; montera hemligheter som filer snarare än miljövariabler; överväg extern hemlighetshanterare med KMS-integration
Leveranskedjans attack via containerbildAngripare injicerar skadlig kod i en containeravbildning som hämtas och körs i klustret.Bildskanning i CI/CD-pipeline; åtkomstkontrollant som blockerar bilder som inte signerats av ett betrott register; använd minimala basbilder från verifierade källor

Säkerhetshärdning för pods

Podar är den minsta utplacerbara enheten i Kubernetes och är ofta den initiala exekveringsmiljön när en angripare utnyttjar en container. Säkerhetshärdning för Podar gör utnyttjande svårare och begränsar vad en angripare kan göra efter att ha fått kodkörning i en container.

  1. Kör containrar som icke-root-användare: konfigurera containrar att köras som ett specifikt icke-root-UID i Dockerfile (USER-direktivet) och tillämpa detta med Pod Security Standards. Många containeravbildningar körs som standard som root även när applikationen inte behöver root-behörighet. En containerkompromittering med en icke-root-användare har avsevärt minskad möjlighet att påverka värden eller andra systemkomponenter.
  2. Använd oföränderliga containerfilsystem: Ange readOnlyRootFilesystem: sant i containersäkerhetskontexten. En angripare som får körning inuti en container kan inte skapa filer, ladda ner skript eller ändra programbinärfiler. Montera sekundära skrivbara volymer endast för kataloger som legitimt kräver skrivåtkomst (t.ex. loggkataloger eller tmp).
  3. Tillämpa Pod-säkerhetsstandarder: Använd Kubernetes Pod Security Admission-kontrollanten för att tillämpa Restricted-policyn för alla arbetsbelastningar som inte specifikt kräver utökade behörigheter. Restricted förhindrar hostPID, hostIPC, hostNetwork, behörighetseskalering och körning som root. Använd Baseline som ett absolut minimum för alla arbetsbelastningar.
  4. Skanna containerbilder: Skanna alla avbildningar efter kända CVE:er och konfigurationsproblem (osäkra portar, breda filbehörigheter) som en del av CI/CD-pipelinen innan de når klustret. Använd en webhook för åtkomstkontrollanter som blockerar distribution av avbildningar som misslyckas med skanningen eller inte är signerade av ett betrott register.
  5. Ta bort Linux-funktioner: Kubernetes tillåter att containrar ges specifika Linux-funktioner utöver standardinställningen. Använd drop: ["ALL"] i containersäkerhetskontexten och lägg endast till de specifika funktioner som applikationen legitimt kräver. Funktioner som CAP_SYS_ADMIN, CAP_NET_ADMIN och CAP_SYS_PTRACE ökar avsevärt effekten av en containerkompromiss.

Nätverksseparation, kryptering och hemlighetshantering

  1. Implementera nätverkspolicyer med en standardbaslinje för nekad kod: Som standard kan alla poddar i ett Kubernetes-kluster kommunicera med alla andra poddar. Implementera en standardmässig NetworkPolicy med nekad åtkomst i varje namnrymd och lägg till explicita tillåtningsregler endast för obligatoriska kommunikationsvägar. Detta förhindrar att en angripare som komprometterar en podd kommunicerar fritt med andra poddar, tjänster eller kluster-API:et.
  2. Kryptera all kommunikation på kontrollplanet med TLS: All kommunikation mellan API-servern, etcd, kubelet, kube-proxy och kontrollanthanteraren måste använda TLS med giltiga certifikat. Konfigurera API-servern så att den kräver TLS-klientcertifikat för kubelet-kommunikation (–kubelet-client-certificate och –kubelet-client-key). Certifikat för Kubernetes-komponenter bör hanteras med definierade rotationsscheman via en certifikatlivscykelhantering processen.
  3. Aktivera etcd-kryptering i vila: Konfigurera API-resursen EncryptionConfiguration för att kryptera hemligheter (och eventuellt andra resurstyper) som lagras i etcd. Använd AES-GCM med en KMS-leverantör för nyckelhantering snarare än statiska nycklar, så att krypteringsnyckeln inte lagras på samma system som den krypterade datan. Utan detta lagras alla Kubernetes-hemligheter som base64-kodad klartext i etcd.
  4. Använd Kubernetes Secrets korrekt eller ersätt dem: lagra känsliga konfigurationsdata i Kubernetes Secrets snarare än ConfigMaps eller miljövariabeldefinitioner i pod-specifikationer. Montera hemligheter som filer snarare än miljövariabler (miljövariabler kan läckas genom processinspektion; filmonterade hemligheter är mer begränsade). För produktionsmiljöer med känsliga hemligheter, överväg en extern hemlighetshanterare med en Kubernetes Secrets Store CSI-drivrutin, som backas upp av en HSM-skyddad nyckelhanteringstjänst.
  5. Begränsa åtkomst till kontrollplanet: Brandväggen för API-servern (port 6443) och etcd (port 2379) ska endast tillåta åtkomst från auktoriserade nätverk och system. Kontrollplanet ska inte vara direkt åtkomligt från det publika internet. Använd ett VPN eller ett bastionvärdmönster för administrativ åtkomst.

Autentisering, auktorisering och RBAC

  1. Inaktivera anonym autentisering: Sätt –anonym-auth=false på API-servern. Anonyma förfrågningar bör aldrig tillåtas till ett produktionskluster; alla API-serverinteraktioner måste autentiseras.
  2. Implementera stark användarautentisering: Använd OIDC-integration (OpenID Connect) med din organisations identitetsleverantör för användarautentisering till Kubernetes API. Detta möjliggör MFA-tillämpning, centraliserad granskningsloggning av användaråtkomst och automatisk återkallelse när användare lämnar organisationen, snarare än att förlita sig på långlivade klientcertifikat som är svåra att återkalla.
  3. Skapa RBAC-policyer med lägst behörighet: Definiera specifika roller med de lägsta behörigheter som krävs för varje användningsfall och bind dem till specifika användare eller tjänstkonton via RoleBindings. Undvik att använda klusteradministratör förutom för nödåtkomst vid bootstrap. Granska regelbundet ClusterRoleBindings för att identifiera eventuella principaler med klusteromfattande administrativ åtkomst. Använd namnrymdsrelaterade roller snarare än ClusterRoles där det är möjligt.
  4. Begränsa behörigheter för servicekonton: Tjänstkonton används av poddar för att autentisera mot Kubernetes API. Som standard körs poddar med ett tjänstkonto som kan ha bredare behörigheter än nödvändigt. Ställ in automountServiceAccountToken: false på poddar som inte behöver API-åtkomst och skapa specifika tjänstkonton med minimala behörigheter för poddar som gör det.

Granskningsloggning och patchhantering

  1. Aktivera granskningsloggning: Konfigurera granskningspolicyn för Kubernetes API-servern så att den loggar alla känsliga API-anrop, inklusive hemlig åtkomst, RBAC-ändringar och skapande av pods. Spara granskningsloggar i ett externt system (inte bara i pod- eller nodlagring) för att säkerställa tillgänglighet även om en nod eller pod komprometteras eller misslyckas.
  2. Konfigurera en mätvärdesloggare: Distribuera en stack för mätvärden (som Prometheus med aviseringsregler) för att övervaka klusterhälsa, resursanvändning och avvikande mönster (ovanliga API-anropsvolymer, oväntad pod-skapande, åtkomst till hemligheter utanför normala mönster). Granskningsloggar tillhandahåller det forensiska spåret; mätvärden och aviseringar ger realtidsdetektering.
  3. Installera säkerhetsuppdateringar omedelbart: Kubernetes släpper säkerhetsuppdateringar genom mindre versioner och patchversioner. Organisationer bör ha en definierad process för att testa och tillämpa Kubernetes-versionsuppdateringar, med målet att tillämpa kritiska säkerhetsuppdateringar inom ett definierat fönster (vanligtvis 30 dagar för kritiska CVE:er). Arbetsnoder bör regelbundet patchas eller ersättas med uppdaterade avbildningar.
  4. Genomför regelbundna sårbarhetsskanningar: Kör regelbundet verktyg för sårbarhetsskanning mot klusterkonfigurationen (kube-bench för CIS Benchmark-efterlevnad, Trivy eller liknande för bildsårbarheter). Behandla skanningsresultat som en prioriterad eftersläpning i åtgärden snarare än en engångsbedömning.

Implementeringsexempel: Kubernetes-klusterhärdning i produktion

En finansiell tjänsteorganisation som kör ett Kubernetes-produktionskluster på en hanterad molntjänst för Kubernetes implementerar följande baslinjehärdningssekvens:

  1. Baslinjebedömning: Kör kube-bench mot klustret för att generera en CIS Benchmark-efterlevnadsrapport. Resultaten kategoriseras efter allvarlighetsgrad och organiseras i en eftersläpning av åtgärder prioriterad efter risk.
  2. RBAC-rensning: granska alla ClusterRoleBindings för att identifiera principaler med klusteradministratörs- eller jokerteckensbehörigheter. Ta bort onödiga klusteradministratörsbindningar; skapa specifika roller för varje teams faktiska åtkomstkrav. Tjänstkonton för applikationspoddar granskas och begränsas till de lägsta API-behörigheter som krävs.
  3. Grundläggande nätverkspolicy: Distribuera en standardmässigt nekad NetworkPolicy i varje namnrymd. Definiera explicita tillåtna policyer för nödvändig kommunikation mellan tjänster. Nätverkspolicykonfigurationen lagras i versionshantering och granskas innan någon ändring tillämpas.
  4. etcd-kryptering: Aktivera EncryptionConfiguration med AES-GCM och en KMS-leverantör som backas upp av en HSM-skyddad nyckelhanteringstjänst. Krypteringsnyckeln vidrör aldrig klusternoderna. Efter aktivering roteras alla befintliga hemligheter för att säkerställa att de lagras i krypterad form.
  5. Säkerhetsstandarder för pods: Tillämpa Restricted Pod Security Standard på alla namnrymder förutom de som kör privilegierade systemarbetsbelastningar, vilka är begränsade till Baseline-standarden. Alla arbetsbelastningar testas för kompatibilitet med Restricted-standarden innan tillämpning aktiveras.
  6. Bildsignering och åtkomstkontroll: En anpassad webhook för åtkomst distribueras som blockerar all pod-skapande med hjälp av en avbildning som inte är signerad av organisationens betrodda register. CI/CD-pipelinen signerar avbildningar efter att de har godkänts för sårbarhetsskanning. Avbildningar från externa register speglas via det interna registret efter skanning och signering.

Begränsningar av Kubernetes säkerhetskontroller

  • Hanterade Kubernetes-tjänster begränsar kontrollen över kontrollplanet: När hanterade Kubernetes-tjänster används hanterar molnleverantören kontrollplanet. Organisationer kan ha begränsad möjlighet att konfigurera granskningsloggning, API-serverflaggor eller annat direkt. Säkerhetskontroller måste tillämpas på arbetsnod- och arbetsbelastningsnivå. Granska den hanterade tjänstens delade ansvarsmodell för att förstå vad leverantören säkrar och vad som fortfarande är kundens ansvar.
  • Nätverkspolicyer kräver ett kompatibelt CNI-plugin: Kubernetes NetworkPolicy-objekt tillämpas inte av Kubernetes självt utan av Container Network Interface (CNI)-pluginet. Om CNI-pluginet inte stöder nätverkspolicyer ignoreras NetworkPolicy-objekt i tysthet. Kontrollera att det CNI-plugin som används (Calico, Cilium, Weave, etc.) stöder och tillämpar NetworkPolicy innan du förlitar dig på dem för isolering.
  • Bekämpning av containerutbrott är ett djupgående försvar, inte garantier: Pod-säkerhetsstandarder, icke-root-containrar och oföränderliga filsystem minskar sannolikheten för och effekten av containerutbrott men eliminerar det inte. Kärnsårbarheter kan fortfarande möjliggöra utbrott även från välhärdade containrar. Djupgående försvar (värdhärdning, nätverkssegmentering och detektering) krävs tillsammans med kontroller på pod-nivå.
  • Kryptering av Kubernetes Secrets i vila skyddar inte Secrets i minnet: Även med etcd-kryptering i vila dekrypteras hemligheter när de nås av API-servern och kan kortvarigt vara synliga i minnet på API-servern och på noderna där de är monterade. Program som hanterar mycket känsliga data kan kräva ytterligare kryptering på applikationsnivå.

Hur krypteringskonsulting kan hjälpa

  • Krypteringsrådgivningstjänster: vår Krypteringsrådgivningstjänster Bedöm ditt Kubernetes-klusters krypteringsstatus, inklusive konfiguration av etcd-kryptering i vila, hantering av TLS-certifikat för kontrollplanskomponenter och praxis för hantering av hemligheter, och ge rekommendationer i linje med NSA/CISA-riktlinjer och CIS Kubernetes Benchmark.
  • HSM som en tjänst: HSM som en tjänst Tillhandahåller FIPS 140-3-validerad hårdvarubaserad nyckelhantering för KMS-leverantören som skyddar etcd-krypteringsnycklar och för alla krypteringsnycklar på applikationsnivå som används av arbetsbelastningar som körs i klustret.
  • CertSecure-chef: CertSecure-hanterare hanterar livscykeln för TLS-certifikat som används av Kubernetes kontrollplanskomponenter, arbetsnoder och service mesh-konfigurationer, inklusive automatisk förnyelse för att förhindra utgångsrelaterade avbrott och insyn i allt certifikatlager i klustret.
  • CBOM-säker: CBOM-säkerhet upptäcker alla kryptografiska tillgångar i din Kubernetes-miljö, inklusive certifikat, nycklar och algoritmer som används i både kontrollplan och arbetsbelastningskonfigurationer, vilket tillhandahåller den inventering som behövs för att identifiera luckor och planera PQC-migrering för långlivad kryptografisk infrastruktur.

Slutsats

Kubernetes-säkerhet kräver medvetna beslut om hårdare hantering över fem domäner: podsäkerhet, nätverksseparation, autentisering och auktorisering, revisionsloggning och patchhantering. Kontrollerna är väl dokumenterade i NSA/CISA Kubernetes Hardening Guide och CIS Kubernetes Benchmark. De vanligaste fellägena är lika väl dokumenterade: anonym API-åtkomst aktiverad, klusteradministratör bunden till servicekonton, etcd körs utan kryptering i vila, standardnätverkspolicyer som lämnar namnrymder öppna för lateral förflyttning och bildpipelines som inte verifierar containerns ursprung.

Ett välsäkrat Kubernetes-kluster skyddar inte bara infrastrukturen; det skyddar känsliga data och arbetsbelastningar som körs på det, och det stöder efterlevnadskraven för de applikationer som distribueras i det. Om din organisation vill bedöma den nuvarande säkerhetsstatusen i sin Kubernetes-miljö mot etablerade riktmärken, kontakta Encryption Consulting.

Vanliga frågor om partihandel med mat och dryck

Vad är Kubernetes och varför behöver det dedikerade säkerhetsrutiner?

Kubernetes är en öppen källkodsplattform för containerorkestrering som automatiserar distribution, skalning och hantering av containerbaserade applikationer. Den kräver dedikerade säkerhetsrutiner eftersom den introducerar attackytor som inte finns i traditionella distributioner: containerutbrott, lateral förflyttning via tillåtande nätverkspolicyer, privilegieeskalering genom felkonfigurerad RBAC och exponering av hemligheter genom okrypterad etcd-lagring.

Vad är RBAC i Kubernetes och hur minskar det säkerhetsrisken?

RBAC (Role-Based Access Control) begränsar åtkomsten till Kubernetes API baserat på roller som tilldelats användare och tjänstkonton. Det minskar risken genom att tillämpa minsta möjliga behörighet: varje aktör får bara de behörigheter som deras funktion kräver. Alltför tillåtande RBAC (klusteradministratörstilldelningar, jokerteckenbehörigheter) är en av de vanligaste felkonfigurationerna som utnyttjas i Kubernetes-attacker.

Hur ska Kubernetes Secrets hanteras säkert?

Aktivera etcd-kryptering i vila med EncryptionConfiguration med AES-GCM och en KMS-leverantör som backas upp av HSM-skyddad nyckelhantering. Begränsa RBAC-åtkomst till hemligheter. Montera hemligheter som filer snarare än miljövariabler. Överväg en extern hemlighetshanterare med Kubernetes Secrets Store CSI-drivrutin för produktionsmiljöer med känsliga autentiseringsuppgifter. Rotera hemligheter regelbundet och omedelbart vid misstänkt kompromettering.

Vad är en Kubernetes Pod-säkerhetsstandard och hur ersätter den Pod-säkerhetspolicyer?

Pod Security Standards (PSS) definierar tre policynivåer (Privileged, Baseline, Restricted) som upprätthålls av den inbyggda Pod Security Admission Controller. De ersatte Pod Security Policies (PSP), som var föråldrade i v1.21 och togs bort i v1.25. Tillämpa den begränsade nivån på alla arbetsbelastningar som inte specifikt kräver utökade behörigheter.

Vad ska krypteras i ett Kubernetes-kluster?

Tre kategorier: data under överföring (TLS för all kommunikation på kontrollplanet mellan API-server, etcd, kubelet och kontrollkomponenter); data i vila (etcd-kryptering i vila via EncryptionConfiguration, som skyddar alla hemligheter och klustertillstånd); och applikationsdata (kryptering på applikationsnivå för arbetsbelastningar som hanterar känsliga data såsom PII eller finansiella poster).

Vad är CIS Kubernetes Benchmark och hur bör organisationer använda det?

CIS Kubernetes Benchmark tillhandahåller poängsatta säkerhetskonfigurationskontroller över alla större Kubernetes säkerhetsdomäner. Kör kube-bench för att automatisera CIS Benchmark-kontroller mot ett livekluster och generera en prioriterad lista över resultat. Använd den tillsammans med NSA/CISA Kubernetes Hardening Guide, som ger hotorienterad härdningsvägledning organiserad kring Kubernetes attackyta.