Einführung
Angriffe auf die Software-Lieferkette sind nicht mehr nur ein theoretisches Risiko; sie passieren, und sie treffen hart. Vorfälle wie die SolarWinds-Verstoß und die Log4Shell-Sicherheitslücke hat schmerzlich deutlich gemacht, dass Angreifer es nicht mehr nur auf Ihren Code abgesehen haben; sie haben es auf alles abgesehen, was damit in Berührung kommt, einschließlich der Tools, Bibliotheken und Container, auf die Sie sich verlassen.
In dieser Realität ist das Signieren und Verifizieren von Container-Images kein nettes Extra, sondern ein Muss. Wenn Sie unsignierte Images pushen oder Signaturprüfungen während der Bereitstellung überspringen, öffnen Sie Angreifern Tür und Tor, um unbemerkt Schadcode einzuschleusen.
Hier kommt unser CodeSign Secure ins Spiel.
Mit CodeSign Secure können Sie Ihre Container-Images ganz einfach digital signieren und verifizieren, bevor sie in die Produktion gehen. Egal, ob Sie eine schnelllebige CI/CD-Pipeline betreiben oder Hunderte von Microservices verwalten – CodeSign Secure hilft Ihnen, Ihre Container-Lieferkette zu sichern, ohne den Prozess zu verlangsamen.
In den folgenden Abschnitten erklären wir Ihnen, wie unser CodeSign Secure in Ihren Arbeitsablauf passt, wie es Ihre Bilder mit HSM-gestützte Schlüssel und wie Sie Signaturprüfungen erzwingen können, bevor etwas bereitgestellt wird.
Die Rolle der Code-Signierung in DevSecOps
Bei DevOps dreht sich alles um Geschwindigkeit, schnelle Updates, Automatisierung und ständige Bewegung. Doch mit dieser Geschwindigkeit gehen auch Risiken einher. Je schneller Sie Code ausliefern, desto größer ist die Wahrscheinlichkeit, dass etwas Unzuverlässiges durchrutscht. Genau hier kommt es an DevSecOps kommt ins Spiel, indem Sicherheit direkt in den Prozess integriert wird, anstatt sie am Ende hinzuzufügen.
Eine der besten Möglichkeiten, dieses Vertrauen aufzubauen, ist die Code-Signierung. Wenn Sie Container-Images signieren, versehen Sie sie im Grunde mit einem Siegel, das besagt: „Das stammt von uns und wurde nicht manipuliert.“ Es handelt sich um eine einfache Überprüfung, die wesentlich dazu beiträgt, sicherzustellen, dass das, was Sie in der Produktion ausführen, genau das ist, was Sie erstellen wollten.
Unsere Plattform, CodeSign Secure, integriert sich in Ihr CI / CD-Pipeline Das Signieren ist also keine separate Aufgabe, sondern Teil des Builds. Jedes Image, das erstellt und gepusht wird, kann automatisch signiert werden. Und bevor es bereitgestellt wird, kann die Signatur überprüft werden, um sicherzustellen, dass unterwegs nichts manipuliert wurde.
Es geht darum, die Sicherheit auf Autopilot zu stellen. Mit unserer Plattform müssen Sie sich nicht zwischen Schnelligkeit und Sicherheit entscheiden. Sie bekommen beides.
Signieren von Container-Images mit CodeSign Secure
Bevor Sie mit der Image-Signierung fortfahren, müssen Docker und CoSign (das CLI-Tool unseres CodeSign Secure) auf diesem Computer installiert werden.
Bitte befolgen Sie die unten aufgeführten Schritte zur Installation von Cosign.
CoSign installieren
# binär
wget „https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-linux-amd64“
mv cosign-linux-amd64 /usr/local/bin/cosign
chmod +x /usr/local/bin/cosign
# U/min
wget „https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-2.0.0.x86_64.rpm“
rpm -ivh cosign-2.0.0.x86_64.rpm
# dkpg
wget „https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign_2.0.0_amd64.deb“
dpkg -i cosign_2.0.0_amd64.deb
Installieren und Einrichten von Python und Docker
sudo apt-get installiere docker.io
sudo apt-get install python-is-python3
sudo apt python3-pip installieren
sudo apt-get install python3-docker
sudo apt-get -y installiere python3-openssl
sudo apt-get install -y dbus-user-session
sudo apt-get install -y docker-ce-rootless-extras
Wenn docker-ce-rootless-extras einen Fehler ausgibt, führen Sie die folgenden Schritte aus:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg echo „deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable“ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get installiere docker-ce-rootless-extras
Nun müssen Sie sich in Ihrem Docker Hub-Konto anmelden, indem Sie den folgenden Befehl ausführen.
sudo Docker-Anmeldung
Einrichten der Containersignatur
- Laden Sie die Container Signing Tools vom CodeSign Secure-Portal herunter.
- Gehe zum Ordner SignImage.
-
Öffnen Sie die Datei „ec-signer.conf“ und aktualisieren Sie die Codesigning-URL, den Pfad Ihres SSL-Authentifizierungszertifikats und das Kennwort des Zertifikats.
Anmerkungen: Das SSL-Authentifizierungszertifikat und das Passwort können über das CodeSignSecure-Portal generiert werden.
- Terminal öffnen
- Ausführen
./ec-signer –Projektname= –Bildname= –docker_username=
-
Sie werden aufgefordert, das Docker Hub-Passwort und die Root-Berechtigungen für den aktuellen Benutzer anzugeben
-
Sie können ein neues Signaturbild auf Ihrem Docker Hub-Konto sehen.
Überprüfen des Container-Images
Durch die Überprüfung von Container-Images können Sie nur signierte Docker-Images bereitstellen und nicht signierte ablehnen. Zur Überprüfung der Container-Image-Signatur muss Kubernetes bereitgestellt werden.
Kubernetes installieren
Bitte folgen Sie dem folgenden Befehl, um Kubernetes zu installieren.
curl -sfL https://get.k3s.io | sh –
Erstellen von Kubernetes-Diensten
Bevor wir ein Image in einer Kubernetes-Umgebung überprüfen können, müssen die folgenden Dienste im Kubernetes-Cluster bereitgestellt werden
- Image-Dienst überprüfen
- Webhook-Dienst zur Bildvalidierung
Führen Sie die folgenden Schritte aus, um den Verify Image Service zu erstellen:
- Gehen Sie zum Verzeichnis ../VerifyImage/image-verifier.
-
Erstellen Sie ein Docker-Image mit dem Namen „verifyImage“ mithilfe der im Ordner vorhandenen Docker-Datei
Beispielsweise:
sudo docker build -t aryan34/demo:verifyImage
wobei „aryan34“ der Docker-Benutzername und „demo“ der Name des Docker Hub-Repositorys ist.
-
Übertragen Sie dieses Image nun auf Ihr Docker Hub-Konto
Beispielsweise:
sudo docker image push aryan34/demo:verifyImage
wobei „aryan34“ der Docker-Benutzername und „demo“ der Name des Docker Hub-Repositorys ist.
- Öffnen Sie nun die Datei validator-deploy.yaml und aktualisieren Sie die folgenden Einstellungen
- Zertifikatsname
- server_url
- pfx_file_path
- pfx_file_passwd
- DOCKER_BENUTZERNAME
- DOCKER_PASSWORD
- Bild (HINWEIS: Behalten Sie den Bildnamen „verifyImage“ bei. Ändern Sie nur den Docker-Benutzernamen und den Repository-Namen.)
-
Bereitstellen des Image Verifier Service
sudo kubectl apply -f validator-deploy.yaml
Führen Sie die folgenden Schritte aus, um den Image Validation Service zu erstellen:
- Gehen Sie zum Verzeichnis ../VerifyImage/validating-webhook.
-
Erstellen Sie mithilfe der im Ordner vorhandenen Docker-Datei ein Docker-Image mit dem Namen „image-validation-webhook“.
Beispielsweise:
sudo docker build -t aryan34/demo:image-validation-webhook
Dabei ist „aryan34“ der Docker-Benutzername und „demo“ der Name des Docker Hub-Repositorys.
-
Übertragen Sie dieses Image nun auf Ihr Docker Hub-Konto
Beispielsweise:
sudo docker image push aryan34/demo:image-validation-webhook
wobei „aryan34“ der Docker-Benutzername und „demo“ der Name des Docker Hub-Repositorys ist.
-
Stellen Sie jetzt die Webhook-Geheimnisse und die YAML-Konfigurationsdateien bereit.
sudo kubectl apply -f webhook-secret.yaml
sudo kubectl apply -f webhook-config.yaml
-
Öffnen Sie nun die Datei webhook-deploy.yaml und aktualisieren Sie die folgenden Einstellungen
- Bild (HINWEIS: Behalten Sie den Bildnamen „image-validation-webhook“ bei. Ändern Sie nur den Docker-Benutzernamen und den Repository-Namen.)
-
Stellen Sie den Webhook zur Bildvalidierung bereit
sudo kubectl apply -f webhook-deploy.
-
Wenn die Dienste erfolgreich bereitgestellt wurden, führen wir den folgenden Befehl aus –
sudo kubectl get pods -all-namespaces
Wir sollten die folgende Ausgabe erhalten –

Tests
Wenn wir versuchen, ein nicht signiertes Container-Image bereitzustellen, schlägt die Bereitstellung fehl. Dank unserer Kubernetes-Verifizierungsdienste können wir nur signierte Images bereitstellen.
Bereitstellen eines nicht signierten Images
Wir müssen eine YAML-Datei für das unsignierte Bild erstellen
Wir haben eine Datei demo-deployment-unsigned.yaml erstellt, um das nicht signierte Image aryan34/demo:notSigned bereitzustellen.
Hier ist eine YAML-Beispieldatei. Denken Sie daran, den bereitgestellten Dienstnamen (Demo-Deployment-Unsigned), den Imagenamen und die Portnummer zu ändern.
apiVersion: apps/v1 Art: Bereitstellung Metadaten: Name: Demo-Bereitstellung-unsigniert Labels: App: Demo-Spezifikation: Replikate: 1 # Anzahl der gewünschten Replikate Selektor: MatchLabels: App: Demo-Vorlage: Metadaten: Labels: App: Demo-Spezifikation: Container: - Name: Demo-Image: aryan34/demo:notSigned # unsigniertes Demo-Image Ports: - ContainerPort: 8997 # Port zum Freigeben
Um das nicht signierte Image mit Kubernetes bereitzustellen, führen Sie den folgenden Befehl aus.
sudo kubectl apply -f demo-deployment-unsigned.yaml

Bereitstellen eines signierten Images
Hier ist eine YAML-Beispieldatei. Denken Sie daran, den Namen des bereitgestellten Dienstes (deployed-demo), den Imagenamen und die Portnummer zu ändern.
apiVersion: apps/v1 Art: Bereitstellung Metadaten: Name: Demo-Bereitstellung Labels: App: Demo-Spezifikation: Replikate: 1 # Anzahl der gewünschten Replikate Selektor: MatchLabels: App: Demo-Vorlage: Metadaten: Labels: App: Demo-Spezifikation: Container: - Name: Demo-Image: aryan34/demo:new3 # signiertes Demo-Image Ports: - ContainerPort: 8999 # Port zum Freigeben
Um das signierte Image mit Kubernetes bereitzustellen, führen Sie den folgenden Befehl aus.
sudo kubectl apply -f demo-deployment.yaml
Wenn Sie jetzt alle Pods überprüfen, sehen Sie, dass ein Demo-Bereitstellungsdienst erfolgreich ausgeführt wird.

CodeSign Secure + SBOM: Gewährleistung der Transparenz in der Lieferkette
Zu wissen, was sich in Ihren Containern befindet, ist genauso wichtig wie zu wissen, wer sie erstellt hat. Hier kommen SBOMs (Software Bill of Materials) ins Spiel. Sie listen alle Komponenten Ihres Container-Images auf, sozusagen eine Nährwertkennzeichnung für Ihre Software.
Mit CodeSign Secure können Sie Ihre SBOMs signieren und direkt an Ihre Container-Images anhängen. Das bedeutet, dass jeder, der Ihr Image abruft, sowohl das Image als auch das SBOM überprüfen kann, um sicherzustellen, dass sie echt und unberührt sind.
Unsere Plattform unterstützt gängige SBOM-Formate wie SPDX, sodass Sie unabhängig von Ihren bereits verwendeten Tools abgesichert sind. Und das Beste daran? Sie können diese Prüfungen erzwingen. Wenn ein Image ohne signiertes SBOM angezeigt wird oder das SBOM nicht den Erwartungen entspricht, können Sie die Bereitstellung direkt blockieren.
Kein SBOM? Keine Bereitstellung. Ganz einfach.
Dadurch erhalten Sie Einblick in die laufenden Vorgänge und können Probleme erkennen, bevor sie später zu Sicherheitsproblemen werden.
CodeSign Secure und Post-Quantum-Kryptographie
Quantencomputing ist noch nicht Realität, aber wenn es sich durchsetzt, könnten viele aktuelle Verschlüsselungsmethoden in Schwierigkeiten geraten. Algorithmen wie RSA und ECC, die wir heute zum Signieren verwenden, haben gegen eine ausreichend leistungsstarke Quantenmaschine keine Chance.
Deshalb ist unsere Plattform, CodeSign Secure, ist jetzt mit Unterstützung für LMS (Leighton-Micali Signature) verfügbar, einen der vom NIST empfohlenen Post-Quanten-Algorithmen. LMS ist so konzipiert, dass es auch dann noch leistungsstark bleibt, wenn Quantencomputer zu einer echten Bedrohung werden.
Sie können unsere Plattform bereits jetzt mit LMS testen, um zu sehen, wie Post-Quantum-Signing in Ihre Pipeline passt. Es funktioniert mit HSMs, die LMS unterstützen, und lässt sich wie jeder andere Algorithmus integrieren, den CodeSign Secure verarbeitet. Keine besonderen Tricks erforderlich.
Mit Blick auf die Zukunft werden wir die Unterstützung weiterer Post-Quanten-Algorithmen erweitern, sobald die Standards finalisiert sind, darunter auch die aus dem NIST PQC-Wettbewerb. Wenn also die Umstellung auf quantensichere Signierung notwendig wird, brauchen Sie sich keine Sorgen zu machen; wir kümmern uns um Sie.
Funktionen für Unternehmen
Wenn Sie Code Signing in großem Maßstab durchführen, benötigen Sie mehr als nur eine Signatur. Sie benötigen Kontrolle, Transparenz und die Flexibilität, sich an die Arbeitsweise Ihres Teams anzupassen.
- Rollenbasierte Zugriffskontrolle und -überwachung: Nicht jeder sollte jedes Image signieren können. Mit CodeSign Secure RBAC können Sie fein abgestufte Berechtigungen einrichten, sodass nur Ihre Release Engineers Produktionsbuilds freigeben können, während Entwickler Zugriff auf Umgebungen mit geringerem Risiko erhalten. Jede Signaturaktion wird automatisch protokolliert, sodass Sie einen vollständigen Prüfpfad darüber haben, wer was, wann und mit welchem Schlüssel signiert hat.
- Zentrales Dashboard für die Sichtbarkeit der Signatur: Vorbei sind die Zeiten, in denen Sie Protokolle mehrerer CI-Jobs durchsuchen mussten. Das Dashboard unserer Plattform vereint alle Ihre Signaturvorgänge an einem Ort und zeigt Ihnen auf einen Blick, welche Bilder gültige Signaturen haben, welche Schlüssel sie verwendet haben und welche Überprüfungen fehlgeschlagen sind. Wenn etwas nicht stimmt, erkennen Sie es sofort und können durchklicken, um Details anzuzeigen.
- API-First-Architektur für benutzerdefinierte Integrationen: Möchten Sie unsere Plattform in Ihre eigenen Tools integrieren oder einen benutzerdefinierten Workflow automatisieren? Alle Funktionen von CodeSign Secure werden über eine gut dokumentierte REST-API bereitgestellt. So können Sie praktisch alles skripten, um einen Sign-and-Push-Schritt in Ihrem maßgeschneiderten CI-Tool auszulösen, interne Berichte zu erstellen oder die Plattform in Ihr bereits genutztes Sicherheitsticketsystem zu integrieren.
Mit diesen Unternehmensfunktionen signiert CodeSign Secure nicht nur Ihre Bilder, sondern hilft Ihnen auch bei der Verwaltung und Überwachung jedes einzelnen Schritts des Prozesses.
Fazit
Bedrohungen in der Lieferkette bleiben bestehen, und sie zu ignorieren ist keine Option. Doch die Abriegelung von Abläufen muss Sie nicht ausbremsen. Mit unserem CodeSign SecureSie erhalten ein Tool, das sich direkt in Ihre vorhandene Pipeline einfügt, dort, wo es darauf ankommt, für starke Sicherheit sorgt und Ihnen vom Build bis zur Bereitstellung die Kontrolle behält.
Von der Signierung von Container-Images und SBOMs bis hin zu deren Verifizierung mit HSM-gestützten Schlüsseln und der Vorbereitung auf eine quantensichere Zukunft – unsere Plattform hilft Ihnen, alle Kästchen anzukreuzen, ohne Ihrem Team zusätzliche Reibungspunkte zu bereiten.
Wenn Sie bereit sind, die Containersicherheit ernst zu nehmen, ohne Ihre Arbeitsabläufe zu verkomplizieren, probieren Sie unser CodeSign Secure aus.
