Opsio - Cloud and AI Solutions

Best Practices for containersikkerhed for produktionsmiljøer

Udgivet: ·Opdateret: ·Gennemgået af Opsios ingeniørteam
Fredrik Karlsson

Er dine containere sikre nok til produktion?Containere giver fremragende isolation mellem applikationer, men fejlkonfigurationer, sårbare billeder og usikre runtime-indstillinger kan gøre containere fra en sikkerhedsfordel til en forpligtelse. Denne vejledning dækker den sikkerhedspraksis, som produktionscontainermiljøer kræver.

Key Takeaways

  • Start med minimale billeder:Distroless og alpine billeder reducerer angrebsoverfladen med 90 % sammenlignet med fuld OS-billeder.
  • Scan på hvert trin:Byg, skub, implementer og løbende i registreringsdatabasen. Sårbarheder opdages efter implementering.
  • Kør aldrig som root:Rodbeholdere kan undslippe til værten. Ikke-rodbeholdere er indeholdt, selvom de er kompromitteret.
  • Skrivebeskyttede filsystemer:Hvis containeren ikke behøver at skrive, skal du gøre filsystemet skrivebeskyttet for at forhindre, at malware fortsætter.
  • Runtime-overvågning fanger, hvad scanningen går glip af:Zero-day exploits, supply chain-angreb og insidertrusler kræver runtime-detektion.

Billedsikkerhed

Brug minimale basisbilleder

Hver pakke i et containerbillede er potentiel angrebsoverflade. Et typisk Ubuntu-billede indeholder mere end 100 pakker; et distroløst billede indeholder kun programmets runtime. Brug Google Distroless til Java, Python, Node.js og Go applikationer. Brug Alpine (5MB), når du har brug for en shell til fejlretning. Brug aldrig fulde OS-billeder (Ubuntu, Debian, CentOS) i produktionen - de indeholder hundredvis af unødvendige pakker med kendte sårbarheder.

Byg i flere trin

Brug flertrins Dockerfiler til at adskille build-afhængigheder fra runtime-billeder. Byggestadiet inkluderer compilere, pakkeadministratorer og udviklingsværktøjer. Den sidste fase indeholder kun den kompilerede applikation og minimale runtime-afhængigheder. Dette forhindrer byggeværktøjer (som ofte har CVE'er af høj grad) i at blive vist i produktionsbilleder.

Billedscanningspipeline

  • Byggetid:Scan i CI pipeline, før du skubber til registreringsdatabasen. Bloker builds med kritiske sårbarheder.
  • Register:Kontinuerlig scanning i ECR, ACR eller Harbor fanger nyopdagede CVE'er i eksisterende billeder.
  • Entré:Kubernetes adgangscontrollere bekræfter billedscanningsresultater, før de tillader implementering.
  • Køretid:Overvåg for unormal containeradfærd, der kan indikere udnyttelse af uoprettede sårbarheder.

Runtime Security

Beholderhærdning

IndstillingAnbefalet værdiHvorfor
runAsNonRootsandtForhindrer containerescape gennem root-privilegier
readOnlyRootFilesystemsandtForhindrer malware i at skrive til filsystemet
allowPrivilegeEscalationfalskForhindrer processer i at opnå yderligere privilegier
kapaciteterdrop: ["ALLE"]Fjerner alle Linux-funktioner, tilføj kun det nødvendige
secompProfilRuntimeDefaultBegrænser systemopkald, der er tilgængelige for containeren
resources.limitsIndstil CPU og hukommelseForhindrer ressourcemisbrug (crypto-mining, DoS)

Kørselsovervågning med Falco

Falco overvåger containeradfærd i forhold til sikkerhedsregler og advarer om overtrædelser. Standardregler detekterer: shell skabt inde i en container, følsom filadgang (/etc/shadow, /etc/passwd), uventede netværksforbindelser, privilegie-eskaleringsforsøg, pakkehåndteringsudførelse i produktionscontainere og krypto-mining-processer. Brugerdefinerede regler kan tilføjes til din specifikke applikationsadfærd.

Supply Chain Security

Billedsignering og -verifikation

Signer containerbilleder på byggetidspunktet ved hjælp af cosign (Sigstore) eller Docker Content Trust. Bekræft signaturer ved implementering gennem Kubernetes adgangscontrollere. Dette sikrer, at kun billeder bygget af din CI/CD-pipeline kan implementeres - forhindrer forsyningskædeangreb, hvor angribere skubber ondsindede billeder til dit register.

Softwarestykliste (SBOM)

Generer SBOM'er for hvert containerbillede ved hjælp af Syft eller Trivy. En SBOM viser hver komponent (OS-pakker, biblioteker, afhængigheder) i billedet. Når en ny sårbarhed afsløres, kan du straks identificere, hvilke billeder der er berørt uden at genscanne alt. SBOM'er kræves i stigende grad af regler og virksomhedskunder.

Hvordan Opsio sikrer containere

  • Billedpipeline:Vi implementerer scanning, signering og håndhævelse af politikker på tværs af dit containerbilledes livscyklus.
  • Kørselssikkerhed:Vi implementerer og administrerer Falco/Sysdig til kontinuerlig overvågning af containerkørsel.
  • Kubernetes hærdning:Vi hærder klyngekonfigurationer i henhold til CIS-benchmarks med løbende overholdelsesovervågning.
  • Hændelsesreaktion:Vores SOC-team reagerer på containersikkerhedshændelser med indeslutning og retsmedicinsk kapacitet.

Ofte stillede spørgsmål

Er containere mere sikre end VM'er?

Containere leverer isolation på procesniveau gennem Linux navnerum og cgroups, mens VM'er leverer isolation på hardwareniveau gennem hypervisorer. VM'er har stærkere isolationsgrænser. Containere tilbyder hurtigere implementering og mindre angrebsflade (når der bruges minimale billeder). I praksis er korrekt konfigurerede containere med runtime sikkerhedsovervågning sikre nok til de fleste produktionsarbejdsbelastninger. Meget følsomme arbejdsbelastninger kan drage fordel af VM-niveauisolering eller containersandboxing (gVisor, Kata Containers).

Hvad er den største containersikkerhedsrisiko?

Kører containere som root med ubegrænsede muligheder. En root-container med alle muligheder kan undslippe til værtssystemet, få adgang til andre containere, værtsressourcer og potentielt Kubernetes API-serveren. Rettelsen er enkel: indstil runAsNonRoot: sand, slip alle kapaciteter, og brug skrivebeskyttede filsystemer. Disse tre indstillinger eliminerer størstedelen af ​​containersikkerhedsrisikoen.

Hvordan håndterer jeg hemmeligheder i containere?

Bag aldrig hemmeligheder ind i containerbilleder eller videregiv dem som miljøvariabler (synlige i proceslister og logfiler). Brug ekstern hemmelig styring: HashiCorp Vault med sidevognsinjektion, AWS Secrets Manager med ECS/EKS integration eller Azure Key Vault med CSI driver. Hemmeligheder bør injiceres under kørsel og kun gemmes i hukommelsen, aldrig på disken.

Om forfatteren

Fredrik Karlsson
Fredrik Karlsson

Group COO & CISO at Opsio

Operational excellence, governance, and information security. Aligns technology, risk, and business outcomes in complex IT environments

Editorial standards: This article was written by a certified practitioner and peer-reviewed by our engineering team. We update content quarterly to ensure technical accuracy. Opsio maintains editorial independence — we recommend solutions based on technical merit, not commercial relationships.

Vil du implementere det, du lige har læst?

Vores arkitekter kan hjælpe dig med at omsætte disse indsigter til handling.