Cosign vs. Signifyd: Wie Sie Ihre Container sicher verifizieren
Einleitung: Die Gefahr von Container-Angriffen
Wenn man in der Welt von Linux Container und Kubernetes unterwegs ist, hat man sicher schon mal von der Gefahr von Angriffen auf die Supply Chain gehört. Das liegt nicht zuletzt daran, dass es immer einfacher wird, gefährliche Pakete in den eigenen Linux-Anwendungen zu verstecken. Der Trend geht klar: es gibt immer mehr Angriffe, die das eigene eigene System ausnutzen, um in die Unternehmens- oder Kunden-Daten zu gelangen. Aber was genau passiert, wenn ein Angreifer Ihre Container-Anwendungen infiziert? Wie verhält sich Ihre Umgebung, wenn ein gefährlicher Server-Kernel-Image in einem Container angemeldet wird?
Zunächst einmal, ist die Infektion Ihrer Container keine kleine Sache. Das ist ein Schaden, der sehr schnell wächst. Viele Container-Server nutzen die Sicherheitsfehler sofort, damit Sie nicht nur ein Problem wie ein gefährliches Image haben, sondern gleichzeitig auch einen Schaden wie einen Server-Crash haben.
Wir werden Cosign und Signifyd als Alternative betrachten. Wir werden sehen, was mit Ihren Container-Anwendungen passieren kann, wenn Sie diese Tools nutzen.
Cosign Container Signieren
Warum Cosign?
Zunächst einmal müssen wir verstehen, was eine Signierung ist. Eine Signierung bedeutet die endgültige Prüfung auf die Einhaltung der Vorgaben. Was Sie also mit dem Kernel Image und Ihren Benutzer-Programmen tun konnten, muss in der signierten Ausgabe überprüft werden. Umfassen das ganze nur den Container-Server als Betriebssystem für Ihre Webservices, umso wichtiger wird es, dass Sie es sich überlegen, wie Ihre Container-Anwendungen signiert werden.
Die Antwort ist Cosign. Cosign ist ein open-Source-Sicherheits-Modul, welches Container-Anwendungen sicher signiert, auch unter der Last des laufenden Betriebs. Es ermöglicht Ihnen das Verzeichnis für die Container-Anwendungen und den Dateipfad für das gewunnenene Sicherheits-Zertifikat. Die gesamte Arbeit unter Container-Anwendungen und den Dateipfaden ist immer noch ein Teil der Anwendung.
Beispiel: Cosign signieren mit Helm Charts
Um Cosign anzubinden, müssen Sie als erstes die Helm Charts erstellten, bevor Sie diese signieren. Dies können Sie erreichen, indem Sie das cosign Kommando starten, dann dem Helm Charts vorbeigeben und schließlich Ihre Abfrage erstellen mit der URL, und Ihrer Organisation.
cosign sign --key cosign.key --out cosign-cert.json https://your-project-name-1.cosign.github.com
Im Gegensatz zu anderen Tools ist es die einzige Art und Weise, mit der Sie Ihre Container-Anwendungen signieren können, die es Ihnen ermöglicht, die Sicherung zu erweiten.
Signifyd als Alternative
Signifyd ist eine alternative, aber wichtige Option. Signifyd nutzt eine ähnliche Methode, aber sie ist von Cosign so verschieden wie ein echter Hacker-Server von einem laufenden Ubuntu-Host.
Beispiel: Signifyd verwenden
Wenn Sie Signifyd nutzen möchten, dann können Sie diese von den Konfigurationen aus aufrufen. Mit dem signifyd Befehl erhalten Sie eine Signatur Ihres Images.
signifyd -in /home/user/image -out /home/user/signature
Häufige Fehler beim Signieren von Container-Anwendungen
Fehler 1: Unzureichende Sicherheitsauflagen
Einer der Hauptfehler bei Signieren von Container-Anwendungen liegt darin, dass Sie nicht genug Ausrufen nach der Sicherheitsauflagen einbauen. Da es möglich ist, dass Container-Anwendungen das eigene eigene System infizieren, müssen Sie sicherstellen, dass Sie die wichtigsten Regeln für Ihre Signierung einbauen. Wenn Sie zu wenig Regeln einbauen, ist es einfach für einen Angreifer, Ihre Container-Anwendungen infizieren zu können. Um dies zu verhindern, müssen Sie sehr genau sehen, was Sie aus Ihrem Container erstellen. Beispielsweise können Sie so den Inhalt Ihres Containers einfügen.
bash
FROM ubuntu:xenial
DIR: $APP_DIR
WORKDIR $APP_DIR
# Installieren Sie Python3
RUN apt-get update && apt-get install -y python3
# Installieren Sie das PIP
RUN pip3 install -U pip
# Installieren Sie Flask
RUN pip3 install flask
# Konfigurieren Sie den Port des Flask-Containers
EXPOSE 5000
# FĂĽhren Sie das Skript aus, wenn das Image gestartet wird
CMD [







