arrow_back

Identifica las vulnerabilidades en una aplicación con Security Command Center

Acceder Unirse
Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

Identifica las vulnerabilidades en una aplicación con Security Command Center

Lab 1 hora 15 minutos universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Pon a prueba tus conocimientos y compártelos con nuestra comunidad
done
Obtén acceso a más de 700 labs prácticos, insignias de habilidad y cursos

GSP1262

Labs de autoaprendizaje de Google Cloud

Descripción general

Web Security Scanner es uno de los servicios integrados de Security Command Center que puede usarse para identificar vulnerabilidades de seguridad en App Engine, Google Kubernetes Engine (GKE) y aplicaciones web de Compute Engine.

El servicio rastrea la aplicación, para lo cual sigue todos los vínculos dentro del permiso de las URLs de inicio, y trata de ejecutar la mayor cantidad posible de controladores de eventos y entradas del usuario. Puede analizar y detectar automáticamente cuatro vulnerabilidades comunes, entre las que se incluyen secuencias de comandos entre sitios (XSS), inyección Flash, contenido mixto (HTTP en HTTPS) y bibliotecas desactualizadas o inseguras.

Web Security Scanner permite la identificación temprana de vulnerabilidades y ofrece tasas muy bajas de falsos positivos. Puedes configurar, ejecutar, programar y administrar análisis de seguridad con facilidad.

En este lab, usarás Web Security Scanner para analizar una aplicación de Python Flask en busca de vulnerabilidades.

Objetivos

En este lab, aprenderás a realizar las siguientes tareas:

  • Iniciar una aplicación Python Flask vulnerable en una instancia de Compute Engine
  • Usar Web Security Scanner para analizar la aplicación y encontrar vulnerabilidades
  • Solucionar la vulnerabilidad de la aplicación
  • Volver a analizar la aplicación y verificar que ya no existen vulnerabilidades

Configuración y requisitos

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Situación

Logotipo de Cymbal Bank

Cymbal Bank es un banco minorista estadounidense con más de 2,000 sucursales en los 50 estados. Ofrece servicios completos de débito y crédito basados en una plataforma sólida de pagos. Cymbal Bank es una institución de servicios financieros heredada que se está transformando de forma digital.

Cymbal Bank se fundó en 1920 con el nombre de Troxler. El grupo Cymbal adquirió la empresa en 1975 tras haber estado invirtiendo en los cajeros automáticos de su propiedad. A medida que el banco crecía hasta convertirse en un líder nacional, puso énfasis estratégico en modernizar la experiencia del cliente tanto de forma presencial en sus sucursales como de forma digital a través de una aplicación que lanzaron en 2014. Cymbal Bank emplea a 42,000 personas en todo el país y, en 2019, registró $24,000 millones en ingresos.

Cymbal Bank está interesado en desarrollar una nueva aplicación bancaria para sus clientes corporativos con la tecnología de Google Cloud. La seguridad para aplicaciones es fundamental, y el director de tecnología quiere ver cómo Google Cloud puede identificar y mitigar las vulnerabilidades de seguridad para las aplicaciones. Como Cloud Security Engineer, tu tarea consistirá en demostrar las vanguardistas funciones de análisis de vulnerabilidades de aplicaciones de Security Command Center.

Tarea 1. Inicia una máquina virtual y crea una regla de firewall para WSS

En esta tarea, configurarás la infraestructura para demostrar la vulnerabilidad de una aplicación al director de tecnología de Cymbal Bank. Más específicamente, implementarás una máquina virtual y abrirás una regla de firewall para que Web Security Scanner pueda acceder a la aplicación vulnerable que deseas implementar.

  1. En la barra de título de la consola de Google Cloud, haz clic en Activar Cloud Shell (Ícono de Activar Cloud Shell). Si se te solicita, haz clic en Continuar.

  2. Ejecuta el siguiente comando para crear una dirección IP estática que se usará para analizar una aplicación web vulnerable:

gcloud compute addresses create xss-test-ip-address --region={{{project_0.default_region|lab region}}}
  1. Ejecuta el siguiente comando para obtener la dirección IP estática que acabas de generar:
gcloud compute addresses describe xss-test-ip-address \ --region={{{project_0.default_region|lab region}}} --format="value(address)"
  1. Copia la dirección IP (una sola línea de la salida) y guárdala en un bloc de notas.

  2. Ejecuta el siguiente comando para crear una instancia de VM y así ejecutar la aplicación vulnerable:

gcloud compute instances create xss-test-vm-instance \ --address=xss-test-ip-address --no-service-account \ --no-scopes --machine-type=e2-micro --zone={{{project_0.default_zone|lab zone}}} \ --metadata=startup-script='apt-get update; apt-get install -y python3-flask'

La secuencia de comandos de inicio instala python-flask, un marco de trabajo de aplicación web, que se usa para ejecutar una aplicación Python simple que demuestra la vulnerabilidad de secuencia de comandos entre sitios (XSS), que es una vulnerabilidad de seguridad para aplicaciones web común.

  1. Ejecuta el siguiente comando para abrir una regla de firewall para que Web Security Scanner acceda a la aplicación vulnerable. Ten en cuenta los rangos de origen desde los que Web Security Scanner analiza las aplicaciones.
gcloud compute firewall-rules create enable-wss-scan \ --direction=INGRESS --priority=1000 \ --network=default --action=ALLOW \ --rules=tcp:8080 --source-ranges=0.0.0.0/0

Haz clic en Revisar mi progreso para verificar el objetivo. Crear la VM con las configuraciones deseadas

Tarea 2. Implementa una aplicación vulnerable para activar una vulnerabilidad XSS

En esta tarea, obtendrás el código de la aplicación y también ingresarás una vulnerabilidad para que la detecte Web Security Scanner. Se hará con una aplicación, que es un formulario simple que recibe entradas y salidas de los usuarios sin realizar cambios.

  1. En el menú de navegación (Ícono del menú de navegación) de la consola de Cloud, haz clic en Compute Engine > Instancias de VM.

    La primera inicialización puede tardar un minuto.

  2. Luego, haz clic en el botón SSH junto a tu instancia:

Botón SSH en la consola de Cloud
  1. Puede aparecer una ventana emergente en la que se te pida permitir la conexión SSH en el navegador a las VMs. Haz clic en Autorizar.

Se abrirá una conexión SSH a la instancia de VM en una nueva ventana.

  1. En esta ventana SSH (no en Cloud Shell), ejecuta el siguiente comando para descargar y extraer los archivos vulnerables de la aplicación web:
gsutil cp gs://cloud-training/GCPSEC-ScannerAppEngine/flask_code.tar . && tar xvf flask_code.tar
  1. Ahora, ejecuta el siguiente comando para implementar tu aplicación:
python3 app.py
  1. Poco después, deberías recibir un mensaje que indique que tu aplicación está en funcionamiento.

Resultado:

* Serving Flask app "app" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
  1. Busca la dirección IP estática de la VM que copiaste antes en el bloc de notas.

  2. Reemplaza YOUR_EXTERNAL_IP en el campo URL de abajo por esa dirección IP y abre la URL en una pestaña nueva del navegador:

http://<YOUR_EXTERNAL_IP>:8080 Nota: También puedes encontrar la dirección IP externa en la consola de Google Cloud, en la que aparece como un campo asociado a tu instancia de VM.

Debería aparecer un portal de banca corporativa de Cymbal Bank con un formulario web.

  1. En el formulario web ingresa la siguiente cadena:
<script>alert('This is an XSS Injection')</script>
  1. Ahora, haz clic en el botón PUBLICAR.

Deberías recibir la siguiente ventana de alerta.

Ventana de alerta en el navegador

Se trata de una vulnerabilidad común en las aplicaciones web: una vulnerabilidad de secuencia de comandos entre sitios. La secuencia de comandos entre sitios (XSS) es una vulnerabilidad que permite a los atacantes ejecutar escritura de secuencias de comandos maliciosos en los navegadores de los usuarios en el contexto de tu aplicación. Tu navegador interpreta una cadena como JavaScript legítimo y la ejecuta.

Un atacante que usa un error XSS para insertar JavaScript en una página HTML obtiene un acceso prácticamente ilimitado a las sesiones conectadas de las víctimas que visitan la página: puede robar datos del usuario, manipularlos, cambiar la configuración de privacidad o seguridad, o incluso alterar por completo el aspecto y el funcionamiento del producto. Y mucho más: una vulnerabilidad XSS en una aplicación, por intrascendente que sea, puede poner en peligro otros contenidos dentro del mismo dominio.

Esta es una de las muchas vulnerabilidades de las aplicaciones que Web Security Scanner puede ayudarte a identificar.

Haz clic en Revisar mi progreso para verificar el objetivo. Descargar los archivos de la aplicación web vulnerable en la VM

Tarea 3. Habilita la API de Web Security Scanner

Ahora que se lanzó la aplicación vulnerable, es hora de demostrar las capacidades de Web Security Scanner al director de tecnología. Sin embargo, primero debes configurar la API que WSS usa para ejecutarse.

  1. Regresa a la pestaña del navegador de la consola de Cloud.

  2. En el menú de navegación (Ícono del menú de navegación), selecciona APIs y servicios > Biblioteca.

  3. En el campo Buscar APIs y servicios, escribe Web Security Scanner y presiona Intro.

  4. Selecciona la API de Web Security Scanner.

  5. Haz clic en Habilitar para habilitar la API de Web Security Scanner.

Haz clic en Revisar mi progreso para verificar el objetivo. Habilitar la API de Web Security Scanner

Tarea 4. Analiza la aplicación implementada con WSS

En esta tarea, configurarás y realizarás un análisis de la aplicación para comprobar si encuentra vulnerabilidades de seguridad.

  1. Abre el menú de navegación (Ícono del menú de navegación) y selecciona Seguridad > Web Security Scanner.

  2. Haz clic en + Análisis nuevo.

  3. En la sección URLs de inicio, el campo Starting URL 1 debe completarse previamente con la dirección IP estática.

  4. Agrega el número de puerto 8080, de modo que la URL de inicio tenga el siguiente aspecto:

http://<EXTERNAL_IP>:8080
  1. En caso de que esté presente, borra Starting URL 2.

  2. Tómate un minuto para revisar los campos restantes en la pantalla Crear un nuevo análisis:

  • Autenticación: una propiedad que se puede usar para proporcionar credenciales de aplicación que permitan al escáner autenticarse en una aplicación durante su análisis.
  • Programa: una propiedad que se puede usar para programar análisis que se ejecuten automáticamente.
  • Exporta a Security Command Center: una propiedad que te permite exportar automáticamente configuraciones de análisis y resultados de análisis al Cloud Security Command Center una vez finalizados los análisis.
  1. Verifica que la Autenticación siga estando en Ninguna y Programa en Nunca.

  2. Haz clic en Mostrar más para investigar las configuraciones restantes.

  3. Haz clic en Guardar para crear el análisis.

Nota: Esto crea el análisis, pero no lo ejecuta. Actualmente debe ejecutarse de forma manual, ya que aún no has creado un programa.
  1. Haz clic en Ejecutar para iniciar el análisis.
Nota: Dado el número de pruebas posibles, el análisis puede llevar algo más de 10 minutos.
  1. Vuelve a tu sesión SSH en tu ventana del navegador separada.

Si se agotó el tiempo de espera de la sesión, ejecuta el siguiente comando para reiniciar la aplicación:

python3 app.py

En tu ventana SSH, empezarás a ver registros generados similares al ejemplo de abajo, en el que se ve a Web Security Scanner probando todas las URLs posibles en busca de vulnerabilidades potenciales:

Resultado:

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -

Es posible que veas instrucciones de registro con los siguientes códigos de estado HTTP:

  • 200: una solicitud correcta, en la que el servidor HTTP respondió con un OK.
  • 302: indica que un recurso se encuentra temporalmente en otro lugar según el encabezado Ubicación.
  • 404: indica que uno o más recursos no se encontraron.

Consulta la documentación sobre el estado HTTP y los códigos de errores para obtener más información.

Mientras se ejecuta el análisis, puedes explorar Resultados, URLs rastreadas y pestañas de Detalles. También puedes consultar este video de introducción o este video de análisis de vulnerabilidades para obtener más información sobre Web Security Scanner.

  1. Cuando el análisis termine de ejecutarse, la pestaña Resultados debería indicar las vulnerabilidades entre sitios.
Resultados de Web Security Scanner con vulnerabilidades

Web Security Scanner fue capaz de analizar todas las URLs de inicio y detectar las vulnerabilidades XSS en la aplicación de Cymbal Bank. La capacidad de automatizar la detección de estas vulnerabilidades graves es un gran beneficio para las organizaciones orientadas a la seguridad como Cymbal Bank.

Haz clic en Revisar mi progreso para verificar el objetivo. Ejecutar un análisis de Web Security Scanner y detectar las vulnerabilidades de la aplicación

Tarea 5. Corrige la vulnerabilidad y analiza otra vez

Ahora que demostraste que Web Security Scanner puede detectar una vulnerabilidad XSS, corregirás la vulnerabilidad y volverás a ejecutar el análisis de la aplicación.

  1. Vuelve a tu ventana SSH que está conectada a tu instancia de VM.
  2. Detén la aplicación en ejecución con CTRL + C.
  3. Edita el archivo app.py con el editor nano mediante la ejecución del siguiente comando:
nano app.py
  1. Localiza las dos líneas que establecen la cadena de resultado:
# output_string = "".join([html_escape_table.get(c, c) for c in input_string]) output_string = input_string
  1. Quita el símbolo # de la primera línea y agrégalo al comienzo de la siguiente (asegúrate de que la sangría del código sea correcta).

Tus líneas finales deben ser similares a esto:

@app.route('/output') def output(): output_string = "".join([html_escape_table.get(c, c) for c in input_string]) # output_string = input_string return flask.render_template("output.html", output=output_string) Nota: html_escape_table es un diccionario que contiene vinculaciones uno a uno de caracteres HTML especiales como "<" con su representación textual. Usamos esta tabla para escapar los caracteres HTML especiales, de modo que nuestro formulario transfiera y también interprete los envíos solo como texto sin procesar. Puedes consultar la documentación ¿Qué es el escape HTML? para obtener más información.
  1. Ahora, presiona CTRL + X, Y e Intro para guardar tus cambios.

  2. Vuelve a ejecutar la aplicación:

python3 app.py
  1. Vuelve a la pestaña del navegador de la consola de Google Cloud (todavía debes tener la página de Web Security Scanner abierta):

  2. Haz clic en Ejecutar en la parte superior de la página.

En tu ventana SSH, deberías comenzar a ver los registros en los que Web Security Scanner prueba las URLs de las aplicaciones en busca de posibles vulnerabilidades:

Resultado:

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -
  1. Mientras esperas los resultados del análisis, accede a la URL http://<EXTERNAL_IP>:8080 con tu navegador en una pestaña aparte.

    Se mostrará nuevamente el formulario web.

  2. En el formulario web, ingresa la misma cadena que ingresaste antes:

<script>alert('This is an XSS Injection')</script>
  1. Ahora, haz clic en el botón PUBLICAR.

  2. Verifica que esta vez recibas la siguiente cadena en el navegador:

Entrada mostrada como cadena de texto Nota: Aunque esta técnica funciona en esta situación simple, para una protección adecuada de tu aplicación web necesitas usar técnicas y frameworks más avanzados que no se abordan en este lab.

Explora los siguientes vínculos para obtener más recursos:
  1. Vuelve a la consola de Google Cloud, donde lo dejaste en la página Web Security Scanner.

  2. Haz clic en Ejecutar en la parte superior de la página para volver a analizar la aplicación.

  3. Poco después, notarás que los resultados no generan más vulnerabilidades XSS.

Resultado de Web Security Scanner sin vulnerabilidades

Haz clic en Revisar mi progreso para verificar el objetivo. Corregir las vulnerabilidades y volver a analizar tu aplicación con Web Security Scanner

¡Felicitaciones!

Le mostraste al director de tecnología de Cymbal Bank cómo identificar y corregir vulnerabilidades XSS con la potente solución Web Security Scanner de Google Cloud.

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 28 de noviembre de 2024

Prueba más reciente del lab: 28 de noviembre de 2024

Copyright 2020 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

One lab at a time

Confirm to end all existing labs and start this one

Setup your console before you begin

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.