14
Published: 20 th March 2011 Windows Azure Security Overview Data Security in the Cloud Module Manual Authors: David Tesar

Data Security in the Cloud

Embed Size (px)

DESCRIPTION

cloud data

Citation preview

Page 1: Data Security in the Cloud

Published: 20th March 2011

Windows Azure Security Overview

Data Security in the Cloud

Module Manual Authors: David Tesar

Page 2: Data Security in the Cloud

2

The information contained in this document represents the current view of Microsoft Corporation

on the issues discussed as of the date of publication. Because Microsoft must respond to

changing market conditions, it should not be interpreted to be a commitment on the part of

Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the

date of publication.

This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a

retrieval system, or transmitted in any form or by any means (electronic, mechanical,

photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any

written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2011 Microsoft Corporation. All rights reserved.

Microsoft, Active Directory, Hyper-V, SQL Azure, Visual Basic, Visual C++, Visual C#, Visual Studio, Windows, Windows Azure, Windows Live and Windows Server are either registered trademarks or

trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their

respective owners.

Page 3: Data Security in the Cloud

3

Contents

Overview .................................................................................................................................... 4

Customer Concerns ................................................................................................................... 4

Azure Storage Architecture ....................................................................................................... 5

Data Protection ......................................................................................................................... 5

Protection Against Data Loss ................................................................................................. 6

Secure communication .......................................................................................................... 6

Isolation ................................................................................................................................. 6

Access Control ....................................................................................................................... 6

Privacy in Microsoft ................................................................................................................... 7

Windows Azure Access Control ................................................................................................. 8

Shared Access Signatures ...................................................................................................... 8

Container Policy ..................................................................................................................... 9

AppFabric Cache Access Control ............................................................................................. 10

SQL Azure Security Model ....................................................................................................... 10

Encryption ............................................................................................................................... 12

Hybrid Applications ................................................................................................................. 14

Conclusion ............................................................................................................................... 14

Page 4: Data Security in the Cloud

4

Overview The security of one’s data is one of the most important elements that decision

makers must take under consideration. Data is an extremely valuable asset, and

most customers feel insecure regarding the cloud environment because they do

not know the exact location of their data and exactly how it is protected. This is a

serious barrier for customers considering using the cloud; customers must be

sure that their data is safe and private before entrusting it to a shared storing

infrastructure.

Under the traditional information technology (IT) model, an organization is

accountable for all aspects of its data protection regime, from how it uses

sensitive personal information to how it stores and protects such data stored on

its own computers. Cloud computing changes the paradigm because information

is moved offsite to data centers owned and managed by cloud providers.

Responsibility for the physical hosting and protection of data is taken away from

the customers, yet – even though the data physically resides in a cloud provider’s

data centers – cloud customers still own their data and remain ultimately

responsible for controlling its use and protecting the legal rights of individuals

whose information they have gathered.

Microsoft understands its responsibilities concerning customer data. The challenge

of storing and protecting such data is not new to the company; Microsoft’s on-line

services such as Hotmail and Live Services have hosted customer data since the

launch of the MSN® network in 1994. Today Microsoft is a leader in addressing

the privacy and security issues associated with hosting customer data in the

cloud.

This document describes the privacy, policies, infrastructure, and security

mechanisms designed to protect customer data in Windows Azure.

Customer Concerns Concerns over information security and privacy top on the list of issues that

customers evaluate before storing their data in the cloud. When speaking to

customers, the following issues will likely be raised:

Is it still my data?

Who gets to see my data?

Do I know if someone looked at my data?

How can I control access to my data?

Where, physically, is my data?

What laws and regulations apply?

Is the integrity of my data assured?

Is my data erased effectively when I delete it?

Where does my responsibility to protect my data end, and where does the

cloud service provider’s responsibility begin?

These concerns relate overwhelmingly to two subjects: privacy and security. The

subjects deal with different issues, yet they overlap in several areas.

Security issues such as access control and data integrity are handled using

security infrastructures and technologies, such as secure communication,

cryptography and identity management. Privacy issues such as data ownership

and transparency are handled through the enforcement of privacy policies and

Page 5: Data Security in the Cloud

5

regulations such as ISO/IEC 27001:2005, and management standards such as

SAS 70 Type II

For both security and privacy, international standards and regulations allow

providers and customers to monitor the level of compliance with and

implementation of the relevant policies. For instance, ISO/IEC 27001 is an

Information Security Management System (ISMS) standard published by the

International Organization for Standardization (ISO) and the International

Electrotechnical Commission (IEC). ISO/IEC 27001 formally outlines a

management system that brings information security under explicit management

control. SAS 70 Type II is an internationally recognized auditing standard that

provides guidance to service auditors when assessing the internal controls of a

service organization and issuing a service auditor’s report.

Windows Azure utilizes a number of mechanisms in the securing of customer

data, uses Microsoft’s Global Foundation Services (GFS) group to formulate data

center security and privacy policies. These policies and procedures are enforced

by the Online Services Security and Compliance (OSSC) Information Security

Management System (ISMS).

Microsoft Global Foundation Services (GFS) runs Microsoft's data centers for

Microsoft Online services such as Hotmail and Dynamic CRM. The OSSC team

within GFS is responsible for compliance with ISMS regulations and standards.

For more information about the services GFS provides, visit

http://www.globalfoundationservices.com

For more information about the Microsoft Online Privacy Statement and how it

relates to customer concerns mentioned here, visit:

http://privacy.microsoft.com/en-us/default.mspx

Azure Storage Architecture Traditional on-premises applications are designed to run on a single server. Data

is stored in memory or persisted to the file system. In the cloud, this architecture

no longer applies. The cloud is made up of a grid of compute nodes load-balanced

by the cloud fabric; consequently, information must be saved in a shared location

that all compute nodes are able to access.

The solution is an independent storage mechanism that provides Storage as a

Service (SaaS) to both cloud applications and on-premises applications. Storage

in Windows Azure is deployed on separate hardware from the compute nodes. To

handle massive data, storage must be scalable and reliable, so multiple layers of

architecture are used. The top layer validates, authenticates, and authorizes

requests, routing them to the partition layer and data layer that actually store the

bits. Security validation is done as soon as possible to prevent malicious resource

consumption.

Data Protection In Windows Azure there are three major types of data storage: Windows Azure

Storage, SQL Azure, and Azure AppFabric Cache. Each storage type has its own

properties: its own pros and cons and its own typical usage scenario. Yet all three

storage types are designed to protect the data they store. This data protection is

implemented in several domains:

Page 6: Data Security in the Cloud

6

Protection Against Data Loss

All data in Azure data stores is replicated three times across multiple physical

computers in the data center. This architecture provides automatic failover and

load balancing.

One node is considered primary, and the others are marked as secondary nodes.

In the case of hardware failure of the primary node, one of the secondary nodes

will take its place and be marked as the primary. Another replication will be

instantly performed to preserve three living replicas at all times.

Customer data is spread across multiple physical servers within the geolocation

specified for the data store. In this way, the data store achieves high availability

and stability for all applications, from the smallest to the largest, without

requiring intensive administrative effort.

If a customer wishes to mitigate major catastrophic events that might disable an

entire data center, it is possible to create different stores in different data centers

and use Microsoft's sync services, such as SQL Data Sync, to synchronize data

between geographic locations.

Secure communication Communication between roles and storage is secure by default. If desired, it is

possible to require SSL for all communication with all types of storage in the

Windows Azure Platform. Secure communication is however essential when

communicating sensitive information from storage to applications running on-

premises. Storage is independent, so it cannot distinguish between traffic coming

from Windows Azure nodes and traffic originating from the Internet. Channels

inside Windows Azure data centers are considered secure, but channels

originating from the public Internet are untrusted. SSL ensures that all traffic

runs on a secure channel, so configuring storage to accept requests running on

SSL channels provides an important layer of security.

Isolation Windows Azure prevents interaction between data containers by creating logical

and physical separations. Storage is implemented by a shared infrastructure that

isolates data containers through a number of mechanisms. Each of the different

storage infrastructures provided by the Windows Azure platform contains a

mechanism (implemented as a layer in the multi-layer architecture) responsible

for isolating data containers.

For example, networks are physically and logically isolated. (For more

information, see the networking white paper.) Data containers are provisioned

among customers such that internal data routing ensure logical isolation.

Access Control All communication with all types of storage must be authenticated and

authorized. The only exception is in the use of public blobs, described later in this

document.

Page 7: Data Security in the Cloud

7

Each type of storage has its own access control mechanism. Windows Azure

Storage and Azure AppFabric Cache follow the same principle. The owner of the

store is provided with a secret key. This access key provides full access to the

data; thus it must be protected and handled with care.

SQL Azure implements the traditional SQL Access control model. Initial access is

established using a connection string that contains a user name and a password.

Access to each of the database objects is controlled by the login and Role

mechanisms.

The Windows Azure Storage Access Control mechanisms will be described in

detail later in this document.

Privacy in Microsoft Since the launch of the Microsoft Network (MSN) in 1995, Microsoft has built and

hosted a wide variety of services:

Familiar consumer-oriented services such as the Windows Live Hotmail

web-based email service and the Bing search engine

Enterprise-oriented services such as the Microsoft Dynamics CRM Online

business software and the Microsoft Business Productivity Online Standard

Suite from Microsoft Online Services

Many behind-the-scenes services that handle online billing and advertising

functions for Microsoft customers.

Microsoft’s Global Foundation Services (GFS) provides the cloud infrastructure for

these services, with a focus on adherence to numerous regulatory, statutory, and

industry standards. The OSSC team within GFS works with partners and other

teams throughout the company to manage security risks to global online services

at Microsoft in order to fulfill its mission to provide trustworthy, available online

businesses that create a competitive advantage for Microsoft.

All Microsoft data centers are managed according to the following privacy

principles:

Accountability in handling personal information within Microsoft and with

external vendors and partners

Notice to individuals about how we collect, use, retain, and disclose their

personal information

Collection of personal information from individuals only for the purposes

identified in the privacy notice have provided

Choice and consent for individuals regarding how we collect, use, and disclose

their personal information

Use and retention of personal information in accordance with the privacy notice

provide to individuals and the consent that the individuals have provided in return

Disclosure or onward transfer of personal information to vendors and partners

only for purposes that are identified in the privacy notice, and in a secure fashion

Quality assurance steps to ensure that personal information in our records is

accurate for and relevant to the purposes for which it was collected

Access for individuals who want to inquire about and, when appropriate, review

and update personal information they have in our possession

Enhanced security of personal information to help protect against unauthorized

access and use

Monitoring and enforcement of compliance with our privacy policies, both

internally and with our vendors and partners, along with established processes to

address inquiries, complaints, and disputes

Page 8: Data Security in the Cloud

8

Microsoft’s software development teams apply the PD3+C principles, defined in

the Security Development Lifecycle (SDL), throughout the company’s

development and operational practices:

Privacy by Design – Microsoft uses this principle in multiple ways during the

development, release, and maintenance of applications to ensure that data

collected from customers has a specific purpose and that the customer is

given appropriate notice in order to enable informed decision-making. When

data to be collected is classified as highly sensitive, additional security

measures such as encrypting while in transit, at rest, or both may be taken.

Privacy by Default – Microsoft’s offerings ask customers for permission

before collecting or transferring sensitive data. Once authorized, such data is

protected by means such as access control lists (ACLs) in combination with

identity authentication mechanisms.

Privacy in Deployment – Microsoft discloses privacy mechanisms to

organizational customers as appropriate to allow them to establish

appropriate privacy and security policies for their users.

Communications – Microsoft actively engages the public through publication

of privacy policies, white papers, and other documentation pertaining to

privacy.

Windows Azure storage is no exception to the policies governing other online

services hosted by Microsoft. The software running Windows Azure was developed

with privacy in mind under the PD3+C principles defined in the SDL.

Windows Azure Access Control Windows Azure Storage has a simple access-control model. Each Windows Azure

subscription can create one or more storage accounts, and each storage account

has a single secret key, called the Storage Account Key (SAK), that is used to

control access to all data in that storage account. This supports the typical

scenario, under which storage is associated with applications, and these

applications have full Windows Azure Security control over their associated data.

Any application that wants to have access to data in a storage account needs to

have the appropriate SAK.

A more sophisticated access-control model can be achieved by creating a custom

application front end to the storage, giving the application the storage key, and

letting the application authenticate remote users and even authorize individual

storage requests.

Storage account keys can be reset using the subscription credentials via the

Windows Azure Portal or SMAPI. To support periodically changing SAKs without

any breaks in service, a Storage Account can have two secret keys associated

with it at one time, where either key grants full access to all of the data. There is

then a three-step sequence for changing the secret key: adding the new one as

authorized to the storage service; change the key used by all applications

accessing the service; and removing the old key so that it will no longer be

authorized.

Shared Access Signatures

The owner of the storage access keys (SAKs) has full control over blobs, tables,

and queues.

Page 9: Data Security in the Cloud

9

Customers may want some blobs to be made public. One common scenario is

static data (such as pictures) that needs to be accessible directly from a browser.

To achieve this, the blob container can be marked as public.

Sometimes, however, you want to be able to access your blobs from a browser

without making them publicly accessible to everyone. In this case, a Shared

Access Signature is needed. With the key, you can create a special URL that will

enable access to the blobs even without the storage access keys. This special URL

should be distributed only to customers to whom you want to give access.

The URL for a Shared Access Signature includes additional components that

specify the container or blob to make accessible, the interval over which the

Shared Access Signature is valid, the permissions associated with the signature,

any signed identifiers associated with the request, and the signature itself.

Shared Access Signatures can only be created by the SAK owner because the key

is required to create an HMAC signature. Figure 1 describes the structure of the

Shared Access Signature’s URL.

Figure 1

Container Policy

A container-level access policy provides an additional level of control over Shared

Access Signatures on the server side. Establishing a container-level access policy

serves to group Shared Access Signatures and to provide additional restrictions

for signatures that are bound by the policy. You can use a container-level access

policy to change the start time, expiry time, or permissions for a signature, or to

revoke it, even after it has been issued.

A container-level access policy provides greater flexibility in issuing Shared

Access Signatures. Instead of specifying the signature's lifetime and permissions

on the URL, it is possible to specify these parameters within the access policy,

stored as metadata on the container in which the signed resource (container or

blob) resides. For example, to change the lifetime of one or more signatures, one

can simply modify the container-level access policy rather than have to reissue

the signatures. Similarly, Shared Access Signatures cannot be canceled after

being issued, but if a container policy is used it is possible to quickly revoke a

signature by modifying the container-level access policy.

A container-level access policy includes a signed identifier, a value that may be

up to 64 characters long and must be unique within the container. The value of

this signed identifier is specified in the signedidentifier field in the URL of the

Page 10: Data Security in the Cloud

10

Shared Access Signature. These policies are created using the Blob Service REST

API, and a maximum of five policies can be associated with a container.

AppFabric Cache Access Control The Azure AppFabric Cache Security model is simple. The owner of the cache is

provided with a security token (ACS Token) in the cache portal. All cache access

requests must be authenticated.

To create a cache object, a CacheFactory must be created. The CacheFactory is

provided with the key, either in code or by writing it to the configuration file.

All communication with the cache runs over a secure channel established by WCF

message security. The channel is protected by implementing WS-* security

standards.

Figure 2 shows the cache's security token as presented by the management

portal. The portal provides a basic configuration snippet, which contains the key

that has to be inserted into the application's configuration file before using the

cache.

Figure 2

SQL Azure Security Model

SQL Azure is a database in the cloud. It was designed to look as similar as

possible to traditional on-premises SQL databases. The developer and the IT pro

can continue to use their existing knowledge and tools to manage and work with

SQL Azure.

SQL Azure uses the TDS protocol (i.e., port 1433) in exactly the same way as on-

premises databases, so data access technologies like ADO.NET and Entity

Framework can use it transparently. For network administrators, this means that

their environment must be configured to allow outbound TCP connections over

port TCP/1433 to enable applications and tools to connect to SQL Azure.

Page 11: Data Security in the Cloud

11

SQL Azure contains a built-in firewall to filter incoming traffic. This firewall is

configured using firewall rules that can be written to the master database or

directly in the management portal, as shown in Figure 3 and Figure 4.

It is also possible to enable or disable connections from Windows Azure by

clicking "Allow other Windows Azure services to access this server" in the firewall

rules configuration, as shown in Figure 3.

Figure 3

Figure 4

SQL Azure provides the same set of security principles that are available in SQL

Server with SQL Server Authentication. You can use these to authorize access

and secure your data:

SQL Server Logins: Authenticate access to SQL Azure at the server level.

Database Users: Grant access to SQL Azure at the database level.

Database Roles: Group users and grant access at the database level.

SQL Azure only supports the standard SQL authentication mechanism, where the

database stores and manages the credentials database for user logins.

Connection to the database is established by presenting a connection string that

contains the credentials of the user trying to connect. Connection strings that

contain clear-text credentials obviously contain sensitive information and must be

protected and handled with care.

SQL Azure does not currently support Windows Integrated authentication.

Page 12: Data Security in the Cloud

12

During the provisioning process, SQL Azure creates a login for the customer that

is the server-level principal similar to SA login in SQL Server. This login will have

administrative capabilities in the virtual SQL Server that will be provisioned for

the customer. This account will then be used to create additional user logins for

authentication, as well as database users and roles for authorization.

When connecting to the SQL Azure service, the user will need to provide

credentials required for login. These credentials will be protected using SSL while

in transit (all communication between the SQL Azure database and your

application requires SSL encryption at all times). Connections will be re-

authenticated every 60 minutes, with the user client software resending the

credentials. At this point, any password reset will be enforced for that connection.

For performance reasons, when a password is reset in SQL Azure, the connection

will not be re-authenticated immediately, even if the connection is reset due to

connection pooling. This is different from the behavior of an on-premises SQL

Server.

Encryption

Currently there is no support for native encryption in either Windows Azure

Storage or SQL Azure. Data in Windows Azure Storage is stored as clear text, and

there is no option to encrypt the data other than by developing your own

encryption code. SQL Azure does not currently support the Transparent Data

Encryption (TDE) feature available in Microsoft SQL Server.

For data accessed only by services hosted by Windows Azure, this is not a major

concern. Encrypting data in a hosted service requires that all instances of the

service have access to the encryption keys, and if a service chooses to encrypt

data these keys should be stored in certificates held in the Windows Azure

certificate store. However, the security policies implemented by Microsoft’s data

centers help ensure that attackers cannot gain physical access to the machines

running Azure services or to the disks that implement Azure storage.

Consequently, the data destruction policies eliminate the possibility of data

becoming inadvertently accessible to other Azure subscribers.

Therefore, as long as a service implements an appropriate level of transport

security (e.g., SSL), the only feasible way in which an attacker could gain access

to the data would be to obtain or steal the details of either the Windows Live ID

used by the Azure subscription or the Management Certificate used to administer

the hosted services. Such an attacker would in any case have access to the

certificate store and therefore the means to decrypt the data, so performing

encryption in this scenario would be of little benefit.

Encryption is valuable if you are accessing data located in Azure storage from

applications running on computers outside of the Azure environment rather than

from services hosted on Azure. In this scenario, different users running these

applications might need to maintain confidentiality from each other. You can

encrypt data within a client application by for instance using a private AES key,

known only to the user, that is generated on a client machine or elsewhere within

the enterprise. The encrypted payload is then uploaded to Azure storage. The

data can be decrypted only by the user providing this key (which can be stored in

the user’s profile using DPAPI). Other users can generate their own private keys,

and these keys should not be disclosed. A client application, such as a Web

Page 13: Data Security in the Cloud

13

browser, that attempts to read the encrypted data directly from Azure storage

without providing the appropriate key will not be able to decrypt the data.

Page 14: Data Security in the Cloud

14

Hybrid Applications

There are scenarios under which sensitive data should not be deployed to the

cloud. The most common reasons are laws and regulations prohibiting the use of

data storage in the cloud. The nature of regulation changes slowly, so currently

there are many cases in which local laws are not up-to-date with rapidly evolving

cloud technologies. There are of course other cases, in which custom data

protection infrastructures prevent data from being written to the cloud.

In these cases, Windows Azure Connect allows for a direct and safe connection

between the local data center and the cloud. This enables scenarios in which data

continues to live on-premises but computation is done in the cloud. The main

caveats are of course scalability and performance; local data storage is usually

not designed to work on the same scale as storage in the cloud. Similarly, the

long communication channel between the data store and the computation nodes

will affect performance.

Conclusion Taking data out of the company’s private data center and storing it in the cloud is

never an easy step for decision makers and IT pros to make. Microsoft

understands the importance of information security and privacy and implements

all the steps necessary to ensure that anything stored in its data centers is safe

and private. All storage infrastructures provided by Windows Azure implement

data-protection mechanisms such as access control, secure communication, and

isolation.

Information stored in Microsoft's data center is managed under strict privacy

policies and regulations. Microsoft is committed to keeping your privacy and

protecting your data. Microsoft also keeps close watch on all of the evolving

security standards and regulations in order to continually maintain compliance.

It is not surprising, therefore, that Microsoft’s cloud infrastructure has obtained

the Federal Information Security Management Act of 2002 (FISMA)’s

Authorization to Operate (ATO), which authorizes US government organizations

to store their data in Windows Azure.