The CoreOS Science of Securing Container Infrastructure

by Paul Rubens

Alex Polvi has a history of casting aspersions on the security of the Docker container ecosystem, and now his company is taking a giant step towards making container infrastructure more secure.

CoreOS has taken a giant step towards making container infrastructure more secure. It's a welcome move because the container security ecosystem is far less sophisticated than the security ecosystem that surrounds the world of server virtualization.

CoreOS's boss, Alex Polvi, has his doubts about the security of Docker technology — the de facto standard for containers. Virtually Speaking "We are aware of issues in Docker, and they have not been addressed in many ways," he said in this column last month.

So what is CoreOS going to do about it? The answer, it turns out, is quite a lot.

What CoreOS has done is build a high level of security into its Tectonic container management platform: earlier this month it announced what it is calling Distributed Trusted Computing (DTC).

"Security is central to our mission here at CoreOS," Polvi says. "This is a step further in the security capabilities of enterprises, for the first time giving cryptographically guaranteed end-to-end integrity and control of their environment."

What Exactly Is Distributed Trusted Computing?

In a nutshell, DTC allows organizations to cryptographically verify the integrity of their entire container environment - from the server hardware to the applications running in containers.

Using DTC, CoreOS says you can:

  • Validate and trust individual node and cluster integrity, even in potentially compromised or even hostile data center conditions
  • Verify system state before distributing app containers, data or secrets
  • Prevent attacks that involve modifying firmware, bootloader, the OS itself, or the deployment pipeline
  • Cryptographically verify, with an audit log, what containers have executed on the system

To do all this requires hardware with a Trusted Platform Module, and an organization's public cryptographic keys embedded in the server firmware.

Each server then uses Secure Boot, validating each step of the CoreOS boot process to ensure that the operating system has not been modified in any way. CoreOS says its operating system is particularly suited to this kind of validation by cryptographic signature, as the system is released in a signed, atomic version representing all software, kernel and user-mode, and stored on a read-only mount point.

Since the CoreOS software stack isn't just a loose collection of packages, the collective environment can be verified during the boot process, and only allowed to proceed if its integrity can be mathematically assured.

This Secure Boot principle is then extended to the container execution environment, and indeed the containers themselves: the rkt container execution environment is actually part of CoreOS, and this uses the keys stored in the TPM to verify container images. (The App Container Image (ACI) format used natively by rkt includes a cryptographic signature feature for image verification.)

The Final Step: Cluster Security

The final step is cluster security, and only machines that have been Secure Booted are allowed in to a cluster — systems that do not pass cryptographic integrity checks are prevented from joining clusters and are never able to request or obtain cluster data, and never have containers scheduled on them.

The company says future work is planned to expand this foundation along with proposed Kubernetes admission control mechanisms to provide higher-level abstractions for acting on node integrity.

One key application for this technology would be to enable organizations to run container clusters in what CoreOS calls "a completely hostile – but tantalizingly low-cost – colocation facility." In other words, you don't have to trust your colo provider to be able to run containers securely.

For some time now Polvi has been casting aspersions on the security of the Docker container ecosystem, but now he, or rather CoreOS, is doing something about it. It's likely that at some point in the near future this – or something very similar – will be the standard way to deploy containers.

Paul Rubens is a technology journalist and contributor to ServerWatch, EnterpriseNetworkingPlanet and EnterpriseMobileToday. He has also covered technology for international newspapers and magazines including The Economist and The Financial Times since 1991.

Follow ServerWatch on Twitter and on Facebook

This article was originally published on Tuesday Jan 19th 2016
Mobile Site | Full Site