Certicloud and Jshadobf Towards Integrity and Software Protection in Cloud Computing Platforms
Total Page:16
File Type:pdf, Size:1020Kb
PhD-FSTC-2013-36 The Faculty of Sciences, Technology and Communication Dissertation Defense held on 20/12/2013 in Luxembourg to obtain the degree of Docteur de l'Universite´ de Luxembourg En Informatique by Beno^ıt Bertholon Born on June 12th, 1986 in Clermont Ferrand (France) CertiCloud and JShadObf Towards Integrity and Software Protection in Cloud Computing Platforms Dissertation Defense Commitee Prof. Dr. Pascal Bouvry, Ph.D. supervisor Professor, University of Luxembourg Prof. Dr. Christian Collberg Professor, University of Arizona, US Prof. Dr. Yves Le Traon, Chairman Professor, University of Luxembourg Dr. Jean-Louis Roch, Vice Chairman Assistant Professor, INRIA, France Dr. S´ebastien Varrette, Ph.D co-advisor Research Associate, University of Luxembourg ii Abstract A simple concept that has emerged out of the notion of heterogeneous distributed computing is that of Cloud Computing (CC) where customers do not own any part of the infrastructure; they simply use the available services and pay for what they use. This approach is often viewed as the next ICT revolution, similar to the birth of the Web or the e-commerce. Indeed, since its advent in the middle of the 2000's, the CC paradigm arouse enthusiasm and interest from the industry and the private sector, probably because it formalizes a concept that reduces computing cost at a time where computing power is key to reach competitiveness. Despite the initiative of several major vendors to propose CC services (Amazon, Google, Microsoft etc.), several security research questions remain open to transform the current euphoria into a wide acceptance. Moreover, these questions are not always tackled from the user's point of view. In this context, the purpose of this thesis is to investigate and design novel mechanisms to cover the following domains: Integrity and confidentiality of Infrastructure-as-a-Service (IaaS) infrastructures, to • provide guarantees on programs and data running in a virtualised environment, either before, during or after a deployment on the CC platform. Software protection on Software-as-a-Service (SaaS) and Platform-as-a-Service (PaaS) • architectures, using code obfuscation techniques. This dissertation details thus two main contributions. The first one is the development and implementation of CertiCloud, a CC framework which relies on the concepts developed in the Trusted Computing Group (TCG) together with hardware elements, i.e., Trusted Platform Module (TPM) to offer a secured and reassuring environment within IaaS platforms. At the heart of CertiCloud reside two protocols: TCRR and VerifyMyVM. When the first one asserts the integrity of a remote resource and permits to exchange a private symmetric key, the second authorizes the user to detect trustfully and on demand any tampering attempt on its running VM. These protocols being key components in the proposed framework, their analysis against known cryptanalytic attacks has been deeply analysed and testified by their successful validation by AVISPA [1] and Scyther [66], two reference tools for the automatic verification of security protocols. The second major contribution proposed in this manuscript is an obfuscation framework named JShadObf, designed to improve the protection of Javascript-based software running typically on SaaS and PaaS platforms. This framework combines obfuscation transformations, code complexity measurements and Multi-Objective Evolutionary Algorithms (MOEAs) to protect Javascript code, the most ubiquitous programming language at the heart of most modern web services deployed over those CC infrastructures such as Google Office Apps, Dropbox or Doodle. iii iv To Kristine & Edouard-Gabriel v vi Acknowledgements I would like to thank my advisers, Professor Pascal Bouvry and Doctor S´ebastien Varrette for giving me the opportunity to do a PhD at the University of Luxembourg and for their help during these 4 years of studies. With their support I was able to investigate the issues I was interested in, while being well supervised and advised. I was very happy to work in the team of Professor Bouvry and I thank all the members (former and current) of the team: Agata, Ana-Maria, Apivadee, Bernabe, Cesar, Fr´ed´eric,Gr´egoire,Guillaume, Hyacinthe, Jakub, Johnatan, Juanlu, Julien, Marcint, Mateusz, Patricia, S´ebastien,Sune, Xavier, Yoann for their collaboration but more importantly for their friendship and all the good moments we spent together. Thanks to Ton Van Deursen for his help with protocol verification, especially with Scyther, to Bernabe Doronsoro and Gregoire Danoy for the Evolutionary Algorithm insight and recommendations, and also to Frederic Pinel for his help with statistical analysis and the discussions on programming languages. And finally, I would like to thank my thesis defence committee: Pascal Bouvry, Christian Collberg, Jean-Louis Roch, Yves Le Traon and S´ebastienVarrette for their presence and their reviews of this dissertation. I'm grateful to Kristine for being supportive in every moment, especially the difficult ones during the writing period and for the review of the manuscript, to Edouard-Gabriel for keeping me awake during nights ;), and to my parents for their support and love. Supported by the Fonds National de la Recherche, Luxembourg (PHD-09-142) vii viii Contents Abstract iii Acknowledgements vii 1 Introduction 1 1.1 Context . .1 1.2 Motivations . .2 1.3 Contributions . .2 1.4 Dissertation Outline . .5 I Background 7 2 Cloud Computing and Distributed Systems 9 2.1 Distributed Systems . .9 2.1.1 Deployment types of Distributed Systems . 10 2.1.2 Types of Distributed Systems . 10 2.2 The Cloud Computing Paradigm . 10 2.2.1 Software-as-a-Service (SaaS) . 11 2.2.2 Platform-as-a-Service (PaaS) . 12 2.2.3 Infrastructure-as-a-Service (IaaS) . 12 2.2.4 Deployment models . 14 2.3 Overview of the main Cloud Computing Middlewares . 15 2.3.1 Eucalyptus . 15 2.3.2 OpenNebula . 16 2.3.3 OpenStack . 17 2.3.4 Nimbus . 18 2.4 Promises and Open Issues in IaaS Cloud Computing . 18 2.4.1 Computing performances . 19 2.4.2 Reliability . 19 2.4.3 Interoperability . 19 2.4.4 Information security . 19 3 Cryptographic Primitives to Enhance Computer Systems 21 3.1 Introduction . 21 3.2 Encryption . 22 3.2.1 Symmetric Encryption . 24 3.2.2 Asymmetric Encryption . 25 3.3 Hash Functions . 26 3.3.1 Checksums . 26 3.3.2 Cryptographic Hash . 26 3.3.3 Hash Message Authentication Code (HMAC) . 27 3.4 Public-Key Infrastructure and Digital Signatures . 27 3.4.1 Digital Signature . 27 ix x CONTENTS 3.4.2 Key Distribution . 28 3.5 Open issues in Computer Security . 29 4 Hardware Security 31 4.1 Taxonomy of Hardware Attacks . 31 4.1.1 Class of Attackers . 31 4.1.2 Type of Attacks . 32 4.2 Trusted Platform Modules . 33 4.2.1 Trusted Computing (TC) and the Chain of Trust . 33 4.2.2 TPM Components . 34 4.2.3 Open-source Community and the TPM . 36 4.3 Open issues in Hardware Security . 38 4.3.1 No Unbreakable Hardware . 38 4.3.2 User's Privacy Concerns . 38 4.3.3 TPM protections for CC platforms . 38 5 Software Protections: from BIOS to Applications 41 5.1 Software Security: Operating System Level . 41 5.1.1 Anti-virus and Malware . 41 5.1.2 Firewall . 42 5.1.3 Intrusion Detection Systems . 42 5.2 Software Security: Application Level . 42 5.2.1 Anti-debugger . 42 5.2.2 Anti-disassembly . 43 5.2.3 Anti-modification Techniques . 43 5.2.4 Self-modification for Code Obfuscation . 43 5.3 Open Issues in Software Protection . 44 II Platform Protection in a Cloud Environment (CertiCloud) 47 6 Security of Protocols: Methods and Tools 49 6.1 Automatic Analysis of Security Protocol . 49 6.2 Verification of Models . 49 6.2.1 Proof-based vs Model-based . 50 6.2.2 Model checker for Protocol Verification . 51 6.3 Scyther . 51 6.4 AVISPA . 51 6.5 Conclusion . 52 7 The CertiCloud framework: a Novel TPM-based Approach to Ensure Cloud IaaS Security 53 7.1 Introduction . 53 7.2 Related Work . 54 7.3 Context and Assumptions . 55 7.4 Preparation of the Virtual Machine Image (VMI) and the Virtual Machine (VM) request 56 7.5 TPM-based Certification of a Remote Resource (TCRR) . 56 7.5.1 Node Integrity Check (msg 1-4) . 57 7.5.2 User Session-key Exchange (msg 5-8) . 59 7.5.3 TCRR Protocol Validation . 59 7.5.4 The Platform Configuration Registers (PCRs) comparison problem . 59 CONTENTS xi 7.6 CertiCloud Framework . 60 7.7 VerifyMyVM .......................................... 63 7.7.1 The VerifyMyVM Hypothesis . 64 7.7.2 The VerifyMyVM Protocol . 64 7.7.3 VerifyMyVM Protocol Validation . 65 7.8 Implementation . ..