Implementación de WAF con GCP (Grupo de Instancias)

Generalidades

Descripción del WAF

El servicio de WAF (Web Application Firewall) ofrece una protección robusta, contra ataques de DDos o para restringir la visualización de sitios sensibles, como ser la página de administrador de WordPress. Esto gracias a las reglas de configuración aplicadas a la infraestructura de nuestra empresa y mediante el análisis de paquetes de petición HTTP/HTTPS adicional a los modelos de tráfico.

Requerimientos

Para poder aplicar un WAF en la infraestructura, se debe tener disponible la creación de varios componentes de GCP los cuales son:

  • Load Balancer (Balanceador de cargas)
  • Cloud Armor (Políticas de seguridad)
  • Compute Engine (La instancia de nuestra maquina virtual)
Figura 1. Infraestructura del WAF

Funcionamiento

Una explicación sencilla del funcionamiento es la siguiente forma: la solicitud HTTPS, llega desde el internet a nuestro balanceador de cargas, en este proceso se verifica que la petición cumpla las reglas de Google Cloud Armor, ya sea IP por geolocalización, denegación de IP, entre otras.

Posteriormente al cumplir la regla, el balanceador de cargas redirige la petición al Backend correspondiente (configurado previamente).

Implementación a Partir de Grupos de Instancias en Google Compute Engine

A continuación implementaremos el servicio de WAF (Web Application Firewall), para mejorar la seguridad de nuestras páginas web alojadas en nuestro proyecto de GCP.

Figura 2. Gestión de Carga del Balanceador

Configuraciones Iniciales

Aplicaremos las configuraciones iniciales para un grupo de instancias, posteriormente en otro artículo, explicaremos como realizarlo mediante un grupo de redes externo (NEG).

Primeras Configuraciones - General
Creación/Modificación del Balanceador de Cargas

Primero nos dirigimos a nuestro proyecto, y buscamos balanceador de cargas. Luego necesitaremos crear un nuevo balanceador de cargas como se evidencia en la figura 3, o modificar el existente (si lo hay).

Figura 3. Creación de Balanceador de Cargas

El balanceador de cargas dependerá de nuestras necesidades, ya sea de aplicación o de red. En la pantalla de creación del balanceador se elegirán las opciones para su creación, tal como se muestra en la figura 4.

En esta documentación no se ahondará sobre la configuración de la creación del balanceador

Figura 4. Configuración de la creación del Balanceador de Cargas

Una vez elegidas las opciones de configuración iniciales, procedemos con las configuraciones de creacion. En el cual nos aparecerá una pantalla donde podremos elegir el Frontend, Backend y las normas de enrutamiento, tal como se evidencia en la figura 5.

Figura 5. Configuraciones del balanceador de cargas.

Si ya existía un balanceador de carga, únicamente nos aparecerá la pantalla de la figura 5 al darle clic en el botón editar.

En el siguiente segmento, definiremos más a detalle la configuración sobre el balanceador de carga.

Configuración del Balanceador de Cargas - Parte 1
Configuración del Frontend del Balanceador de Cargas

Para poder implementar la funcionalidad del balanceador de cargas, debemos configurar el frontend, backend y sus normas de enrutamientos, ya que estas definirán por donde pasará el trafico de las peticiones.

El Frontend del balanceador, es la IP que saldrá a la web, quien recibirá la petición y luego redireccionará el tráfico a los backends asignados (posteriormente se definirá como configurarlo). En la figura 6, se realiza una configuración de ejemplo.

Figura 6. Configuración del Frontend

Un amigable recordatorio, al momento de seleccionar el protocolo, si es HTTP, será por el puerto 80 caso contrario, de seleccionar HTTPS, será por el puerto 443, y es necesario instalar un certificado SSL.

Una vez creado nuestro frontend, se asignará una IP, y se verá como la figura 7.

Figura 7. Frontend Creado

Antes de proceder con la configuración del Backend de nuestro balanceador, es necesario realizar otras configuraciones respecto a nuestra instancia.

Creación del Grupo de Instancias

Para continuar con la implementación de nuestro WAF, necesitaremos crear un grupo de instancias. En el cual, crearemos la o las instancias al cual estará siendo redirigido el tráfico proveniente del Frontend.

Creando el Grupo de Instancias en Compute Engine
Grupo de Instancias

El grupo de instancias nos permite contener instancias de vms (Virtual machines), en el cual están alojados nuestros proyectos. El grupo funciona como contenedor para luego configurarlo como un backend y este último recibirá el redireccionamiento del Frontend.

Para crear un grupo de instancias, debemos dirigirnos la parde de grupo de instancias dentro de compute engine, como se muestra en la figura 8.

 

Figura 8. Creación del Grupo de Instancias

Se desplegará una pantalla solicitando la información del grupo de instancias, en la cual podremos seleccionar dentro de los distintos tipos de instancias. En este caso, haremos el ejemplo con una instancia administrada (Stateless), en la figura 9, se ingresan las configuraciones.

Figura 9. Configurando el grupo de instancias

En la misma pantalla, solicitará la región, esta debe ser la misma que la del balanceador de carga para que este pueda detectarla. En la figura 10 se ejemplifica.

Figura 10. Elección de Región

Una vez finalizado las configuraciones, le damos crear al grupo de instancias. El cual deberá verse reflejado como la figura 11.

Figura 11. Grupo de Instancias Creado

Configuración del Balanceador de Cargas - Parte 2
Creación de Backend en el Balanceador de Cargas

Nos dirigimos al balanceador de cargas y luego en la configuración de backend, damos clic en crear un servicio de backend. En la figura 12 se evidencia los pasos.

Figura 12. Creación de servicios Backend
 

Al dar clic, se nos desplegará una pantalla de creación del servicio. En este paso es importante seleccionar que el tipo de backend sea grupo de instancias, en este se utilizará el grupo creado en el paso anterior. Ver la figura 13 para más claridad.

Figura 13. Selección de instancia
 
Bajando dentro de la misma pantalla desplegada tal como aparece en la figura 14, esta el apartado de Seguridad, donde en este paso, tenemos 2 opciones, primero, podemos crear la política en Cloud Armor que se aplicara en el balanceador de cargas o como segunda opción utilizar una previamente creada.
 
En este caso, crearemos una política, posteriormente configuraremos la misma. Dependiendo de su necesidad, puede utilizar una política ya previamente configurada.

Figura 14. Creación de Política de Seguridad
 

Configuración de las políticas de Cloud Armor

Para continuar con la fase final de la implementación de las políticas, las cuales restringirán a los internautas el acceso a los recursos que únicamente nosotros deseemos mostrar, haremos lo siguientes pasos:

Configurando las políticas WAF
Creando las reglas de las políticas WAF

Nos dirigimos a las políticas de Cloud Armor, y buscamos la política creada, tal como se evidencia en la figura 15.

Figura 15. Políticas de seguridad en Google Cloud Armor

Dentro de la política, podemos elegir si crear una regla o modificar las existentes. En nuestro caso, crearemos una regla de ejemplo para guiarte, como se visualiza en la figura 16.

Figura 16. Creación de reglas

Dentro de la pantalla de agregar regla, nos pedirán los datos y que tipo de acción se requerirá implementar nuestro WAF. Existen 2 campos los cuales son de mucha relevancia. Uno de ellos es el campo de condición y el campo de acción.

Cada uno tiene su distinta finalidad, en el campo de condición tenemos el modo básico y el modo avanzado. En el modo básico únicamente buscará coincidencias de IP, en cambio en el modo avanzado nosotros podremos configurar las reglas mediante código. En la figura 17, podemos ver como es en el modo avanzado.

Figura 17. Modo avanzado de Condición

En los tipos de acción tenemos diferentes opciones, estas opciones son las que se van a implementar, ya sea de denegar, permitir, limitar, entre otras. Estas se pueden visualizar en la figura 18 y 19.

Figura 18. Pantalla de creación de la regla.

Figura 19. Opciones de reglas

Llenamos los datos necesarios para nuestra regla y seleccionamos que prioridad se va implementar, siendo un número bajo la prioridad más alta. Luego se da clic en agregar y nuestra regla se estaría aplicando correctamente.

Una de las mejores prácticas es aplicar las reglas para los TOP 10 ataques según la OWASP.

Listo ya estaría implementado nuestro WAF de un grupo de instancias, para nuestra organización. Ya podemos configurar que estos datos se visualicen de manera gráfica utilizando Google Looker y poder realizar gráficas interactivas.

En Agrega, SERVIMOS a nuestros clientes a través de nuestros servicios gestionados  en aquellas operaciones que nos delegan, con nuestros servicios somos parte de la transformación de sus negocios mediante personas, procesos y tecnología.
Estamos listos para elevar la postura de ciberseguridad de tu empresa.

Si estás interesado en implementar WAF en tu empresa, contáctanos a mercadeo@agrega.com o haz clic en el botón de contacto y con mucho gusto te atenderemos.

¿Qué tan útil ha sido este blog?

¡Haz clic en una estrella para calificarla!

Table of Contents

Facebook
Twitter
LinkedIn