Attacking Hypervisors via Firmware and Hardware



Similar documents
Attacking Hypervisors via Firmware and Hardware

Nested Virtualization

Compromise-as-a-Service

Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor?

Intel Virtualization Technology Overview Yu Ke

A Tour Beyond BIOS Supporting an SMM Resource Monitor using the EFI Developer Kit II

POACHER TURNED GATEKEEPER: LESSONS LEARNED FROM EIGHT YEARS OF BREAKING HYPERVISORS. Rafal Wojtczuk

Bluepilling the Xen Hypervisor

Security Challenges in Virtualized Environments

Virtual machines and operating systems

Virtualization in Linux KVM + QEMU

Virtualization Technology. Zhiming Shen

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Virtual Machine Security

A Hypervisor IPS based on Hardware assisted Virtualization Technology

matasano Hardware Virtualization Rootkits Dino A. Dai Zovi

Introducing Ring -3 Rootkits

Securing Your Cloud with Xen Project s Advanced Security Features

Chapter 5 Cloud Resource Virtualization

Virtualization. Types of Interfaces

The Microsoft Windows Hypervisor High Level Architecture

Knut Omang Ifi/Oracle 19 Oct, 2015

Securing your Virtual Datacenter. Part 1: Preventing, Mitigating Privilege Escalation

Cloud^H^H^H^H^H Virtualization Technology. Andrew Jones May 2011

Brian Walters VMware Virtual Platform. Linux J. 1999, 63es, Article 6 (July 1999).

Kernel Virtual Machine

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

Virtualization. Jukka K. Nurminen

Subverting the Xen hypervisor

Taming Hosted Hypervisors with (Mostly) Deprivileged Execution

IOS110. Virtualization 5/27/2014 1

FRONT FLYLEAF PAGE. This page has been intentionally left blank

UEFI Firmware Security Best Practices

Nested Virtualization

Virtualization System Security

OSes. Arvind Seshadri Mark Luk Ning Qu Adrian Perrig SOSP2007. CyLab of CMU. SecVisor: A Tiny Hypervisor to Provide

Poacher turned gamekeeper: Lessons learned from eight years of breaking hypervisors

Hybrid Virtualization The Next Generation of XenLinux

Virtualization. ! Physical Hardware. ! Software. ! Isolation. ! Software Abstraction. ! Encapsulation. ! Virtualization Layer. !

Attacking Intel Trusted Execution Technology

Full and Para Virtualization

Windows Server Virtualization & The Windows Hypervisor

Advanced Computer Networks. Network I/O Virtualization

Distributed Systems. Virtualization. Paul Krzyzanowski

Code Injection From the Hypervisor: Removing the need for in-guest agents. Matt Conover & Tzi-cker Chiueh Core Research Group, Symantec Research Labs

KVM: Kernel-based Virtualization Driver

Virtualization. Pradipta De

Virtualization. Dr. Yingwu Zhu

On the Feasibility of Software Attacks on Commodity Virtual Machine Monitors via Direct Device Assignment

Virtualization Technologies

KVM Security Comparison

Secure In-VM Monitoring Using Hardware Virtualization

Virtual Machines. COMP 3361: Operating Systems I Winter

Virtualization System Vulnerability Discovery Framework. Speaker: Qinghao Tang Title:360 Marvel Team Leader

Hypervisors and Virtual Machines

Cloud Architecture and Virtualisation. Lecture 4 Virtualisation

CS5460: Operating Systems. Lecture: Virtualization 2. Anton Burtsev March, 2013

UNCLASSIFIED Version 1.0 May 2012

Virtualization. Jia Rao Assistant Professor in CS

Hardware virtualization technology and its security

Virtualization with Windows

Hypervisor Memory Forensics

COS 318: Operating Systems. Virtual Machine Monitors

kvm: Kernel-based Virtual Machine for Linux

Betting BIOS Bugs Won t Bite Y er Butt? Xeno Kovah Corey Kallenberg

Virtual Switching Without a Hypervisor for a More Secure Cloud

OS Virtualization Frank Hofmann

McAfee Deep Safe. Security beyond the OS. Kai-Ping Seidenschnur Senior Security Engineer. October 16, 2012

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

The NOVA Microhypervisor

Clouds, Virtualization and Security or Look Out Below

CS 356 Lecture 25 and 26 Operating System Security. Spring 2013

EE282 Lecture 11 Virtualization & Datacenter Introduction

Cloud Computing #6 - Virtualization

x86 Virtualization Hardware Support Pla$orm Virtualiza.on

Intel Graphics Virtualization Technology Update. Zhi Wang,

Basics of Virtualisation

Intel Trusted Platforms Overview

Dynamic VM Monitoring using Hypervisor Probes

Hardware Based Virtualization Technologies. Elsie Wahlig Platform Software Architect

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

2972 Linux Options and Best Practices for Scaleup Virtualization

Nested Virtualization

Survey On Hypervisors

Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16

Lecture Overview. INF3510 Information Security Spring Lecture 4 Computer Security. Meaningless transport defences when endpoints are insecure

Enterprise-Class Virtualization with Open Source Technologies

Virtualization and Other Tricks.

Post-Access Cyber Defense

The Art of Virtualization with Free Software

Intro to Virtualization

Under the Hood: How Actaeon Unveils Your Hypervisor

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

Frontiers in Cyber Security: Beyond the OS

CS 695 Topics in Virtualization and Cloud Computing. More Introduction + Processor Virtualization

A Tale of One Software Bypass of Windows 8 Secure Boot. Yuriy Bulygin Andrew Furtak Oleksandr Bazhaniuk

Transcription:

Attacking Hypervisors via Firmware and Hardware Mikhail Gorobets, Oleksandr Bazhaniuk, Alex Matrosov, Andrew Furtak, Yuriy Bulygin Advanced Threat Research

Agenda Hypervisor based isolation Firmware rootkit vs hypervisor Attacking hypervisor emulation of hardware devices Attacking hypervisors through system firmware Tools and mitigations Conclusions

Image source Hypervisor Based Isolation

Hypervisor Based Isolation Virtual Machine Virtual Machine App App App App Operating System Operating System Privilege VMM / Hypervisor System Firmware (BIOS, U/EFI firmware, SMI handlers, Coreboot ) Memory Hardware CPU Graphics I/O Network

Hypervisor Based Isolation Virtual Machine Virtual Machine App App App Attack Operating System Operating System Privilege VMM / Hypervisor System Firmware (BIOS, U/EFI firmware, SMI handlers, Coreboot ) Memory Hardware CPU Graphics I/O Network

Hypervisor Protections Software Isolation CPU / SoC: traps to hypervisor (VM Exits), MSR & I/O permissions bitmaps, rings (PV) Memory / MMIO: hardware page tables (e.g. EPT, NPT), software shadow page tables Devices Isolation CPU / SoC: interrupt remapping Memory / MMIO: IOMMU, No-DMA ranges

CPU Virtualization (simplified) VM Guest OS Instructions, exceptions, interrupts Access to CPU MSRs (e.g. DEBUGCTL) Access to I/O ports Access to (e.g. 0xB2) memory (EPT violations) Hypervisor Traps (VM Exits) VMM Host VM Exit Handler VM Control Structure (VMCS) MSR Bitmaps Extended Page Tables I/O Bitmaps

Protecting Memory with HW Assisted Paging VM Guest OS VMM Host Process Virtual Memory CR3 Guest Physical Memory GPA0 VMCS EPTP Host Physical Memory HPA0 VA0 Guest Page Tables GPA1 EPT HPA1 VA1 GPA2 GPA0 HPA3 HPA2 VA2 GPA3 GPA2 HPA5 HPA3 VA3 VA4 GPA4 GPA5 GPA6 GPA4 HPA4 (1:1 mapping) GPA6 block HPA4 HPA5 HPA6

Hypervisor Protections System Firmware Isolation

Firmware Rootkit vs Hypervisor Image source

What is firmware rootkit? Virtual Machine Virtual Machine App App App App Operating System Operating System Privilege VMM / Hypervisor System Firmware Rootkit (e.g. DXE driver) Memory Hardware CPU Graphics I/O Network

Firmware rootkit can open a backdoor for an attacker VM to access all other VMs Virtual Machine App App Operating System Attacker VM App App Operating System 3. Now using this backdoor, attacker VM can access all of memory of victim VMs VMM / Hypervisor System Firmware Backdoor Rootkit 2. During each boot rootkit installs a backdoor for an attacker controlled VM 1. At some point system firmware got infected with a rootkit staying persistent

Backdoor for attacker s VM 1. Firmware rootkit searches & modifies VM s VMCS(B), VMM page tables 2. Rootkit added page table entries to attacker VM which expose entire physical memory Now attacker VM has full access to physical memory of VMM and other VMs

So how would one install a rootkit in the firmware?

Using hardware SPI flash programmer

USB & exploiting weak firmware protections...

Software access and exploiting some vulnerability in firmware From privileged guest (e.g. Dom0). Requires privesc from normal guest (e.g. DomU) or remote From the host OS before/in parallel to VMM From normal guest if firmware is exposed to the guest by VMM For example, if firmware is not adequately write protected in system flash memory

Image source DEMO Rootkit in System Firmware Exposes Secrets from Virtual Machines

Installing rootkit in firmware from root partition

Attacker VM exposes secrets of other VMs through a backdoor opened by the rootkit

We flashed rootkited part of firmware image from within a root partition to install the rootkit The system doesn t properly protect firmware in SPI flash memory so we could bypass write-protection Finally more systems protect firmware on the flash memory common.bios_wp CHIPSEC module to test write-protection Malware can exploit vulnerabilities in firmware to install a rootkit on such systems Attacking and Defending BIOS in 2015

VMM forensics With the help of a rootkit in firmware any VM guest can extract all information about hypervisor and other VMs and just from memory VMCS structures, MSR and I/O bitmaps for each VM guest EPT for each VM guest Regular page tables for hypervisor and each VM guest IOMMU pages tables for each IOMMU device Full hypervisor memory map, VM exit handler Real hardware configuration (registers for real PCIe devices, MMIO contents )

VMCS, MSR and I/O bitmaps..

VMM Hardware Page Tables

Image source Attacking Hypervisor Emulation of Hardware Devices

XSA-75 SYSRET XSA-108 MS13-092 XSA-122 Cloudburst CVE-2014-0983 VENOM XSA-138 Hardware Emulation Attack Vectors VM Guest OS Instructions (CPUID ) Access to CPU MSRs Hypercall API Access to device MMIO, CMD buffers Access to device I/O ports VMM Host Hypervisor INSTR Emulation CPU MSR Emulation Hypercall Impl Device MMIO/Buffers Emulation Device I/O Emulation

Did you know that VMMs emulate virtual devices of other VMMs? So Cloudburst was fixed in VMWare but QEMU and VirtualBox also emulate VMWare virtual SVGA device Virtual Machine App App Operating System Virtual svga Device SVGA_CMD_RECT_FILL Host / Hypervisor Frame buffer svga commands FIFO buffer

Guest to Host Memory Corruption QEMU / KVM CVE-2014-3689 3 vulnerabilities in the vmware-vga driver in QEMU allows local guest to write to QEMU memory and gain host/hypervisor privileges via unspecified parameters related to rectangle handling Oracle VirtualBox (Jan 2015 Critical Patch Update) CVE-2014-6588 Memory corruption in VMSVGAGMRTRANSFER CVE-2014-6589, CVE-2014-6590 Memory corruptions in VMSVGAFIFOLOOP CVE-2015-0427 Integer overflow memory corruption in VMSVGAFIFOGETCMDBUFFER

Crashing Host or Guest from Ring3 CVE-2015-0377 Writing arbitrary data to upper 32 bits of IA32_APIC_BASE MSR causes VMM and host OS to crash on Oracle VirtualBox 3.2, 4.0.x-4.2.x # chipsec_util.py msr 0x1B 0xFEE00900 0xDEADBEEF CVE-2015-0418, CVE-2014-3646 VirtualBox and KVM guest crash when executing INVEPT/INVVPID instructions in Ring3 VirtualBox INVEPT : VM crash INVVPID : VM crash VMCALL : #UD fault VMLAUNCH : #UD fault VMRESUME : #UD fault KVM INVEPT : VM crash INVVPID : VM crash VMCALL : No Exception VMLAUNCH : #UD fault VMRESUME : #UD fault

Attacking Hypervisors through System Firmware (with OS kernel access) Image source

Pointer Vulnerabilities in SMI Handlers Phys Memory RAX (code) RBX (pointer) RCX (function) RDX RSI RDI SMI SMI Handlers in SMRAM Fake structure inside SMRAM OS Memory Exploit tricks SMI handler to write to an address inside SMRAM Attacking and Defending BIOS in 2015

SMI Pointer Exploiting firmware SMI handler to attack VMM Virtual Machine (child partition) App App Operating System Root partition App Attack Operating System VMM allows VM to invoke SMI handlers (grants access to SW SMI I/O port 0xB2) Memory Hypervisor SMI Handlers System Firmware I/O Hardware CPU Network Graphics Compromised VM injects SMM payload through the input pointer vulnerability in SMI handler SMM firmware payload modifies hypervisor code or VMCS/EPT to install a backdoor

DEMO Attacking Hypervisor via Poisonous Pointers in Firmware SMI handlers

Root cause? Port B2h is open to VM in I/O bitmap

So that s a firmware issue! Firmware has to validate pointers Phys Memory RAX (code) RBX (pointer) RCX (function) RDX RSI RDI SMI SMI Handlers in SMRAM Hypervisor Memory (Protected by EPT) Firmware SMI handler validates input pointers to ensure they are outside of SMRAM preventing overwrite of SMI code/data

Point SMI handler to overwrite VMM page! Phys Memory RAX (code) RBX (pointer) SMI SMI Handlers in SMRAM RCX (function) RDX RSI RDI Hypervisor Memory (Protected by EPT) VMM Protected Page VMM Protections are OFF VT state and EPT protections are OFF in SMM (without STM) SMI handler writes to a protected page via supplied pointer

Attacking VMM by proxying through SMI handler Virtual Machine (child partition) App App Operating System Root partition App Attack Operating System VM with direct access to SMIs invokes SMI handler and supplies a pointer to some VMM page VMM / Hypervisor Memory SMI Handlers System Firmware Hardware CPU Graphics SMI handler writes to the supplied pointer overwriting contents of protected VMM page I/O Network

Sometimes attacker doesn t need a vulnerability in firmware When VMM grants VM direct access to firmware or hardware interfaces VM exploit doesn t always need to exploit firmware first through these interfaces It may use firmware or hardware as a confused deputy and attack VMM through some function on behalf of firmware Read excellent paper Hardware Involved Software Attacks by Jeff Forristal

Do Hypervisors Dream of Electric Sheep? Vulnerability used in this section is VU#976132 a.k.a. S3 Resume Boot Script Vulnerability independently discovered by ATR of Intel Security, Rafal Wojtczuk of Bromium and LegbaCore It s also used in Thunderstrike 2 by LegbaCore & Trammell Hudson

NORMAL BOOT S3 RESUME Waking the system from S3 sleep state Virtual Machine Apps / OS BDS VMM / Hypervisor U/EFI System Firmware DXE UEFI core & drivers S3 Boot Script Table Restores hardware config Script Engine Platform Init Platform Init

What is S3 boot script table? A table of opcodes in physical memory which restores platform configuration S3_BOOTSCRIPT_MEM_WRITE opcode writes some value to specified memory location on behalf of firmware S3_BOOTSCRIPT_DISPATCH/2 S3_BOOTSCRIPT_PCI_CONFIG_WRITE S3_BOOTSCRIPT_IO_WRITE

NORMAL BOOT S3 RESUME MODIFY Xen exposes S3 boot script table to Dom0 Privileged PV guest (Dom0) Exploit VM modifies S3 boot script table in memory Upon resume, firmware executes rogue S3 script Xen Hypervisor U/EFI System Firmware BDS DXE UEFI core & drivers S3 Boot Script Table Restores hardware config Script Engine Platform PEI 0xDBAA4000 Platform PEI

Xen attack via S3 boot script Found S3 boot script table in memory accessible to Dom0 Changing the boot script to access Xen hypervisor pages

Dumping Dom0 VMCS from memory protected by EPT

Image source DEMO Attacking Xen in its sleep

Déjà vu? Xen 0wning Trilogy (Part 3) by Invisible Things Lab

So these firmware vulnerabilities are exploitable from privileged guest (e.g. root partition, Dom0..) What about use cases where guests must be strongly isolated from the root partition?

Image sciencenews.org Tools and Mitigations

First things first - fix that firmware! Firmware can be tested for vulnerabilities! common.uefi.s3bootscript (tests S3 boot script protections) tools.smm.smm_ptr (tests for SMI pointer issues) Protect the firmware in system flash memory common.bios_wp common.spi_lock... (tests firmware protections in system flash memory)

Testing hypervisors Simple hardware emulation fuzzing modules for open source CHIPSEC tools.vmm.*_fuzz I/O, MSR, PCIe device, MMIO overlap, more soon Tools to explore VMM hardware config chipsec_util iommu (IOMMU) chipsec_util vm (CPU VM extensions)

Dealing with system firmware attacks.. A number of interfaces through which firmware can be attacked or relay attack onto VMM UEFI variables, SMI handlers, S3 boot script, SPI flash MMIO, FW update.. FW doesn t know memory VMM needs to protect VMM need to be careful with which of these it exposes to VMs including to administrative (privileged) guests Some need not be exposed (e.g. S3 boot script), some may be emulated and monitored

Conclusions Compromised firmware is bad news for VMM. Test your system s firmware for security issues Windows 10 enables path for firmware deployment via Windows Update Secure privileged/administrative guests; attacks from such guests are important Vulnerabilities in device and CPU emulation are very common. Fuzz all HW interfaces Firmware interfaces/features may affect hypervisor security if exposed to VMs. Both need to be designed to be aware of each other

References 1. CHIPSEC: https://github.com/chipsec/chipsec 2. Intel s ATR Security of System Firmware 3. Attacking and Defending BIOS in 2015 by Intel ATR 4. Hardware Involved Software Attacks by Jeff Forristal 5. Xen 0wning Trilogy by Invisible Things Lab 6. http://www.legbacore.com/research.html 7. Low level PC attack papers by Xeno Kovah

Thank You!