Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Holistische Sicherheit für Microservice Architekturen

101 views

Published on

OOP 2020, Februar 2020, München: Vortrag von Mario-Leander Reimer (@LeanderReimer, Technischer Geschäftsbereichsleiter bei QAware)

== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==

Abstract: Holistische Sicherheit für Microservice-Architekturen ist komplex: Eine Vielzahl an Infrastruktur-Bausteinen, Technologien und Betriebseinheiten mit ihren API-Endpunkten und Kommunikationskanälen muss berücksichtigt werden. Hier braucht es ein flexibles und vor allem mehrschichtiges Vorgehen. Dieser Vortrag gibt einen Überblick zu Ansätzen, relevanten Schutzmechanismen und Technologien zur Absicherung von Microservice-Architekturen auf Ebene der Infrastruktur, der Plattform und der Anwendung.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Holistische Sicherheit für Microservice Architekturen

  1. 1. Holistische Sicherheit für Microservice Architekturen OOP 2020 // @LeanderReimer #cloudnativenerd {{ 04.02.2020 }}
  2. 2. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware #whoami 2 Mario-Leander Reimer Chief Software Architect QAware GmbH
  3. 3. https://imgur.com/gallery/LGAZEqu The Monolith
  4. 4. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Monolithische Systeme waren vergleichsweise einfach abzusichern. • Kleinere Angriffsfläche in Bezug auf die öffentlichen APIs. • Keine Verteilung. Kaum IPC. • Überschaubarer Technologie-Stack • Geringe Infrastruktur-Komplexität • Managed Infrastruktur (OS Updates, Version Upgrades, Patches) • Lange Release-Zyklen. One Team. 4 Monolithic Vintage System Users system.example.com
  5. 5. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Microservice-basierte Systeme sind komplexer. Ihre Absicherung ist deutlich aufwändiger. • Starke Verteilung und zahlreiche Kommunikationskanäle • Heterogener Technologie-Stack • Hohe Infrastruktur-Komplexität mit vielen Komponenten • Neues Betriebsmodell mit mehr Verantwortung beim Entwickler • Kurze Release Zyklen. Viele Teams. 5 Service A Service B Service C Service X Service Y Service Z Users
  6. 6. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Microservice-basierte Systeme müssen auf allen Ebenen und Sichten der Softwarearchitektur gesichert werden. 6 TI - ArchitekturT - ArchitekturA - Architektur Konzeptionelle Sicht Modulsicht Ausführungssicht Programmsicht Anforderungen Komponenten Schnittstellen Nachbarsysteme Anwendungsfälle Entitätenmodell Rechner Netzwerke Infrastruktur Produkte Bibliotheken Frameworks Technologien
  7. 7. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Die Sicherheitsarchitektur eines Systems sichert die Architektur auf den verschiedenen Ebenen. 7 Anwendungs-Architektur Technische Architektur Sichere Anwendungs-Architektur Sichere Technische Architektur Sicherheits-Anforderungen Security Targets Externe Quellen:
 OWASP Top 10, BSI, PSA, Technische Infrastruktur Sichere Technische InfrastrukturSicherheits
 Architektur
  8. 8. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Die Sicherheitsarchitektur besteht aus abgesicherten Komponenten und Kommunikationskanälen. 8 Komponente A Komponente B Kanal A-B Trust boundary
 (Abgesicherter) Kommunikationskanal Komponente Schnittstelle über einen Gatekeeper gesichert • Ein System besteht aus Komponenten. Diese sind durch Kommunikationskanäle verbunden. • Beispiele für Komponenten: Datacenter, VMs, Container, App Server, Datenbanken, Softwaremodule, Browser, … • Jede Komponente wird von jemanden bereitgestellt, der vertrauenswürdig oder nicht vertrauenswürdig ist. • Jede Komponente hat eine definierte Sicherheit (von unsicher bis sehr sicher): Wie gründlich muss der Gatekeeper sein: Vom Jedermanns-Recht bis zur Festung • Jeder Kanal hat eine definierte Sicherheit (von sehr sicher bis unsicher): Wie robust ist der Kanal und das dabei verwendete Protokoll gegenüber den typischen Angriffen?
  9. 9. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Sicherheitskomponenten können Sicherheitsgruppen bilden mit harten Grenzkontrollen oder laxer innerer Sicherheit. 9 Komponente A Komponente B Komponente D Komponente C Strenge Sicherheit Schwache Sicherheit Keine Sicherheit Sicherheitsgruppe und
 Trust Boundary
  10. 10. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Konzepte aus dem Domain Driven Design helfen beim Entwurf der Sicherheitsarchitektur. • Bounded Context definiert die fachlichen Systemgrenzen • Fachlicher und technischer Schnitt mit Event Storming • Anti-Corruption Layer kapselt und isoliert die Zugriffe zwischen Bounded Contexts • Value Objects: self-validated, immutable Data Types 10
  11. 11. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Introducing DHARMA: Domain Hierarchy Access Regulation for Microservices Architecture • Nützliche Access Control Mechanismen für Microservices • Network-Level Controls: Segmentation, SSL/TLS, SPIFFE • Infrastructure: Network Overlays, Proxies / API Gateways, Service Meshes • Application Level Controls: API keys, OAuth 2.0, OpenID Connect, JWT • Die API Access Control Design Methodology mit DHARMA: 1. Identify Trust Domains 2. Define trust and access mechanisms 3. Determine interior and boundary endpoints 4. Select domain implementation platforms 11 https://www.ca.com/content/dam/ca/us/files/ebook/securing-microservice-apis-sustainable-and-scalable-access-control.pdf
  12. 12. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware12 DMZ A Shared PaaS Reverse Proxy Reverse Proxy Namespace Bounded Context A APIGateway Reverse Proxy Users 3rd Party Apps Mobile Namespace Security Context SecurityAPIGateway Auth Token <-> JWT Auth Service 
 X Auth Service 
 Y Auth Service 
 Z Service A Service B JWKS
 Service 3 JWT JWT 5 2 2 1 4 4 1. Proprietary Authentication Token 2. Authorise and swap token to JSON Web Token 3. Propagate Token 4. Verify Token with JSON Web Key Set 5. Propagate Token 6. Like 4. Verify Token with JSON Web Key Set
  13. 13. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware13 W E N S Ingress Egress API Gateways für Nord-Süd Kommunikation Service Meshes für Ost-West Kommunikation
  14. 14. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware15 API Gateways are like the Façade Pattern in
 Cloud Native Application Design and Microservice Architectures
  15. 15. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware • Traffic Management: Path, Header, Host based Routing, Path Rewrite • Security: AAA, Terminate TLS, Support for JWT and JWKS, Open ID • Quality of Service: Rate Limiting, Quota • Observability: Logging, Monitoring, Tracing, Auditing • Resiliency: Circuit Breaker, Retry, Timeouts • Protocol Translation: XML to JSON, gRPC to JSON, … • Transformation: Fan Out / Collect, Backend for Frontend, GraphQL • Rollout and Deployment: A/B Deployment, Canary Release, et.al. 16
  16. 16. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Four Categories of API Gateways A. API Management Solutions: Kong, Tyk, Mulesoft, 3scale, Apigee, … B. Build Your Own API Gateway: Netflix Zuul 2, Spring Cloud Gateway, Vert.x, Ballerina, Camel, … C. Service Proxies: Envoy, Nginx, OpenResty, Traefik, … D. Cloud Native API Gateways: KrakenD, Ambassador, Gloo, Maesh, … 17
  17. 17. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Container Orchestration Patterns 1. Sidecar Container: Extend container behaviour • Log Extraction / Reformatting (fluentd, logstash) • Scheduling (cron, quartz) 18 2. Ambassador Container: Proxy communication • TLS Tunnel (stunnel, ghostunnel) • Circuit Breaking (Envoy, Linkerd, Istio) • Request Monitoring (Istio, Linkerd) 3. Adapter Container: Provide a standardized interface • Monitoring (Prometheus) • Configuration (ConfigMaps, Secrets)
  18. 18. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware19
  19. 19. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Istio Service Mesh Architecture and Components 20
  20. 20. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Service Mesh für Arme auf Basis Envoy 21
  21. 21. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware22
  22. 22. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware The 4C’s of Cloud Native Security 23 Cloud Cluster Container Code https://kubernetes.io/docs/concepts/security/overview/#the-4c-s-of-cloud-native-security
  23. 23. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Code • Apply Defensive Programming Practices: Educate and Read • 3rd Party Dependency Security: Trusted Repositories (Nexus, Artifactory), Build Tool Integration (OWASP Plugins) • Static Code Analysis: Google Error Prone, Sonar, et.al. • Dynamic Probing Attacks als Teil der CI/CD Pipeline: Headless OWASP Zed Attack Proxy, Crashtest Security Suite • Zero Trust Mindset: Access over TLS only, limit port ranges 24
  24. 24. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Container • Disallow Privileged Users. • Build minimal images. Consider Distroless. • Use Trusted Registries and Trusted Images. • Container Vulnerability Scanning und OS Dependency Security als Teil der CI/CD Pipeline mit Tools wie Claire • Image Signing and Enforcement: CNCF Projects (TUF and Notary) are useful tools for signing container images and maintaining a system of trust, IBM’s Portieris for enforcement. 25 # Start by building the application. FROM golang:1.12 as build WORKDIR /go/src/app ADD . /go/src/app RUN go get -d -v ./... RUN go build -o /go/bin/app # Now copy it into our base image. FROM gcr.io/distroless/base COPY --from=build /go/bin/app / CMD ["/app"]
  25. 25. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Cluster • Sowohl die Komponenten des Clusters selbst auch die Applications-Komponenten müssen gesichert werden. Empfehlung: Nutze einen Managed Cluster as a Service Dienst. • Application secrets management (and encrypting them in etcd at rest) 
 https://kubernetes.io/docs/concepts/configuration/secret/ • Pod Security Policies: 
 https://kubernetes.io/docs/concepts/policy/pod-security-policy/ • Quality of Service (and Cluster resource management) 
 https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/ • Network Policies: 
 https://kubernetes.io/docs/concepts/services-networking/network-policies/ • TLS For Kubernetes Ingress:
 https://kubernetes.io/docs/concepts/services-networking/ingress/#tls 26
  26. 26. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Cloud • Beachte die Cloud Provider Security Guidelines! 27 IaaS Provider Link Alibaba Cloud https://www.alibabacloud.com/trust-center Amazon Web Services https://aws.amazon.com/security/ Google Cloud Platform https://cloud.google.com/security/ IBM Cloud https://www.ibm.com/cloud/security Microsoft Azure https://docs.microsoft.com/en-us/azure/security/azure-security VMWare VSphere https://www.vmware.com/security/hardening-guides.html
  27. 27. // OOP 2020 // Holistische Sicherheit für Microservice Architekturen // @LeanderReimer #cloudnativenerd #qaware Holistische Sicherheit für Microservice-basierte Systeme betrifft alle Ebenen vom Entwurf bis zum Betrieb. 28 Infrastructure Certificates Tokens Passwords Security Testing DAST + SAST Secure Components Domain Driven Design Security Patterns Sicherheitsanforderungen Schutzbedarfsanalyse Angreifer-Analyse OWASP Top 10 Defensive Programming Dependencies Package Signing Container Security
  28. 28. Mario-Leander Reimer Chief Software Architect, QAware GmbH mario-leander.reimer@qaware.de https://www.qaware.de https://speakerdeck.com/lreimer/ &

×