Showing posts with label hypervisor rootkits. Show all posts
Showing posts with label hypervisor rootkits. Show all posts

Saturday, September 06, 2008

Xen 0wning Trilogy: code, demos and q35 attack details posted

We have posted all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code that we used last month during our Black Hat presentations about Xen security, and you can get it here. This includes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full source code for:
1) The generic Xen Loadable Modules framework
2) Implementation of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two Xen Hypervisor Rootkits
3) The Q35 exploit
4) The FLASK heap overflow exploit
5) The BluePillBoot (with nested virtualization support on SVM)
6) The XenBluePill (with nested virtualization support on SVM)

Beware cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code is by far not user-friendly, it requires advanced Linux/Xen, C and system-level programming skills in order to tweak some constants and run it successfully on your system. Do not send us questions how to compile/run it, as we don’t have time to answer such questions. Also do not send questions how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code works – if you can’t figure it out by reading our slides and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it means you should probably spend more time on this yourself. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, we would appreciate any constructive feedback.

The code is our gift to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 research community. There is no warranty and Invisible Things Lab takes no responsibility for any potential damage that this code might cause (e.g. by rebooting your machine) or any potential malicious usage of this code, or any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r code built on top of this code. We believe that by publishing this code we help to create more secure systems in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future.

Additionally, we also posted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full version of our second Black Hat talk, which now includes all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 slides about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Q35 bug and how we exploited it. Those slides had to be previously removed during our Black Hat presentation, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patch was still unavailable during that time.

Friday, August 08, 2008

Our Xen 0wning Trilogy Highlights

Below you can find highlights of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three presentations, collectively referred to as "Xen 0wning Trilogy", that Alex, Rafal and I gave today at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Black Hat conference in Las Vegas.

Talk #1

1) Practical implementation of reliable and portable DMA attacks from Domain 0 to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor memory.

2) Xen Loadable Modules :) A framework that allows to load arbitrary C code modules into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 running Xen hypervisor. It uses DMA attack from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous point to get access to Xen memory.

3) Two implementations of Xen Hypervisor Rootkits. This was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first time that working hypervisor rootkits have been presented (note cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 distinction between hypervisor rootkit vs. virtualization based rootkits).

Talk #2

1) Discussed how Xen 3.3 makes use of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel VT-d technology to protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor.

2) Then we discussed how to bypass such VT-d protection on certain mocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rboards, like e.g. Intel DQ35 board.

3) An extra bonus: our attack from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous point allows also to subvert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SMM handler and e.g. install an SMM rootkit in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system.

4) Discussed ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Xen security mechanisms like driver domains, stub domains, PV GRUB and also attempted to quickly compare cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of Xen security design with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hyper-V and ESX hypervisor.

5) Showed an exploitable heap overflow bug in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor. The bug was in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 FLASK module -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NSA implementation of Xen Security Modules. FLASK, however, is not turned on by default, so even though we showed how to successfully exploit this heap overflow (which results in an escape from an unprivileged domain directly to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor), this is not a bug that can be used to 0wn The Planet. It shows, however, what happens when people start adding more and more code into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor.

6) Introduced HyperGuard -- a project done in cooperation with Phoenix Technologies. HyperGuard is going to be a SMM-based integrity scanner for Xen-like hypervisors. With HyperGuard we take a different approach cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r integrity scanners do -- racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than ensuring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correctness of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code and data of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor, which might be very tricky, we instead ensure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no untrusted code in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hypervisor, which is a much simpler task.

Talk #3

1) Provided detailed description of how to implement nested hardware based virtualization on AMD-V and VT-x (a copy of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 slides from my RSA speech in April).

2) Showed how to use this nested virtualization to implement Blue Pill Boot, that can be used to virtualize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system right from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 boot stage. We mentioned cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best defend against this kind of system compromises is a trusted boot mechanism, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r SRTM or DRTM, as implemented e.g. by Xen's tboot.

3) Consequently we showed Xen Blue Pill that is able to move a running Xen system into a virtual machine on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly. This, on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, cannot be prevented by neicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SRTM nor DRTM technology. XBP is a good example that running a legitimate hypervisor doesn't always prevent bluepill-like malware from being installed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system.

4) Finally, discussed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XBP detection. First, we noted that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "VMM detectors", proposed over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last years, that try to detect if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a hypervisor running above, are useless in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case of a bluepilled Xen system. The only one approach that could be used is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 direct timing analysis of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 #VMEXIT times in order to distinguish between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 native Xen case vs. bluepilled Xen case. We noted however, that direct timing analysis will not observe any differences when run from PV domains on AMD processors, and that it will observe little difference when run from HVM domains (7k vs. 5k cycles). The detection is easier on Intel processors, because of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unconditional #VMEXIT that we cannot get rid of.

All cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three talks can be found here.

Monday, July 07, 2008

0wning Xen in Vegas!

At this year’s Black Hat conference in Las Vegas in August we will be presenting three talks about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor (in)security. The three presentations have been designed in such a way that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y complement each ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r and create one bigger entirety, thus cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be referred as “Xen 0wning Trilogy” for brevity.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first presentation, Subverting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor, Rafal will discuss how to modify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen’s hypervisor memory and consequently how to use this ability to plant hypervisor rootkits inside Xen (everything on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly, without rebooting Xen). Hypervisor rootkits are very different creatures from virtualization based rootkits (e.g. Bluepill). This will be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first public demonstration of practical VMM 0wning (proof of concept code will be released, of course).

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second talk, Detecting and Preventing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor subversions, Rafal and I will discuss various anti-subverting techniques (IOMMU, Xen’s driver- and stub- domains) and whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y really can protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen (or similar) hypervisor from compromises. After demonstrating that those mechanisms can be bypassed, we will switch to discussing hypervisor integrity scanning and will present some prototype solutions to this problem.

Our trilogy wouldn’t be complete without discussing virtualization based malware in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context of bare-metal hypervisor compromises. Thus, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 third speech, Bluepilling cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xen hypervisor, Alex and I will discuss how to insert Bluepill on top of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 running Xen hypervisor. We will show how to do that both with and without restart (i.e. on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fly). To make this possible, our Bluepill needs to support full nested virtualization, so that Xen can still function properly. We will also discuss how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “Bluepill detection” methods proposed over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last 2 years, as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 integrity scanning methods discussed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previous speech, fit into this new scenario and how far we are from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stealth malware’s Holy Grail ;)

Special thanks to Black Hat organizers for scheduling all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 three presentations one after anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r in a dedicated Virtualization track on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 2nd day of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conference (August 7th).

It’s worth noting that we chose Xen as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 target not because we think it’s insecure and worthless. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contrary, we believe Xen is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most secure bare-metal hypervisor out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re (especially with all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 goodies in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upcoming Xen 3.3). Still we believe that it needs some improvements when it comes to security. We hope that our presentations will help making Xen (and similar hypervisors) more secure.