Abstract
In
today’s world, most applications are deployed and maintained in the cloud
rather than on-premises. This transformation is driven by benefits such as
reduced capital costs, improved security and greater scalability. As
applications transition to the cloud, it's crucial to define application
security from a network perspective. This is important because certain
application components have to be accessible from the internet, while others
may be restricted and only accessible by components within the same application.
Most major cloud providers offer tools and services to support application
security implementation. This paper focuses on the impact of application
security on data encryption using Microsoft Azure as the cloud service
provider. The key network security services include Virtual Network (VNet),
Subnet, Network Security Group (NSG) and Application Security Group (ASG).
Designing the infrastructure for an application with a security-oriented
mindset is essential for ensuring overall application security. Simultaneously,
effectively handling data encryption within the network groups plays a crucial
role in safeguarding data security.
Keywords: Cloud Security, Data Encryption, Virtual Network, Cloud Apps
1.
Introduction
In
the beginning, cloud service providers needed a way to group a set of IP
addresses belonging to one organization and isolate them from the resources of
other organizations within the same data center. This need led to the creation
of Virtual Networks (VNets). VNets isolate an organization’s resources to
ensure they are separate from others in the same data center.
As
applications became more complex and data security concerns grew, an
enhancement to the VNet became inevitable. Initially, there were two main
scenarios:
·Application
resources that needed to be accessed externally
·Application
resources that should remain inaccessible from external sources.
To
address this, the concept of subnets was introduced. In a VNet, resources that
require external access are grouped into one subnet, allowing external entities
to reach them. Conversely, resources that should not be accessed from outside
are placed in a different subnet. This second subnet can only be accessed by resources
within the first subnet, preventing any external applications or systems from
gaining access. This approach functions effectively to a certain degree. A
prime example of effective network organization is the separation of database
servers and business logic applications into their own subnet, which remains
inaccessible to external sources. In contrast, the web applications that must
be accessible to users outside the network are placed in a separate subnet.
This separation helps illustrate the overall structure of this simple
application, as shown in (Figure 1).
Figure 1: A Simple
Application on V-Net.
Fitting data security modules that handle the encryption and decryption of data for storage or transmission is crucial for safeguarding that data. In the simple application described in Figure 1, the data security modules or applications should not be placed in the web application subnet, as it is accessible to external entities. While it may be somewhat safer to position them in the business logic application subnet, the most secure location would likely be in the database server subnet or in an additional subnet positioned between the business logic subnet and the database subnet.
2.
Related Work
Rui Zhang and Ling Liu have conducted impressive research in
their paper titled “Security Models and Requirements for Healthcare Application
Clouds.”1 This paper outlines a
comprehensive approach to data security and management. It emphasizes the
importance of ownership, authenticity, authentication, integrity,
confidentiality and the availability of data when handling sensitive
information. Additionally, the paper highlights that data management is
user-driven and user-centric, meaning that applications accessed by specific
users, in this case, patients, can only access unencrypted data.
Diogo A. B. Fernandes, Liliana F. B. Soares, João V. Gomes, Mário M. Freire and Pedro R. M. Inácio conducted an important study on evaluating security issues in various cloud environments.
A significant contribution to cloud computing security comes from Mazhar Ali, Samee U. Khan and Athanasios V. Vasilakos. In their article “Security in Cloud Computing: Opportunities and Challenges,” they discuss the architectural framework of cloud computing and the security challenges that accompany it. They also describe V-Net and the issue of misconfiguration, which is an area of particular interest.
3.
Problem Description
As
the number of application and database servers within each subnet continues to
grow, the task of managing the mapping of these applications becomes
increasingly challenging. This escalating complexity often paves the way for
human errors, which can trigger severe security vulnerabilities with heavy
consequences. Moreover, the process of implementing specific rules and
configurations for each individual application and database server can turn
into a tedious and error-prone undertaking. The prospect of scaling and
efficiently managing such a system loom dauntingly for administrators, leading
to potential operational nightmares and increased risk of misconfiguration and
cyber security. In real-world applications, there are scenarios where
applications within the same virtual network (v-net) must not be allowed to
access one another, especially when it comes to sensitive resources like
databases. For instance, as illustrated in (Figure 1), it is logical and
safe to ensure that the subnet for a web application does not have access to
the subnet for a database application. Such requirements can complicate
infrastructure implementation, particularly when relying solely on v-nets and
subnets to create an infrastructure for a large number of applications. When we
consider the encryption and decryption of data for storage in a database or for
sending it back as a response from a web application, the process becomes even
more complicated. This complexity in managing security rules arises for
applications that perform encryption and decryption2. Often, relying solely on virtual networks (v-nets) and
subnets makes this management very challenging.
4.
Solving Subnet Overcrowding Problem Using NSG and ASG
When
the system has several applications, services and database servers running on
the cloud, managing the security rules for these applications can be simplified
by using the Network Security Group (NSG) and Application Security Group (ASG).
This basically solves 2 different problems.
·To
efficiently apply uniform security rules across multiple applications, you can
utilize a Network Security Group (NSG). An NSG is a powerful tool that enables
you to establish a set of security rules detailing which subnet addresses are
granted access to the applications hosted within that particular subnet. These
rules serve as a gatekeeper, defining inbound and outbound traffic permissions
to safeguard your resources. It’s crucial to understand that the security rules
associated with an NSG are comprehensive; they govern all applications as well
as every resource within the subnet linked to the NSG. This centralized
management not only simplifies the enforcement of security policies but also
enhances the overall security maintenance of your network infrastructure.
·What if we
want certain applications within a subnet to restrict access to other
applications in the same subnet? This concept is best illustrated by examining
the simple application shown in Figure 1. In a different scenario, we can
consider having both a web application and a business logic application located
in the same subnet and we need to prevent external applications from accessing
the business logic application. Relying solely on a Network Security Group
(NSG) won't be sufficient to achieve this. This is where Application Security
Groups can help. Application security groups can group a set of applications in
one subnet and define security rules for that application group alone.
In real-world applications, a more effective cloud security infrastructure is built by implementing both NSG and ASG together. (Figure 2) provides a simple security architecture model that shows how the NSG and ASG are configured.
Figure 2: Cloud
Security Architecture using NSG and ASG.
5.
Embedding Data Encryption and Decryption Module in Cloud Security Architecture
This
topic often sparks important discussions among the software standards, security
module development and cloud infrastructure teams when designing the overall
system architecture. It’s essential to recognize that while each module design
may be correct, but not addressing the appropriate integration of security
modules during the design phase can result in vulnerabilities within the
system.
Some
of the basic rules that may be followed by the security module development team
are given below:
·If data
can be handled as encrypted while entering, storing and exiting the system,
this should be the primary option. This means that the encrypted data is never
decrypted and hence not exposed in any module or application in the system.
·For the
purpose of encryption or decryption never store the private key in the
application code or storage. Use the Key vault service to securely handle this6.
·Rule of
minimum required data - Provide only the minimum data that is requested by
other applications.
·Always
authenticate before responding with valid data for transactions.
·Avoid
persistent connection with other applications.
The
cloud infrastructure design for placing the security module must be made by
understanding the dependency and functionality of the security module. Some
basic rules that can be considered are the following:
·Access to
the security application or security module is denied by default.
·Avoid
having the security module in the same v-net as the web applications that have
NSG exposing the network to the internet.
·2-Steps
below rule: Cloud infrastructure offers better security when security modules
are located in a subnet that has at least one non-exposed subnet between the
subnet allowing external connections and the subnet where the security modules
reside.
·Minimum
and non-persistent access: Infrastructure should provide access to the
application when necessary and must timeout once the job is completed.
Figure 2: Cloud
Infrastructure Design with Security Module.
Figure 3 illustrates a typical cloud security design that incorporates the security module. An important aspect to note is that the security module is placed in its own ASG and is isolated from the web application. Additionally, the security module utilizes a key vault for managing its secrets.
6.
Conclusion
Cloud
infrastructure provides an excellent platform for deploying applications,
allowing for scalable resources based on demand while ensuring high
availability without significant capital investment. However, it is crucial to
understand the security tools, packages and principles necessary for designing
a secure application.
A Virtual Network (VNet) is the first line of defense in controlling traffic to an application. Analyzing and discussing this topic revealed that subnets facilitate the grouping of applications, while Application Security Groups (ASG) and Network Security Groups (NSG) are essential tools for managing access to a large number of applications as an application group or as a subnet itself. NSGs define the security rules for all applications within a subnet, while ASGs take it a step further by allowing the grouping of related applications within the same subnet.
When adding security modules that perform encryption and decryption functions, it is important to ensure that this application is included in the correct subnet with NSG/ASG.
7.
References