IBM attempts to graft virtual machine security onto container flexibility
Nabla Containers promises reduced attack surface through fewer system calls
IBM researchers have developed a new flavor of software container in an effort to create code that's more secure than Docker and similar shared kernel container systems.
Docker and its ilk are considered less secure than VMs because the compromise of a shared kernel puts all associated containers at risk. With VMs, the kernel is separate from the host kernel, which reduces the risk of collateral damage.
Large businesses, appreciating the benefits of containerization, have shown interest in adopting the technology but many balk at trading security for development and deployment speed.
Thus tech companies interested in serving the enterprise market have been looking at ways to address the security shortcomings of containers.
Toward that end, the OpenStack Foundation recently released the 1.0 version of the Intel-backed Kata Containers, an attempt to combine the security of VMs with the speed of containers. And Google has discussed its approach, gVisor.
Now it's IBM's turn with software dubbed Nabla Containers.
Nabla Containers and Kata Containers both aim to reduce potential avenues of attack. The Kata Container approach does so by giving each container or pod its own lightweight VM and mini-kernel.
Azure Dev Spaces has hit public preview, so El Reg took it for a spinREAD MORE
The Nabla Containers approach differs: It makes fewer Linux system calls by relying on unikernel (library operating systems) techniques in conjunction with the Solo 5 middleware.
"Nabla Containers only use 9 system calls, all others are blocked via a Linux seccomp policy," the project website explains.
The net effect is less communication with the kernel and less surface area to attack.
Google claims gVisor also attempts to overcome the shortcomings of containers by rewriting the Linux system call interface in Go.
But James Bottomley, a distinguished engineer at IBM Research and a Linux kernel contributor contends Google's engineers failed to account for the profligacy of system calls in the Go runtime, making it comparable to Docker or worse in terms of number of system calls.
In a series of recent blog posts, Bottomley describes Nabla Containers as an attempt to reduce horizontal threats, by which a containment failure allows an attacker to access the underlying container host or other tenant virtual machines on that host.
In tests he describes, "Nabla is far and away the best containment technology for secure workloads given that it sacrifices the least performance over docker to achieve the containment and, on the published results, is 2x more secure even than using hypervisor based containment."
Your mileage may vary, unless you happen to be using gVisor. According Bottomley, "gVisor sucks because ptrace is a really inefficient way of connecting the syscalls to the sandbox." ®