A Pattern-Driven Process for Secure Service
Total Page:16
File Type:pdf, Size:1020Kb
A PATTERN-DRIVEN PROCESS FOR SECURE SERVICE- ORIENTED APPLICATIONS by Nelly A. Delessy A Dissertation Submitted to the Faculty of The College of Engineering and Computer Science in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy Florida Atlantic University Boca Raton, Florida May 2008 © Copyright by Nelly A. Delessy 2008 ii ACKNOWLEDGEMENTS My deepest gratitude goes to Dr Eduardo B. Fernandez, for not only being my advisor, but also for being a mentor and a friend during my stay at Florida Atlantic University. He was instrumental in my success in the software engineering and security fields. I am grateful for his guidance. His vision and expertise in these domains helped turned ideas into this research work. I am also grateful to the co-chair of my supervisory committee, Dr Maria M. Larrondo-Petrie for her encouragement and advice. Her support was greatly appreciated. I sincerely thank the other members of my dissertation committee, Dr John Yin and Dr Jie Wu for their valuable comments. I am also grateful to the Secure System Research Group, in particular to Dr Michael Van Hilst, Dr Shihong Huang and Tami Sorgente for their valuable suggestions and their constructive criticism along the development of my work. iv ABSTRACT Author: Nelly A. Delessy Title: A Pattern-Driven Process for Secure Service-Oriented Applications Institution: Florida Atlantic University Dissertation Advisor: Dr Eduardo B. Fernandez Degree: Doctor of Philosophy in Computer Science Year: 2008 During the last few years, Service-Oriented Architecture (SOA) has been considered to be the new phase in the evolution of distributed enterprise applications. Even though there is a common acceptance of this concept, a real problem hinders the widespread use of SOA: A methodology to design and build secure service-oriented applications is needed. In this dissertation, we design a novel process to secure service oriented applications. Our contribution is original not only because it applies the MDA v approach to the design of service-oriented applications but also because it allows their securing by dynamically applying security patterns throughout the whole process. Security patterns capture security knowledge and describe security mechanisms. In our process, we present a structured map of security patterns for SOA and web services and its corresponding catalog. At the different steps of a software lifecycle, the architect or designer needs to make some security decisions. An approach using a decision tree made of security pattern nodes is proposed to help making these choices. We show how to extract a decision tree from our map of security patterns. Model-Driven Architecture (MDA) is an approach which promotes the systematic use of models during a system‟s development lifecycle. In the dissertation we describe a chain of transformations necessary to obtain secure models of the service-oriented application. A main benefit of this process is that it decouples the application domain expertise from the security expertise that are both needed to build a secure application. Security knowledge is captured by pre-defined security patterns, their selection is rendered easier by using the decision trees and their application can be automated. A consequence is that the inclusion of security during the software development process becomes more convenient for the architects/designers. A second benefit is that the insertion of security is semi-automated and traceable. Thus, the process is flexible and can easily adapt to changing requirements. Given that SOA was developed in order to provide enterprises with modular, reusable and adaptable vi architectures, but that security was the principal factor that hindered its use, we believe that our process can act as an enabler for service-oriented applications. vii To Nicolas, Thomas and Lunes viii TABLE OF CONTENTS Acknowledgements .................................................................................................................................... iv Abstract ......................................................................................................................................................... v Table of Contents ....................................................................................................................................... ix List of Figures ............................................................................................................................................ xii List of Tables ............................................................................................................................................ xiv Chapter 1 Introduction ............................................................................................................................... 1 1. 1. Motivations ................................................................................................................................... 1 1. 2. Problem statement....................................................................................................................... 2 1. 3. Methodology and overview of the solution ............................................................................ 3 1. 4. Contributions ................................................................................................................................ 6 1. 5. Organization of the dissertation ............................................................................................... 7 Chapter 2 Background ................................................................................................................................ 8 2. 1. System Security ............................................................................................................................. 8 2. 2. Software Patterns ...................................................................................................................... 10 2.2.1. Security Patterns .............................................................................................................. 12 2. 3. Service Oriented Architecture ................................................................................................ 12 2.3.1. Why Service Oriented Architecture? ........................................................................... 12 2.3.2. What is Service Oriented Architecture? ...................................................................... 13 2.3.3. Service-oriented applications ......................................................................................... 15 2.3.4. Implementing Service Oriented Architecture ............................................................ 15 2. 4. Web Services .............................................................................................................................. 16 2.4.1. XML Schema .................................................................................................................... 17 2.4.2. WSDL ................................................................................................................................ 17 2.4.3. SOAP ................................................................................................................................. 18 2.4.4. WS-BPEL (a.k.a. BPEL4WS or BPEL) ...................................................................... 18 2.4.5. Putting it all together ....................................................................................................... 18 2. 5. Model-Driven Development .................................................................................................. 19 ix 2. 6. Model-Driven Architecture .................................................................................................... 20 2.6.1. The MDA views .............................................................................................................. 21 2.6.2. The MDA process ........................................................................................................... 22 2.6.3. MDA specifications ........................................................................................................ 24 2. 7. Related work .............................................................................................................................. 26 Chapter 3 A Pattern-Based Process For Secure Service-Oriented Applications .......................... 29 3. 1. Motivation: Non-composability of security properties in service-oriented applications ......................................................................................................................................... 29 3.1.1. A simple model for SOA ............................................................................................... 31 3.1.2. Securing atomic services ................................................................................................. 34 3.1.3. Composability of security properties for service-oriented systems ....................... 37 3.1.4. Discussion ......................................................................................................................... 41 3. 2. Theoretical foundations ........................................................................................................... 42 3. 3. Overview of the methodology ............................................................................................... 45 3. 4. The detailed process ................................................................................................................