Unprivileged Containers
Jess Frazelle, @jessfraz
How do containers help security?
Containers are not going to be the answer to preventing your application from being compromised, but they can limit the damage from a compromise.
How do containers help security?
The world an attacker might see from inside a very strict container with custom AppArmor/Seccomp profiles greatly differs than that without the use of containers.
Sandboxes Today
Chrome
Containers today
How can we get to sandboxes with containers?
Back to the Basics
A “container” is what we have come to call a group of namespaces and control groups applied to a process.
Control Groups (cgroups)
Limit what the process can use. Resource metering and limiting.
Types: memory, CPU, blkio, network, device, pid..
PID Cgroup
Namespaces
Limit what the process sees.
Types: pid, net, mnt, uts, ipc, user
Created with clone() or unshare()
Net Namespace
UTS Namespace
IPC Namespace
PID Namespace
User Namespace
Makings of a Sandbox: Containers
NOT RUN AS ROOT
POC or GTFO
POC or GTFO
What is this sorcery?
Not Perfect …. yet
New Hotness: Cgroup Namespace
Cgroup Namespace
What to look forward to...