Kubernetes hat sein Sicherheitsaudit als Open Source veröffentlicht. Was können wir daraus lernen?
Hayley Denbraver
8. August 2019
0 Min. LesezeitAnfang dieser Woche, am 6. August, veröffentlichte die Cloud Native Computing Foundation (CNCF) einen Blogbeitrag mit Einzelheiten zu ihrem kürzlich durchgeführten Sicherheitsaudit von Kubernetes. Im vergangenen Jahr startete die CNCF ihr Auditprogramm mit drei Projekten: CoreDNS, Envoy und Prometheus. Nach dem Erfolg dieses Pilotprogramms weitet die CNCF es nun auf weitere Projekte in ihrem Ökosystem aus.
Kubernetes ist eine Open-Source-Container-Orchestrierungs-Engine zur Automatisierung der Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen und das größte Projekt im CNCF-Ökosystem. Es ist großartig, dass die CNCF der Sicherheit ihres Vorzeigeprojekts Priorität einräumt.
Die wichtigsten Erkenntnisse
Die vollständigen Ergebnisse des Berichts würden den Rahmen dieses Beitrags sprengen. Dennoch möchten wir Ihnen einen allgemeinen Eindruck davon vermitteln. Viele Empfehlungen im Bericht betrafen die Bereinigung der Codebasis, zusätzliche Tests und Dokumentation sowie sicherheitsbewusstere Standardeinstellungen. Diese grundlegenden Empfehlungen würden das Beheben und Beseitigen von Problemen erleichtern, sobald sie entdeckt werden. Wichtig ist, dass es fünf Erkenntnisse mit „hohem Schweregrad“ gab, die Probleme bei der Zugriffskontrolle, Authentifizierung, Zeitmessung und Datenvalidierung betrafen. Im Einzelnen:
Umgehung der Zugriffskontrolle von PodSecurityPolicy
K8s unterstützt keinen Zertifikatswiderruf
HTTPS-Verbindungen werden nicht authentifiziert
Time-of-Check-to-Time-of-Use-Problem mit verschobener PID
Unsachgemäß behobene Verzeichnisüberquerung in kubectl cp
Der Bericht ist auf jeden Fall lesenswert und hier zu finden.
Breite und Tiefe der Sicherheitsanalyse
Der Umfang des Audits wurde so festgelegt, dass fünf Kontrollbereiche auf mögliche Probleme untersucht wurden: Netzwerke, Kryptografie, Authentifizierung und Autorisierung, Geheimnisverwaltung sowie Mandantentrennung. Kubernetes ist ein großes Projekt, und der Bericht setzt bei Sicherheitsthemen eher auf Breite als auf Tiefe. Das Audit bietet einen Überblick über den Sicherheitszustand des Projekts.
Auch wenn einige Bereiche der Codebasis von einer eingehenderen Prüfung profitieren könnten, halte ich diesen breit angelegten Ansatz für eine sehr gute Wahl. Stellen Sie sich vor, Sie gehen zum Arzt und lassen ein oder zwei zufällige Bluttests durchführen: Vielleicht erfahren Sie dabei etwas Interessantes über Ihre Gesundheit, erhalten aber wahrscheinlich kein vollständiges Bild Ihres Zustands. Wenn Sie Ihre Gesundheit hingegen ganzheitlich betrachten, bekommen Sie einen besseren Gesamteindruck, und Ihr Arzt kann mögliche Probleme gezielter untersuchen.
In diesem Bericht ging es nicht nur darum, ein oder zwei Probleme aufzuspüren (auch wenn einige genannt werden), sondern vielmehr darum, einen allgemeinen Eindruck vom Zustand von Kubernetes zu gewinnen. So lassen sich Prioritäten und Ziele festlegen, die der Sicherheit und Nachhaltigkeit des Projekts insgesamt zugutekommen. Für jede der fünf Kontrollkategorien wurden kurz- und langfristige Ziele empfohlen, die uns einen Einblick in die mögliche Zukunft von Kubernetes geben.
Vorteile für Maintainer und Communities
Es ist großartig zu sehen, dass ein so wichtiges und weit verbreitetes Projekt einem Sicherheitsaudit unterzogen wird. Damit setzt es ein gutes Beispiel für andere Projekte dieser Größenordnung und kommt sowohl den Maintainerinnen und Maintainer des Projekts als auch der gesamten Community zugute.
Die CNCF und die Maintainer von Kubernetes haben mit dem Sicherheitsaudit eine wohlüberlegte Investition getätigt. Ein Sicherheitsaudit kann den Maintainerinnen und Maintainer einen Vorsprung vor böswilligen Akteuren verschaffen und ihnen ermöglichen, proaktiv statt lediglich reaktiv für Sicherheit zu sorgen. Es ist immer besser, eigene Schwachstellen zu finden, bevor andere sie entdecken. Außerdem ist es von Vorteil, Probleme zu beheben, die in einem eigens dafür vorgesehenen Bericht aufgedeckt wurden, statt zufällig und womöglich zum denkbar ungünstigsten Zeitpunkt davon zu erfahren. Korrekturen lassen sich sorgfältig priorisieren und umsetzen, ohne dass Sie wie bei einer Offenlegung von Schwachstellen auf anderen Wegen unter demselben Zeitdruck stehen. Mit der Durchführung des Audits und der Veröffentlichung der Ergebnisse als Open Source haben sich die CNCF und die Kubernetes-Maintainer als Vorbilder auf diesem Gebiet etabliert. Sie werden andere Projekte dazu inspirieren, ihrem Beispiel zu folgen und ebenfalls Sicherheitsaudits durchzuführen und zu veröffentlichen.
Durch die Veröffentlichung der Ergebnisse als Open Source profitiert die Community nicht erst, wenn die kurz- und langfristigen Ziele erreicht sind, sondern bereits unmittelbar. Das zeigt sich auf verschiedene Weise. Erstens können Nutzerinnen und Nutzer Kubernetes einsetzen und darauf vertrauen, dass die CNCF und die Maintainer des Projekts Sicherheit ernst nehmen. Zweitens können sie die Ergebnisse prüfen und fundiertere Entscheidungen für ihre eigenen Projekte treffen. Und schließlich können sie auf alle im Audit enthaltenen Ressourcen zurückgreifen, darunter das Whitepaper und das Threat Model. Diese sind eine interessante Lektüre für alle, die ihre Kubernetes- oder Sicherheitskenntnisse erweitern möchten.
Fazit
Wenn Sie erfahren möchten, wie solche Sicherheitsaudits ablaufen, oder sich sogar an künftigen Audits beteiligen möchten, können Sie der CNCF Special Interest Group (SIG) für Sicherheit beitreten. Hier erfahren Sie mehr: https://github.com/cncf/sig-security.
Herzlichen Glückwunsch und vielen Dank an die CNCF für diese wichtige Initiative. Wir hoffen, dass Ihnen das Audit viele Vorteile bringt. Wir schließen uns Ihrer Hoffnung an, dass die CNCF durch die Veröffentlichung ihrer Sicherheitsaudits und -prozesse als Open Source andere Projekte dazu inspiriert, ihrem Beispiel zu folgen.
Container-Sicherheit mit Fokus auf Entwickler
Snyk findet und behebt automatisch Schwachstellen in Container-Images und Kubernetes-Workloads.


