DEV Community

Uhltak Therestismysecret
Uhltak Therestismysecret

Posted on

Cosign vs. Signifyd: Wie Sie Ihre Container sicher verifizieren

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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 [
Enter fullscreen mode Exit fullscreen mode

Top comments (0)