Improving Trust in Containers Matthew Garrett @mjg59 | mjg59@coreos.com | coreos.com
Containers are great
Containers are resource efficient
Containers make deployment easy
Containers can be monitored easily
Containers are secure
But are they secure enough?
Shared kernel = shared attack surface
The kernel is imperfect
The kernel will always be imperfect
What can we do about that?
What does a container vulnerability look like?
Namespace escape
LSM isolation (sVirt)
Arbitrary modification of kernel
Reduce attack surface
Seccomp
Root is too many things
Capabilities
User namespaces
Harden the kernel itself
Run virtualised containers
We can build a world where containers are secure enough
Can we go further?
TPMs
Measured boot
Integrity Measurement Architecture
All very difficult to manage
Traditional deployment patterns result in combinatorial explosions
Containers make this more manageable
Simple base OS
Containers are independently measurable objects
Measure containers into the TPM log
Cryptographically verifiable audit chain
How about the future
Hybrid models
Introspection
https://github.com/coreos/clair https://github.com/coreos/rkt https://clearlinux.org/features/clear-containers
Recommend
More recommend