Der Marktführer im Bereich Digital Trust für das Zeitalter der KI und Quantencomputer.   Entdecken Sie, wie Keyfactor dies Keyfactor .

Code Signing und Kubernetes-Sicherheits-Workflows: Was Sie wissen müssen

Code-Signierung

Da CI/CD heute Standard ist, müssen moderne Anwendungen nicht mehr als Monolithen entwickelt und ausgeliefert werden. Vorbei sind die Zeiten der "Release Days" und massiver Produktaktualisierungen mit langen Vorlaufzeiten und isolierten Entwicklungsbemühungen. Die steigende Popularität und Bedeutung von containerisierten Anwendungen führte zum Wachstum von Orchestrierungsplattformen wie Kubernetes, deren Sicherheit inzwischen für viele moderne Anwendungen von entscheidender Bedeutung geworden ist.

Aber wie können Sie nachweisen, dass das, was Sie in Kubernetes ausführen, auch wirklich das ist, was Sie entwickelt haben und bereitstellen wollten? Container-Orchestrierungsplattformen profitieren stark von Code-Signierung.

Code Signing ist ein wichtiges Sicherheitselement in einer Shift-Links-Entwicklungsstrategie, bei der Sicherheitsmaßnahmen als Funktionen in das Produkt eingebaut werden, bevor es ausgeliefert wird.

Code Signing erhöht die Sicherheit und das Vertrauen in software , indem es software an die Identität bindet und ihre Integrität mit kryptografischen Signaturen bestätigt. Die Zertifikats- und Identitätsstrategie ist nicht länger ein Vorrecht von TLS und Geräteidentitäten. Die Ausweitung auf Entwickler- und Build-Identitäten in Kubernetes ist eine wichtige Möglichkeit, das digitale Vertrauen in Ihrer Organisation zu stärken.

Die Entwicklung mit Kubernetes hat viele Vorteile, aber auch Fallstricke, die durch Code Signing behoben werden können. Lesen Sie weiter, um eine Diskussion über potenzielle Lücken in Kubernetes-Sicherheitwie Code Signing und PKI dazu beitragen können, diese Lücken zu schließen, und die besten Praktiken für signierte Container-Sicherheits-Workflows.

Lücken in der Kubernetes-Sicherheit 

Die Public Key Infrastructure (PKI) ist ein notwendiger Bestandteil der Anwendungsentwicklung und -bereitstellung. Kubernetes stützt sich bereits auf PKI angewiesen für seine vielen Komponenten. Steuerebene, Kubelets, Client-Zertifikate und mehr verwenden alle X.509-Zertifikate und Zertifikatssignierungsanfragen (CSRs) nativ.

Der Umfang einer typischen PKI-Implementierung ist jedoch oft auf die Infrastruktur beschränkt, so dass software , die in Pods und Containern ausgeführt werden, ungeschützt und potenziell gefährdet sind, wenn ihre Integrität nicht auf andere Weise überprüft wird. A Software Bill of Materials, SBOM) kann einen Teil dieser Transparenzlücke schließen, indem sie ein vollständiges Inventar der Komponenten und Abhängigkeiten innerhalb von Container-Images bereitstellt, während die Codesignierung verifiziert, dass diese Images aus vertrauenswürdigen Quellen stammen.

In dem Maße, in dem Teams flüssigere und automatisierte CI/CD-Pipelines einführen und Container-Registries und Kubernetes-Cluster nutzen, können unsignierte oder kompromittierte Images an Scanning-Tools vorbeigehen und in der Produktion ausgeführt werden. Im besten Fall handelt es sich um einen ehrlichen Fehler. Im schlimmsten Fall: kompromittierte Assets, unterbrochene Prozesse und teure Folgen des Schadens. Veränderbar Bild-Tags verschärfen das Risiko, da jemand denselben Tag erneut verwenden und dabei die systemeigenen Prüfungen umgehen könnte. Aus diesem Grund wird in vielen Architekturleitfäden die Notwendigkeit einer kryptografischen Signatur und einer Signaturüberprüfung im Cluster hervorgehoben.

In der Praxis kann es natürlich vorkommen, dass sich Entwickler gegen die Reibung sträuben, die Signierverfahren in den Ablauf einbringen, oder dass sie auf Ad-hoc-Skripte außerhalb der Governance zurückgreifen.

Dies führt zur Unterzeichnung Schlüssel-Wildwuchs und schwachen Signierpraktiken, bei denen Code-Signierskripte nicht funktionieren oder die Signierung überhaupt nicht durchgeführt wird. Doch damit nicht genug der Herausforderungen: Eine intelligente, auf Skalierungsprozesse abgestimmte Schlüsselverwaltung erfordert nicht nur eine höhere Sicherheit für die Speicherung privater Schlüssel (idealerweise in HSMs oder Schlüsseltresoren), sondern auch ein automatisiertes Zertifikats-Lebenszyklusmanagement für clusterübergreifende Konsistenz.

Die Durchsetzung von Richtlinien zur Laufzeit ist ebenfalls eine Voraussetzung für einen sichereren Kubernetes-Betrieb. Sobald ein Image signiert ist, sollten Admission Controller oder Policy Engines überprüfen, dass die Kubernetes-Umgebung nur Images mit gültigen und überprüfbaren Signaturen ausführt. Darüber hinaus muss die betreffende Signierungsinfrastruktur flexibel genug sein, um mit der sich schnell entwickelnden Cybersicherheitslandschaft und den Fortschritten in der Kryptografie Schritt zu halten. Der Aufbau einer agilen Infrastruktur, die die Ressourcen des Unternehmens bei der Weiterentwicklung nicht übermäßig belastet, ist eine der wichtigsten Herausforderungen von DevOps.

Wie man die Vertrauenslücke bei Kubernetes überbrückt

Angesichts der Herausforderungen bei der Implementierung von Code Signing in Kubernetes ist es nicht verwunderlich, dass einige Umgebungen noch immer keinen Gebrauch davon machen, obwohl es eindeutig notwendig ist.

Der typische unsichere Arbeitsablauf sieht folgendermaßen aus: Der Entwickler überträgt den Code; CI/CD erstellt ein Container-Image; das Image wird an eine Registry übertragen; Kubernetes bringt es in Produktion. Probleme? Ein paar:

  1. Es gibt keinen kryptografischen Beweis, der dieses Bild mit einem verifizierten Erstellungsprozess in Verbindung bringt.
  2. Jeder, der Zugriff auf die Registry hat, könnte das Image ersetzen oder manipulieren, und Kubernetes würde es trotzdem bereitstellen, da es nur dem Tag vertraut.
  3. Die resultierende Pipeline ist effizient, aber ist sie auch vertrauenswürdig? Sie ist definitiv nicht überprüfbar.

Es gibt zahlreiche Möglichkeiten, diesen Arbeitsablauf zu sichern, die sich nicht ausschließlich auf das Signieren von Code beschränken.

Schritt 1: Einführung einer verifizierten Identität in den Erstellungsprozess

Code Signing macht Anwendungsworkflows überprüfbar und an eine überprüfbare Identität gebunden. Mit einem Zertifikatsmanagement-Tool wie Keyfactor Commandwird ein Code Signing-Zertifikat für das Build-System über dasselbe PKI-Framework ausgestellt, das auch TLS und Geräte absichert. Jeder Build, der sein Container-Image und die zugehörigen Binärdateien automatisch signiert, wird Teil des sicheren CI/CD-Workflows. Diese Signatur ist an eine kontrollierte, überprüfbare Identität gebunden und nicht an einen unverwalteten Schlüssel auf einem Build-Server. Schlüssel können in integrierten HSMs oder Cloud-Schlüsseltresoren gespeichert, automatisch rotiert und im Falle einer Kompromittierung widerrufen werden, in Übereinstimmung mit PKI Best Practices.

Schritt 2: Ausdehnung des Vertrauens auf die gesamte Lieferkette

Jedes signierte Image wird zusammen mit seiner digitalen Signatur in die Container-Registry übertragen. Command verwaltet den Vertrauensanker und die Zertifikats-Metadaten, sodass jeder Kubernetes-Cluster das Image anhand der vertrauenswürdigen Root des Unternehmens verifizieren kann. Vertrauensbündel werden automatisch über Umgebungen verteilt, unabhängig von der Einrichtung (vor Ort, in der Cloud, hybrid), so dass jeder Cluster eine einheitliche Überprüfungsrichtlinie hat, wodurch die manuelle Konfigurationsabweichung beseitigt wird, die häufig die Sicherheit mehrerer Cluster untergräbt.

Schritt 3: Verwandeln Sie Kubernetes in einen Durchsetzungspunkt

Mit der Code-Signierung können die Kubernetes-eigenen Funktionen die Sicherheit der gesamten Pipeline verbessern. Wenn ein Entwickler ein neues Image bereitstellt, überprüft ein Admission Controller oder eine Policy Engine die Signatur, bevor der Pod eingeplant wird. In gewissem Sinne "hofft" Kubernetes nicht mehr, dass das Image legitim ist, sondern verifiziert es anhand des kryptografischen Nachweises, der im Rahmen der PKI-Governance des Unternehmens ausgestellt wurde, als wahr. Wenn die Image-Signatur fehlt, abgelaufen ist oder nicht vertrauenswürdig ist, wird die Bereitstellung automatisch abgelehnt, ohne dass dadurch legitime Releases verlangsamt werden. Da eine solche Durchsetzung richtliniengesteuert ist und nicht auf Ad-hoc-Skripten beruht, ist sie von Natur aus skalierbar und über Cluster hinweg konsistent.

Schritt 4: Einführung eines umfassenden Lebenszyklusmanagements mit Keyfactor Command

Einsatz von PKI-Tools wie Keyfactor Command für Container-Sicherheits-Workflows bietet die Vorteile eines vollständigen Lebenszyklus-Managements, der Automatisierung und der Eliminierung menschlicher Fehler. Code Signing-Schlüssel und Zertifikate folgen definierten, automatisierbaren Lebenszyklen von der Zertifikatserstellung, -rotation und -erneuerung bis hin zum Widerruf und der Ausmusterung von Zertifikaten. Automatisierte Lösungen für die Verwaltung des Lebenszyklus von Zertifikaten ermöglichen Unternehmen die einfache Anpassung an sich entwickelnde kryptografische Standards.

Ein ausgereifter Kubernetes-Sicherheits-Workflow überprüft die folgenden Punkte:

  • Jedes Artefakt hat eine überprüfbare Signatur, die mit einer hörbaren Identität verbunden ist.
  • Sicherheitsteams können Signieraktivitäten, Zertifikatsstatus und die Durchsetzung von Richtlinien in allen Clustern über ein einziges, einheitliches Dashboard einsehen.
  • Audit-Protokolle zeigen genau, welcher Schlüssel welches Build wann und mit wessen Befugnis signiert hat, was die Einhaltung von Vorschriften erleichtert.
  • Abgelaufene oder verlorene Anmeldedaten werden rechtzeitig erkannt und korrigiert, so dass es zu keinen Ausfällen oder Sicherheitslücken kommt.

Bewährte Praktiken der Codesignierung für Kubernetes-Sicherheitsabläufe

Die Codesignierung in Kubernetes umfasst vier integrierte Ebenen: Erstellung und Signierung, Überprüfung und Durchsetzung, Registrierung und Speicherung sowie Vertrauensverteilung und Lebenszyklusmanagement.

Die Build- und Signierschicht umfasst CI/CD-Pipelines, die automatisch signierende Identitäten anfordern, wobei die richtlinienbasierte Ausgabe an die PKI des Unternehmens gebunden ist. Kubernetes-Zulassungssteuerungen validieren Signaturen anhand von verwalteten Vertrauensankern, sodass nur verifizierte Workloads ausgeführt werden können. Signierte Images und Metadaten werden gemeinsam gespeichert, so dass die Herkunft jedes Artefakts in den Registern nachvollziehbar ist. Erfolgreiche Automatisierung synchronisiert Vertrauensbündel, rotiert Schlüssel und aktualisiert kryptografische Standards, ohne Bereitstellungen zu unterbrechen.

Unter Berücksichtigung dieser vier Ebenen der Kubernetes-Sicherheit sollten Sie einige bewährte Verfahren implementieren:

  • Bereitstellung von Bildern mit unveränderlichen Digests anstelle von veränderbaren Tags, um Substitutionsangriffe zu verhindern
  • Definition von Richtlinien auf Clusterebene, damit nur von autorisierten Build-Systemen signierte Workloads zugelassen werden
  • Speicherung von privaten Signierschlüsseln in HSMs oder integrierten Tresoren und Automatisierung ihrer Rotation
  • Vollständige Prüfprotokolle der Unterzeichnungs- und Überprüfungsvorgänge zur Einhaltung der Vorschriften
  • Planung für Krypto-Agilität, da sich Signieralgorithmen viel schneller entwickeln als die Lebenszyklen der Infrastruktur

Schlussfolgerung

Die Kubernetes-Sicherheit umfasst jetzt nicht nur den Schutz der Infrastruktur, sondern auch die Sicherung von software durch Code Signing. Die Integration von Code Signing in den Workflow wird zu einer Standardpraxis, um DevOps-Agilität und PKI-Sicherheit zu verbinden und sicherzustellen, dass jeder Workload authentifiziert und autorisiert ist.

Wenn auf Ihren Kubernetes-Clustern nur kryptografisch verifizierte software läuft, ist Sicherheit keine Annahme mehr, sondern wird zu einer Betriebsgarantie.

Dieser Prozess kann klein beginnen: Signieren Sie eine einzelne CI/CD-Pipeline, erzwingen Sie Signaturen in einem Cluster, und weiten Sie ihn dann auf das gesamte Unternehmen aus. 

Keyfactor Command bietet die Automatisierung und Transparenz, um es skalierbar zu machen, von der Ausstellung und Rotation von Zertifikaten bis zur Verwaltung von Vertrauensbündeln und der Integration mit CI/CD- und Kubernetes-Tools.

Die Zukunft der Containersicherheit ist überprüfbares Vertrauen. Nehmen Sie Kontakt mit Keyfactor und helfen Sie mit, sie aufzubauen. Haben Sie noch Fragen? Unser Team ist für Sie da!