5 ms·
Ignore the overly-excited university press release office and read the paper, A Secure and Formally Verified Linux KVM Hypervisor: http://nieh.net/pubs/ieeesp20
by geofft 5y ago
Ignore the overly-excited university press release office and read the paper, A Secure and Formally Verified Linux KVM Hypervisor: http://nieh.net/pubs/ieeesp2021_kvm.pdf http://nieh.net/pubs/ieeesp2021_kvm.pdf
> 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.
- tyingq 5y agoThis site also has the coq source: https://microv.org/ https://microv.org/
- marmaduke 5y agothis is the interesting bit
- caust1c 5y agoNo mention of Spectre or Meltdown? 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.
- geofft 5y agoI believe most public cloud providers pin different user VMs to separate physical cores, which defends a lot against these attacks because you aren't sharing a branch predictor or an L1 cache with other people. And qemu comes with other mitigations: https://www.qemu.org/2018/02/14/qemu-2-11-1-and-spectre-update/ https://www.qemu.org/2018/02/14/qemu-2-11-1-and-spectre-upda...