# Container Security: Schwachstellen-Scanning & Image-Integrität

TL;DR / Management Summary Ein Container-Image ist eine Sammlung von tausenden Software-Paketen. Viele davon haben bekannte Sicherheitslücken (CVEs). Image Scanning prüft den Inhalt eines Images gegen globale Schwachstellen-Datenbanken. Ein Senior Admin nutzt Tools wie Trivy oder Grype, um Images bereits in der CI/CD-Phase zu scannen. Ziel ist ein “Security Gate”: Ein Image, das kritische Sicherheitslücken enthält, darf niemals in den Proxmox-Cluster (Artikel 678) deployed werden.


# 1. Warum Image Scanning?

Der unsichtbare Feind.

Ein Dockerfile wie FROM ubuntu:latest lädt hunderte Bibliotheken.


# 2. Die wichtigsten Scanning-Tools

Die Wächter des Hafens.

  1. Trivy (Aqua Security): Der Industriestandard. Schnell, findet OS-Pakete und App-Abhängigkeiten (npm, pip, cargo).
  2. Grype (Anchore): Spezialisiert auf den Vergleich von SBOMs (Software Bill of Materials).
  3. Clair: Integriert in viele Enterprise-Registries (wie Quay).

# 3. Deep Dive: Integration in die CI/CD Pipeline

Automatisierte Qualitätskontrolle.

Bauen Sie den Scan als festen Schritt in Ihr GitLab (Artikel 800) oder GitHub Action (Artikel 801) ein.

# Beispiel GitHub Action Step
- name: Scan Image
  uses: aquasecurity/trivy-action@master
  with:
    image-ref: 'my-app:latest'
    format: 'table'
    exit-code: '1' # Bricht den Build bei kritischen Fehlern ab
    severity: 'CRITICAL,HIGH'

# 4. Day-2 Operations: Runtime Scanning

Kontrolle während des Betriebs.

Ein Image, das heute sicher ist, kann morgen durch eine neue CVE unsicher werden.


# 5. Troubleshooting & “War Stories”

Wenn die Liste der Fehler zu lang wird.

# Top 3 Herausforderungen

  1. Symptom: “Scan failed: Database timeout”.

    • Ursache: Der Scanner kann die neuesten Schwachstellen-Definitionen nicht aus dem Internet laden.
    • Lösung: Firewall-Port 443 für den Runner/Host erlauben.
  2. Symptom: Hunderte “Low” oder “Negligible” Fehler verstopfen den Bericht.

    • Lösung: Filtern Sie auf Severity: Critical, High. Konzentrieren Sie sich auf das, was wirklich ausnutzbar ist.
  3. Symptom: Fehler in einer Bibliothek, die vom Hersteller noch nicht gepatcht wurde.

    • Lösung: Nutzen Sie Vulnerability Exceptions (Whitelist) für einen begrenzten Zeitraum.

# “War Story”: Die “Schatten”-Library

Ein Admin betrieb einen stolz “selbst geschriebenen” Python-Container. Das Ereignis: Ein automatischer Trivy-Scan fand eine kritische Lücke in einer uralten Log4j Instanz. Das Problem: Der Admin schwor, kein Java zu nutzen. Die Entdeckung: Eine der importierten Python-Bibliotheken nutzte intern ein Java-Tool zum PDF-Rendering. Lehre: Ohne automatische Scans ist es unmöglich, die gesamte Abhängigkeits-Kette (Transitive Dependencies) im Blick zu behalten. Nutzen Sie Scanner, die auch in die Layer (Artikel 805) hineinschauen.


# 6. Monitoring & Reporting

Compliance im Dashboard.

# Security Dashboard

Visualisieren Sie in Grafana (Artikel 698):


# 7. Fazit & Empfehlung

Sicherheit in der Container-Welt ist kein Zustand, sondern ein Prozess.


# Anhang: Cheatsheet (Trivy CLI)

Aufgabe Befehl
Image scannen trivy image <name>
Dateisystem scannen trivy fs /path/to/project
Nur kritische trivy image --severity CRITICAL <name>
Repo scannen trivy repo https://github.com/user/repo

# Referenzen