Compromise-As-A-Service Our Pleazure

Compromise-As-A-Service Our Pleazure

Compromise-as-a-Service Our PleAZURE Felix Wilhelm, Matthias Luft & Enno Rey {fwilhelm, mluft, erey}@ernw.de © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg 5/29/14 www.ernw.de Agenda ¬ Introduction & Methodology ¬ Architecture & Attack Surface ¬ MS13-092 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #2 www.ernw.de Prelude ¬ No complete security evaluation of Hyper-V - Still work in progress. - We will provide a detailed overview of the attack surface. ¬ Will talk about stuff that did not work (lots) and stuff that did work (some). ¬ Goal is to motivate and help other researchers. 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #3 www.ernw.de Background ¬ Original research was part of German government research Compute Node project. Host Host root Guest VM Guest VM OS Agent Agent - Overall security posture of the Azure Cloud Fabric [...] Agent Virtual Hard Drive Virtual Hard Drive - Network Security Azure Hypervisor - VM Isolation - Hardware Management Interfaces CPU (cores), RAM, local hard drive, ... - …. 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #4 www.ernw.de Fabric Utility Fabric Controller […] Datacenter Routers 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #5 www.ernw.de Cluster Fabric Controller Rack 1 Rack x Aggregation Router & Load Balancer Rack 20 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #6 www.ernw.de Rack Node 1 Node x Node 50 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #7 www.ernw.de Compute Node Compute Node Host Host root Guest VM Guest VM OS Agent Agent Fabric [...] Agent Virtual Hard Drive Virtual Hard Drive Azure Hypervisor Hardware CPU (cores), RAM, local hard drive, ... 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #8 www.ernw.de … the Cloud? 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #9 www.ernw.de Why Hyper-V? ¬ Supposedly, very little research so far: - Four DoS vulnerabilities at all. - Almost no published 3rd party research. ¬ Used in a variety of corporate environments. - Including Azure! - Heavily marketed by Microsoft 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #10 www.ernw.de Azure Hypervisor A.k.a. Hyper-V? 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #11 www.ernw.de Versions Azure Hypervisor Hyper-V 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #12 www.ernw.de Methodology Or: We’re searching for runtime breakouts, right? www.ernw.de HV Security Objectives ¬ Main and crucial objective: Isolation! - On all layers (network, runtime, storage, …)! ¬ Potential attacks violating this objective: - Breakout attacks (of course ;-) ) - Side channels & timing attacks - Traditional attacks: Account compromises, misconfiguration, … 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #14 www.ernw.de Parts of an Hypervisor ¬ Device virtualization ¬ Memory management & isolation ¬ CPU virtualization ¬ APIs 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #15 www.ernw.de Vulnerability History ¬ 2007: VMftp Hypervisor Breakout ¬ 2009: VMware Cloudburst ¬ 2011: Virtunoid – KVM Breakout ¬ 2012: VMSA-12-009 ¬ 2012: VMDK Has Left The Building ¬ 2012: Xen SYSRET ¬ 2013: MS13-092 ¬ 2014: VirtualBox HGCM ¬ 2014: VirtualBox Chromium Breakout 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #16 www.ernw.de “Virtual Air Gap” Hyper-V “VMware isn't an additional security layer: It's just another layer to find bugs in” Kostya Kortchinsky/Immunity/Cloudburst, 2009 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #17 www.ernw.de Seriously, there is just no Hyper-V Hyper-V Logo available. www.ernw.de Hyper-V ¬ Type 1 hypervisor - „Bare metal“ ¬ VMs are called „partitions“ - Root Partition performs management duties. - Creation, Configuration, Destruction - Logging ¬ Support for „unenlightened“ + „enlightened“ systems - Enlightened = Explicit support for Hyper-V. Requires guest modification. ¬ Uses Intel VT instruction set for hardware based virtualization 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #19 www.ernw.de ! Source: hp://msdn.microso.com/de-de/liBrary/cc768520(en-us).aspx 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #20 www.ernw.de Hyper-V vs. VMware ESXi Hyper-V ESXi Architecture Micro Kernel Monolithic Most interesLng Parent ParLLon Hypervisor aack surface Proprietary Unix-like environment with a Plaorm to exploit Windows lot of custom liBraries and characterisLcs The micro kernel improves the security posture of the hypervisor, but moves attention to the parent partition – which simplifies post-exploitation! 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #21 www.ernw.de Hyper-V Information Sources ¬ Hypervisor Top Level Functional Specification - Detailed documentation of Hypercall API ¬ Linux Integration Services - Open Source Hypercall / VMBus / VSC implementation ¬ Patent Applications - See picture ¬ Singularity Header Files - https://singularity.svn.codeplex.com/svn/base/Windows/Inc/ ¬ Common Criteria Certification Documents - http://www.commoncriteriaportal.org/files/epfiles/ 0570b_pdf.pdf ¬ Binaries - … 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #22 www.ernw.de Reverse Engineering - Hypervisor ¬ Hypervisor itself is implemented in Hvix64.exe (Intel) and Hvax64.exe (AMD) ¬ Unfortunately no public debugging symbols available L ¬ However some symbols can be ported from winload.exe and hvloader.exe - Networking Code, USB Stack, Debugger implementation - Full credit to Gerhart from securitylab.ru for this idea! 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #23 www.ernw.de Reverse Engineering – VMX ¬ No documented system libraries ¬ Almost no strings ¬ Intel VMX instructions and VMCS are biggest help - Semi-automated approach: Locate vmx instructions and access to VMCS properties - Translate VMCS property values into corresponding name - Implemented using IDAPython script 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #24 www.ernw.de Reverse Engineering - Debugging ¬ Debugging via WinDBG is supported - Serial Port, Firewire, Ethernet… ¬ Fortunately no dedicated hardware is needed - VMware supports nested virtualization ¬ Hyper-V specific functionality requires hvexts.dll - Not publicly available - Have a copy? Drop us a mail J 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #25 www.ernw.de Reverse Engineering - VSP ¬ Virtualization Service Provider - Implemented in Kernel (Storage, Networking) or Userspace(Framebuffer, HID) ¬ Public debugging Symbols are “sometimes” available - vmswitch.sys J - storvsp.sys L - vmwp.exe L (Many debugging strings) 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #26 www.ernw.de Attack Surface 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #27 www.ernw.de Attack Surface ¬ Based on the taxonomy presented earlier: - CPU: VM Exits - Device Virtualization: VMBus, Emulated Devices, RemoteFX - APIs: VMBus, Hypercalls 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #28 www.ernw.de Emulated Devices www.ernw.de Emulated Devices ¬ Emulation of standard devices to allow unenlightened guest partitions ¬ Includes - Network adapter - S3 Trio graphic card - Keyboard / Mouse - IDE Controller ¬ Implemented in vmwp.exe 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #30 www.ernw.de Emulated Devices ¬ We performed basic fuzzing (think IOFUZZ) - Permanent reboots - Worker process eats 100% CPU and requires hard kill - … no interesting results besides that. ¬ Basic static analysis - No symbols, but debug strings. - Lots of sanity checks. 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #31 www.ernw.de VMBus www.ernw.de VMBus ¬ Message bus for communication between partitions ¬ Default configuration: - Only communication to and from root partition allowed ¬ Memory pages that are mapped for multiple partitions - Heavily used for performance critical tasks in enlightened partitions ¬ Large attack surface 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #33 www.ernw.de VMBus Components 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #34 www.ernw.de VMBus Architecture ¬ Initialization: - PostMessage HyperCall - Is used to create VMBus between Partitions - Negotiates/sets up shared memory sections ¬ Communication: - One or more channels are used to isolate communication between different functionality - Think of IP transport and TCP connections - Each channel has two ring buffers, one for inbound and one for outbound communication - Large transfers are performed via GPADLs 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #35 www.ernw.de VMBus-based Services Term Description Driver Networking VM traffic is sent via VMBus to the Child: hv_netvsc.ko Hyper-V Virtual Switch running in the Parent: vmswitch.sys parent partition. Storage Child partitions send (mainly) SCSI Child: hv_storvsc.ko commands encapsulated in so-called Parent: storvsp.sys, vhdump.sys vstor packets. Utilities Different minor functionality such as Child: hv_util.ko heartbeats, time synchronization, or Parent: vmwp.exe shutdown is available via SyncIC messages Framebuffer Virtual child console in parent Hyper-V Child: hyperv_fb Manager tool Parent: vmwp.exe 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #36 www.ernw.de Analysis ¬ Network and Storage: Interesting attack surface - Parent endpoints in kernel space - In contrast to VMWP.exe running under non-admin user ¬ Potential vulnerabilities: - Protocol/logical flaws - Memory corruption in parent partition drivers/processes 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #37 www.ernw.de Storage Parent Partition Child Partition vhdump.sys storvsp.sys storvsc.ko SCSI driver vstor scsi vstor scsi VMBus VMBus VMBus vstor scsi 5/29/14 © ERNW GmbH | Carl-Bosch-Str. 4 | D- 69115 Heidelberg #38 www.ernw.de vstor_dmp # ./vstor_dmp 0x000000: 03 00 00 00 01 00 00 00 ........ 0x000008: 00 00 00 00 34 00 00 00 ....4… 0x000010: 02 00 00 00 0a 14 00 00 ........ 0x000018: 00 20 00 00 2a 00 07 c5 .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    62 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us