CloudLand 2023, Juni 2023, Markus Zimmermann
== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==
Ein Kubernetes Cluster ist heutzutage schnell aufgesetzt: ob mit Installationsplattformen wie Rancher oder in der Public Cloud als Managed Service wie AWS EKS. Doch die größten Probleme ergeben sich im aktiven Betrieb des Clusters. Im Enterprise-Umfeld hat die Konzern-Security sehr viele Anforderungen an den Cluster, ohne die ein Produktiveinsatz nicht möglich ist.
Es stellt sich nun die Frage: Brauche ich Enterprise-Versionen von Security Tools oder gibt es auch gute Open Source Tools, die all meine Anforderungen erfüllen?
In meinem Talk möchte ich eine Übersicht über die State-of-the-Art Open Source Tools für verschiedene Kubernetes-Security-Themen geben und zeigen, inwieweit sie allgemeine Enterprise-Anforderungen erfüllen.
Die Themen sind unter anderem:
- Signierung von Container Images
- Mutual TLS zwischen Microservices
- Container und Application Vulnerability Scanning
- Cluster Runtime Security
- Governance durch Policies
Dabei ergänze ich jede Vorstellung der Tools mit Erfahrungen und Best Practices aus dem Projektalltag und zeige die Limitierungen der Tools auf.
7. Definition Enterprise Security
■ Hohe Compliance Anforderungen Bsp. ISO/IEC 27001
– DSGVO hat größeren Impact
– Sicherheitskritische Systeme bsp. Bankenwesen
■ Großer Scale: Viele verschiedene Bereiche und diverse
Teams und Projekte
– Nicht jeder nutzt den gleichen Software Stack oder
den gleichen Cloud Provider
■ Komplizierte Netzwerke und IT Infrastrukturen
7
QAware
8. Was brauchen Tools, um Enterprise-Ready zu sein?
■ Management Visibility
– Analyse per Dashboards in zentralisierten UIs und Reporting
– Integration in andere Enterprise Tools wie Jira oder Service Now
– Anbindungen an SAML/OIDC für Logins und RBAC Konzept
■ Hohe Skalierbarkeit
– Software-agnostisch und Provider-agnostisch -> Plugins
– Automatisierung per APIs
■ Compliance
– Möglichkeit für Self-Hosting oder SaaS Lösung Zertifiziert
– Audit Logs
– Professional Support
8
QAware
11. Control Plane absichern
■ Private Networking
■ Authentication mit OIDC oder SAML zum AD
■ Managed Service von Cloud Providern nutzen
■ Kubernetes Dashboard - read-only
11
QAware
13. L4 - Network Policies
13
QAware
■ Ingress und Egress Zugriff auf Pod Ebene
einschränken
■ Regeln sind Additiv
■ Deny-All Regeln nicht vergessen
14. Pods und Secrets
14
QAware
■ Automount von Default Service Account deaktivieren
■ Container Image Version nie auf Latest
■ Reduzierte Base Images nutzen
■ Secret Zugriff per RBAC einschränken
■ Secrets verschlüsseln in Repos bsp. mit Sealed Secrets
18. 18
QAware
Die Threats
Manipulierte Images
Vulnerabilities in Code oder
Container
Falsche Applikation oder
Runtime Konfiguration
Traffic Manipulation und Überwachung
Falscher Netzwerkzugriff
Cluster Manipulationen und Host
Zugri
ff
Vulnerabilities in laufenden Services
21. Auswahlkriterien für Open Source Tools
■ Aktive Community-Unterstützung und regelmäßige
Updates
■ Viele Nutzer in Production und “Production Readiness”
■ Qualität der Dokumentation
■ Features und Erweiterbarkeit
■ Unterstützung für gängige Plattformen
21
QAware
22. 22
QAware
Schutzmaßnahme - Image Signing
Image Signing
Vulnerability Scanning
Governance durch
Policies
Mutual TLS und L7 Policies
Runtime Security
Vulnerabilities Scanning im Cluster
24. Image Signing - Notary vs Cosign
24
■ Notary v1 - komplexes Setup mit
Server Installation
■ Notary v2/Notation noch im
Release Candidate Status
■ Notation hat mehr Features wie
Key Revocation und besseren
Signature Payload
■ Unterstützung von Standard
OCIs - hohe Kompatiblität
■ Keyless Signatures mit
Github OIDC
■ Key Management Support
für populäre Clouds
Notary Cosign
26. Image Signing - Best Practices
26
QAware
■ Als Transparency Log kann man die Public Instanz
nutzen aber auch selber hosten
■ k8s System Images oft nicht abgedeckt
■ Historie durch Batch Signierung nachziehen
■ Connaisseur unterstützt mehrere Public Keys somit
lassen sich mehrere Sources abdecken
27. 27
QAware
Schutzmaßnahme - Vulnerability Scanning
Image Signing
Vulnerability Scanning
Governance durch
Policies
Mutual TLS und L7 Policies
Runtime Security
Vulnerabilities Scanning im Cluster
29. Vulnerability Scanning - Trivy vs Clair
29
■ Simples Setup - nur eine
Binary
■ Schnellere Scans
■ Application Scanning von 8
Programmiersprachen und
Container Scanning
■ Kompliziertes Server und
Vulnerability Datenbank
Setup
■ Nur Container Scanning
■ Mehr Flexibilität bei
Vulnerability Databases
Trivy Clair
30. Vulnerability Scanning - Empfehlung
Container Scanning mit Trivy in CI
30
■ Scannt nahezu alle OS Package Systeme
■ Kann auch Application Dependencies
scannen (nutzt dafür die Github
Datenbank)
■ Simples Setup - keine Datenbank oder
Server Instanz notwendig
■ Leicht in CI integrierbar
QAware
32. Vulnerability Scanning - Best Practices
32
QAware
■ Entwickler werden sich über False Positives beschweren
-> Suppressions notwendig
■ Belohnungen notwendig damit Vulnerabilities auch konstant gefixt
werden
■ Container Vulnerabilities sind eine Blackbox für Entwickler
-> Automatische Updates der Base Images
■ Statische Dependency Analyse kann natürlich nicht genau
bestimmen ob eine Vulnerability wirklich ausgenutzt werden kann
33. 33
QAware
Schutzmaßnahme - Policy Management
Image Signing
Vulnerability Scanning
Governance durch
Policies
Mutual TLS und L7 Policies
Runtime Security
Vulnerabilities Scanning im Cluster
35. Policy Management - OPA vs Kyverno
35
■ Policy in Rego
■ Komplexe Policies möglich
■ Außerhalb von k8s auch
einsetzbar bsp. Terraform
■ Validation, Mutation
■ Simpler zu nutzen, da
Policies k8s nativ
■ Validation, Mutation,
Generation
■ Image Verification von
Signaturen (beta)
OPA / Gatekeeper Kyverno
36. Policy Management - Beispiel Kyverno
36
Source: https://kyverno.io/docs/introduction/
37. Policy Management - Best Practices
37
QAware
■ Policies immer vorher testen bevor auf Prod -> Erst Audit dann
Enforce
■ Default Policies aka Pod Security Standards verwenden
■ Beispiel Policies in den Policy Libraries nutzen
■ Bei GitOps darauf achten bei Mutation Felder zu ignorieren
■ Kyverno reicht für Kubernetes-only - bei komplexeren Policies oder
Self-Service Platform lieber OPA nutzen
38. 38
QAware
Schutzmaßnahme - Service Mesh
Image Signing
Vulnerability Scanning
Governance durch
Policies
Mutual TLS und L7 Policies
Runtime Security
Vulnerabilities Scanning im Cluster
40. Service Mesh - Zwei Möglichkeiten
40
■ Beide sind in Production im Einsatz bei vielen
Unternehmen
■ Linkerd ist simpler aber hat weniger Features in Sachen
Traffic Management und Zero Trust Networking
■ Vom Observability Aspekt ähnlich
Wer die Features braucht nimmt Istio
QAware
41. Wie hilft ein Service Mesh hier bei mTLS?
41
Beispiel mit Istio
42. Service Mesh - Best Practices
42
■ Gute Testphase wichtig und Blue/Green ausrollen
■ Production Runbook von Linkerd beachten
https://buoyant.io/runbook/linkerd-runbook
■ Ohne Probleme ist es nicht einsetzbar - Zeitpuffer
einplanen
■ LINUX Netzwerk Verständnis unersetzlich
QAware
43. 43
QAware
Schutzmaßnahme - Runtime Security
Image Signing
Vulnerability Scanning
Governance durch
Policies
Mutual TLS und L7 Policies
Runtime Security
Vulnerabilities Scanning im Cluster
45. Runtime Security - Tool Vergleich
45
■ Alle drei können Security Violations mit Policies auf System Calls
erkennen
■ Tetragon in Cilium und Aqua Tracee sind von Anfang an eBPF basiert,
Falco zieht ihre Regeln nach
■ Aqua Tracee kann mit Forensics interessante Artifacts analyisieren
■ Falco und Tetragon können auch Policies enforcen
47. Runtime Security - Erfahrungen mit Falco
47
QAware
■ Default Regeln verursachen sehr viel Noise
■ Viele false positives die gefiltert werden müssen
■ Policy Management als Admission Hook schränkt auch
schon viel ein
■ Bräuchte ML um bessere Erkennung zu bekommen weil
unklar ist was ein Angriff ist und was nicht
49. Enterprisetauglichkeit der Lösungen
49
QAware
■ Management Visibility
– Analyse per Dashboards und Reporting
– Integration in andere Enterprise Tools
– Falls UI - Loginanbindung und RBAC
Skala von gut bis schlecht erfüllt
■ Hohe Skalierbarkeit
– Software-agnostisch und Provider-agnostisch
– Automatisierung per APIs
■ Compliance
– Möglichkeit für Self-Hosting
– Audit Logs
– Professional Support
50. Wann SaaS Lösung?
50
■ Zertifiziert und DSGVO Konform
■ Eigene Betriebs- und Entwicklungskosten zu groß
■ Kein eigenes Knowledge im Thema und keine
Kapazität
■ Vergleich der Kosten:
– Enterprise self-hosting
– Entwicklungskosten mit Opensource
– SaaS Lösung
QAware
51. Zusammenfassung
51
QAware
■ Kubernetes Security Basics im Kopf behalten
■ Open Source Tooling hat die richtigen Features aber
fürs Enterprise sind Erweiterungen nötig im Bereich
Reporting und Integrationen sowie Compliance
■ Professional Support meistens einkaufbar mit
Enterprise Produkten basierend auf den Open Source
Tools
■ Contribute!