## 2 Background
### Cloud Computing Service Delivery Models  
The flexibility of cloud infrastructure and economic benefits has become the great motivations in continuing to adopt the cloud [38]. Additionally, cloud infrastructure has provided computing power and resource scalability [39]. As a result, it has provided ubiquitous network access, independent resource pooling, on-demand self-service, usage-based pricing, and resource elasticity. Definition 1 provides a technical description of a Cloud Service \(cs\) from a CSP [40].  
**Definition 1**.: _Cloud Service: Let \(cs\) denote a cloud service hosted in the cloud with an identity of \(CI_{id}\), being consumed by users through a set of interface \(i\), defined by some APIs in the Internet: Then \(cs=[i,CP,CI_{id}]\), where CP is a set of collaboration processes that \(cs\) relies on during service delivery. \(CI_{id}\) is denoted as the ID of the underlying cloud infrastructure. Through this definition, we can define the Amazon EC2 service as: \(ecs=[ec2,acp,usdl,aws]\), where \(acp=[create_{VM},start_{VM},connect_{VM},stop_{VM},cancel_{VM}]\), and usdl is the Web Service Description Language._  
The cloud computing infrastructure comprises three service delivery models that help promote the availability and virtualisation of resources [12]. The STRIDE analysis of the different service delivery models is shown in Table 5 and defined as follows:  
1. Cloud Infrastructure as a Service (IaaS): IaaS provides aggregated resources managed physically. Service delivery is in the form of storage or computational capability. The IaaS platform offers storage, provision processing and networks for consumers to run and deploy arbitrary software for applications and operating systems. The platform user might not have absolute control over the underlying infrastructure but control the deployed applications, operating system, and network components. The IaaS layer represents the pillar for which most cloud computing architectures have been built [41]. As a result of high advancement in technology, computational power, storage devices and high-end communication, the IaaS layer has become the most efficient platform on which the PaaS and SaaS rely.
2. Cloud Platform as a Service (PaaS): PaaS provides platforms and programming environments for cloud infrastructure services. Examples of PaaS includes Google App Engine, Dipper, Yahoo and Salesforce. PaaS also refers to the application developed by a programming language and hosted by a CSP in the cloud [41]. PaaS is the service abstraction of the cloud that deals with the creation and modification of applications that already exist. The advantage of PaaS is provisioning platform environments with full operational and developmental features for application deployment. Furthermore, PaaS provides a trusted environment for users' secure storage and processing of confidential information, leveraged by the cryptographic co-processors [42] that protect against unauthorised access. The central design and goal of the PaaS are maximising user control when managing features related to the privacy of sensitive information, accomplished through user data privacy methods and self-installed configurable software.
3. Cloud Software as a Service (SaaS): SaaS provides confinement for client flexibility by providing software applications and APIs for developers such as GoogleMaps and Bloomberg. SaaS consumers are obliged to pay for software on a subscription basis, with no need for prior installations. Accessing SaaS software is primarily through the internet via a web browser. SaaS provides live applications running in the cloud, accessed through users' devices connected to the internet. Unlike the IaaS, SaaS user does not have control over storage, operating systems, network components, or the underlying infrastructure [41]. Its primary advantage is its multi-tenancy nature because it can share access control to the software.