Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter...

13
Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian (sect) Software Security SoSe 2016 1 / 13

Transcript of Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter...

Page 1: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Software SecurityDevice Virtualization

Julian Vetter

Prof. Jean-Pierre SeifertSecurity in Telecommunications

TU Berlin

SoSe 2016

julian (sect) Software Security SoSe 2016 1 / 13

Page 2: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Virtualization (Recap)

Assume basic virtualization support(Intel VT-x, AMD SVM, ARM VE)

⇒ All sensitive instructions either handled internally (i. e. modify virtualstate instead of physical state) or cause a trap into HV

MMU with nested page table support

First translations GV → GPNested translation GP → P

But what about devices?

Usually there is still only one grahics/network/.. card

julian (sect) Software Security SoSe 2016 2 / 13

Page 3: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Special case: Interrupt controller

Interrupt controller signals to system software pending interrupts

Device X triggers an IRQ → Trap into the hypervisor

What now?

julian (sect) Software Security SoSe 2016 3 / 13

Page 4: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Special case: Interrupt controller

(Solution I: Paravirt):

Set EIP/PC to exception vector in the guestEmulate IRQ controller interface and set interrupt pendingDrawbacks: Many hypervisor traps → bad

Solution II: Virtualization Extensions

Intel: Notification to guest via VMCBV IRQ - If nonzero, virtual INTR is pending

ARM: vGIC Virtual CPU interfaceHypervisor can set interrupts pending for guestsOn next VM execution, hardware delivers IRQDrawbacks: IRQ initially still delivered to hypervisor

Solution III: IRQ Controller with Virtualization support → Next Slide

julian (sect) Software Security SoSe 2016 4 / 13

Page 5: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Interrupt Controller with Virtualization support

Intel: APICv / AMD: AVIC / ARM: -

Hypervisor can configure interrupts to be delivered directly to guests

Interesting for..

Inter-processor interruptsInterrupts from assigned (pass-through) devices

julian (sect) Software Security SoSe 2016 5 / 13

Page 6: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Device Virtualization: Trap-and-emulate

When guest tries to access the device pages → trap into hypervisor

Hypervisor emulates the device

Advantages:

Good solution for simple devices (e.g. UART)

Drawbacks:

Complex logic (device emulator, driver, etc.) inside the hypervisorContext switches take longer due to state savingMight be impractical for complex devices (e.g. graphics card)

julian (sect) Software Security SoSe 2016 6 / 13

Page 7: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Device Virtualization: Driver VM

One VM gets all devices, provides functionality to other VMs

Advantages:

Easy to implementCompatibility (Linux drivers are already there...)

Drawbacks:

Driver VM becomes part of the TCBSlow due to many context switches into and out of the driver VM

julian (sect) Software Security SoSe 2016 7 / 13

Page 8: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Device Virtualization: Hardware support

Device supports holding the state for multiple VMs

Usually only fancy server network cards can do this

New PowerVR Series7XT/XE GPU can do it too

Drawbacks:

Driver software might get complex

julian (sect) Software Security SoSe 2016 8 / 13

Page 9: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Device Virtualization

Quote: “Although you usually tend to hear people talking aboutvirtualization in the context of CPUs, it is actually a system-level

requirement that can only be implemented optimally if all the componentsin the chip support it.” — Imagination Technologies

julian (sect) Software Security SoSe 2016 9 / 13

Page 10: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Device Virtualization: DMA Problem

Some devices can do DMA (Direct Memory Access)

Of course DMA controllerCan be configured to do DMA for some devicesControl register selects device to do DMA for (e.g. USB, UART, etc.)

But also other powerful devices, e.g. graphics card

Graphics card has its own MMU (can potentially read/write entiremain memory)No restriction through the CPU’s MMUMight be very dangerous in the wrong hands (Bug existed on SamsungGalaxy S2 and S3)Allowed for a privilege escalation through the GPU (gain root onAndroid) [1]Problem even more delicate with virtualization!

julian (sect) Software Security SoSe 2016 10 / 13

Page 11: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Device Virtualization: DMA Problem (cont.)

If DMA capable device is set to pass-through to one VM it can writeto other VMs (or even VMMs) address space

Attacks were proposed this way [2] to take over the Xen HV

Solution: No pass-through of powerful devices! (...or?)

julian (sect) Software Security SoSe 2016 11 / 13

Page 12: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

Device Virtualization: IOMMU/SYSMMU

Some x86 processors have an IOMMU (Intel VT-d or AMD AMD-Vi)

Matches devices on the PCI busCan be configured to allow individual PCI devices to only access partsof the main memory

Some highend ARM boards have a SYSMMU in front of powerfulBUS master devices

julian (sect) Software Security SoSe 2016 12 / 13

Page 13: Software Security - Device Virtualization...Software Security Device Virtualization Julian Vetter Prof. Jean-Pierre Seifert Security in Telecommunications TU Berlin SoSe 2016 julian

J. Danisevskis, M. Piekarska, and J.-P. Seifert.

Dark side of the shader: Mobile gpu-aided malware delivery.

In International Conference on Information Security and Cryptology, pages483–495. Springer, 2013.

J. Rutkowska and A. Tereshkin.

Bluepilling the xen hypervisor.

julian (sect) Software Security SoSe 2016 13 / 13