Dependability in Cloud Computing
Total Page:16
File Type:pdf, Size:1020Kb
FACOLTA` DI SCIENZE MATEMATICHE,FISICHE E NATURALI DIPARTIMENTO DI INFORMATICA DOTTORATO DI RICERCA IN INFORMATICA SCUOLA DI DOTTORATO IN INFORMATICA, XXVI CICLO Dependability in Cloud Computing TESI DI DOTTORATO DI RICERCA DI Ravi Jhawar RELATORE Prof. Vincenzo Piuri CORRELATORE Prof. Pierangela Samarati DIRETTORE DELLA SCUOLA DI DOTTORATO Prof. Ernesto Damiani Anno Accademico 2012/13 ii Abstract The technological advances and success of Service-Oriented Architectures and the Cloud computing paradigm have produced a revolution in the Information and Communications Technology (ICT). Today, a wide range of services are provisioned to the users in a flexible and cost-effective manner, thanks to the encapsulation of several technologies with modern business models. These services not only offer high-level software functionalities such as social networks or e-commerce but also middleware tools that simplify application development and low-level data storage, processing, and networking resources. Hence, with the advent of the Cloud computing paradigm, today's ICT allows users to completely outsource their IT infrastructure and benefit significantly from the economies of scale. At the same time, with the widespread use of ICT, the amount of data being generated, stored and processed by private companies, public organizations and individuals is rapidly increasing. The in-house management of data and applications is proving to be highly cost intensive and Cloud computing is becoming the destination of choice for increasing number of users. As a consequence, Cloud computing services are being used to realize a wide range of applications, each having unique dependability and Quality-of-Service (Qos) requirements. For example, a small enterprise may use a Cloud storage service as a simple backup solution, requiring high data availability, while a large government organization may execute a real-time mission-critical application using the Cloud compute service, requiring high levels of dependability (e.g., reliability, availability, security) and performance. Service providers are presently able to offer sufficient resource heterogeneity, but are failing to satisfy users' dependability requirements mainly because the failures and vulnerabilities in Cloud infrastructures are a norm rather than an exception. This thesis provides a comprehensive solution for improving the dependability of Cloud computing { so that { users can justifiably trust Cloud computing services for building, deploying and executing their applications. A number of approaches ranging from the use of trustworthy hardware to secure application design has been proposed in the literature. The proposed solution consists of three inter-operable yet independent modules, each designed to improve dependability under different system context and/or use-case. A user can selectively apply either a single module or combine them suitably to improve the dependability of her applications both during design time and runtime. Based on the modules applied, the overall proposed solution can increase dependability at three distinct levels. In the following, we provide a brief description of each module. iv The first module comprises a set of assurance techniques that validates whether a given service supports a specified dependability property with a given level of assurance, and accordingly, awards it a machine-readable certificate. To achieve this, we define a hierarchy of dependability properties where a property represents the dependability characteristics of the service and its specific configuration. A model of the service is also used to verify the validity of the certificate using runtime monitoring, thus complementing the dynamic nature of the Cloud computing infrastructure and making the certificate usable both at discovery and runtime. This module also extends the service registry to allow users to select services with a set of certified dependability properties, hence offering the basic support required to implement dependable applications. We note that this module directly considers services implemented by service providers and provides awareness tools that allow users to be aware of the QoS offered by potential partner services. We denote this passive technique as the solution that offers first level of dependability in this thesis. Service providers typically implement a standard set of dependability mechanisms that satisfy the basic needs of most users. Since each application has unique dependability requirements, assurance techniques are not always effective, and a pro-active approach to dependability management is also required. The second module of our solution advocates the innovative approach of offering dependability as a service to users' applications and realizes a framework containing all the mechanisms required to achieve this. We note that this approach relieves users from implementing low-level dependability mechanisms and system management procedures during application development and satisfies specific dependability goals of each application. We denote the module offering dependability as a service as the solution that offers second level of dependability in this thesis. The third, and the last, module of our solution concerns secure application execution. This module considers complex applications and presents advanced resource management schemes that deploy applications with improved optimality when compared to the algo- rithms of the second module. This module improves dependability of a given application by minimizing its exposure to existing vulnerabilities, while being subject to the same dependability policies and resource allocation conditions as in the second module. Our approach to secure application deployment and execution denotes the third level of de- pendability offered in this thesis. The contributions of this thesis can be summarized as follows. • With respect to assurance techniques our contributions are: i) definition of a hi- erarchy of dependability properties, an approach to service modeling, and a model transformation scheme; ii) definition of a dependability certification scheme for ser- vices; iii) an approach to service selection that considers users' dependability re- quirements; iv) definition of a solution to dependability certification of composite services, where the dependability properties of a composite service are calculated on the basis of the dependability certificates of component services. • With respect to offering dependability as a service our contributions are: i) definition v of a delivery scheme that transparently functions on users' applications and satisfies their dependability requirements; ii) design of a framework that encapsulates all the components necessary to offer dependability as a service to the users; iii) an approach to translate high level users' requirements to low level dependability mechanisms; iv) formulation of constraints that allow enforcement of deployment conditions in- herent to dependability mechanisms and an approach to satisfy such constraints during resource allocation; v) a resource management scheme that masks the affect of system changes by adapting the current allocation of the application. • With respect to security management our contributions are: i) an approach that deploys users' applications in the Cloud infrastructure such that their exposure to vulnerabilities is minimized; ii) an approach to build interruptible elastic algorithms whose optimality improves as the processing time increases, eventually converging to an optimal solution. vi Acknowledgements I would like to use the occasion of this thesis to thank all the people who have helped and supported me, in different ways, during my PhD. First and foremost, I would like to sincerely thank my advisors, Prof. Vincenzo Piuri and Prof. Pierangela Samarati. I am really grateful to them for introducing me to scientific research and for their constant presence, guidance, and support over the years. I would like to express them my gratitude for giving me all the opportunities and for graciously taking care of me not just academically but also personally. They always compassionately forgave my mistakes and motivated me in all situations. I consider myself very privileged to be one of their PhD students. Their passion for scientific research, work ethics, hard work and attention to details provide excellent role models for me. I would like to thank Prof. Sabrina De Capitani di Vimercati, Prof. Ernesto Damiani, Dr. Claudio Ardagna and Dr. Sara Foresti for their answers to all my questions, for precious advices, and for encouraging me in all situations. I would like to sincerely thank Prof. Sushil Jajodia for giving me the opportunity to visit the Center for Secure Information Systems, George Mason University, VA, USA. I am very grateful to him for his support and advices, and for providing a stimulating an enjoyable working atmosphere. I will always be indebted to Dr. Kamal Jajodia for all the kindness, generosity, caring and concern that she has shown me. I would like to sincerely thank her for all that she has done for me. I would like to thank Prof. Massimiliano Albanese and Dr. Marco Santambrogio for their help on the various aspects of the work presented in this thesis. I am grateful to Prof. Vijay Atluri, Prof. Javier Lopez and Prof. Laurence Yang, the referees of this thesis, for having dedicated their precious time to review the thesis and whose valuable comments helped improving the presentation of this work. I am grateful to my family for giving me the opportunity