SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware1
Holistische Sicherheit
für Microservice-
basierte Systeme
mTLS
JWT
JWT
JWKS
DHARMA
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware2
Mario-Leander Reimer
Principal Software Architect
QAware GmbH
https://imgur.com/gallery/LGAZEqu
The Monolith
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
Legacy System
Users
system.example.com
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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?
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware12
DMZ A Shared PaaS
Reverse
Proxy
Reverse
Proxy
Namespace Bounded Context A
APIGateway
Reverse
Proxy
Users
3rd Party
Apps
Mobile
Namespace Context A
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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware13
W E
N
S
Ingress
Egress
API Gateways für
Nord-Süd Kommunikation
Service Meshes für
Ost-West Kommunikation
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware16
API Gateways
are like the Façade Pattern in

Cloud Native Application Design
and Microservice Architectures
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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.
17
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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, …
18
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware
Container Orchestration Patterns
1. Sidecar Container: Extend container behaviour
• Log Extraction / Reformatting (fluentd, logstash)
• Scheduling (cron, quartz)
19
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)
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware20
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware
Istio Service Mesh Architecture and Components
21
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware
Service Mesh für Arme auf Basis Envoy
22
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware23
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware
The 4C’s of Cloud Native Security
24
Cloud
Cluster
Container
Code
https://kubernetes.io/docs/concepts/security/overview/#the-4c-s-of-cloud-native-security
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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
25
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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.
26
# 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"]
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware
Cluster
• Sowohl die Komponenten des Clusters selbst auch die Applications-Komponenten müssen gesichert
werden. Empfehlung: Nutze einen Managed CaaS 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
27
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware
Cloud
• Beachte die Cloud Provider Security Guidelines!
28
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
// heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware
Holistische Sicherheit für Microservice-basierte Systeme
betrifft alle Ebenen vom Entwurf bis zum Betrieb.
29
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
Mario-Leander Reimer
Principal Software Architect, QAware GmbH
mario-leander.reimer@qaware.de
https://www.qaware.de
https://speakerdeck.com/lreimer/
&

Weitere ähnliche Inhalte

Ähnlich wie Holistische Sicherheit für Microservice-basierte Systeme

Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzQAware GmbH
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionQAware GmbH
 
Das kleine Einmaleins der sicheren Architektur @heise_devSec
Das kleine Einmaleins der sicheren Architektur @heise_devSecDas kleine Einmaleins der sicheren Architektur @heise_devSec
Das kleine Einmaleins der sicheren Architektur @heise_devSecMario-Leander Reimer
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Das kleine Einmaleins der sicheren Architektur
Das kleine Einmaleins der sicheren ArchitekturDas kleine Einmaleins der sicheren Architektur
Das kleine Einmaleins der sicheren ArchitekturQAware GmbH
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackQAware GmbH
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfMario-Leander Reimer
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformQAware GmbH
 
Cloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneCloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneQAware GmbH
 
Compliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtCompliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtBATbern
 
Kubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container OrchestriererKubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container OrchestriererQAware GmbH
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...QAware GmbH
 
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Mario-Leander Reimer
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)QAware GmbH
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
Multi-Cloud eGov Webinar 20220322
Multi-Cloud eGov Webinar 20220322Multi-Cloud eGov Webinar 20220322
Multi-Cloud eGov Webinar 20220322Thomas Treml
 
Per Anhalter durch den Cloud Native Stack. #SEACONHH
Per Anhalter durch den Cloud Native Stack. #SEACONHHPer Anhalter durch den Cloud Native Stack. #SEACONHH
Per Anhalter durch den Cloud Native Stack. #SEACONHHMario-Leander Reimer
 
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
Suse in der neuen Welt des Rechenzentrums - ein BeispielSuse in der neuen Welt des Rechenzentrums - ein Beispiel
Suse in der neuen Welt des Rechenzentrums - ein BeispielATIX AG
 

Ähnlich wie Holistische Sicherheit für Microservice-basierte Systeme (20)

Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Enterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue SchwarzEnterprise Cloud Native ist das neue Schwarz
Enterprise Cloud Native ist das neue Schwarz
 
Steinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen EvolutionSteinzeit war gestern! Wege der cloud-nativen Evolution
Steinzeit war gestern! Wege der cloud-nativen Evolution
 
Das kleine Einmaleins der sicheren Architektur @heise_devSec
Das kleine Einmaleins der sicheren Architektur @heise_devSecDas kleine Einmaleins der sicheren Architektur @heise_devSec
Das kleine Einmaleins der sicheren Architektur @heise_devSec
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Das kleine Einmaleins der sicheren Architektur
Das kleine Einmaleins der sicheren ArchitekturDas kleine Einmaleins der sicheren Architektur
Das kleine Einmaleins der sicheren Architektur
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConfA Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
A Hitchhiker’s Guide to the Cloud Native Stack. #ContainerConf
 
Migration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud PlattformMigration von Aftersales Systemen auf eine Cloud Plattform
Migration von Aftersales Systemen auf eine Cloud Plattform
 
Cloud Infrastructure with Crossplane
Cloud Infrastructure with CrossplaneCloud Infrastructure with Crossplane
Cloud Infrastructure with Crossplane
 
Compliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtCompliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-Acht
 
Kubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container OrchestriererKubernetes ist so viel mehr als ein Container Orchestrierer
Kubernetes ist so viel mehr als ein Container Orchestrierer
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
 
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
Per Anhalter durch den Cloud Native Stack (Extended Edition) #oop2017
 
Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)Per Anhalter durch den Cloud Native Stack (extended edition)
Per Anhalter durch den Cloud Native Stack (extended edition)
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
 
Multi-Cloud eGov Webinar 20220322
Multi-Cloud eGov Webinar 20220322Multi-Cloud eGov Webinar 20220322
Multi-Cloud eGov Webinar 20220322
 
Per Anhalter durch den Cloud Native Stack. #SEACONHH
Per Anhalter durch den Cloud Native Stack. #SEACONHHPer Anhalter durch den Cloud Native Stack. #SEACONHH
Per Anhalter durch den Cloud Native Stack. #SEACONHH
 
DevSecOps .pptx
DevSecOps .pptxDevSecOps .pptx
DevSecOps .pptx
 
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
Suse in der neuen Welt des Rechenzentrums - ein BeispielSuse in der neuen Welt des Rechenzentrums - ein Beispiel
Suse in der neuen Welt des Rechenzentrums - ein Beispiel
 

Mehr von QAware GmbH

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 

Mehr von QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 

Holistische Sicherheit für Microservice-basierte Systeme

  • 1. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware1 Holistische Sicherheit für Microservice- basierte Systeme mTLS JWT JWT JWKS DHARMA
  • 2. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware2 Mario-Leander Reimer Principal Software Architect QAware GmbH
  • 4. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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 Legacy System Users system.example.com
  • 5. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware12 DMZ A Shared PaaS Reverse Proxy Reverse Proxy Namespace Bounded Context A APIGateway Reverse Proxy Users 3rd Party Apps Mobile Namespace Context A 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. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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.
  • 15.
  • 16. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware16 API Gateways are like the Façade Pattern in
 Cloud Native Application Design and Microservice Architectures
  • 17. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. 17
  • 18. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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, … 18
  • 19. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware Container Orchestration Patterns 1. Sidecar Container: Extend container behaviour • Log Extraction / Reformatting (fluentd, logstash) • Scheduling (cron, quartz) 19 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)
  • 20. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware20
  • 21. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware Istio Service Mesh Architecture and Components 21
  • 22. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware Service Mesh für Arme auf Basis Envoy 22
  • 23. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware23
  • 24. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware The 4C’s of Cloud Native Security 24 Cloud Cluster Container Code https://kubernetes.io/docs/concepts/security/overview/#the-4c-s-of-cloud-native-security
  • 25. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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 25
  • 26. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @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. 26 # 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"]
  • 27. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware Cluster • Sowohl die Komponenten des Clusters selbst auch die Applications-Komponenten müssen gesichert werden. Empfehlung: Nutze einen Managed CaaS 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 27
  • 28. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware Cloud • Beachte die Cloud Provider Security Guidelines! 28 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
  • 29. // heise devSec() 2019 // Holistische Sicherheit für Microservice-basierte Systeme // @LeanderReimer #cloudnativenerd #qaware Holistische Sicherheit für Microservice-basierte Systeme betrifft alle Ebenen vom Entwurf bis zum Betrieb. 29 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
  • 30. Mario-Leander Reimer Principal Software Architect, QAware GmbH mario-leander.reimer@qaware.de https://www.qaware.de https://speakerdeck.com/lreimer/ &