La seguretat d'imatges és un aspecte crític en l'ús de Kubernetes, ja que les imatges de contenidors poden ser un vector d'atac si no es gestionen adequadament. Aquest tema cobreix les millors pràctiques per assegurar les imatges de contenidors, incloent la creació, l'escaneig, la signatura i la gestió d'imatges.

Conceptes Clau

  1. Imatges de Contenidors: Fitxers que contenen tot el necessari per executar una aplicació, incloent el codi, les biblioteques, les variables d'entorn i els fitxers de configuració.
  2. Registre d'Imatges: Un servei per emmagatzemar i distribuir imatges de contenidors. Exemples inclouen Docker Hub, Google Container Registry (GCR) i Amazon Elastic Container Registry (ECR).
  3. Escaneig d'Imatges: El procés d'analitzar imatges de contenidors per detectar vulnerabilitats de seguretat.
  4. Signatura d'Imatges: Un mètode per garantir la integritat i l'autenticitat d'una imatge de contenidor.

Millors Pràctiques per a la Seguretat d'Imatges

  1. Utilitzar Imatges Oficials i de Confiança

  • Descarregar Imatges Oficials: Sempre que sigui possible, utilitza imatges oficials dels registres de confiança com Docker Hub.
  • Verificar la Font: Assegura't que les imatges provenen de fonts verificades i de confiança.

  1. Escanejar Imatges per a Vulnerabilitats

  • Eines d'Escaneig: Utilitza eines com Trivy, Clair o Anchore per escanejar les imatges de contenidors per a vulnerabilitats conegudes.
  • Automatització: Integra l'escaneig d'imatges en el teu pipeline de CI/CD per assegurar que totes les imatges es revisen abans de ser desplegades.

  1. Signar i Verificar Imatges

  • Docker Content Trust (DCT): Utilitza DCT per signar i verificar imatges de contenidors. Això garanteix que les imatges no han estat manipulades.
  • Notary: Una altra eina per signar i verificar imatges de contenidors.

  1. Minimitzar la Superfície d'Atac

  • Imatges Lleugeres: Utilitza imatges base lleugeres com Alpine Linux per reduir la superfície d'atac.
  • Eliminar Components Innecessaris: Assegura't que les imatges només contenen els components necessaris per executar l'aplicació.

  1. Gestió de Secrets

  • No Incloure Secrets: No incloguis secrets com claus API o contrasenyes dins de les imatges de contenidors.
  • Utilitzar Kubernetes Secrets: Emmagatzema i gestiona secrets utilitzant Kubernetes Secrets.

Exemple Pràctic: Escaneig d'Imatges amb Trivy

A continuació, es mostra un exemple de com escanejar una imatge de contenidor utilitzant Trivy.

Instal·lació de Trivy

# Instal·lar Trivy
brew install aquasecurity/trivy/trivy

Escanejar una Imatge

# Escanejar una imatge de contenidor
trivy image nginx:latest

Sortida de l'Escaneig

2023-10-01T12:00:00.000Z    INFO    Need to update DB
2023-10-01T12:00:00.000Z    INFO    Downloading DB...
2023-10-01T12:00:00.000Z    INFO    Detecting Debian vulnerabilities...

nginx:latest (debian 10.9)
===========================
Total: 10 (UNKNOWN: 0, LOW: 5, MEDIUM: 3, HIGH: 2, CRITICAL: 0)

+------------------+------------------+----------+-------------------+---------------+--------------------------------+
|     LIBRARY      | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION |             TITLE              |
+------------------+------------------+----------+-------------------+---------------+--------------------------------+
| apt              | CVE-2021-XXXX    | HIGH     | 1.8.2             | 1.8.2.1       | apt: integer overflow in...    |
| bash             | CVE-2021-YYYY    | MEDIUM   | 5.0-4             | 5.0-4.1       | bash: heap-based buffer...     |
+------------------+------------------+----------+-------------------+---------------+--------------------------------+

Exercici Pràctic

Objectiu

Escanejar una imatge de contenidor personalitzada per detectar vulnerabilitats i aplicar les millors pràctiques de seguretat.

Passos

  1. Crear una Imatge Personalitzada:

    • Escriu un Dockerfile per a una aplicació simple.
    • Construeix la imatge utilitzant docker build.
  2. Escanejar la Imatge:

    • Utilitza Trivy per escanejar la imatge creada.
  3. Aplicar Millores:

    • Identifica les vulnerabilitats i actualitza el Dockerfile per solucionar-les.
    • Torna a construir i escanejar la imatge fins que no hi hagi vulnerabilitats crítiques.

Solució

Dockerfile Inicial

# Utilitzar una imatge base
FROM ubuntu:18.04

# Instal·lar dependències
RUN apt-get update && apt-get install -y \
    python3 \
    python3-pip

# Copiar el codi de l'aplicació
COPY . /app

# Establir el directori de treball
WORKDIR /app

# Instal·lar les dependències de l'aplicació
RUN pip3 install -r requirements.txt

# Executar l'aplicació
CMD ["python3", "app.py"]

Escaneig Inicial

trivy image my-custom-image:latest

Millores Aplicades

  • Canviar la imatge base a una versió més lleugera com Alpine.
  • Actualitzar les dependències a versions més segures.

Dockerfile Millorat

# Utilitzar una imatge base lleugera
FROM python:3.8-alpine

# Copiar el codi de l'aplicació
COPY . /app

# Establir el directori de treball
WORKDIR /app

# Instal·lar les dependències de l'aplicació
RUN pip install --no-cache-dir -r requirements.txt

# Executar l'aplicació
CMD ["python", "app.py"]

Escaneig Final

trivy image my-custom-image:latest

Conclusió

La seguretat d'imatges és essencial per protegir les aplicacions desplegades en Kubernetes. Seguint les millors pràctiques com utilitzar imatges de confiança, escanejar per vulnerabilitats, signar imatges i minimitzar la superfície d'atac, pots assegurar que les teves imatges de contenidors són segures i fiables.

Curs de Kubernetes

Mòdul 1: Introducció a Kubernetes

Mòdul 2: Components Bàsics de Kubernetes

Mòdul 3: Gestió de Configuració i Secrets

Mòdul 4: Xarxes en Kubernetes

Mòdul 5: Emmagatzematge en Kubernetes

Mòdul 6: Conceptes Avançats de Kubernetes

Mòdul 7: Monitorització i Registre

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2024. Tots els drets reservats