Dieses Dokument befindet sich in aktiver Entwicklung und ist noch nicht finalisiert.
Skip to content

6.2 Base Image Policy

Docker Base-Image-Verwaltung

Die Sicherheit von Container-basierten Produkten beginnt beim Base Image. Diese Policy definiert die Anforderungen an Base Images und deren kontinuierliche Aktualisierung.

Anforderungen

Erlaubte Base Images

KategorieErlaubte ImagesBegründung
Bevorzugtalpine, distroless, scratchMinimale Angriffsfläche
Erlaubtdebian-slim, ubuntu (LTS)Breite Kompatibilität
Eingeschränktnode, python, dotnet (offizielle)Nur offizielle Images
VerbotenUnbekannte / nicht-offizielle ImagesNicht verifizierbar

Qualitätskriterien

  • Offizielle Quelle: Nur Docker Official Images oder Verified Publisher
  • Aktuelle Version: Letzte LTS- oder Stable-Version
  • Minimale Größe: Slim/Alpine-Varianten bevorzugen
  • Bekannte Schwachstellen: Keine unpatched CRITICAL CVEs

Automatisiertes Base-Image-Monitoring

Der bestehende Workflow modules-docker-base-image-monitor.yml überwacht kontinuierlich die Base Images aller Container-Projekte.

Funktionsweise

Scheduled (wöchentlich/täglich)

    ├── Docker Hub API / GHCR prüfen
    │   └── Neue Version des Base Images verfügbar?

    ├── Neue Version erkannt
    │   ├── PR erstellen mit Update
    │   ├── CI/CD Pipeline triggern
    │   │   ├── Build mit neuem Base Image
    │   │   ├── Trivy Scan des neuen Images
    │   │   └── Tests
    │   │
    │   └── Bei Erfolg:
    │       ├── Auto-Merge (wenn konfiguriert)
    │       └── Oder: Review durch DevOps

    └── Keine neue Version
        └── Nächster Scan-Zyklus

Dependabot Docker-Monitoring

Ergänzend zum Base-Image-Monitor überwacht Dependabot Docker-Ökosysteme:

yaml
# .github/dependabot.yml
updates:
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    labels:
      - "dependencies"
      - "docker"
      - "security"

Multi-Stage Builds

Für Produktions-Images verwenden wir Multi-Stage Builds:

dockerfile
# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY . .
RUN npm ci && npm run build

# Stage 2: Production (minimales Image)
FROM gcr.io/distroless/nodejs20-debian12
COPY --from=builder /app/dist /app
CMD ["app/server.js"]

Vorteile:

  • Build-Tools sind nicht im Produktions-Image
  • Minimale Angriffsfläche
  • Kleinere Image-Größe
  • Weniger potenzielle Schwachstellen

Patch-Prozess für Base Images

Schwere der CVE im Base ImageMaßnahmeFrist
CRITICALSofortiges Update + Rebuild + Release48h
HIGHUpdate im nächsten Patch-Release7 Tage
MEDIUMUpdate im nächsten Minor-Release30 Tage
LOWUpdate im regulären ZyklusNächster Release

Dokumentation lizenziert unter CC BY-NC 4.0 · Code lizenziert unter MIT