Secure Cloud for GCP (IaaS) Design Guide

Available Languages

Download Options

  • PDF
    (9.4 MB)
    View with Adobe Reader on a variety of devices
Updated:October 21, 2022

Bias-Free Language

The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.

Available Languages

Download Options

  • PDF
    (9.4 MB)
    View with Adobe Reader on a variety of devices
Updated:October 21, 2022
 

 

Abstract

This design guide aligns with the Cisco® Secure Cloud Architecture guide. The Secure Cloud Architecture guide explains the secure architecture for cloud applications, critical business flows; attack surfaces and corresponding security controls required for the cloud environment. This guide proposes a Cisco Validated Design (CVD) for security in a tiered application architecture. The solution proposed in this guide leverages Cisco security controls along with Cloud-Native security controls to achieve the desired security posture for applications in GCP.

Scope

This document illustrates the design and security aspects of an application hosted in GCP. Along with the design and security specifications, this document also delves into the details of implementation and validation steps for the proposed architecture.

In Scope

This guide covers the following security controls:

    Cisco Secure Workload (formerly Tetration)

    Cisco Secure Endpoint (formerly AMP for Endpoint)

    Cisco Secure Cloud Analytics (formerly Stealthwatch Cloud)

    Cisco Duo

    Cisco SecureX

    Cisco Umbrella

Out of Scope

This design guide does not cover the following components or topics:

    Cisco Firepower Next-Generation Firewalls Virtual (NGFWv)

    Cisco Adaptive Virtual Security Appliance (ASAv)

    Cisco Defense Orchestrator (CDO)

    Radware Cloud Web Application Firewall (WAF) and DDOS prevention

For setting up the web application, we used the following GCP cloud components and services.

    Cloud Storage

    Compute Engine

    VM Instances

    Instance Templates

    Disks

    Images

    Instance Groups

    Health Checks

    Network Services

    Load Balancing

    Cloud NAT

    Cloud SQL

    VPC Network

    Firewall

    Routes

Solution Overview

Cisco’s security approach for the modern cloud applications allows companies to achieve:

    Improved resiliency to enable cloud availability and secure services

    Operational efficiency from automated provisioning and flexible, integrated security

    Advanced threat protection from Cisco TALOS – industry-leading threat intelligence to stay up to date, informed, and secure

What is our security approach?

Specific capabilities are necessary to protect the public cloud and build the appropriate layers of defense. These capabilities work together to create several layers of defense protecting the cloud applications. The top priorities or the three pillars that we keep in mind while designing the secure public cloud solutions are:

    Visibility - Complete visibility of users, devices, networks, applications, workloads, and processes

    Segmentation - Reduce the attack surface by preventing attackers from moving laterally, with consistent security policy enforcement, application access control and micro-segmentation

    Threat Protection - Stop the breach by deploying multi-layered threat sensors strategically in the public cloud to quickly detect, block, and dynamically respond to threats

Threat Protection

Introduction to SAFE

As your data flows from an increasing number of devices to your data center or private/public cloud, you must understand your data flow, to be able to protect it. Cisco SAFE is an architectural approach that helps you visualize this transit of the data in terms of business flows, understand the attack surface associated with these flows and hence, devise appropriate capabilities to secure them. This framework provides complete guidance from the initial identification of business flows in a given architecture to securing it and then deploying and validating the solution.

These validated designs provide guidance that is complete with configuration steps that ensure secure deployments for your organization. Cisco Validated Designs (CVDs) for various SAFE PINs can be found at SAFE home page.

Cisco SAFE simplifies network security by providing solution guidance using the concept of ‘Places in the Network’ (PINs). This design guide is a recommended threat defense architecture for the Cloud PIN (see figure 1). Within the Cloud PIN, this design guide specifically covers the GCP cloud.

Key to SAFE framework

Figure 1.   

Key to SAFE framework

SAFE Guidance Hierarchy

Figure 2.   

SAFE Guidance Hierarchy

For more information on SAFE framework and architecture/design guides, check out the SAFE documentation (select architecture/design tab).

Public Cloud Business Flows

SAFE uses the concept of business flows to simplify the identification of threats. This enables the selection of very specific capabilities necessary to secure them.

This solution addresses the following business flows for a typical tiered web application hosted in GCP.

Cloud business flows

Figure 3.   

Public Cloud business flows

    Customer browsing an e-commerce web application. The customer, sitting somewhere out on the Internet, browses the e-commerce web application hosted in the GCP cloud

    Application workloads downloading updates/patches from update servers outside the cloud (Internet). Application workloads sitting in the cloud need to reach out to various update servers to fetch the updates and patches at regular intervals

    Systems communicating east/west within the GCP cloud. For example- the frontend web servers will make HTTP requests to a backend application, or the application workloads will make API calls among themselves

    Application workloads transacting data with the database server within the cloud

    DevOps remotely accessing the management zone for workload management/update/patching purposes

Public Cloud Attack Surface

The secure cloud design protects systems by applying security controls to the attack surface found in the public cloud. The attack surface in public cloud spans the business flows used by humans, devices, and the network.

Threats include rogue identity, DDoS, web vulnerabilities, infections, and advanced persistent threats allowing hackers the ability to take control of your devices and networks.

Considering the business flows elaborated in the last section (Figure 3), a deep dive into the attack surface for each of those business flows is shown below.

Public cloud attack surface

Figure 4.   

Public Cloud attack surface

    An untrusted/compromised user, out on the Internet, may try to exploit the cloud application or flood it with fake traffic to render it incapable of serving the genuine users

    The workloads need to communicate with update servers out on the untrusted public network. An attacker might compromise workloads to download malware to the application environment or upload crucial data to malicious servers

    Systems communicating east/west within the GCP cloud may spread the infection from one workload to another within the cloud, eventually compromising the whole application

    An attacker may compromise the application workloads to steal or corrupt data stored on the database servers

    A malicious user may try to gain the same privileged access as DevOps to compromise the complete application environment in GCP

Threats

The table below is a sample of the threats that exist for the Public Cloud business flows.

Threat Icon

Threat Name

Threat Description

IconDescription automatically generated

Rogue Actor

Attackers can easily steal or compromise passwords via phishing emails sent to users. With stolen credentials, they can log in to work applications or systems undetected and access data. Brute-force attacks involve programmatically trying different credential pairs until they work, another attack that can be launched remotely. Once inside, attackers can move laterally to get access to more sensitive applications and data.

IconDescription automatically generated

Malicious Device

Devices running older versions of software – such as operating systems, browsers, plugins, etc. – can be susceptible to vulnerabilities not patched by software vendors. Without those security patches, devices that access work applications and data can introduce risks by increasing the overall attack surface.

IconDescription automatically generated

Insecure unmanaged device (BYOD)

Often, devices that are not owned or managed by your IT team can have out-of-date software and lax security.

Devices that do not have certain security features enabled – such as encryption, firewalls, passwords, etc. – are considered riskier or potentially out of compliance with data regulation standards that require encryption, like healthcare industry compliance standards.

IconDescription automatically generated

Advanced Threats

For example, a malicious actor, on the public network, exploits a PHP Code Injection vulnerability on the web application and gains access to the details of the underlying operating system and installed packages.

The attacker then exploits a known vulnerability in the underlying operating system or the installed package to perform privilege escalation and then goes on to establish a command-and-control channel to a malicious server running on attacker’s network by remotely executing a piece of code.

The attacker then starts profiling the application environment and exfiltrates sensitive data out through the established command-and-control channel over an outbound UDP 53 port (DNS protocol).

IconDescription automatically generated

Malware

Zero-day malware attacks, poorly developed applications or unpatched applications are all attack vectors that can be exploited by threat actors. If not protected, the attacker can push malicious code in the source repository resulting in infected software and potential propagation.

IconDescription automatically generated

Malicious Insider

Without appropriate network visibility and segmentation policies, unknown users / applications may exist in the network or known applications may deviate from characteristic behavior. Malicious actors can take advantage of a flat network with little to no visibility and infiltrate the network without triggering suspicion.

IconDescription automatically generated

Data Exfiltration

Suspect data loss occurs when an abnormal amount of data has been transferred out of the network. Suspect data hoarding occurs when an inside host is found downloading an abnormal amount of data from other inside hosts.

IconDescription automatically generated

Exploitation

Hosts attempting to compromise each other, such as through worm propagation and brute force password cracking.

Public Cloud Business Flows with Capabilities

Developing a defense-in-depth architecture requires identifying existing threats and applying appropriate security capabilities to thwart them. Business flows and the corresponding attack surface and threat patterns that we defined earlier (Figures 3 and 4) are mapped to their corresponding security controls as below.

Secure business flows

Figure 5.   

Public Cloud Business Flows with Capabilities

Capabilities

The following table represents the security capabilities that are recommended for securing the public cloud business flows in GCP.

Capability Icon

Capability Name

Security Solution

IconDescription automatically generated

Anomaly Detection

Cisco Secure Cloud Analytics

Cisco Secure Access by Duo

IconDescription automatically generated

Anti-Virus

Cisco Secure Endpoint

IconDescription automatically generated

Anti-Malware

Cisco Secure Endpoint

Cisco Secure Malware Analytics

IconDescription automatically generated

Application Dependency Mapping

Cisco Secure Workload

IconDescription automatically generated

Application Visibility & Control

Cisco Umbrella

Cisco Secure Workload

Logo, iconDescription automatically generated

Continuous Vulnerability Scanning

Cisco Secure Workload

IconDescription automatically generated

Endpoint Security

Cisco Secure Endpoint

Cisco Secure Access by Duo Device Health Application

IconDescription automatically generated

Data Loss Prevention

Cisco Umbrella

IconDescription automatically generated

Device Health Connector

Cisco Duo Device Health

IconDescription automatically generated

Device Posture Assessment

Cisco Secure Access by Duo

Logo, iconDescription automatically generated

DNS Security

Cisco Umbrella

Logo, iconDescription automatically generated

DNS Security Connector

Cisco Umbrella Virtual Appliance

IconDescription automatically generated

Firewall

GCP VPC Firewall Rules

IconDescription automatically generated

Flow Analytics

Cisco Secure Cloud Analytics

Cisco Secure Workload

Logo, iconDescription automatically generated

Identity Authorization

Cisco Secure Access by Duo

IconDescription automatically generated

Malware Sandbox

Cisco Secure Malware Analytics

IconDescription automatically generated

Micro-Segmentation

Cisco Secure Workload

IconDescription automatically generated

Multi-Factor Authentication

Cisco Secure Access by Duo

IconDescription automatically generated

Policy Generation, Audit and Change Management

Cisco Secure Workload

IconDescription automatically generated

Process Anomaly Detection & Forensics

Cisco Secure Workload

IconDescription automatically generated

Remote Browser Isolation

Cisco Umbrella

IconDescription automatically generated

Security Assertion Markup Language (SAML) & Single Sign on (SSO)

Cisco Secure Access by Duo

IconDescription automatically generated

Security Orchestration Automation and Response (SOAR)

Cisco SecureX

Logo, iconDescription automatically generated

Tagging

Cisco Secure Workload

IconDescription automatically generated

Threat Intelligence

Cisco Talos

IconDescription automatically generated

TLS/SSL Decryption

Cisco Umbrella

IconDescription automatically generated

Web Reputation Filtering

Cisco Umbrella

IconDescription automatically generated

Web Security

Cisco Umbrella

IconDescription automatically generated

Web Security Connector

Cisco Secure Client (AnyConnect)

Cisco Secure Cloud Reference Design in GCP

The tiered application architecture has been a popular underlying principle for web application deployment for over a decade now and it remains equally relevant to date.

The multi-tier architecture provides a general framework to ensure decoupled and independently scalable application components. Each tier is separately developed, scaled, maintained and secured.

In the simplest tiered architecture form, the web applications would have the following layers:

Web tier: The end-user directly interacts with this layer. This tier has all the static web content.

Application tier: This tier is responsible for translating the user actions to application functionality. This tier carries the core application code components. For example, application code performing the read/write database operations.

Database tier: Storage tier or the database tier holds the data relevant to the application.

In this design, we are securing a tiered web application in the GCP cloud. We add various security capabilities and controls, that we established in the previous sections, to a tiered web application model to make it much more robust, secure and transparent in its security posture.

DiagramDescription automatically generated

Figure 6.   

Cisco Secure Cloud Reference Design in GCP

At this point, we have established the attack surface and, the capabilities and security solutions that we needed to secure the business flows mentioned previously.

    Customer browsing an e-commerce web application

    Access to the web application is secured using Duo – Multi-Factor Authentication (MFA)

    Micro-segmentation of workloads is done using the Tetration policy enforcement agents. This would prevent any malware or malicious movement within the pool of workloads in a specific tier

    Secure Cloud Analytics provides enhanced threat visibility into workload activity and the GCP cloud. It looks for any anomalous activity within the application environment. It also facilitates the flow analytics

    Secure Workload agents allow us to gain a deep visibility into vulnerable packages and processes on the workloads that an attacker may leverage. It also provides a very robust network flow analytics for workload communications

    Secure Endpoint detects and quarantines any malware that may infect the workloads

    Workloads downloading updates/patches from update servers

    Workloads are segmented into App and Web tier using Secure Workload Enforcement agents. No direct inbound public access is allowed to the App and Web servers, management access is allowed only from the management tier (also controlled via Secure Workload)

    DNS layer security is achieved using Cisco Umbrella. This prevents any accidental or deliberate exposure to a malicious domain

    Secure Cloud Analytics and Secure Workload provide enhanced threat visibility and flow analytics

    Secure Endpoint detects and quarantines any malware that may get downloaded to application workloads

    Systems communicating east/west within the GCP cloud

    Workloads are micro-segmented using Secure Workload Enforcement agents. Web, App, Database and Inside tier has no direct inbound public access/addresses. Only Management and the Outside tier is allowed Public IP addressing, hence exposing them to untrusted public network/internet

    Micro-segmentation within Web and App tier is done using the Secure Workload enforcement agents. This restricts any internal movement among the workloads

    DNS layer security using Umbrella provides visibility into workload activity

    Secure Cloud Analytics and Secure Workload provide enhanced threat visibility and flow analytics for this flow. They also look for any anomalous movement within the application environment or among the workloads within a tier. Secure Workload agents provide deep visibility into the workloads

    Secure Endpoint protects against malware spread

    Application engine transacting data with database server within the cloud

    GCP VPC Firewall rules restrict access to the database. Only App tier is allowed to communicate with database tier

    DNS layer security using Umbrella

    Secure Cloud Analytics and Secure Workload provide enhanced threat visibility and flow analytics. They also look for any anomalous movement within the application environment or among the workloads within a tier. Tetration agents provide deep visibility into the workloads

    Secure Endpoint protects the application workloads against any malware infection

    DevOps remotely accessing the management zone for workload management/update/patching purposes

    Management zone is segmented using Secure Workload enforcement agents. This provides the control knob for restricting access to workloads or the various other tiers

    Secure Cloud Analytics and Secure Workload provide enhanced threat visibility and flow analytics. They also look for any anomalous movement or activity within the application environment or from the management tier. Secure Workload agents provide deep visibility into the workloads

    Secure Endpoint protects the jump servers and workloads against any malware infection

Security Integrations

Let’s look at each of the security integrations in this secure design in more depth, we will start from the security controls on the workload itself and go all the way to the edge of our public cloud web application.

Related image, diagram or screenshot

We start by looking at workload security using Secure Workload and Secure Endpoint, followed by an agentless deployment of Secure Cloud Analytics for greater visibility into the GCP environment and workload activity. Then, we will investigate Umbrella DNS layer security at the GCP VPC level.

Lastly, we will secure the access to our cloud application using Duo Multi-Factor Authentication.

To connect all these security controls to a single pane of glass, we will look at Cisco SecureX integrations.

Cisco Secure Workload

Secure Workload has a SaaS offering that provides the capability to do micro-segmentation in a highly flexible manner along with an in-depth visibility into the workloads.

Secure Workload offers visibility and enforcement agents that are installed on the workloads. The enforcement agents provide an additional capability to enforce policies.

Secure Workload can dynamically learn various ongoing changes in the cloud workload environment and enforce an adaptive micro-segmentation. The Secure Workload dashboard allows us to create workspaces and graphical views for applications and enforce security from the web application point of view unlike the traditional network perspective.

The Secure Workload platform supports multi-cloud and hybrid environments and hence, make the whole process of security operations seamless across the board.

Diagram, timelineDescription automatically generated

Figure 7.   

Cisco Secure Workload

In this specific architecture, Web and Application tier has workloads in Instance Groups. To enable the auto-provisioning of Secure Workload agents, we used the startup-script option provided for the Instances. When the Instance Group deploys a new workload, the shell script will install the Secure Workload agent on it as part of the initialization process. Refer to the implementation section of this guide for more details.

Once the Secure Workload agent is installed, the new workload is registered with the Secure Workload cloud (SaaS), it starts exporting the network flow and process information to the Secure Workload cloud engine for analysis. Secure Workload ensures Cisco's Zero Trust model by offering key features like:

    Policy enforcement (Micro-segmentation)

    Visibility into workload process activity

    Network flow visibility

    Software vulnerability reports

    Forensic analysis

    Behavior deviations

Based on all these features and more, the Secure Workload dashboard provides us with a very convenient and flexible scoring mechanism to monitor the security compliance of cloud applications. Secure Workload considers six parameters to calculate this score (Figure 8), and these parameters can be adjusted based on one’s preference or requirements.

Tetration Dashboard - Weighted Score

Figure 8.   

Secure Workload Dashboard - Weighted Score

Tetration Dashboard - Compliance Score Board

Figure 9.   

Secure Workload Dashboard - Compliance Score Board

Refer to the Cisco Secure Workload documentation for more detailed information on cloud workload protection.

Cisco Secure Endpoint

The Secure Endpoint agents installed on the cloud workloads provide us protection against zero-day attacks. Powered by Cisco TALOS, Secure Endpoint not only relies on antivirus, but also uses machine learning and file reputation to block both file-based and file-less attacks. It also enables you to isolate the infected host before the malware is spread onto the others in the network. Secure Endpoint also supports taking forensic snapshots that help immensely with the security investigations.

DiagramDescription automatically generated

Figure 10.   

Cisco Secure Endpoint

In this specific architecture, just like the Secure Workload agent, the web and application workloads that are in Instance Groups are auto-provisioned with Secure Endpoint agents using the startup-script option available under the Instance Group configuration. When the Instance Group deploys a new workload, a shell script will install the Secure Endpoint agent on the workload as part of the initialization process.

As soon as the Secure Endpoint agent on the new workload registers with the Secure Endpoint cloud, the workload is continuously monitored and reported for any malicious activity. Secure Endpoint’s host isolation feature comes in handy to contain any spread of malware in the cloud workloads.

A screenshot of a computerDescription automatically generated with medium confidence

Figure 11.   

Secure Endpoint Dashboard - Events

Cisco Secure Cloud Analytics

Secure Cloud Analytics helps overcome the visibility challenge, especially in public cloud environments. It provides an agentless deployment in the GCP cloud.

Secure Cloud Analytics pulls the VPC flow logs from the GCP Logging service. It learns the GCP environment and baselines the resources. VPC flow logs have the flow information associated with various GCP resources, even for those that are not strictly tied to a static IP address. SCA can correlate the IPs and then tying them back to their origin GCP service. In other words, SCA performs dynamic entity modeling and organizes all the GCP resources based on the functions that they’re performing. For example, the entity could be categorized as a firewall, an application server or a load balancer and so on. This type of resource profiling and modeling is extremely important to look for any suspicious activity within the cloud application environments.

In addition to VPC flow logs, Secure Cloud Analytics also consumes other telemetry sources for additional context and alerting.

Graphical user interface, timelineDescription automatically generated

Figure 12.   

Cisco Secure Cloud Analytics

Once Secure Cloud Analytics finishes identifying the entities, it baselines their behavior over a fixed period of time. As soon as the baselining is completed, any unexpected behavioral change of the entities and the way different cloud services communicate with each other is alerted on. This helps to maintain deep visibility into the cloud environment and hence, track and prevent any unauthorized transfer of data or resource access.

Some of the common Secure Cloud Analytics alerts related to the GCP services include:

    GCP Pub/Sub – Subscriptions to events in the GCP account

Stealthwatch Cloud - Alerts

Figure 13.   

Secure Cloud Analytics - Alerts

Cisco Umbrella

Cisco Umbrella offers flexible cloud-delivered security. It combines multiple security functions into one solution. Cisco Umbrella solutions provide DNS-layer security, secure web gateway, cloud-delivered firewall, cloud access security broker (CASB), and interactive threat intel. This document covers Umbrella DNS-layer protection for the workloads in the GCP Virtual Private Cloud (VPC).

The Umbrella DNS policies allow you to dictate block policy for a variety of pre-defined web categories. More details on web categories can be found in Umbrella documentation. It also gives you the flexibility to apply the policies to specific identities. For example, you could have one set of rules for your GCP cloud application and another set for a different site.

TimelineDescription automatically generated

Figure 14.   

Cisco Umbrella - DNS layer Security

We deploy Umbrella Virtual Appliances (VA) in the Management tier of the GCP VPC. These VAs act as DNS forwarders to Umbrella. The VPC offers the option to configure custom DNS using a DNS Policy; allowing us to point the cloud resources in each VPC to Umbrella VAs instead of the local DNS. Every resource, that is launched into the VPC, will use these Umbrella DNS forwarders, to provide a control knob for the DNS layer security.

Umbrella - DNS Traffic Monitoring

Figure 15.   

Umbrella - DNS Traffic Monitoring

Cisco Duo

Cisco Duo provides secure access to applications and data, no matter where the users are, on any device, and from anywhere. Cisco Duo’s secure access solution creates trust in users, devices, and the applications they access. Cisco Duo provides the following functions:

    Multi-Factor Authentication: Verify the identity of all users with Duo's strong multi-factor authentication

    Single Sign-on: Seamless, single dashboard access to all applications

    Remote Access: Secure access to cloud and on-premises applications and servers, with or without VPN

    Device Trust: Check that user devices meet security standards before granting them access

    Adaptive Access Policies: Set policies to allow or block access attempts by a user or a device, based on contextual factors

Diagram, timelineDescription automatically generated

Figure 16.   

Cisco Secure Access by Duo

In this design, we used Duo’s Multi-Factor Authentication (MFA) for our GCP cloud application. Multi-factor authentication from Duo protects the cloud applications by using a second source of validation, like a phone or token, to verify user identity before granting access. MFA allows you to build a zero-trust framework but is also essential for compliance purposes. Duo provides native integration for any application. Refer to the implementation section of this guide for more details.

Admins have several options when it comes to enrolling new users in Duo, such as self-enrollment, Active Directory sync, and OpenLDAP sync. Duo admin portal allows a highly convenient way to track any user activity.

Duo - User ActivityRelated image, diagram or screenshotRelated image, diagram or screenshot

Figure 17.   

Duo - User Activity

Cisco SecureX

Cisco SecureX leverages the integrated security architecture to accelerate investigations by automating and aggregating threat intelligence and data across your security infrastructure in one unified view. Some of the key features are:

    Aggregated threat intelligence: Integrates threat intelligence from Cisco TALOS and third-party sources to automatically research indicators of compromise (IOCs) and confirms threats quickly

    Automated enrichment: Automatically adds context from integrated Cisco Security products, so that you instantly know which of your systems was targeted and how

    Incident tracking: Provides the capability you need to collect and store key investigation information, and to manage and document your progress and findings

    Interactive visualizations - Shows your results on intuitive, configurable graphs for better situational awareness and quick conclusions

    Seamless drill down - Makes deeper investigations easy using integrated Cisco Security products. A single click takes you inside Cisco Secure Endpoint

    Direct remediation - Lets you take corrective action directly from its interface. Block suspicious files, domains, and more without having to log in to another product

DiagramDescription automatically generated

Figure 18.   

Cisco SecureX

In this architecture, we are receiving information from Secure Cloud Analytics, Umbrella, Secure Endpoint and Secure Workload to provide threat intelligence, contextual approach, and threat hunting capabilities. Refer to the Cisco SecureX documentation for more details on available Cisco and third-party integrations.

A screenshot of a computerDescription automatically generated with medium confidence

Figure 19.   

Cisco SecureX Dashboard

Graphical user interface, applicationDescription automatically generated

Figure 20.   

Graphical user interfaceDescription automatically generated

Cisco SecureX threat response - Threat Hunting

Design Implementation

Now that we have established the design specifics of our tiered application in GCP, we will begin implementing and setting up the secure application.

We will start by setting up the VPC (Virtual Private Cloud) as per the tiered architecture specifications. We will then integrate Secure Cloud Analytics. After that, we will set up the Umbrella VAs in the management tier and update the DNS policy settings for the VPC.

Once the VPC and related integrations are finished, we will configure a SQL database instance and bring up the Instance Groups for the Application and Web workloads (with Tetration, AMP4E agents and Duo MFA plugin). We will then set up the Load Balancers for Web and Application Instance Groups. At this point we will have a fully functional application running in GCP.

We will conclude our set up with Cisco SecureX integration.

Note:     Secure Workload, Secure Endpoint, Cisco SecureX, Secure Cloud Analytics, Umbrella, and Secure Access by Duo offer EU based locations for customers having to follow EU rules.

Related image, diagram or screenshot

Deployment Overview:

    Set up the GCP components

    VPC

    Subnets

    NAT gateway

    Cloud router

    SQL instance

    Integrate Secure Cloud Analytics for VPC monitoring

    Set up Umbrella DNS Security

    Set up the Auto Scaled Application and Web Workloads (Tetration, AMP4E agent and Duo MFA plugin installation) with App and Web NLBs

    Set up Cisco SecureX

Note:     Before you begin, make sure you have the appropriate privileges to create all the VPC components. Follow the GCP Documentation for more information on IAM service.

Set up GCP infrastructure components

This section of the guide will focus on setting up the components that can be created without any additional setup or external files.  Anything component that has not been setup in this section will be done when they are ready to be setup.

Implementation procedure:

    Create the VPC and subnets

    Create NAT gateway

    Create SQL Instance

    Create Bastion Host

    Create Firewall Rules

Create the VPC

The VPC is where all the GPC products and components come together so that can make this solution possible.  It is the most important component of the whole guide to setup.

Step 1.     Log on to the GCP console and select VPC networks in the VPC network product

Graphical user interface, application, WordDescription automatically generated

Step 2.    Select CREATE VPC NETWORK

Graphical user interface, applicationDescription automatically generated

Step 3.    The CREATE VPC NETWORK page looks like so:

Graphical user interface, applicationDescription automatically generated

Step 4.    Give the new VPC a meaningful name.  This guide will use gcp-iaas

TableDescription automatically generated with medium confidence

Step 5.    Create a subnet for the web application tier.

    Give it a meaningful name. This guide will name the subnet web-net

    Select the region that is best for this setup. The region for this guide will be us-east1

    Set the internal subnet that will be used. This guide will use the 10.0.1.0/24 subnet range

    Set Flow logs to On

    Leave everything else as their default and click on Done

Graphical user interface, text, applicationDescription automatically generated

Step 6.    There should now be the web-net and an ADD SUBNET option.  Add two more subnets, one for the application tier and management network. Each will use the following the name, region, and subnet in this guide.

Name

Region

Subnet

web-net

us-east1

10.0.1.0/24

app-net

us-east1

10.0.2.0/24

mgmt-net

us-east1

10.0.10.0/24

 

ChartDescription automatically generated

Step 7.    After there are four subnets like in the above figure, leave the rest of the fields as their defaults and click on CREATE at the bottom of the page

Graphical user interface, text, application, chat or text messageDescription automatically generated

Step 8.    Validate the VPC has been created with the four subnets

TableDescription automatically generated

Step 9.    Select the new VPC by clicking on its name

Step 10. Select the app-net subnet by clicking on its name

TableDescription automatically generated

Step 11. Click on EDIT for this subnet

Graphical user interface, text, applicationDescription automatically generated

Step 12. Change the Private Google Access to On and SAVE

Graphical user interface, text, applicationDescription automatically generated

Create a NAT Gateway

The NAT gateway is used so that the internal compute instances may access the internet for updates and downloading initial configs without being directly exposed to the internet.

Step 1.    Go to Network services and then select Cloud NAT

Graphical user interface, applicationDescription automatically generated

Step 2.    Click on GET STARTED

Graphical user interface, text, application, emailDescription automatically generated

Step 3.     Give the NAT gateway a meaningful name and select the Network and Region that is being used for this guide.  This guide will name the NAT gateway gcp-iaas-nat

Graphical user interface, text, applicationDescription automatically generated

Step 4.    In the Cloud Router dropdown, select Create new router

Graphical user interface, applicationDescription automatically generated

Step 5.    Give the new router a meaningful name and click on Create. This guide will name it gcp-iaas-router

Graphical user interface, text, application, emailDescription automatically generated

Step 6.    After the router has been created, leave the rest as their defaults and click on Create

Step 7.    Validate the new NAT gateway has been made

Graphical user interface, applicationDescription automatically generated

Create SQL Instance

The SQL instance needs to be created for the web application to be able to store data.  This can be setup any time before the web application is installed.  But this is a good point to do it since it can take a while for it to come up.

Step 1.    Go to the SQL product in GCP

Graphical user interface, applicationDescription automatically generated

Step 2.    Click on CREATE INSTANCE

DiagramDescription automatically generated

Step 3.    Select Choose MySQL out of the three options available

Graphical user interface, text, application, TeamsDescription automatically generated

Step 4.    Give the MySQL instance a meaningful name and password that conforms with company requirements.  This guide will use the name gcp-iaas-mysql

Graphical user interface, text, application, emailDescription automatically generated

Step 5.    Leave the Database version as the default (5.7)

IconDescription automatically generated

Step 6.    Change the region to the region of the VPC and leave the availability to the default of Multiple zones.  This guide is using the us-east1 region

Graphical user interface, text, application, emailDescription automatically generated

Step 7.    Select the dropdown SHOW CONFIGURATION OPTIONS under Customize your instance

Graphical user interface, text, application, chat or text messageDescription automatically generated

Step 8.    In the Instance IP assignment section, change the type from Public IP to Private IP and select the created VPC in the Network dropdown

Graphical user interface, text, applicationDescription automatically generated

Step 9.    A Private services box should appear. Click on SET UP CONNECTION

Graphical user interface, text, application, emailDescription automatically generated

Step 10. Select the radio button to create a new IP range and give it a meaningful name. This guide will use db-net. Then allocate a new IP range to it. This guide is using 10.0.3.0/24

Graphical user interface, text, applicationDescription automatically generated

Step 11. Click on Continue and then Create Connection

Step 12. Everything else will left as their default, click on CREATE INSTANCE

Graphical user interface, textDescription automatically generated with medium confidence

Step 13. Validate the Instance has been created

Graphical user interface, text, applicationDescription automatically generated

Step 14. Save the Private IP Address for later use

Step 15. Go to Users and click on ADD USER ACCOUNT

Graphical user interface, applicationDescription automatically generated

Step 16. Create a new user called wpuser and give it a meaningful password

Graphical user interface, text, application, emailDescription automatically generated

Step 17. Click on ADD and save this username and password for later

Create a Bastion host

Creating a bastion host is important for keeping our devices secure and not allowing them to be visible out on the internet.  This host will allow us to connect to internal instances without needing to have them publicly exposed.

Step 1.    Go to Compute Engine -> VM Instances

Graphical user interface, text, application, chat or text message, emailDescription automatically generated

Step 2.    Click on CREATE INSTANCE at the top of this page

Graphical user interface, text, application, emailDescription automatically generated

Step 3.    Give this host a meaningful name.  This guide will call is bastion-host

Step 4.    Change the region to be the same region as where the VPC was created and the zone to be the same zone as well.

Step 5.     Make the Machine type an e2-micro.  The instance should look like so after these steps:

Graphical user interface, text, applicationDescription automatically generated

Step 6.    Go down to NETWORKING, DISKS, SECURITY, MANAGEMENT, SOLE-TENANCY and expand the dropdown

Step 7.    In the Networking section, give the instance a tag of iap

Step 8.    Change the network interface to be in the mgmt-net

Step 9.    Change the External IP to None and click on Done

Step 10. The network should be configured like the image below:

Graphical user interface, applicationDescription automatically generated

Step 11. Go to the Management section and then find Metadata

Step 12. Click on ADD ITEM

Step 13. Make the key be enable-oslogin and the value to TRUE

TextDescription automatically generated with medium confidence

Step 14. The instance has been setup, click on CREATE

Setup Firewall Rules

These firewall rules will allow the bastion host to connect to umbrella hosts later in this guide and allow ssh access from the GCP IAP tunnel. First will be the tunnel rule, then the host-to-host rule

IAP Rule

Step 1.    Go to VPC network -> Firewall

Step 2.    Click on CREATE A FIREWALL RULE

Step 3.    Give this rule a meaningful name.  This guide will use iap-allow-ingress-bastion

Step 4.    In the Targets section, add a tag of iap

Step 5.    In the Source filter section, add this IP range 35.235.240.0/20

Step 6.    In Protocols and ports, check TCP and add port 22 to it

Step 7.    Click on CREATE

Step 8.    The rule should look like this:

Graphical user interface, text, applicationDescription automatically generated

Host to Host Rule

Step 1.    Create a new rule and give it a meaningful name, this guide will use bastion-to-umbrella-va

Step 2.    Add the tag dns to the Target tags

Step 3.    Change Source filter to Source tags

Step 4.    Add iap to the Source tags

Step 5.    Check the TCP box and add port 22 to it

Step 6.    It should look similar to what is below:

Graphical user interface, applicationDescription automatically generated

Setup IAP and connect to host

IAP needs to be enabled and configured to access the bastion host without giving it an external IP address.  The simplest way to do this is to use the troubleshoot ssh command. To do this, do as follows:

Step 1.    Select the dropdown next to the SSH button and select View gcloud command

Graphical user interface, text, application, emailDescription automatically generated

Step 2.    In the window that popped up, click on RUN IN CLOUD SHELL

Graphical user interfaceDescription automatically generated with low confidence

Step 3.    It will then put the command into the cloud shell, add this flag to the command before continuing: --troubleshoot. After this flag has been added, the command should look like so:

gcloud compute ssh --zone "us-east1-b" "bastion-host"  --tunnel-through-iap --project "your-project-here" –troubleshoot

Step 4.    Press enter and accept all the prompts in the troubleshooting process.  This will give the proper IAP and network permissions to the user that is logged in

Step 5.    The console should now connect to the bastion host

Integrate Secure Cloud Analytics

Step 1.    Follow the steps illustrated in the Secure Cloud Analytics Dashboard in Settings -> Integrations -> GCP -> About to get Secure Cloud Analytics integrated into GCP

Step 2.    After the integration is done, click on the cloud icon on the top right-hand side of the portal and you should see a GCP sensor with a green check mark against it, indicating a successful integration.

Graphical user interface, text, application, emailDescription automatically generated

 

Set up Umbrella Virtual Appliances

Set up the Virtual Appliance (VA) image

Step 1.    Follow the Umbrella guide on creating Umbrella VA images

Create the Umbrella VA Instance Templates

Step 1.    Follow the Umbrella guide on creating the templates except for the networks section

Step 2.    In the Networking section of the template, add a dns tag

Step 3.    In the Network interfaces section, change it to the VPC and make the subnetwork mgmt-net

Step 4.    Change the External IP to None. Click on Done

Step 5.    The network section should look as follows:

Graphical user interface, text, application, emailDescription automatically generated

Create the Instance

Step 1.    Follow the Umbrella guide on creating the instance until the Network section

Step 2.    Once in the Networking section, edit the network interface

Step 3.    Change the Primary internal IP to Ephemeral (Custom)

Step 4.    Give it an IP of 10.0.10.253

ApplicationDescription automatically generated

Step 5.    Continue with the guides steps after this

Step 6.    Repeat these steps for the second instance but use an IP of 10.0.10.252

Validate that both VAs are running in GCP and that the Umbrella portal shows two appliances with the green status under Deployments > Configuration > Sites and Active Directory.

Graphical user interface, applicationDescription automatically generated

Configure the Umbrella VA instances

Optionally, you can create and assign a site name for your GCP VAs. This site name can be used as an identity to configure specific policies for GCP. Click on Settings on the same page to add site name and then update the VA entries above.

Graphical user interface, text, applicationDescription automatically generated

Step 1.    Configure the local DNS on Umbrella Virtual Appliances - Follow the Umbrella documentation to configure local DNS on each VA. The local dns will be c.project-name.internal. Set this IP as local DNS on both Umbrella VAs.

Step 2.    Set up policies to exempt internal domains - Log on to the Umbrella portal, go to Deployments > Configuration > Domain Management and add the internal domains that should be routed to the local GCP resolver. Based on your set up, the list of internal domains will vary.

Set up policies to exempt internal domains

Step 3.    Update the DNS server policy - Go to VPC network -> VPC Networks and edit the VPC for this setup. 

Step 4.    Under the DNS server policy click on Create a new server policy.

Step 5.    Give this policy a meaningful name.  This guide will use gcp-iass-dns

Step 6.    Add the two Umbrella VA IP addresses to the Alternate DNS Servers

Graphical user interface, text, application, emailDescription automatically generated

Step 7.    Click on SAVE AND CONTINUE

Step 8.    Click on SAVE

This VPC should now have a new DNS server policy in use

TextDescription automatically generated with low confidence

Create Instance Templates, Instance Groups, and Load Balancers

An instance template needs to be created before the instance groups or load balancer can be configured.  This process will go from the app tier to the web tier.  Doing the app template, instance group, firewall rule, and load balancer.  Then the web template, group, and load balancer. Before this process can start, we must get the Secure Endpoint and Secure Workload files needed for the installation process.

Get Secure Endpoint URL

Step 1.    Login into the Secure Endpoint portal and go to Management -> Groups

Step 2.    Create a new group with a meaningful name and leave it all as the default for now. This guide will use GCP-IAAS as the group name

Step 3.    Go to Management -> Download connector and show the URL for the Linux connector.  Save this for later

A screenshot of a computerDescription automatically generated with medium confidence

Host Secure Workload installer

Step 1.    Login into the Secure Workload portal and go to Manage -> Agents -> Installer

Step 2.    Select Auto-Install Agent using an installer. Then Next

Step 3.    Select Linux for the platform and No for the HTTP Proxy

Step 4.    Click on Download Installer and Next

Step 5.    Create a Cloud Storage Bucket in GCP and upload the Secure Workload installer to it

App Instance Template

Now that the Secure Endpoint and Secure Workload files have been prepped.  The app instance template can be created.

Step 1.    Go to Compute Engine -> Instance Templates -> CREATE INSTANCE TEMPLATE

Step 2.    Give the template a meaningful name. This guide will use app-template

Step 3.    Change the Boot disk from Debian to CentOS

Step 4.    In the Networking section, add a network tag of app

Step 5.    Under Network interfaces, change subnetwork to app-net

Step 6.    Remove the external IP

Step 7.    Go to the Management section and in the Automation field, add the script that is below to it. Please modify the #{} fields to be the SQL database username, password, ip, and database.

Note:     It would go from ${example} to example.com

#Pre-requisite packages

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

sudo yum -y update

sudo yum install -y wget unzip lsof ipset httpd rsync yum-utils awk grep unzip sed dmidecode openssl curl libcurl rpm flock ipset iptables ip6tables

sudo yum-config-manager --enable remi-php74

sudo yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

sudo systemctl start httpd

sudo systemctl enable httpd

sudo setsebool -P httpd_can_network_connect 1

#Wordpress install

sudo wget https://wordpress.org/latest.tar.gz

tar -xzf latest.tar.gz

cd wordpress

sudo cp wp-config-sample.php wp-config.php

#replace ${} with the info from the SQL instance

sudo sed -i -E 's/username_here/${user}/g' ./wp-config.php

sudo sed -i -E 's/password_here/${password}/g' ./wp-config.php

sudo sed -i -E 's/database_name_here/${database}/g' ./wp-config.php

sudo sed -i -E 's/localhost/${host_ip}/g' ./wp-config.php

sudo rsync -avP * /var/www/html/

sudo chown -R apache:apache /var/www/html/*

sudo systemctl restart httpd

#commands to install Secure Endpoint

sudo gsutil cp gs://${bucket_name_here}/tetration_installer_intgssopov_enforcer_linux_tuvok.sh .

sudo chmod u+x tetration_installer_intgssopov_enforcer_linux_tuvok.sh

./tetration_installer_intgssopov_enforcer_linux_tuvok.sh

#commands to get secure endpoint and install it

wget -O ampConnector.rpm ${secure_endpoint_url}

sudo yum localinstall ampConnector.rpm -y

Step 8.    This template can now be created.  Click on CREATE

Step 9.    There should now be an app-template in the instance templates

Graphical user interface, text, applicationDescription automatically generated

App Instance Group

Step 1.    Go to Instance Groups

Step 2.    Click on CREATE INSTANCE GROUP

Step 3.    Give it a meaningful name.  This guide. Will app-group

Step 4.    Change the Instance template to app-template

ApplicationDescription automatically generated

Step 5.    Change the Location from Single zone to Multiple zones

Step 6.    Change the Region to us-east1 if that is where the VPC is located

Graphical user interface, text, applicationDescription automatically generated

Step 7.    Go to Autohealing, click on the drop down and select CREATE A HEALTH CHECK

Graphical user interface, application, TeamsDescription automatically generated

Step 8.    Give this health check a meaningful name. This guide will use app-health-check

Step 9.    Change the Protocol to TCP and Port 80

Step 10. SAVE

Step 11. Click on CREATE

Step 12. There should now be a new instance group

Graphical user interface, text, application, TeamsDescription automatically generated

Health Check Firewall Rule

A firewall rule needs to be created so that the health checks can reach the instances. The rule needs to allow the two IP ranges from Google that are set aside for health checks.  They are 130.211.0.0/22 and 35.191.0.0/16.

Step 1.    Go to VPC network -> Firewall

Step 2.    Click on CREATE FIREWALL RULE

Step 3.    Give the rule a meaningful name. This guide will use healthcheck-rule

Step 4.    Change the Network to gcp-iaas

Step 5.    Add web and app tags to the Target tags box

Step 6.    In the Source IPv4 ranges box, add these two ip ranges

        130.211.0.0/22

        35.191.0.0/16

Step 7.    Check the tcp port box and add ports 80,443

Step 8.    The targets, addresses, and ports should like what is below

Graphical user interface, text, application, emailDescription automatically generated

Step 9.    Click CREATE

App Load Balancer

Step 1.    Go to Network services -> Load balancing

Graphical user interface, applicationDescription automatically generated

Step 2.    Click on CREATE LOAD BALANCER

Graphical user interface, text, application, emailDescription automatically generated

Step 3.    Go to the TCP Load Balancing option and click on START CONFIGURATION

Graphical user interface, text, application, emailDescription automatically generated

Step 4.    For the Internet facing or internal only, select Only between my VMs

Step 5.    For the Multiple regions or single region, it should have defaulted to Single region only.  If it did not, please change it to Single region only

Step 6.     Verify the settings should look like below:

Graphical user interface, text, application, emailDescription automatically generated

Step 7.    Click on CONTINUE

Step 8.    Give the load balancer a meaningful name, this guide will use app-lb

Step 9.    Change the Region to the region where the VMs are deployed, this guide is using us-east1

Step 10. Change the Network to the one created in this guide; this guide is using gcp-iaas.

Step 11. The configuration should look like the below photo:

Graphical user interface, text, application, emailDescription automatically generated

Step 12. In the Backends section, change the New Backend to the app instance group

Step 13. Change the Health check to the app-health-check that was created earlier in this guide

Step 14. The configuration should look like what is below:

Graphical user interface, text, application, emailDescription automatically generated

Step 15. Go the Frontend configuration

Graphical user interface, text, applicationDescription automatically generated

Step 16. Give it a meaningful name, this guide will use app-frontend

Step 17. Change the Subnetwork to the app-net

Step 18. Leave the Internal IP as its defaults (Non-shared, Ephemeral)

Step 19. Change the Ports section to Multiple

Step 20. Add ports 80,443 to the Port numbers box

Step 21. Add a meaningful Service label, this guide is using app-lb

Step 22. The configuration should like the below figure:

Graphical user interface, applicationDescription automatically generated

Step 23. Click on Done

Step 24. Click on CREATE

Step 25. Save the Internal IP for the Web instances.

Web Instance Template

Now that the App tier is finished, the web instance template can be created.

Upload Nginx configuration file

Step 1.    Download the Nginx configuration file from the Validated Design GitHub.

Step 2.    Change the proxy_pass IP to the IP address of the internal load balancer and Save it

Step 3.    Upload the file to the bucket that is hosting the Umbrella and Tetration files

Create the Web Instance Template

Step 1.    Go to Compute Engine -> Instance Templates -> CREATE INSTANCE TEMPLATE

Step 2.    Give the template a meaningful name. This guide will use web-template

Step 3.    Change the Boot disk from Debian to CentOS

Step 4.    In the Networking section, add a network tag of web

Step 5.    Under Network interfaces, change subnetwork to web-net

Step 6.    Remove the external IP

Step 7.    Go to the Management section and in the Automation field, add the script that is below to it. Please modify the #{} field to the bucket name hosting the nginx file.

Note:     It would go from ${bucket_name_here} to gcp_bucket

#Pre-requisite packages

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

sudo yum -y update

sudo yum install -y epel-release nginx wget unzip lsof ipset rsync yum-util

sudo yum install -y ipset httpd yum-utils awk grep unzip sed dmidecode openssl curl libcurl rpm flock iptables ip6tables

#Nginx config

cd /etc/nginx

sudo mv nginx.conf nginx.conf.backup

sudo gsutil cp gs://${bucket_name_here}/nginx.conf .

#Service Start

sudo systemctl restart nginx

sudo systemctl enable nginx

#commands to install tetration

sudo gsutil cp gs://${bucket_name_here}/tetration_installer_intgssopov_enforcer_linux_tuvok.sh .

chmod u+x tetration_installer_intgssopov_enforcer_linux_tuvok.sh

./tetration_installer_intgssopov_enforcer_linux_tuvok.sh

#commands to get secure endpoint and install it

wget -O ampConnector.rpm ${secure_endpoint_url}

sudo yum localinstall ampConnector.rpm -y

 

Step 8.    This template can now be created.  Click on CREATE

Step 9.    There should now be a web-template in the instance templates

Related image, diagram or screenshot

Web Instance Group

Step 1.    Go to Instance Groups

Step 2.    Click on CREATE INSTANCE GROUP

Step 3.    Give it a meaningful name.  This guide will web-group

Step 4.    Change the Instance template to web-template

Step 5.    Change the Location from Single zone to Multiple zones

Step 6.    Change the Region to us-east1 if that is where the VPC is located

Step 7.    Go to Autohealing, click on the drop down and select CREATE A HEALTH CHECK

Graphical user interface, application, TeamsDescription automatically generated

Step 8.    Give this health check a meaningful name. This guide will use web-health-check

Step 9.    Change the Protocol to HTTP

Step 10. SAVE

Step 11. Click on CREATE

Step 12. There should now be a new instance group

Related image, diagram or screenshot

Web Load Balancer

Step 1.    Go to Network services -> Load balancing

Step 2.    Click on CREATE LOAD BALANCER

Step 3.    Go to the HTTP(S) Load Balancing option and click on START CONFIGURATION

Step 4.    For the Internet facing or internal only, select From Internet to my VMs or serverless services

Step 5.    For the Advanced traffic management, select Classic HTTP(S) Load Balancer

 

Step 6.    Click on CONTINUE

Step 7.    Give the load balancer a meaningful name, this guide will use web-lb

Step 8.    In the Backend configuration section, click on the dropdown and select CREATE A BACKEND SERVICE

Step 9.    Give this new backend a meaningful name, this guide will use web-backend

Step 10. In the Backends section, change the instance group to the web-group

Step 11. Add ports 80 and 443 to the Port numbers box

Step 12. Click on Done for this section

Step 13. Change the Health check to the web-health-check that was created earlier in this guide

Step 14. Click on CREATE

Step 15. Go the Frontend configuration

Step 16. Give it a meaningful name, this guide will use web-frontend

Step 17. Click on DONE

Step 18. Click on CREATE

Step 19. There should now be a new HTTP(S) (Classic) load balancer

Related image, diagram or screenshot

Integration with Cisco SecureX

In this last deployment step, we will enable the Umbrella, Secure Cloud Analytics and Secure Workload and Secure Endpoint modules in the SecureX portal to get a unified view into the GCP environment. We create API keys in the product portals and then configure those keys in the threat response dashboard.

Implementation procedure:

    Add Integration modules

    Save the module

Step 1.     Add Integration modules - Log on to the SecureX dashboard and go to Integration modules tab, click + Add to add the required modules from the Available Integration Modules .

Graphical user interface, websiteDescription automatically generated

 

Step 2.     Verify that the modules is now in the in the My Integration Modules

Graphical user interfaceDescription automatically generated

Validation Testing

Secure Workload

Validation procedure overview:

    Test Case 1 - Creating the workspace for GCP cloud application

    Test Case 2 - Using ADM to discover the policies for GCP workloads and setting up an app view

    Test Case 3 - Enforcing the policies on workloads

    Test Case 4 - Discovering the vulnerable packages on the GCP workloads

Test Case 1: Creating an application workspace for GCP cloud application

This test case involves defining annotations for the GCP environment. These annotated attributes are used later to segregate the tiers and segments within the GCP VPC and hence define a workspace for our tiered cloud application.

Validation procedure:

    Build an inventory

    Define scopes

    Create a workspace

Build an inventory

Define the attributes that would help you segregate your tiered application workloads in the cloud and hence construct policies for them. We will use a combination of two different methods to add user annotations - 1) Upload a CSV file 2) Auto generate annotations using external GCP orchestration.

 

Step 1.    Based on the architecture of our tiered application (elaborated in the previous sections of this document), the following annotations were used (Table: GCP Cloud Inventory). Save this in a CSV file format.

Table 1.         GCP Cloud Inventory

IP

Application

Region

Tier

Type

10.0.1.0/24

Safe3tierApp

us-east-1

WebServers

GCP-Cloud

10.0.2.0/24

Safe3tierApp

us-east-1

AppServers

GCP-Cloud

10.0.3.0/24

Safe3tierApp

us-east-1

Database

GCP-Cloud

10.0.4.0/24

Safe3tierApp

us-east-1

Management

GCP-Cloud

Step 2.    Now, log into the Tetration cloud portal and go to Organize -> User Uploaded Labels

Graphical user interface, text, applicationDescription automatically generated 

Step 3.    Click on Select File

Step 4.    Choose the CSV file created in the previous steps

Step 5.    Leave the Operation as Add

Step 6.    Click on Upload

Graphical user interface, applicationDescription automatically generated

Step 7.    Go to ‘Visibility > External Orchestrator’. Click on ‘Create New Configuration’ and fill in the required details as shown below.

Step 8.    After a few minutes, you can go to Manage > Agents > Agent List and select one of the GCP VMs. 

Graphical user interface, applicationDescription automatically generated

Step 9.    After selecting one of the GCP VMs, there should labels assigned to the VM from the file that was imported before

Graphical user interface, text, application, emailDescription automatically generated

Define scopes

We will define a scope to group together all the workloads in our tiered application in the GCP cloud. We will make use of the annotations/labels that we constructed in Step 1. We will create the scope GCP, which includes all the workloads from our tiered app in the us-east-1 region.

Step 1.    Click on Organize > Scopes and Inventory. Then click on the Add button on the right side of the screen

Step 2.    Fill in the information like the below image.  This will create a new scope with a name of GCP and filtering for the GCP VMs using the labels created previously

Graphical user interface, applicationDescription automatically generated

Step 3.    Click Next

Step 4.    This page should confirm that it detected workloads in the Google Cloud

Graphical user interfaceDescription automatically generated

Step 5.    Click Create

Create a workspace

Application workspaces are the containers for defining, analyzing and enforcing policies for a particular application. We will create a workspace for our tiered GCP cloud application in this step.

Step 1.    Go to Defend > Segmentation and then click on Create New Workspace. Give the workspace a meaningful name and select the Scope that was created previously. This guide will use Safe3tierApp

Graphical user interface, text, applicationDescription automatically generated

At this point, we have successfully built the inventory, created a scope and defined a workspace for our tiered cloud application.

Test Case 2: Using ADM to discover the policies for GCP workloads and setting up an app view

This test case validates the use of ADM to automatically discover the policies based on flow and other data received from workloads. We will refine the discovered workload clusters and update the inventory filters to eventually come up with a set of policies that can be enforced on our cloud workloads.

Validation procedure:

    Discover policies using ADM

    Refine inventory filters, clusters and policies

    Discover policies using ADM

 

Before running the ADM, ensure that all types of traffic flows are generated in the application environment. This would provide ADM the required data to generate an accurate policy set and hence ensure that we don’t miss any critical but less common traffic flows.

Step 1.    Go to the newly created workspace and click on Start ADM Run on the top right corner, select a suitable time range to ensure that you cover all the traffic flows.

Graphical user interface, text, application, emailDescription automatically generated

 

Step 2.    After the ADM run has completed, policies and clusters would be generated.However, these should be defined by the inventory filters that were previously created

Step 3.    Go to the Filters tab, click on Inventory Filters, and select one of the filters. The panel on the right-hand side will show the cluster details like name, description, query, and workloads

Graphical user interface, text, application, emailDescription automatically generated

Step 4.    Click on Policies tab, review the policies keeping the workload flows in mind. We considered the following flows for policies:

    User requests incoming to Web Servers via the Load Balancer

    Traffic between the workloads

    Web Servers to Network Load Balancer

    Network Load Balancer to App Servers

    App Servers to RDS Database instance

    Management tier to all the workloads

    Outbound internet access from all the workloads for updates/patches, DNS, DHCP, NTP

Graphical user interface, applicationDescription automatically generated

Test Case 3: Enforcing the policies on workloads.

This test case focuses on enforcing the policy set that we formulated in Test Case 2. We will publish the policies and verify if those are enforced as expected.

Validation procedure:

    Publish the policies

    Verify policy enforcement on workloads

Step 1.     Publish the policies – Select the Enforcement tab on the Tetration portal within the application workspace and click on Enforce Policies

Graphical user interface, application, table, ExcelDescription automatically generated

Step 2.     Verify policy enforcement on workloads - Since we had CentOS based workloads, we monitored the ‘/usr/local/tet/log/tet-enforcer.log’ to see if policies are successfully enforced. A simple ping or telnet test can also be used to verify the lockdown of ports and protocols.

TextDescription automatically generated 

Use the CLI command ‘ipset list’ to view the ipset firewall settings enforced by Tetration agent on the CentOS workloads.

TextDescription automatically generated 

Test Case 4: Discovering the vulnerable packages on the GCP workloads.

This test case looks for vulnerable packages/software installed on various workloads in the GCP. We identify a vulnerable package/software on our workloads, patch those and then rerun the report.

Validation procedure:

    Check the vulnerability report

    Fix a vulnerability and rerun the report

Step 1.     Check the vulnerability report – Go to Investigate > Vulnerabilities and change the Scope to the GCP scope

Step 2.     Click on Packages tab to see all the vulnerable packages installed on various workloads in our three-tier application. For the sake of this test, let’s consider mokutil--15-8.el7 as shown below.

Graphical user interfaceDescription automatically generated 

We see that the workloads app & web are affected by this CVE. Logon to this workload and verify the mokutil package.

Related image, diagram or screenshot 

Step 3.     Fix the vulnerability and rerun the report – We remove the mokutil packge since there is no updated version

TextDescription automatically generated 

Wait for a few minutes after the uninstall, go back to Tetration portal and check the vulnerability report again. We can see that none of the CVEs related to mokutil show up anymore.

Graphical user interface, application, tableDescription automatically generated 

Secure Endpoint

Test Case: Quarantine a suspicious file

This test case involves the detection of using AMP for endpoint ‘simple custom detections’ to quarantine a suspicious PDF file.

Validation procedure:

Step 1.     Setting up Secure Endpoint policy to quarantine a suspicious file

Step 2.     Verifying the deletion of a suspicious file

Step 3.     Setting up AMP4E policy to quarantine a suspicious file – For the validation purpose, we consider a 1 MB PDF file that we will block list using AMP ‘Simple Custom Detections’. We will then try to download the same PDF file on a cloud workload and assert that our policy works as expected.

As per our initial Secure Endpoint setup, we had configured the group ‘Secure Cloud’ (Management > Groups) for our workloads in the GCP cloud.

Graphical user interfaceDescription automatically generated

Note:     During our implementation phase we had used the Secure Endpoint agent tied to this specific group Secure Cloud, which we had created as part of the initial Secure Endpoint set up (not elaborated in this guide, follow Secure Endpoint documentation for detailed steps on setting up Secure Endpoint policies). All the workloads in GCP VPC register with AMP Cloud under this specific group.

It can be seen in the snapshot above that we tied the specific group to Linux policy CloudApp-LinuxPolicy. Go to ‘Management > Policies and select the specific Linux policy.

Management > Policies

Note:     We had preconfigured the Linux policy associated with Secure Endpoint group ‘Secure Cloud’. We also tied a new Simple Custom Detection CloudApp-CSD to the Linux policy. If there was no initial config on Secure Endpoint Dashboard, then you would see default policies here.

As we see in the snapshot, the Linux policy above is tied to Simple Custom Detections CloudApp-CSD (Outbreak Control > Simple).

Go to Outbreak Control > Simple Custom Detections and click on edit CloudApp-CSD to upload the PDF file that we want to block in the GCP cloud environment (this guide will use the Cisco Edge White Paper). Uploading the PDF file will add the SHA value to the SCD policy and quarantines the file associated with it from all the cloud workloads registered under the specific group.

Graphical user interface, text, application, emailDescription automatically generated

Step 4.     Verify the deletion of the suspicious program – Log on to a cloud workload, we picked one of the web servers in Web Instance Group. We downloaded the PDF file that we block listed above. We can see that the file is immediately quarantined by the Secure Endpoint agent on the workload.

Graphical user interface, textDescription automatically generated

We also confirm the quarantine event from the event logs on the Secure Endpoint Dashboard. Log on to the Secure Endpoint Dashboard and go to Analysis > Event, we see a Quarantine successful event post our steps above.

A screenshot of a computerDescription automatically generated

Secure Cloud Analytics

Test Case: Monitor suspicious activity

This test case involves using Secure Cloud Analytics to monitor the activity within the GCP cloud environment.

Validation procedure:

Step 1.     Monitor suspicious activity in Secure Cloud Analytics - Login to the Stealthwatch cloud portal. Go to ‘alerts’, we see the alert ‘Excessive Access Attempts’ as shown below. This alert indicated that there were numerous attempts to get SSH access from an unexpected geo location, which is a suspicious behavior.

Monitor suspicious activity in Stealthwatch Cloud

 

Status -  A screenshot of a social media postDescription automatically generated

Cisco Umbrella

Test Case: DNS security

This test case involves adding DNS layer security to the GCP workloads. We created a DNS policy for our tiered application workloads to block malicious domains. To verify the blocks, we accessed a test domain ‘examplemalwaredomain.com’ and then confirmed the same from Umbrella reporting.

Validation procedure:

    Set up DNS policy for GCP workloads

    Confirm if malware domain is blocked

Step 1.     Set up DNS policy for GCP workloads – Go to ‘Policies > Management > DNS Policies’, add a new policy and make sure ‘Malware’ is set to block under security settings. Save the change.

Cisco Umbrella

 

Cisco Umbrella

Step 2.     Confirm if malware domain is blocked – Run ‘nslookup’ on a test malware domain as shown in snapshot below. Utility returns Umbrella block page IP address as below.

Confirm if malware domain is blocked

To further confirm the block action, select ‘Reporting > Activity Search’ and filter the accessed malware domain. Events show the action as ‘Blocked’.

Reporting > Activity Search

 

Duo Beyond

Validation procedure overview:

    Test Case 1 - Set up the cloud application for Two-Factor Authentication (2FA)

    Test Case 2 - Monitor 2FA activity from Duo admin portal

Test Case 1: Set up the cloud application for Two-Factor Authentication (2FA)

This test case involves logging into the application for the first time and activating the duo plugin. Previously, during the implementation phase, we had already downloaded the plugin to application workloads using GCP User Data option. Follow the Duo documentation (skip step 2 under ‘Install and Configure the Plugin’) to activate WordPress Duo plugin. After activating the plugin, log out and log in again. This time Duo will prompt the user to enroll their phone for 2FA. After successful enrollment, user gets the ability to approve subsequent login attempts.

Validation procedure:

    Set up Duo 2FA for a new user

    Log onto the cloud application

Step 1.     Set up Duo 2FA for a new user - After the initial plugin activation, the Duo MFA kicks in and since this is the first authentication attempt, the user is prompted to enroll for MFA.

Set up Duo 2FA for a new user

Step 2.     Log onto the cloud application - After the enrollment, we continue to log onto the application, this time the user is presented with Duo authentication methods instead of ‘setup’. Once the user approves the authentication request, they are allowed to login.

Log onto the cloud application

Test Case 2: Monitor 2FA activity from Duo admin portal

This test case involves monitoring the 2FA enrollment and login activity in the Duo admin portal.

Validation procedure:

    Verify the 2FA enrolled devices

    Track the user logins in authentication logs

Step 1.     Verify the 2FA enrolled devices - Logon to the Duo admin portal and select ‘2FA Devices’, the portal shows the list of enrolled devices along with other details like platform, hardware model and usernames.

Related image, diagram or screenshotGraphical user interface, applicationDescription automatically generated

Step 2.     Track the user logins in authentication logs – Go to ’Dashboard > Authentication log’, to track user 2FA login activity as shown in the snapshot below.

Related image, diagram or screenshotGraphical user interface, application, TeamsDescription automatically generated

Cisco SecureX Threat Response

Test Case: Track Malicious Activity on threat response

In this test case, we track the life cycle of the malicious PDF that we quarantined using AMP4E in previous steps. We will use the same SHA value and see what threat response offers in terms of visibility in our environment.

Implementation procedure:

    Investigate a malicious SHA value

    Track the file trajectory

Step 1.     Investigate a malicious SHA value - Log on to the threat response portal and select Investigate. Add the SHA value in provided space and click on Investigate. Threat response pulls all the information about the associated file and what workloads the specific file had interacted with. Under the Investigated section, we can see that Secure Endpoint detected this SHA value as malicious based on our custom AMP policy, threat response displays the specific AMP4E policy name as well.

Graphical user interfaceDescription automatically generated 

Step 2.     Track the file trajectory - Click on the ‘SHA-256 Hash’ shown in the Graph box. Expand the drop-down menu and click on ‘File trajectory’.

Graphical user interface, text, application, chat or text messageDescription automatically generated

Clicking on File trajectory should redirect you to the Secure Endpoint portal page which displays the trajectory of the malicious file on the specific workload. Clicking on a particular timestamp displays the related events. The event history shows all the events associated with the specific file.

Graphical user interface, applicationDescription automatically generated

Appendix

Appendix A- Acronyms

Acronym

Definition

CVD

Cisco Validated Design

IaaS

Infrastructure as a Service

MFA

Multi-Factor Authentication

PIN

Places in Network

PaaS

Platform as a Service

SaaS

Software as a Service

SQL

Structured Query Language

SSO

Single Sign On

VA

Virtual Applicance

VPC

Virtual Private Cloud

2FA

Two Factor Authentication

 

Appendix B- GCP Terraform Template

The GCP Terraform template used for the validation testing is located on the Cisco Security Validated Design GitHub. This template can be used to automate the deployment of the networking components, database, application, and web servers.  For more information on the full deployment using Terraform, the readme in the GitHub repository goes over all the steps and how it works.

Appendix C- Software Versions

Product

Platform

Version

Secure Workload

Software agent

3.3.2.35-enforcer

Secure Endpoint

Software agent

1.11.1.663

Secure Cloud Analytics

Cloud Offering

SaaS

Umbrella VAs

Appliance (Compute Engine)

2.6.2

Duo WordPress Plugin

Software Plugin

Version 2.5.5

SecureX

Cloud Offering

SaaS

Workloads

Linux

CentOS 7.7

SQL Database

MySQL database

mysql-5-7

Appendix D- References

This section lists all the references.

    Cisco SAFE

    Cisco Secure Workload

    Cisco Secure Endpoint

    Cisco Secure Cloud Analytics

    Cisco Duo

    Cisco Umbrella

    WordPress

    NGINX

    GCP VPC

    GCP DNS Policy

    GCP Firewall

    GCP Cloud SQL

    GCP Instance Groups

    GCP VM Instances

    GCP Load Balancer

    GCP Cloud Storage Buckets

    GCP Compute Engine

Appendix E - Feedback

If you have feedback on this design guide or any of the Cisco Security design guides, please send an email to ask-security-cvd@cisco.com.

Learn more