Supply-Chain Security für Container: Signierung, SBOM und Provenance

Die Sicherheit von Container-basierten Anwendungen hängt nicht nur vom Hosten und Betrieb der Container selbst ab, sondern zunehmend auch von der Integrität der gesamten Software-Lieferkette. Supply-Chain Security beschreibt dabei Maßnahmen, die sicherstellen, dass Container-Images von vertrauenswürdigen Quellen stammen, unverändert bleiben und dass alle Abhängigkeiten transparent nachvollziehbar sind. In Zeiten komplexer Microservice-Architekturen und ständig wechselnder Images wird diese Transparenz immer wichtiger.

1. Die Bedeutung von Container Supply-Chain Security

Container-Lieferketten bestehen aus mehreren Stufen: Entwickler, CI/CD-System, Registry, Base-Images, Dependencies und letztlich der Deployment-Umgebung. Jede dieser Stufen kann potenziell kompromittiert werden. Angreifer könnten manipulierte Images bereitstellen oder Schadcode in Abhängigkeiten einschleusen. Daher ist es entscheidend, dass Unternehmen Mechanismen implementieren, die Authentizität und Integrität nachweisen können.

Risiken ohne Supply-Chain Security

  • Manipulation von Base-Images, z. B. mit versteckten Backdoors
  • Unsichere oder veraltete Abhängigkeiten in Docker-Images
  • Fehlende Nachverfolgbarkeit von Änderungen zwischen Builds
  • Gefahr von Image-Spoofing und unautorisierten Deployments

2. Signierung von Container-Images

Die digitale Signierung von Images ermöglicht es, die Herkunft und Integrität eines Images zu überprüfen. Tools wie Cosign oder Notary helfen dabei, Signaturen in den CI/CD-Prozess zu integrieren.

Funktionsweise

  • Ein Image wird nach dem Build mit einem privaten Schlüssel signiert.
  • Die Signatur wird zusammen mit dem Image in der Registry abgelegt.
  • Beim Deployment oder Pull prüft der Client oder die Orchestrierungsplattform die Signatur gegen den öffentlichen Schlüssel.
# Beispiel: Cosign Signierung eines Images
cosign sign --key cosign.key myregistry/myapp:latest

Überprüfung der Signatur

cosign verify --key cosign.pub myregistry/myapp:latest

3. Software Bill of Materials (SBOM)

Ein SBOM listet sämtliche Komponenten eines Images auf, inklusive Versionen, Lizenzen und Herkunft. Dies erhöht die Transparenz und erleichtert Security-Scans.

Vorteile eines SBOM

  • Erkennen von Schwachstellen in Abhängigkeiten
  • Nachvollziehbarkeit von Komponenten für Audits
  • Unterstützung von Compliance-Anforderungen
# Erstellung eines SBOM mit Syft
syft myregistry/myapp:latest -o json > myapp-sbom.json

4. Provenance und Nachverfolgbarkeit

Provenance beschreibt, wie ein Image entstanden ist: Welche Schritte im Build-Prozess wurden durchgeführt, welche CI/CD-Pipelines genutzt und welche Versionen von Base-Images und Dependencies verwendet wurden.

Provenance sichern

  • CI/CD-Pipelines protokollieren: Commit-ID, Build-Nummer, Base-Image
  • Signierte Artifacts ablegen und überprüfen
  • Registries nutzen, die Provenance-Metadaten speichern
# Beispiel für SLSA-konforme Provenance mit Cosign
cosign attest --type slsa --key cosign.key myregistry/myapp:latest 
  --predicate myapp-provenance.json

5. Integration in CI/CD

Die Security-Maßnahmen sollten direkt in den Build- und Deployment-Prozess integriert werden, um automatisierte und verlässliche Prüfungen sicherzustellen.

Empfohlene Schritte

  • Automatisches Signieren nach erfolgreichem Build
  • SBOM-Generierung und Vulnerability-Scan mit Tools wie Trivy oder Grype
  • Verifikation der Signaturen vor Deployment
  • Automatisches Ablehnen unsignierter oder kompromittierter Images
# Beispiel CI/CD Job Snippet (GitLab CI)
build:
  stage: build
  script:
    - docker build -t myapp:$CI_COMMIT_SHA .
    - cosign sign --key cosign.key myapp:$CI_COMMIT_SHA
    - syft myapp:$CI_COMMIT_SHA -o json > sbom.json

6. Registry-Security

Die Sicherheit der Container-Registry ist ein kritischer Bestandteil der Supply-Chain Security. Registries sollten TLS erzwingen, Authentifizierung und Zugriffskontrolle bieten sowie Signaturen und Provenance unterstützen.

Best Practices

  • Nur vertrauenswürdige Registries verwenden
  • Automatisierte Image-Scanning-Regeln implementieren
  • SBOMs und Provenance-Metadaten speichern
  • Read-only Zugriffsrechte für Deployments, Write-Zugriff nur für CI/CD

7. Monitoring und Audit

Um die Supply-Chain kontinuierlich zu sichern, sollten Logs und Events regelmäßig überprüft werden.

Monitoring-Maßnahmen

  • Vulnerability-Scans bei jedem Pull
  • Audit-Logs für Image-Signaturen und Deployment prüfen
  • Alerts bei Unsigned oder manipulierten Images
  • SBOM-Reports auf bekannte CVEs überwachen

8. Zusammenfassung

Supply-Chain Security für Container ist essenziell, um das Vertrauen in Container-basierte Deployments zu gewährleisten. Die Kernmaßnahmen sind:

  • Digitale Signierung von Container-Images (z. B. Cosign)
  • Erstellung und Nutzung von SBOMs zur Transparenz der Abhängigkeiten
  • Provenance-Daten sichern, um Build-Prozesse nachvollziehbar zu machen
  • Integration der Prüfungen in automatisierte CI/CD-Pipelines
  • Absicherung der Registry und kontinuierliches Monitoring

Durch diese Maßnahmen lässt sich das Risiko kompromittierter Images erheblich reduzieren und die Integrität der gesamten Container-Lieferkette sicherstellen.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles