Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
2006 IEEE Symposium on Security and Privacy (S&P) SubVirt: Implementing malware with virtual machines 14 pages, cited: 163 Samuel T. King, Peter M. Chen (University of Michigan) Yi-Min Wang, Chad Verbowski, Helen J. Wang, and Jacob R. Lorch (Microsoft Research) proof-of-concept By Mike Hsiao, 20100423 Outline • Introduction • Virtual machines • Virtual-machine based rootkit design and implementation • Evaluation • Defending against virtual-machine based rootkits • Related work • Conclusions 2 Introduction • New type of malware – Virtual-machine based rootkit (VMBR) installs a VM monitor underneath an existing operating system and hoists the original operating system into a virtual machine. • rootkit: tools used to hide malicious activities – VMBR are hard to detect and remove because their state cannot be accessed by software running in the target system. – Further, VMBRs support general-purpose malicious services by allowing such services to run in a separate operating system 3 Introduction (cont’d) • A major goal of malware writers is control. – Controlling the system allows malware to remain invisible by lying to or disabling intrusion detection software. – Lower layers can control upper layers. – If the defender’s security service occupies a lower layer than the malware, then that security service should be able to detect, contain, and remove the malware. • E.g., ps, kernel-level rootkit, check the integrity of the kernel ds, hide/check memory footprint, 4 Virtual machines • A virtual-machine monitor (VMM) manages the resources of the underlying hardware and provides an abstraction of one or more virtual machines. – Multiplexing computer’s hardware – Isolate all resources of each virtual computer – VM services are implemented outside the guest they are serving in order to avoid perturbing the guest. 5 Virtual machines (cont’d) • VM services – debug operating systems and system configurations – migrate live machines – detect or prevent intrusions • Software running outside of a VM views low-level VM state such as disk blocks, network packets, and memory. • Software inside the VM interprets this state as high-level abstractions such as files, TCP connections, and variables. • It is called the semantic gap. Virtual-machine introspection (VMI) [18, 27] describes techniques that enables a VM service to understand and modify states and events within the guest. [18] T. Garfinkel and M. Rosenblum, “A Virtual Machine Introspection Based Architecture for Intrusion Detection,” in proc. NDSS, 2003. [27] A. Joshi, S. T. King, G. W. Dunlap, and P. M. Chen, “Detecting past and present intrusions 6 through vulnerability-specific predicates,” in proc. SOSP, 2005. Virtual-machine based rootkit design and implementation • 3.1 describes how a VMBR is installed on an existing system. • 3.2 describes the techniques VMBRs use to implement malicious services, and • 3.3 discusses the example malicious services we implemented. • 3.4 explains how VMBRs maintain control over the system. • They implemented two proof-of-concept VMBRs for the x86 platform using Virtual PC and VMware Workstation VMMs. – The Virtual PC VMBR uses a minimized version of Windows XP for the host OS and the VMware VMBR uses Gentoo Linux. – They modify the host Windows XP kernel, Virtual PC, and the host Linux kernel. (They don’t have VMware source code.) 7 Installation • To insert itself beneath an existing system, a VMBR manipulate the system boot sequence to ensure that the VMBR loads before the target OS. – After the VMBR loads, it boots the target OS using the VMM. As a result, the target OS runs normally, but the VMBR sits silently beneath it. 8 Installation (cont’d) BIOS Master boot record Boot sector OS Original Boot sequence BIOS VMBR loads BIOS Master boot record Boot sector OS Modified Boot sequence 9 Installation (cont’d) • To install a VMBR on a computer, an attacker must first gain access to the system with sufficient privileges to modify the system boot sequence. – – – – exploit a remote vulnerability fool a user into installing malicious software bribe an OEM or vendor corrupt a bootable CDROM or DVD image on P2P • Install the VMBR’s state on persistent storage – unused blocks elsewhere on the disk (Windows) – Disable swapping and use the swap partition (Linux) 10 Installation (cont’d) • Modify the system’s boot sequence to ensure our VMBR loads before the target OS – modify the boot records on the primary hard disk – But, anti-malware applications detect modifications to the hard disk’s boot blocks. – But, the author manipulate the boot blocks during the final stages of shutdown (after most processes and kernel subsystems have exited). • Windows XP: registers a LastChanceShutdown Notification event handler – They use the low-level disk driver to copy our VMBR boot code (to bypass the file system layer). • Linux: modify the boot sequence using user-mode code – They modify the shutdown scripts so that our installation code runs after all processes have been killed but before the system shuts down. 11 Malicious services • VMBRs use a separate attack OS to deploy malware that is invisible from the perspective of the target OS but is still easy to implement. • Three categories (malicious services) – those that need not interact with the target system at all • E.g., spam relays, DDoS zombies, phishing web servers – those that observe information about the target system • VMBRs can use virtual-machine introspection to help observe and understand the software-level abstractions in the target OS and applications. • Not affect the virtual devices presented to the target OS. • E.g., VMBRs enable logging of hardware-level data (e.g., keystrokes, packets) • E.g., if a target application uses an encrypted socket, attackers can use virtualmachine introspection to trap all SSL socket write calls and log the clear-text data before it is encrypted. – those that intentionally perturb the execution of the target system • The third class of malicious service deliberately modifies the execution of the target system. • A VMBR can customize the VMM’s device emulation layer to modify hardwarelevel data. 12 Example malicious services • The author implemented – a phishing web server, • in another VM – a keystroke logger, • in the VMM keyboard control module – a service that scans the target file system looking for sensitive files, and • use VM introspection to scan the target OS’s file system to copy the password file – a defense countermeasure that defeats a current virtual-machine detector. • redpill [39] [39] J. Rutkowska. Red Pill... or how to detect VMM using (almost) one CPU instruction, 2005. 13 http://invisiblethings.org/papers/redpill.html. Maintaining control • To avoid being removed, a VMBR must protect its state by maintaining control of the system. – The only time the VMBR loses control of the system is in the period of time after the system powers up until the VMBR starts. • The first code is BIOS. – By restarting the virtual hardware, VMBRs provide the illusion of resetting the underlying physical hardware without relinquishing control. – VMBRs can also emulate system shutdowns such that the system appears to shutdown, but the VMBR remains running on the system. • We use ACPI sleep states to emulate system shutdowns and to avoid system power-downs. • When the user “powers-up” the system by pressing the power button the VMBR resumes. (powers-off only suspends the VMBR) 14 Evaluation • VMware-based VMBR – Run on a Dell Optiplex Workstation with a 2.8 GHz Pentium 4 and 1 GB of RAM – compromises a RedHat Enterprise Linux 4 target system – VMBR image 228/95 MB (un-/uncompressed) • Virtual PC-based VMBR – a Compaq Deskpro EN with a 1 GHz Pentium 4 and 256 MB of RAM – compromises a Windows XP target system – VMBR image 251/106 MB (un-/uncompressed) 15 Evaluation – installation/boot time (sec) Actual memory usage is 3% for the extra VMM. 16 Defending against virtual-machine based rootkits • Security software below the VMBR – Such detection software can read physical memory or disk and look for signatures or anomalies that indicate the presence of a VMBR. – Other low-level techniques such as secure boot can ensure the integrity of the boot sequence and prevent a VMBR from gaining control before the target OS. • Intel’s LaGrande [25], AMD’s platform for trustworthy computing [2], and Copilot [36]. – Boot from a safe medium such as a CD-ROM, USB drive or network boot server – Use a secure VMM [17] (Terra) • does not by itself stop a VMBR, but does retain control over the system 17 Defending against virtual-machine based rootkits (cont’d) • Security software above the VMBR – (CPU overhead) by comparing the running time of benchmarks against wall-clock time – (memory and disk space) extra paging activity may increase the running time of the program – (I/O devices) VMMs only emulate a small number of virtual devices (often with customized interfaces to improve performance) – (x86 processor features) sidt 18 Related work • Layer-below attacks – operating system kernel • Using virtual machines to enhance security – – – – VMs to detect intrusions, analyze intrusions isolate services encrypt network traffic implement honeypots • Detect the presence of VMMs • Inserting new software layers into existing systems – A key feature of all these applications is that they preserve compatibility with existing systems by not modifying interfaces of the existing layers. – E.g., file system, firewall 19 Comments • Considering the characteristics of VM in security issues. – VMM layer – VM Image can be ”power on/off” • Some people don’t like VM environment. – How to detect that I’m in a VM? – How do I know my host/VMM/VM/OS is secure? – Can other vulnerable or hostile VM penetrate my VM? • Auditing mechanisms (such as VMMs) are benefits or harms for me? • Provide better visibility! 20