running at light speed: cloud native security patterns · 1/17/2019  · isolating containerized...

49
Running at Light Speed: Cloud Native Security Patterns

Upload: others

Post on 26-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Running at Light Speed: Cloud Native

Security Patterns

Page 2: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Hi, How is Everybody? Good. Great.

Page 3: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Cloud Native Characteristics

Page 4: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Cloud Native Secure Architecture

Page 5: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Who’s Job is it Anyway?

Page 6: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Isolating Containerized Workloads

https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get-hacked/

Page 7: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Control Plane & Core Components

Page 8: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Reconciler Pattern

https://freecontent.manning.com/wp-content/uploads/Luksa_IRC_02.png

Page 9: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Spoiler: Containers Aren’t Sandboxes

https://www.docker.com/sites/default/files/Container%402x.png

Page 10: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Container Privilege Escalation

Page 11: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

The Gateway Drug

https://coreos.com/rkt/docs/latest/rkt-vs-docker-process-

model.png

Page 12: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Container Isolation Models

Page 13: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

How They Stack Up

https://blog.jessfraz.com/post/containers-security-and-echo-chambers/

Page 14: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Just Use the Defaults != Turn It Off

Page 15: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Control Groups & Namespaces

Page 16: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

https://kubernetes.io/blog/2017/11/securing-software-supply-chain-grafeas/

What Am I Shipping?

Page 17: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

$ grep CONFIG_SECCOMP= /boot/config-$(uname -r)

$ cat /sys/module/apparmor/parameters/enabled

Base Image Management

Page 18: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Build Integrity & Attestation

Page 19: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Seccomp

Page 20: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

AppArmor

Page 21: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Restricting Capabilities

Page 22: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

docker run -d --cap-drop=all --cap-add=net_raw my-image

Limiting Privileges

Page 23: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

User Namespaces

dockerd –userns-remap=“someuser:someuser”

Page 24: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Rootless Containers

Page 25: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Upstream Orchestration Support

Page 26: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

No New Privileges

Page 27: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Authentication

Page 28: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Implementation Flaw - Account Reuse

Page 29: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Run Commands via K8s API

Page 30: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Fixing the Problem

kubectl create serviceaccount s1 --

namespace=”prod”

Page 31: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Don’t Share Anything From the Host

Page 32: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Authorization

Page 33: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Role-Based Access Control

Page 34: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Create Roles & Bindings

Page 35: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Controller Pattern

Page 36: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Admission Controllers

Page 37: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Designing a PodSecurityPolicy

Page 38: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Designing a PodSecurityPolicy

Page 39: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Apply a PodSecurityPolicy

Page 40: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Sidecar Pattern

https://docs.microsoft.com/en-us/azure/architecture/patterns/_images/sidecar.png

Page 41: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Ambassador Pattern

https://docs.microsoft.com/en-us/azure/architecture/patterns/_images/ambassador.png

Page 42: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Service Mesh Pattern

Page 43: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

docker run –it –e “DBUSER=dbuser” –e “DBPASSWD=dbpasswd” mydbimage

echo <secret> | docker secret create some-secret

kubectl create secret generic db-user-pw --from-file=./username.txt --from-file=./password.txt

kubectl create –f ./secret.yaml

Secrets Management

Page 44: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Nothing is Perfect

Page 45: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Beware of Plain Text Storage

Page 46: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

https://blog.openshift.com/vault-integration-using-kubernetes-authentication-method/

Dynamic Secrets

Page 47: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Example – Retrieve & Mount a Secret

Page 48: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Conclusion

Page 49: Running at Light Speed: Cloud Native Security Patterns · 1/17/2019  · Isolating Containerized Workloads

Keep in Touch