0Pricing
DevOps Bootcamp · Lektion

Best Practices für die Dockerfile-Sicherheit

Implementieren Sie Sicherheitsmaßnahmen in Ihren Dockerfiles, um Schwachstellen und die Angriffsfläche zu minimieren.

Best Practices für die Dockerfile-Sicherheit ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Sichern Sie Ihre Dockerfiles ab!

Willkommen bei Best Practices für die Sicherheit von Dockerfiles! Eine sichere Anwendung beginnt mit einer sicheren Grundlage.

Ihre Dockerfile ist nicht nur ein Build-Skript, sondern auch ein Bauplan für die Sicherheit Ihrer Anwendung. Schlechte Vorgehensweisen können hier zu erheblichen Sicherheitslücken führen.

In dieser Lektion lernen Sie wichtige Strategien kennen, um Ihre Docker-Images abzusichern und potenzielle Angriffsflächen zu minimieren.

Best Practices für die Dockerfile-Sicherheit — Illustration 1

Beginnen Sie mit vertrauenswürdigen Basis-Images

Die Anweisung FROM ist Ihre erste Verteidigungslinie. Wählen Sie immer offizielle, gut gepflegte Basis-Images aus vertrauenswürdigen Quellen wie Docker Hub.

  • Offizielle Images: Diese Images sind verifiziert und werden regelmäßig aktualisiert.
  • Spezifische Tags: Vermeiden Sie latest. Verwenden Sie spezifische Versions-Tags wie alpine:3.18, um Vorhersagbarkeit und Stabilität zu gewährleisten.
  • Minimale Images: Entscheiden Sie sich für „slim“- oder „alpine“-Varianten. Sie enthalten weniger Pakete und somit weniger potenzielle Sicherheitslücken.

Ein sicheres Basis-Image auswählen

Sehen Sie, wie die Auswahl eines minimalen Basis-Images mit spezifischer Version die Sicherheit verbessern kann. Dadurch wird die Anzahl der Pakete und Tools reduziert, die für Angriffe ausgenutzt werden könnten.

FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest

# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.

Image-Größe minimieren

Jede Datei, jedes Paket und jede Abhängigkeit, die Sie Ihrem Image hinzufügen, vergrößert dessen „Angriffsfläche“. Je weniger Software vorhanden ist, desto weniger potenzielle Sicherheitslücken gibt es.

Installieren Sie nur, was für die Ausführung Ihrer Anwendung unbedingt erforderlich ist. Entfernen Sie Build-Tools und temporäre Dateien, sobald sie nicht mehr benötigt werden.

Nach der Installation aufräumen

Räumen Sie bei der Installation von Paketen immer die Caches des Paketmanagers auf und entfernen Sie unnötige Dateien. Dadurch wird das fertige Image kleiner und potenzielle Informationslecks werden beseitigt.

Verwenden Sie bei Debian-basierten Images wie Ubuntu apt-get clean und entfernen Sie /var/lib/apt/lists/* in derselben RUN-Anweisung.

FROM debian:stable-slim

RUN apt-get update && \
    apt-get install -y --no-install-recommends \ 
    curl \ 
    git && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# All in one RUN command to leverage Docker's caching and reduce layers.

Führen Sie nichts als Root aus!

Standardmäßig werden Prozesse in einem Docker-Container als Benutzer root ausgeführt. Das stellt ein erhebliches Sicherheitsrisiko dar!

Wenn ein Angreifer die Kontrolle über Ihren Container erlangt, verfügt er über Root-Berechtigungen. Dadurch könnte er möglicherweise aus dem Container ausbrechen oder das Hostsystem kompromittieren.

Erstellen Sie immer einen eigenen Benutzer ohne Root-Rechte und wechseln Sie mithilfe der Anweisung USER zu diesem Benutzer.

Einen Benutzer ohne Root-Rechte einrichten

So erstellen Sie einen neuen Benutzer und weisen Docker an, die nachfolgenden Befehle als dieser Benutzer auszuführen. Dadurch wird der potenzielle Schaden bei einer Kompromittierung des Containers erheblich begrenzt.

FROM alpine:3.18

# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

# Switch to the non-root user
USER appuser

CMD ["echo", "Hello from non-root user!"]

Keine Secrets in der Dockerfile!

Schreiben Sie niemals vertrauliche Informationen wie API-Schlüssel, Datenbankpasswörter oder private Schlüssel direkt in Ihre Dockerfile und übernehmen Sie sie auch nicht in Ihr Image.

Diese Secrets können von jeder Person mit Zugriff auf das Image leicht extrahiert werden, selbst wenn Sie sie in einem späteren Layer löschen.

Verwenden Sie stattdessen sichere Verfahren wie Docker Secrets, Umgebungsvariablen (für nicht vertrauliche Daten) oder Kubernetes Secrets zur Laufzeit.

COPY gegenüber ADD bevorzugen

Sowohl die Anweisungen COPY als auch ADD kopieren Dateien in Ihr Image. Aus Sicherheits- und Klarheitsgründen wird jedoch im Allgemeinen COPY bevorzugt.

  • COPY: Kopiert ausschließlich lokale Dateien oder Verzeichnisse. Die Funktionsweise ist übersichtlich und vorhersehbar.
  • ADD: Kann zusätzlich Dateien von URLs abrufen und komprimierte Archive (tar, gzip) automatisch entpacken. Diese zusätzlichen Funktionen bergen potenzielle Sicherheitsrisiken, etwa das Herunterladen nicht vertrauenswürdiger Inhalte oder das Entpacken schädlicher Archive.

Verwenden Sie grundsätzlich COPY, es sei denn, Sie benötigen ausdrücklich die erweiterten Funktionen von ADD und kennen die damit verbundenen Risiken.

Sicherheitsprüfung!

Welche der folgenden Vorgehensweisen bei Dockerfiles ist ein entscheidender Schritt, um die Angriffsfläche zu verkleinern und potenzielle Sicherheitslücken zu minimieren?

Ihre Reise zur sicheren Dockerfile

Gut gemacht! Sie haben wichtige Best Practices für die Sicherheit von Dockerfiles kennengelernt, die die Grundlage für eine sichere Containerisierung bilden:

  • Beginnen Sie mit vertrauenswürdigen, minimalen Basis-Images: Verwenden Sie offizielle, spezifische und schlanke Images.
  • Minimieren Sie die Image-Größe: Installieren Sie nur das Nötige und räumen Sie nach der Installation auf.
  • Führen Sie den Container als Benutzer ohne Root-Rechte aus: Begrenzen Sie die Berechtigungen, um die Auswirkungen möglicher Sicherheitsverletzungen zu reduzieren.
  • Vermeiden Sie Secrets: Schreiben Sie niemals vertrauliche Daten fest in Ihre Dockerfile.
  • Bevorzugen Sie `COPY` gegenüber `ADD`: Entscheiden Sie sich für die besser vorhersehbare und sicherere Anweisung `COPY`.

Durch die Anwendung dieser Vorgehensweisen verbessern Sie die Sicherheitslage Ihrer containerisierten Anwendungen erheblich!

Häufig gestellte Fragen

Ist die Lektion „Best Practices für die Dockerfile-Sicherheit“ kostenlos?

Ja — der vollständige Text von „Best Practices für die Dockerfile-Sicherheit“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Best Practices für die Dockerfile-Sicherheit“?

Implementieren Sie Sicherheitsmaßnahmen in Ihren Dockerfiles, um Schwachstellen und die Angriffsfläche zu minimieren. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Best Practices für die Dockerfile-Sicherheit“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Multi-Stage-Builds für mehr Effizienz
  2. Build-Caching nutzen
  3. Best Practices für die Dockerfile-Sicherheit
  4. Image-Größe mit Slim- und Distroless-Basen minimieren
← Zurück zu DevOps Bootcamp