Implicit Operating System Awareness in a Virtual Machine Monitor
Total Page:16
File Type:pdf, Size:1020Kb
IMPLICIT OPERATING SYSTEM AWARENESS IN A VIRTUAL MACHINE MONITOR by Stephen T. Jones A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy Computer Sciences at the UNIVERSITY OF WISCONSIN–MADISON 2007 For my family i ii ACKNOWLEDGMENTS So many people have contributed to the success of this endeavor. I am indebted to them all. I will mention just a few by name here. First and most importantly I want to thank my wife and best friend Alyson whose persistent faith, love, encouragement,and support have been essential to all of my successes and have helped me learn from each of my failures. She got me started on this path and has seen me through to yet another beginning. My children Emma, Abbi, and Ian provide me with constant inspiration and perspective, often when I expect it least and need it most. My advisors Andrea and Remzi gently and deftly shepherded me through the some- times uncomfortable realization of what high quality research actually is. Their curiosity and enthusiasm about computer systems and, most importantly to me, their humanity form the core of what I take away from Wisconsin. I thank my Parents Ben and Shirley Jones for giving me life, teaching me the value of work, and nurturing a loveof discoveryand learning. I also appreciate the diverse examples of all my wonderful siblings who continue to teach me whenever we are together. My brother Benjamin contributed especially to my love of design and elegant technology by generously sharing his time and ideas with me when I was young. I want to gratefully acknowledge the financial support provided to me by Sandia Na- tional Laboratories and the collective friendship and wisdom of all of my Sandia colleagues with whom I am privileged to work. My manager Roxana Jansma deserves special men- tion. She has repeatedly stepped up to provide me both material and moral support for which I am deeply grateful. The amazing technical prowess of my friend and mentor Doug Ghormley originally motivated me to return to school and I have asymmetrically benefited from his example and advice. While in Madison I have had the good fortune to interact with a fantastic group of people. Randy Smith has been a great friend with whom I have enjoyed sharing the travails and triumphs of graduate student life. My great research group colleagues Nitin Agrawal, Lakshmi Bairavasundaram, John Bent, Nathan Burnett, Tim Denehy, Haryadi Gunawi, Swetha Krishnan, Vijayan Prabhakaran, Florentina Popovici, and Muthian Sivathanu have taught me more than I ever cared to know about disk drives and storage systems. Finally, I would like to thank my many friends in the Madison first ward who have made my time in Madison a spiritual as well as an intellectual journey. iii iv Contents ABSTRACT xv 1 Introduction 1 1.1 OvercomingtheSemanticGap . 2 1.2 ResearchStatement.............................. 2 1.3 ProcessInformation.. .... .... .... ... .... .... .... 3 1.4 BufferCacheInformation. 4 1.5 SecurityApplications. 4 1.6 Contributions ................................. 5 1.7 Outline .................................... 5 2 Virtualization Background 7 2.1 TheRoleoftheVirtualMachine . 7 2.2 DeprivilegedOperation . 8 2.3 VirtualizingMemory ............................. 9 2.4 VirtualizingDiskI/O . .... .... .... ... .... .... .... 9 2.5 TrapandEmulateLimitations . 9 2.5.1 Paravirtualization. 10 2.5.2 HardwareTrends ........................... 10 2.6 Summary ................................... 10 3 Implicit Operating System Awareness 13 3.1 Goals ..................................... 13 3.2 Approach ................................... 13 3.2.1 Limitations .............................. 14 3.3 AlternativeApproaches. 14 3.3.1 NewInterfaces ............................ 15 3.3.2 ExplicitInformation . 15 3.4 Summary ................................... 16 v vi 4 Tracking Guest Operating System Processes 17 4.1 Background.................................. 18 4.1.1 x86VirtualMemoryArchitecture . 18 4.1.2 SPARCVirtualMemoryArchitecture . 19 4.2 ProcessIdentification . 19 4.2.1 Techniquesforx86 . 20 4.2.2 TechniquesforSPARC . 21 4.3 ResourceAssociation . 22 4.3.1 ContextAssociation . 22 4.3.2 EventChaining............................ 23 4.3.3 DataStructures ............................ 23 4.4 AntfarmImplementation . 24 4.4.1 AntfarmforXen ........................... 24 4.4.2 AntfarmforSimics. 24 4.5 ProcessAwarenessEvaluation . .. 25 4.5.1 x86Evaluation ............................ 25 4.5.2 Overhead ............................... 30 4.5.3 SPARCEvaluation .. .... .... ... .... .... .... 32 4.5.4 AssociationEvaluation. 35 4.5.5 EvaluationSummary . 38 4.6 CaseStudy:AnticipatoryScheduling. ..... 38 4.6.1 Background.............................. 38 4.6.2 Information.............................. 39 4.6.3 Implementation.... .... .... ... .... .... .... 39 4.6.4 Evaluation .............................. 40 4.7 Assumptions ................................. 42 4.8 Summary ................................... 43 5 Monitoring the Guest Buffer Cache 45 5.1 GeigerTechniques .............................. 46 5.1.1 BasicTechniques... .... .... ... .... .... .... 46 5.1.2 TechniquesforUnifiedCaches. 48 5.1.3 TechniquesforStorage . 49 5.2 Implementation ................................ 51 5.3 Evaluation................................... 52 5.3.1 Workloads .............................. 52 5.3.2 Metrics ................................ 53 5.3.3 Microbenchmarks .. .... .... ... .... .... .... 53 5.3.4 ApplicationBenchmarks . 55 5.3.5 Overhead ............................... 57 5.4 Casestudy:WorkingSetSizeEstimation . .... 58 5.4.1 MemRxDesign............................ 58 5.4.2 Evaluation .............................. 60 5.5 Casestudy:Eviction-BasedCachePlacement . ...... 62 vii 5.5.1 Implementation.... .... .... ... .... .... .... 63 5.5.2 Evaluation .............................. 63 5.6 Assumptions ................................. 65 5.7 Summary ................................... 66 6 Detecting and Identifying Hidden Guest Processes 67 6.1 ProcessHiding ................................ 69 6.2 Detection ................................... 70 6.2.1 Approach............................... 70 6.2.2 Details ................................ 71 6.3 Identification ................................. 72 6.3.1 Approach............................... 72 6.3.2 Details ................................ 73 6.3.3 CPUInflation............................. 74 6.4 ThreatModel ................................. 75 6.4.1 DefinitionofSuccess. 75 6.5 Evasion .................................... 75 6.6 Implementation ................................ 76 6.7 Evaluation................................... 77 6.7.1 ExperimentalEnvironment. 77 6.7.2 DetectionEvaluation . 77 6.7.3 IdentificationEvaluation . 84 6.8 AttacksonLycosid .............................. 89 6.8.1 Desynchronization . 89 6.8.2 Countermeasures ... .... .... ... .... .... .... 90 6.9 Assumptions ................................. 90 6.10Summary ................................... 91 7 RelatedWork 93 7.1 Gray-boxsystems............................... 93 7.2 GuestInformationinaVMM. 94 7.2.1 ParavirtualizationandExplicitInterfaces . ....... 94 7.2.2 ExplicitInformation . 94 7.2.3 ImplicitInformation . 95 7.3 StatisticalTechniques. .. 95 7.4 CaseStudies.................................. 95 7.4.1 WorkingSetSize ........................... 96 7.4.2 Secondary-levelCaching . 96 7.4.3 HiddenProcessDetection . 97 8 Conclusion 99 8.1 LessonsLearned ............................... 99 8.2 FutureWork..................................101 8.2.1 TargetingOtherGuestAbstractions . 101 viii 8.2.2 ResourceAssociation. .102 8.2.3 ObservingMemoryStructure . .102 8.3 ClosingRemarks ...............................103 List of Tables 4.1 Process identification techniques. The table lists the techniques used by Antfarm to detect each process event on the x86 and SPARC architectures. ......... 22 4.2 Completeness for x86. The table shows the total number of creations and exits for processes and address spaces reported by the operating system. The total number of process creations and exits inferred by Antfarm are shown in comparison. Antfarm detects all process creates and exits without false positives or false negatives on both Linux 2.4 and Windows. Fork and exec, however, lead to false positives under Linux 2.6 (bold face values). All false positives are due to the mismatch between address spaces and processes, which is indicated by matching counts for address space creates and inferred creates. Actual and inferred context switch counts are also shown for completeness and are accurate as expected. ............ 26 4.3 Completeness for SPARC. The table shows the results for the same experiments reported for x86 in Table 4.2, but for SPARC/Linux 2.4. False positives occur for each fork due to an implementation which uses copy-on-write. Antfarm also infers an additional, non-existent exit/create event pair for each exec. This error is not due to multiple address spaces per process as on x86, but rather stems from the flush that occurs to clear the caller’s address space upon exec. .......... 32 6.1 Detection Runtime Overhead. The table shows runtimes and overheads for three benchmarks run under Lycosid and under a pristine version of Xen. ........ 87 6.2 Identification under Reduced Runtime. The table reports the identification ac- curacy of Lycosid for a set of experiments in which a single hidden process must be identified among 10 active processes when the hidden process runs exponentially