Cloud Security Module IV
Cloud Security Module IV
Security standards
Host security describes how your server is set up for the following tasks:
Preventing attacks.
Host Security Service (HSS) helps you identify and manage the assets on your servers;
manage programs,
file integrity,
There are also advanced protection and security operations functions available to help you easily detect and
handle threats.
During the review process of host security and assessing risks, one should always
consider the context of cloud service delivery models(IaaS, PaaS, and SaaS) and
various deployment models(Public, Private, and Hybrid).
Generally, the cloud service providers do not share information regarding their host
platforms, hosts OS, and the processes that are in place to secure the hosts, as hackers
might exploit that information when they are trying to break into the cloud services.
cloud services security of the host should be non-transparent with the customers and
the responsibility of securing the host is confined to the cloud service providers.
• Virtualization is a technique that improves the host’s hardware utilization, along
with other benefits, it is common for cloud service providers to employ
virtualization platforms including VMware hypervisors and XEN, in their host’s
computing platform architecture.
• Apart from this one should be aware of how his provider is using the
virtualization technology and the provider’s process for securing the
virtualization layer.
• Both the SaaS and PaaS delivery models software platforms should abstract the host
operating system from the end user with a host abstraction layer. The accessibility
of the abstraction layer is different in each one of the delivery models (SaaS and
PaaS).
• In System as a Service, the abstraction layer is hidden from the users
and only available to the developers and the cloud service provider’s
operational staff.
Attacks on accounts that are not properly secured eg. weak passwords,
repetitive passwords, etc.
Stealing keys that will be used to access and manage hosts(SSH private
keys).
Securing Virtual Servers
Ways to Secure the Virtual Servers in the Cloud require Operational
Security procedures as:-
Safeguard the private keys as they might be used to access hosts in the
public cloud.
Never allow password-based authentication at the shell prompt.
Isolate the decryption keys from the cloud where the data is hosted–unless
required for decryption and use only for the duration of decryption activity.
Include no authentication credentials in virtualized images except for a key
to decrypt the file system.
Install a host-based intrusion detection system(IDS).
If you respond rapidly, you can take advantage of the cloud to eliminate exploit-based downtime in your
infrastructure.
When you detect a compromise on a physical server, the standard operating procedure is a painful, manual
process:
1.Remove intruder access to the system, typically by cutting the server off from the rest of the network.
2.Identify the attack vector. You don’t want to simply shut down and start over, because the vulnerability
in question could be on any number of servers. Furthermore, the intruder very likely left a rootkit or
other software to permit a renewed intrusion after you remove the original problem that let him in
1.Wipe the server clean and start over. This step includes patching the
original vulnerability and rebuilding the system from the most
recent uncompromised backup.
2.Launch the server back into service and repeat the process for any
server that has the same attack vector.
This process is very labor intensive and can take a long time. In the cloud, the
response is much simpler.
First of all, the forensic element can happen after you are operating. You simply
copy the root filesystem over to one of your block volumes, snapshot your block
volumes, shut the server down, and bring up a replacement.
• Once the replacement is up (still certainly suffering from the underlying
vulnerability, but at least currently uncompromised), you can bring up a
server in a dedicated security group that mounts the compromised volumes.
• Because this server has a different root filesystem and no services running
on it, it is not compromised. You nevertheless have full access to the
underlying compromised data, so you can identify the attack vector.
• With the attack vector identified, you can apply patches to the machine
images. Once the machine images are patched, simply relaunch all your
instances.
Indicators of Compromise
Unusual Outbound Network Traffic
Geographical Irregularities
To provide message-level security, AquaLogic Service Bus implements the features that are defined
in the OASIS standard for Web Services Security (WS-Security).
Inbound message-level security applies to messages between clients and AquaLogic Service Bus
proxy services. It applies security to both the request from the client and the response message back
to the client.
Outbound message-level security applies to messages between AquaLogic Service Bus proxy
services and SOAP-HTTP or SOAP-JMS business services. It applies security to both the request and
the response.
Configuring Inbound Message-Level Security
You can configure a proxy service to support one of the following techniques for inbound message-level security:
Active-Intermediary
The proxy service processes the header in the client's SOAP messages and enforces the message-level access control
policy on the messages.
For example, a client encrypts and signs its SOAP message and sends it to a proxy service. The proxy service decrypts
the message and verifies the digital signature, then routes the message. Before the proxy service sends the response
back to the client, the proxy service signs and encrypts the message. The client then decrypts the message and
verifies the proxy service's digital signature.
Pass-Through
Instead of processing the header in the client's SOAP messages, the proxy service passes the message untouched to a
business service. Although the proxy service does not process the secured sections of the SOAP message, it can route
the message based on values in the header.
When the business service receives the message, it processes the security header and acts on the request. Note that
the business service must use the Web Services Policy (WS-Policy) framework to describe which of its operations are
secured with message-level security. The business service sends its response to the proxy service, and the proxy
service passes the response untouched to the client.
Configuring Outbound Message-Level Security: Main Steps
Outbound message-level security applies to messages between AquaLogic Service
Bus proxy services and SOAP-HTTP or SOAP-JMS business services. It applies security
to both the request and the response.
To configure outbound message-level security for a business service that represents a
SOAP-HTTP or SOAP-JMS Web service:
In the AquaLogic Service Bus Console, import the Web service's WSDL document into
the AquaLogic Service Bus WSDL repository and resolve any WSDL dependencies.
In the AquaLogic Service Bus Console, do one or more of the following depending on
whether the WSDL document contains WS-Policy statements that
secure requests from a proxy service to the business service:
If any operation response policy in the business service requires encryption (that is,
the business service encrypts the response with the proxy service's encryption public
key), configure a proxy service provider and assign an encryption credential to the
proxy service provider.
Transport Layer Security (TLS)
Transport Layer Security, or TLS, is a widely adopted security protocol
designed to facilitate privacy and data security for communications over
the Internet.
A primary use case of TLS is encrypting the communication between web
applications and servers, such as web browsers loading a website. TLS can
also be used to encrypt other communications such as email, messaging,
and voice over IP (VoIP).
In this article we will focus on the role of TLS in web application security.
TLS was proposed by the Internet Engineering Task Force (IETF), an
international standards organization, and the first version of the protocol
was published in 1999.
The most recent version is TLS 1.3, which was published in 2018.
What does TLS do?
There are three main components to what the TLS protocol accomplishes:
Encryption, Authentication, and Integrity.
Encryption: hides the data being transferred from third parties.
A TLS connection is initiated using a sequence known as the TLS handshake. When
a user navigates to a website that uses TLS, the TLS handshake begins between the
user's device (also known as the client device) and the web server.
During the TLS handshake, the user's device and the web server:
Specify which version of TLS (TLS 1.0, 1.2, 1.3, etc.) they will use
Authenticate the identity of the server using the server's TLS certificate
Generate session keys for encrypting messages between them after the handshake
is complete
OAuth 2.0
OAuth 2.0, which stands for “Open Authorization”, is a standard designed
to allow a website or application to access resources hosted by other web
apps on behalf of a user.
It replaced OAuth 1.0 in 2012 and is now the de facto industry standard for
online authorization.
OAuth 2.0 provides consented access and restricts actions of what the
client app can perform on resources on behalf of the user, without ever
sharing the user's credentials.
Principles of OAuth2.0
OAuth 2.0 is an authorization protocol and NOT an authentication
protocol. As such, it is designed primarily as a means of granting access to a
set of resources, for example, remote APIs or user data.
OAuth 2.0 uses Access Tokens.
Using OAuth 2.0, access requests are initiated by the Client, e.g., a mobile app, website,
smart TV app, desktop application, etc. The token request, exchange, and response
follow this general flow:
5.With the Access Token, the Client requests access to the resource from the
Resource server.
OpenID
The principal extensions are a special scope value (“openid”), the use of
an extra token (the ID Token, which encapsulates the identity claims in
JSON format), and the emphasis on authentication rather than
authorization.
Also, in OIDC, the term “flow” is used in place of OAuth2 “grant”
Principles and Definitions in OpenID Connect
The OIDC provider (generally called the OpenID Provider or Identity Provider or IdP) performs user
authentication, user consent, and token issuance. The client or service requesting a user’s identity is
normally called the Relying Party (RP). It can be, for example, a web application, but also a JavaScript
application or a mobile app.
Being built on top of OAuth 2.0, OpenID Connect uses tokens to provide a simple identity layer integrated
with the underlying authorization framework. This integration implies the use of the following types of
token:
ID Token: Specific to OIDC, the primary use of this token in JWT format is to provide information about the
authentication operation’s outcome. Upon request, it may provide the identity data describing a user profile.
The data about the authentication result and the user profile information are called claims. The user profile
claims may be any data that is pertinent to the Relying Party for identification purposes, such as a persistent
ID, email address, name, etc.
Access Token: Defined in OAuth2, this (optional) short lifetime token provides access
to specific user resources as defined in the scope values in the request to the
authorization server.
Refresh Token: Coming from OAuth2 specs, this token is usually long-lived and may
be used to obtain new access tokens.
ID Tokens should be digitally signed to prevent tampering. They may also be
encrypted to provide additional privacy, although, in many cases, transport layer
security (HTTPS) is sufficient. For SPAs and mobile apps, ID Token encryption is not
useful, as the decryption key can be discovered easily.
XACML (Extensible Access Control Markup Language)
The PDP evaluates the authorization request against the access policies it
has configured. Those policies are managed at thePAP. If necessary,
attribute values from Policy Information Points can also be retrieved.
Finally, at the PDP a decision is made, which will either be "Permit," "Deny,"
"NotApplicable," or "Indeterminate," and returned in boolean to the PEP.
XACML policy elements
The following is a high-level overview of the various elements that make up
an XACML policy.
Structure
The structure of XACML is split into the following three sections:
PolicySet
Policy
Rule (ruleID)
Attributes
All policy sets, requests and sets of rules use resources, subjects, environments and actions.
These are typically denoted in XACML syntax as "attributeID."
The environment refers to an element that can provide additional information if necessary.
Targets
XACML language defines a target, which is the conditions for a resource, subject, resource or
action that are necessary to meet access requirements and provide an authorization decision.
XACML Architecture
XACML policy language structure
<Rule>: contains a Boolean expression that can be evaluated in isolation, but that is not
intended to be accessed in isolation by a PDP. So, it is not intended to form the basis of an
authorization decision by itself. It is intended to exist in isolation only within an XACML PAP,
where it may form the basic unit of management
<Policy>: contains a set of <Rule> elements and a specified procedure for combining the
results of their evaluation. It is the basic unit of the policy used by the PDP, and so it is
intended to form the basis of an authorization decision