Columbia Engineering Team Builds First Hacker-Resistant Cloud Software System
engineering.columbia.edu
engineering.columbia.edu
> Commodity hypervisors are widely deployed to support virtual machines (VMs) on multiprocessor hardware. Their growing complexity poses a security risk. To enable formal verification over such a large codebase, we introduce microverification, a new approach that decomposes a commodity hypervisor into a small core and a set of untrusted services so that we can prove security properties of the entire hypervisor by verifying the core alone. To verify the multi-processor hypervisor core, we introduce security-preserving layers to modularize the proof without hiding information leakage so we can prove each layer of the implementation refines its specification, and the top layer specification is refined by all layers of the core implementation. To verify commodity hypervisor features that require dynamically changing information flow, we introduce data oracles to mask intentional information flow. We can then prove noninterference at the top layer specification and guarantee the resulting security properties hold for the entire hypervisor implementation. Using microverification, we retrofitted the Linux KVM hypervisor with only modest modifications to its codebase. Using Coq, we proved that the hypervisor protects the confidentiality and integrity of VM data, while retaining KVM’s functionality and performance. Our work is the first machine- checked security proof for a commodity multiprocessor hypervisor.
I'm all for improving formal verification but their method ignores the fact that there are leaky abstractions throughout the stack, those of which enable vulnerabilities. That is, this seems like total BS:
> we introduce security-preserving layers to modularize the proof without hiding information leakage so we can prove each layer of the implementation refines its specification
Edit: they do mention it:
> Side-channel attacks [20],[21], [22], [23], [24], [25] are beyond the scope of the paper
So basically they've developed a method for formally verifying components of systems, by making assumptions about the periphery.
And qemu comes with other mitigations: https://www.qemu.org/2018/02/14/qemu-2-11-1-and-spectre-upda...
Okay, against what specific threat model? Can it protect against an admin’s password/key being stolen/hacked/guessed or any of the other extremely mundane attacks you’re actually likely to encounter in the real world?
I’m sure the CS is novel and excellent. But the grandiose framing seems a bit… much.
Appropriate/necessary for a publicly funded research project?
It is very bad marketing to describe a precise system using very little precision.
Security is far more than secure VM hosting...
one person opens a phishing email
Reading the article, it seems they think Google and AWS don't do formal verification of the hypervisor. Since they won a grant from Amazon to do this (1), I'm going to guess that maybe they're right?
(1) https://www.amazon.science/research-awards/recipients/ronghu...
Turing completeness means there's nigh infinite ways to convolute malware that will evade all scanners. And as long as users have capabilities to their data, they will be subject to attacks against data they have access to.
Tl;dr. Grandiose claims require grandiose proof.
No, it does not. Turing-completeness simply means that for certain properties which could be true or false about some software (like whether it halts), given an arbitrary piece of software, you won't always know whether or not it satisfies the property. It does not prevent you from assuming "No" in the cases where you don't know. Nor does it prevent there from being other properties (e.g., ability to access another user's data) for which the answer is always no.
What you typed is good for an academic setting, in the "wellactually technical correct" sense of the term.