Puntos de control
Create the VM with desired configurations
/ 20
Download vulnerable web application files on the VM
/ 20
Enable the Web Security Scanner API
/ 20
Run a Web Security Scanner scan and detect application vulnerabilities
/ 20
Correct vulnerabilities and rescan your application using Web Security Scanner
/ 20
Identifica las vulnerabilidades en una aplicación con Security Command Center
Descripción general
Introducción
En este lab, usarás Web Security Scanner, uno de los servicios integrados de Security Command Center para analizar una aplicación Python Flask en busca de vulnerabilidades. Web Security Scanner identifica las vulnerabilidades de seguridad en tus aplicaciones web de App Engine, Google Kubernetes Engine (GKE) y 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.
Situación
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.
Objetivos
En este lab, realizarás 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.
-
Accede a Qwiklabs desde una ventana de incógnito.
-
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. -
Cuando esté listo, haga clic en Comenzar lab.
-
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
-
Haga clic en Abrir Google Console.
-
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. -
Acepta las condiciones y omite la página de recursos de recuperación.
Tarea 1. Inicia una máquina virtual y también implementa una aplicación vulnerable
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 concretamente, implementarás una máquina virtual, obtendrás el código de la aplicación y también ingresarás una vulnerabilidad que será detectada por Web Security Scanner. Esta aplicación es un formulario simple que recibe la entrada de un usuario y la emite sin ningún cambio.
-
En la barra de título de la consola de Google Cloud, haz clic en Activar Cloud Shell (). Si se solicita, haz clic en Continuar.
-
Crea una dirección IP estática que se usará para analizar una aplicación web vulnerable:
- Ejecuta el siguiente comando para obtener la dirección IP estática que acabas de generar:
-
Copia la dirección IP (una sola línea de la salida) y guárdala en un bloc de notas.
-
Ejecuta el siguiente comando para crear una instancia de VM y así ejecutar la aplicación vulnerable:
La secuencia de comandos de inicio instalará python-flask, un framework 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.
- Abre una regla de firewall para que Web Security Scanner acceda a una aplicación vulnerable. Ten en cuenta los rangos de origen desde los que Web Security Scanner analiza las aplicaciones.
Haz clic en Revisar mi progreso para verificar el objetivo.
-
Abre el menú de navegación y selecciona Compute Engine > Instancias de VM.
-
Luego, haz clic en el botón SSH junto a tu instancia:
- Puede aparecer una ventana emergente en la que se te pida permitir que SSH en el navegador se conecte a las VMs. Haz clic en Autorizar.
Esto abrirá una conexión SSH a tu instancia de VM en una ventana nueva.
- En esta ventana SSH (No en Cloud Shell), ejecuta el siguiente comando para descargar y extraer los archivos vulnerables de la aplicación web:
- Ahora, ejecuta el siguiente comando para implementar tu aplicación:
- Poco después, deberías recibir un mensaje que indique que tu aplicación está en funcionamiento:
-
Busca la dirección IP estática de la VM que copiaste antes en el bloc de notas.
-
Reemplaza
YOUR_EXTERNAL_IP
en el campo URL de abajo con esa dirección IP y abre la URL en una pestaña nueva del navegador:
-
Debería aparecer un portal de banca corporativa de Cymbal Bank con un formulario web.
-
En el formulario web ingresa la siguiente cadena:
- Ahora presiona el botón POST.
Deberías ver la siguiente ventana de alerta:
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.
Tarea 2. Analiza la aplicación con Web Security Scanner
Ahora que lanzamos nuestra aplicación vulnerable, es momento de demostrar las habilidades de Web Security Scanner al director de tecnología. En esta tarea, configurarás y establecerás un análisis de la aplicación para encontrar vulnerabilidades de seguridad.
-
Vuelve a la pestaña del navegador que muestra la consola de Cloud.
-
Abre el menú de navegación y selecciona APIs y servicios > Biblioteca.
-
En Buscar APIs y servicios, escribe Web Security Scanner y presiona Intro.
-
Selecciona API de Web Security Scanner.
-
Haz clic en Habilitar para habilitar la API de Web Security Scanner.
Haz clic en Revisar mi progreso para verificar el objetivo.
-
Abre el menú de navegación y selecciona Seguridad > Web Security Scanner.
-
Haz clic en + Análisis nuevo.
-
En la sección URLs de inicio, el campo Starting URL 1 debe completarse previamente con la dirección IP estática.
-
Agrega el número de puerto 8080, de modo que la URL de inicio tenga el siguiente aspecto:
-
En caso de que esté presente, borra Starting URL 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 permita exportar automáticamente configuraciones de análisis y resultados de análisis al Cloud Security Command Center una vez finalizados los análisis.
-
Verifica que la Autenticación siga estando en Ninguna y Programa en Nunca.
-
Haz clic en Mostrar más para investigar las configuraciones restantes.
-
Haz clic en Guardar para crear el análisis.
- Haz clic en Ejecutar para iniciar el análisis
- Vuelve a tu sesión SSH en tu ventana separada.
Si la sesión agotó el tiempo de espera, ejecuta el siguiente comando para reiniciar la aplicación:
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:
Es posible que veas declaraciones 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.
Revisa esta documentación para obtener más información sobre el estado HTTP y códigos de errores.
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.
- Cuando el análisis termine de ejecutarse, la pestaña Resultados debería indicar las vulnerabilidades entre sitios.
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 habilidad de automatizar la detección de estas vulnerabilidades graves es un gran beneficio para las organizaciones orientadas a la seguridad como Cymbal Bank. Ahora corregirás la vulnerabilidad en el código de la aplicación de Cymbal Bank y volverás a realizar la prueba.
Haz clic en Revisar mi progreso para verificar el objetivo.
Tarea 3. 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.
- Vuelve a tu ventana SSH que está conectada a tu instancia de VM.
- Detén la aplicación en ejecución con CTRL + C.
- Edita el archivo app.py con el editor nano mediante la ejecución del siguiente comando:
- localiza las dos líneas que establecen la cadena de salida:
- 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 es correcta.)
Tus líneas finales deben parecerse a las siguientes:
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 de los caracteres HTML especiales, de modo que nuestro formulario transfiera y también interprete los envíos solo como texto sin procesar. Obtén más información aquí.-
Ahora ingresa CTRL+X > Y > Enter para guardar tus cambios.
-
Vuelve a ejecutar la aplicación:
-
Vuelve a la consola de Google Cloud (deberías seguir teniendo abierta la página de Web Security Scanner):
-
Haz clic en Ejecutar en la parte superior de la página.
En tu ventana SSH, empezarás a ver los registros en los que Web Security Scanner prueba las URLs de las aplicaciones en busca de posibles vulnerabilidades:
-
Mientras esperas los resultados del análisis, accede a la URL
http://<EXTERNAL_IP>:8080
con tu navegador en una pestaña aparte. -
Deberías volver a ver el formulario web.
-
En el formulario web, ingresa la misma cadena que ingresaste antes:
-
Ahora presiona el botón POST.
-
Verifica que esta vez la cadena se muestre en el navegador:
-
Vuelve a la consola de Google Cloud, donde lo dejaste en la página Web Security Scanner.
-
Haz clic en Ejecutar en la parte superior de la página para volver a analizar tu solicitud.
-
Poco después, verás que los resultados no generan más vulnerabilidades XSS:
¡Bien hecho! 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.
Haz clic en Revisar mi progreso para verificar el objetivo.
Felicitaciones
En este lab, realizaste las siguientes tareas:
- Lanzaste una aplicación Python Flask vulnerable
- Usaste Web Security Scanner para analizar la aplicación y encontrar vulnerabilidades
- Corregiste la vulnerabilidad de la aplicación
- Volviste a analizar la aplicación y verificaste que ya no existen vulnerabilidades
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.
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.