SeKVM verified hypervisor based on KVM
spectrum.ieee.org
spectrum.ieee.org
Also see:
http://nieh.net/pubs/ieeesp2021_kvm.pdf (The paper)
https://microv.org/ (A website with more detail, Coq source, etc)
> Side-channel attacks [20],[21], [22], [23], [24], [25] are beyond the scope of the paper
If all current hardware (i.e. OOO and caches) is vulnerable to speculative side-channel attacks, how they dare to say that is secure? With current hardware, nothing is secure (full stop)
Though they seem to be familiar enough with the real world to have known that would have sounded overly grandiose. I think what they really meant was something like "Provably Implements Whatever Security Boundaries That It Claims To".
The software is provably secure. That doesn't mean a complete solution consisting of software and hardware is necessarily secure, and it has never meant that.
The hardware issue is terrifying. And the worst part, it seems not possible to fix it without trowing away decades of performance enhancements. This epic screw-up of epic dimensions from computer architecture guys won't go away that easy.
You leave so much performance on the table if you demand cryptographically secure perf for everything. That means no caching, everything runs in fixed, worst case time, and the amount of work must be fixed as well so there is not any variation in power draw.
Here is a simpler solution - do not run untrusted code on your computer. It is just that easy™.
PS: I disable JavaScript by default in my browser, and manually whitelist exceptions, for the same reason. I also turned off Spectre mitigation on my workstation.
I think some people do not like UBo because by default it is a little light on blocking so most websites just work. Well, you can configure it to block more things, and if you use uMatrix you already are willing to deal with the pain of this process.
[1] https://zerodium.com/program.html
[2] https://www.zdnet.com/article/google-this-spectre-proof-of-c...
> Columbia University researchers have created a secure Linux-based hypervisor
> Now computer scientists at Columbia University have developed what they say is the first hypervisor that can guarantee secure cloud computing.
> The researchers dubbed their new technique microverification, which reduces the amount of work needed to verify a hypervisor. It breaks down a hypervisor into a small core and a set of untrusted services, and then goes on to prove the hypervisor secure by verifying the core alone. The core has no vulnerabilities for a hack to exploit, and this core mediates all the hypervisor's interactions with virtual machines, so even if a hack undermines one virtual machine, it does not compromise the others.
It sad how IEEE's Spectrum carried this nonsense. There clearly wasn't any real technical review of these statements prior to publishing.
If you care about security of your VMs, you need to run them yourself on hardware that you control, using security patched customized Xen/KVM.
If you run VMs in the cloud, you do not actually care about security. Some people care really only about appearances and compliance checkboxes, maybe this formally verified thing will catch on for those.
Can you point to some truly formally verified software that turned out to be bullshit so we can compare their techniques?
And it's a big enough deal that the rumor is that Amazon and Microsoft's type 1 hypervisors have been formally verified. I wouldn't be surprised if Google's is too.
In general, all things being equal, software less likely to crash in production is an improvement, but: 1) all things are usually not equal, because verified software is hard to produce and typically much more restrictive and hard to modify 2) how often do standard industry solutions for hypervisor like Xen or KVM crash? Uptime/customer loss due to hypervisor crashes is a negligibly small problem.
The user software should rather work with the assumption that crash can happen. That is much more robust architecture than relying on some proofs that nobody checked.
> ... relying on some proofs that nobody checked
It is indeed check every single time the software compiles.
"When proving invariants for page ownership used in the noninterference proofs, we identified a race condition in stage 2 page table updates"
"KCore initially did not check if a gfn was mapped before updating a VM’s stage 2 page tables, making it possible to overwrite existing mappings"
So mapping out the rules/flow in Coq, and then seeing what actually happened did uncover some flaws. As to whether the juice was worth the squeeze, I don't know this space well enough to comment.
Real deployment of VMs has larger problems with security than not formally verified hypervisor so I think the answer for most hosting companies is "the juice is not worth the squeeze" here, the squeeze being the restriction to academic verified design.
Hosting VMs is mostly about features and reliability. Those who need also real security, will host on their own HW and won't allow foreign VMs, so formally verified hypervisor is less of a requirement there too. It's a "nice to have".
Long-known to who, exactly? How is "formal verification" even remotely a marketing buzzword?
Most of the marketing that exists for FV in software is done by academia and few MIC companies like Greenhills Software or General Dynamics. In practice almost nobody in software produces formally verified software. And when they do, like the few examples that exist, the proof only guarrantees what design could foresee, and only if assumptions are satisfied which is not trivial in real deployments. It may work for avionics on special isolated simple hardware, but cloud hosted VMs on x86/ARM connected to Internet is probably too far.
In other words, formal verification can:
1. provide guarantees that the implementation matches the spec,
2. that the spec fulfills certain properties, including but not limited to security, safety, reliability properties
These are typically more guarantees that non-verified software, so I still fail to see how this is bullshit marketing.
In this case, they proved that there are no overt information flow vulnerabilities in the design or implementation, so you're left only with the covert channels. That's clearly a valuable property to know.
If Intel, AMD or RISC-V releases a covert-channel free CPU, then you can even close those and it's secure from top to bottom.
The fact there is a formally verified piece of design and software is not bullshit. I said the marketing here is bullshit. This shiny piece of great software won't solve our security problems in multiuser environments, because the proof works only under a very limited set of assumptions. You can't just run your VMs in the cloud on this FV hypervisor and think your software security problems are solved.
But they've made a ton of money trying!
Yes formal verification has made advancements and is a useful tool, in proper context. Not in the context the article is selling the work of the researchers.