CC3&4
CC3&4
A public cloud is a cloud service available over the internet for anyone who pays for it. These clouds are
owned and managed by companies like Google (GAE), Amazon (AWS), Microsoft (Azure), IBM, and
Salesforce.
They allow users to create and use virtual machines (VMs) through an online interface. You only pay for
what you use, making it flexible and cost-effective for running applications and services.
A private cloud is used only by one organization. It is set up within the company’s own network (intranet)
and is not open to the public.
The company owns and controls it, allowing for more security, customization, and control. It gives
employees or partners a flexible way to run services securely within the organization.
A hybrid cloud combines both public and private clouds. For example, a company may mostly use a private
cloud but borrow extra computing power from a public cloud when needed.
An example is IBM’s Research Compute Cloud (RC2), which connects private cloud resources across its
global research centers.
Hybrid clouds offer a balance — some flexibility and cost-saving from public clouds, and some control and
security from private clouds.
Here is a simplified version of the content from sections 4.1.3 to 4.1.4.2, rewritten in clear and easy-to-
understand language:
These services are offered over the Internet using a pay-as-you-go model, which means you pay only for
what you use. These are called cloud service models and are provided through agreements called SLAs
(Service Level Agreements). SLAs ensure things like availability, performance, and security.
All three models use the infrastructure provided by cloud service providers and let users access services
through the internet:
• SaaS: Directly used by clients through special applications (like email or document tools).
• IaaS: Provides basic resources like storage, computing power, and file systems.
IaaS gives users access to virtual machines, storage, and networking over the cloud. Think of it as renting
the basic building blocks of a computer system.
• Users can choose their own operating system and run their own applications.
• However, they do have control over the OS, storage, applications, and some network settings.
• Storage as a Service
• Networking/Communication as a Service
Example:
Amazon's EC2 (Elastic Compute Cloud) and S3 (Simple Storage Service) allow users to run virtual servers
and store data. These are part of a Virtual Private Cloud (VPC) setup, where multiple users can access
resources securely.
• GoGrid
• FlexiScale
• Aneka
Table 4.1 (not shown here) gives more details about the IaaS services offered by five major providers. For
more examples, refer to cloud computing books mentioned as [10,18].
SaaS and PaaS are built on top of IaaS. Here’s how it works:
• SaaS provides the final application that users can access through the internet.
PaaS is used by developers who want to create, test, and run applications without worrying about
managing the underlying hardware.
• It provides a complete environment including an OS, runtime libraries, and other tools.
• Developers can use Java, Python, .NET, and other programming languages to build apps.
• The user does not control the infrastructure, only the application development process.
Benefits of PaaS:
• Third-party companies can offer tools for software management, integration, and monitoring.
Table 4.2 (not shown) gives a comparison of PaaS offerings from five major providers. More information is
given in Chapter 6 and Section 4.4 of the textbook.
SaaS is the final software product delivered to users through a web browser. These applications are built
using tools from PaaS and run on infrastructure provided by IaaS.
Examples of SaaS:
• Microsoft SharePoint
• Salesforce.com CRM software
These applications are used by many small and large businesses daily.
Some companies, like Google and Microsoft, offer a full set of IaaS and PaaS services along with SaaS.
Others, like Amazon and GoGrid, only provide IaaS and rely on third parties (e.g., Manjrasoft) to offer
platforms and application development tools.
Example 4.3 (not shown) describes how three real-world companies—HTC, media organizations, and
business firms—use cloud-based applications successfully.
Data-Center Interconnection Networks
Write a short note on the global exchange of cloud resources and its implications.
A key part of a data center’s design is how the servers are connected through a network. This
interconnection network must meet five main requirements:
• Low cost
The network should support point-to-point (between two servers) and collective (group) communication
patterns. Let’s look at the specific points below:
• The network must support all MPI communication patterns, both one-to-one and one-to-many.
• It should have high bisection bandwidth, meaning it can handle heavy traffic across the entire
network.
• For example, one-to-many communication is used when one server acts as a master and others as
slaves (e.g., for accessing distributed files).
• The network should also support MapReduce operations efficiently, which are used in big data
applications (explained in Chapter 7).
• In short, the network must handle different types of data flows based on the needs of various user
applications.
• As more servers are added to a data center (thousands or even more), the network should be easy
to expand.
• The network should support load balancing and data movement between servers efficiently.
• Common expandable topologies include fat-tree and crossbar networks which can be built using
low-cost Ethernet switches.
• Modern data centers use server containers, which are large boxes filled with hundreds or
thousands of servers.
• Each container is a modular unit that can be plugged in with power, internet connection, and
cooling.
• These containers reduce the cost and complexity of setting up data centers.
• The network backbone (main connection line) is set up first and then connected to individual
containers.
• There should be multiple paths between any two servers so that if one path fails, the data can go
another way.
• Data and computations are often duplicated (replicated) across servers to handle server failures.
The same idea should be used for network connections.
Redundancy:
• The software should detect broken links and reroute packets automatically.
Graceful Degradation:
• If some network parts fail, the system should continue running smoothly instead of crashing.
• Use hot-swappable components (that can be replaced without shutting down the system).
• There should be no single point of failure—no single part whose failure will bring down the whole
system.
• This structure fits well with the container-based design of modern data centers.
• Simple to implement since the networking is handled by the switches, not the servers.
2. Server-centric Design
• Special software (drivers) is installed on the servers to help manage network connections.
• Still uses switches, but servers take on more responsibilities in routing traffic.
A Generic Cloud Architecture
Figure 4.14 (not shown here) shows how a cloud system is built with security in mind. Think of the
Internet cloud as a giant group of servers working together. These servers can be turned on or off as
needed to run web services or applications using data center resources.
The cloud system is created dynamically. This means servers, software, and databases are added or
removed automatically based on user requests. These servers can be real physical machines or virtual
machines (VMs).
How It Works:
• A provisioning tool then sets up the servers and software needed to provide that service.
• The cloud also includes distributed storage systems to manage and store large amounts of data.
• The data centers that power the cloud are usually owned by cloud providers (like Amazon, Google,
or Microsoft), not the users.
• Users don’t need to know how the system works behind the scenes.
• Users trust the cloud to safely store and manage huge amounts of data.
• A distributed file system is used to process and access this data efficiently.
• Databases
• Companies like Google and Microsoft have built many data centers around the world.
• Data centers are built in cost-efficient locations, often near hydroelectric power sources, to reduce
electricity and cooling costs.
• When building cloud systems, providers focus more on cost-efficiency and reliability than just
speed.
• The current trend is toward hybrid clouds, which mix private and public clouds.
o You need to learn how to set up private clouds and how to connect to public clouds.
Layered Cloud Architectural Development
This structure is shown in Figure 4.15 (not shown here). These layers are made possible through
virtualization and standardization of hardware and software, meaning the resources can be shared and
managed efficiently.
Cloud services—whether public, private, or hybrid—are delivered to users through the Internet or intranet
using this layered setup.
• These resources are virtualized so users can get what they need quickly and flexibly.
• IaaS providers like Amazon EC2 offer these basic building blocks.
o Monitor performance
o Security
o Document processing
o Information retrieval
o Calendars
o Authentication systems
• Even though the layers are built from the bottom up, they often work together depending on the
service.
Example:
• Amazon EC2 (IaaS) offers virtual machines and manages them for users.
• Salesforce.com (SaaS) does everything—from hardware to platform and user-ready applications like
CRM. It also provides tools for developers to build and manage their own apps.Market-Oriented
Cloud Architecture
4.3.2.1 Market-Oriented Cloud Architecture (Simplified)
As more users rely on cloud computing for their needs, they expect a certain quality of service (QoS) to be
maintained. This is to make sure their work runs smoothly and meets their business goals.
To meet these expectations, cloud providers create agreements called Service Level Agreements (SLAs)
with each user. These SLAs define what level of service (like speed, uptime, etc.) the user can expect. Each
user may have different requirements, so the cloud provider must manage resources accordingly.
Old, system-focused methods of managing cloud resources are not enough to handle modern demands.
Instead, a market-oriented approach is needed. This approach works like a marketplace where:
• Prices may vary, encouraging fair use and better resource allocation
• Consumers and providers both benefit — users get better prices, and providers balance usage
effectively
Figure 4.16 (not shown here) shows a high-level structure of this market-based cloud system. It includes
the following components:
1. Users or Brokers
• Users (or their representatives called brokers) send service requests from anywhere in the world to
the cloud/data center.
• Manages requests and ensures the terms of the SLA are followed.
• Rejects requests if too many are submitted or if it would overload the system.
o Service Request Monitor: Tells how much work is currently being done.
2. Pricing Mechanism
3. Accounting Mechanism
4. VM Monitor
• Monitors virtual machines (VMs) to check their availability and how much resources they
are using.
5. Dispatcher
• Once a request is approved, the dispatcher starts the task on the selected VM.
• A single physical machine can run multiple VMs at the same time.
• Each VM can:
• VMs are isolated, so they don't affect each other even though they share the same physical server.
GOOGLE APP ENGINE (GAE)
In 2008, Google launched Google App Engine (GAE). It is a Platform as a Service (PaaS) that allows users to
build and run web applications that automatically scale depending on the number of users.
GAE lets users run their apps on Google’s powerful infrastructure, which is connected to their search
engine operations.
Figure 4.20 (not shown here) shows the structure of the Google Cloud Platform.
These tools work together to allow Google and other developers to build powerful cloud applications. All
applications built with GAE run in Google’s tightly controlled data centers, which include thousands of
servers organized into clusters.
Although Google runs many cloud apps, its core cloud system is private, so external users can’t use the
actual infrastructure directly. However, they can use GAE to build apps, which will then run on Google’s
systems.
GAE handles all the hardware, software, and server maintenance, so developers can focus only on coding
their applications.
GAE works like web application frameworks such as ASP, J2EE, or JSP. It currently supports Python, Java,
and Ruby programming languages.
GAE is ideal for creating dynamic web applications and offers full support for common web technologies.
GAE has five main parts (components) that work together to support web app development:
a. Datastore
• Based on BigTable.
d. Administration Console
Google offers GAE for free to all users with a Gmail account. You can sign up using your Gmail ID, download
the SDK, and start developing apps in Python or Java.
GAE is not an IaaS platform like Amazon AWS, which provides both Infrastructure as a Service (IaaS) and
Platform as a Service (PaaS). Instead, GAE is only a PaaS. This means developers can build and run apps
without worrying about the infrastructure.
Similarly, Microsoft Azure provides a platform for apps using .NET tools.
In GAE, the cloud provider (Google) handles everything related to infrastructure, such as servers,
networking, and scaling. The developer only focuses on app development.
• Google Search
• Gmail
• Google Docs
• Google Earth
These apps can support millions of users at once, and users interact with them using simple web
interfaces.
Third-party developers can also use GAE to build their own cloud-based web apps.
All these apps run in Google’s data centers, which are made of clusters of servers. Each cluster can:
GAE also includes a storage service, which allows apps to store data in Google’s systems. This service allows
data to be saved permanently, and users can:
• Sort it
Another useful feature is that apps built on GAE can use Google services like Gmail for user authentication
(login). This means developers don’t have to build their own login systems. They can just allow users to log
in with their Google accounts, and even send emails through the app using Gmail APIs.
Sure! Here’s a simplified explanation of the section 11.5 CLOUD DATA ENCRYPTION, with all concepts
included and rewritten in easier language:
Governments, companies, and people often worry if it’s safe to store sensitive information (like personal or
financial data) on public cloud platforms. The basic solution to this problem is encryption, which turns
readable data into secret code that can only be unlocked with a special key.
Cloud service providers like Amazon Web Services (AWS) now offer encryption services. AWS provides
something called Key Management Service (KMS) to help users create and manage encryption keys. These
keys are used to lock (encrypt) and unlock (decrypt) the user’s data. KMS works with other AWS services
like:
AWS also offers an Encryption SDK, which is a set of tools developers can use to add encryption to their
applications.
Background in Cryptography
Many important research papers have laid the foundation for data encryption:
• The famous RSA encryption method (from a key paper in the 1970s).
• In 1999, Pascal Paillier introduced a new idea based on composite residuosity, which involves
working with a number that is very hard to factor into primes (n = p × q).
• This method allows homomorphic encryption — which lets us do calculations on encrypted data
without ever decrypting it.
• A major advancement came in 2009, when Craig Gentry created a method for Fully Homomorphic
Encryption (FHE) during his PhD at Stanford. FHE allows any type of computation on encrypted
data.
Homomorphic Encryption: Computing on Encrypted Data
When data is encrypted, it’s safe in storage. But when you want to process it, you normally have to decrypt
it first — this opens a security risk.
So, the big question is: Can we do operations on data without decrypting it first?
• The encrypted data can be used directly in calculations (like addition, multiplication, etc.).
• The result of those operations, when decrypted, gives the same result as if the operations were done
on the original data.
This means you don’t need to decrypt the data to work with it — keeping it secure the whole time.
This idea comes from math: A homomorphism is a special function that keeps structure
between two systems. In encryption:
Although homomorphic encryption works in theory, it is not practical yet. It is very slow:
To solve this, there is a special method called Order Preserving Encryption (OPE). It:
• Encrypts numbers in such a way that if x > y, then Encrypt(x) > Encrypt(y).
• This keeps the order of numbers, even after encryption.
How it works:
• It maps a small set of numbers (say from 1 to M) into a much larger set (say 1 to N, where N >> M).
• This mapping is done in a random but ordered way using a mathematical tool called the Negative
Hypergeometric Distribution.
• To encrypt a number, the algorithm performs a binary search over the value range using a secret key
and selects the encrypted value based on the sampling method.
This way:
• The function that encrypts the data keeps the order of the original values.
• This allows efficient range queries on encrypted data.
Imagine you store an encrypted database on a cloud, and keep only the key with yourself. When you want to
search:
This method protects your data and queries. The only thing that might leak is patterns (like if you repeat the
same search), but not the actual data or query values.
Later, this method was improved to handle more advanced queries like:
• Range queries
• Substring matches
• Wildcard searches
• Phrase matches ([168]).
What if you store your data in a private cloud instead of a public one?
While external attackers can be blocked with strong firewalls, there’s still a risk from insiders — people who
already have access, like staff or administrators.
These insiders might:
• Look at log files to find which parts of the database are accessed frequently (hot spots),
• Copy selected pieces of data,
• Use the data for malicious purposes.
To protect against insiders, cloud systems should implement access control rings:
• Give each staff member access to only specific parts of the database.
• Limit what they can see and do.
Let me know if you’d like this as a PDF, diagram, or with visual examples!
Sure! Here’s the full rewritten version of Section A11.8: Virtual Machine Security, using simple language
while keeping all key concepts intact:
• The hypervisor controls the hardware directly and can offer security services to the VMs.
• Security can be managed in two ways:
1. By the hypervisor itself (Figure 11.3A),
2. Or by a separate, dedicated VM that provides security functions (Figure 11.3B).
A key requirement is a secure Trusted Computing Base (TCB). If the TCB is compromised, the whole
system’s security is at risk.
Studies of systems like Xen and vBlades (in Sections 10.5 and 10.10) show that:
• VMs are better isolated from each other compared to traditional operating system processes.
• The hypervisor controls sensitive operations, like memory, disk, and network access, ensuring
separation between VMs.
Hypervisors are:
• Intrusion Detection Systems (IDS) like Livewire and Siren use VMs to:
o Detect intrusions
o Isolate threats
o Inspect VM states
o Intercept (trap) dangerous operations
• Intrusion Prevention Systems (IPS) like:
o SVFS
o NetTop
o IntroVirt
• Terra is another system that uses a trusted hypervisor to divide resources securely among VMs.
A. Hypervisor-Based Threats
B. VM-Based Threats
Even if we fully trust a cloud service provider, there are still risks that many users ignore or underestimate.
One major risk is image sharing, especially in the Infrastructure as a Service (IaaS) cloud model. For
example, Amazon Web Services (AWS) allows users to choose Amazon Machine Images (AMIs) from
Quick Start or Community AMI menus in the EC2 service. These options are attractive to first-time or less
experienced users.
• Specify resources,
• Provide login credentials,
• Set up firewall rules,
• Choose a region (as explained in Section 2.3).
After the image is started, the user gets a public DNS address and can access the virtual machine (VM):
A study was done from Nov 2010 to May 2011 analyzing over 5,000 AMIs available publicly on Amazon. It
showed that many AMIs still had undeleted files, recoverable credentials, private keys, and other sensitive
data. These could be accessed using common tools with very little effort.
Out of 8,448 Linux AMIs and 1,202 Windows AMIs, the researchers were able to audit:
Vulnerabilities Found
• Windows AMIs:
o 98% (249 out of 253) had critical security issues
o Average 46 vulnerabilities per AMI
• Linux AMIs:
o 58% (2005 out of 3432) had critical issues
o Average 11 vulnerabilities per AMI
• The authorized_keys file may still contain the creator’s public key.
• If password login is allowed, the AMI may keep the creator’s password.
• These passwords can be cracked using tools like John the Ripper (link).
2. Unsolicited Connections
• IP addresses
• System logs, like login events in /var/log
Two Linux AMIs had a modified syslog daemon that forwarded such data to an external attacker.
Some connections (e.g., for software updates) are legitimate, making it hard to tell good from bad ones.
3. Malware
Using ClamAV (a tool with 850,000+ malware signatures from clamav.net), they found:
• Private keys, IPs, browser history, shell history, and deleted files can be recovered.
• API keys (like AWS APT keys) could be used by attackers to run cloud services for free, at the
creator’s expense.
If users send data (e.g., passwords, credit card numbers) using HTTP GET, these can be stored in server logs
and easily exploited.
If an AMI is created using block-level tools, unused disk space (marked as “free”) may still contain old files.
The study used extundelete and was able to recover data from 98% of AMIs.
Figure 4.36 shows different ways to design reputation systems. A reputation is what people think about the
honesty, reliability, or behavior of someone or something. It could apply to a person, an agent, a product, or
a service. Reputation is usually based on the shared opinion of many users or owners.
Reputation systems have been used for a long time in peer-to-peer (P2P) networks, multi-agent systems, and
e-commerce platforms.
When applying reputation systems to cloud services, we need a structured design based on specific goals
and how the system is managed. The reputation system types shown in Figure 4.36 can also be used to
protect cloud applications.
1. Centralized Systems:
o A single authority or server manages the entire reputation system.
o Easier to design and control.
o But requires a strong and reliable server.
2. Distributed Systems:
o No single control center; instead, multiple nodes manage reputation together.
o Harder to build but more scalable (can handle growth) and more reliable (can keep working if
one part fails).
This simplified version preserves all the important points while using clearer and more straightforward
language. Let me know if you want a diagram or summary of Figure 4.36 too.
Here’s a simplified version of Section 11.12: XOAR – Breaking the Monolithic Design of the TCB, with all
key concepts included:
11.12 XOAR – Breaking the Monolithic Design of the Trusted Computing Base (TCB)
Xoar is a modified version of the Xen hypervisor, designed to improve system security.
Security Assumptions:
These principles aim to break the traditional monolithic design of Xen’s TCB, which is large and complex.
Although this may slightly affect performance, the goal is to minimize this impact.
Types of Components in Xoar (see Figure 11.5):
1. Permanent Components:
o XenStore-State: Stores the complete state of the system.
2. Self-Destructing Components (used only during boot, destroyed before VMs start):
o PCIBack: Manages access to PCI hardware.
o Bootstrapper: Handles the system boot process.
3. Components Restarted on Request:
o XenStore-Logic
o ToolStack: Handles VM creation and management.
o Builder: Starts guest VMs. (Very small, ~13,000 lines of code.)
4. Components Restarted on Timer (to provide drivers):
o BlkBack: Exports to physical storage driver (uses udev rules).
o NetBack: Exports the physical network driver.