arrow_back

Identifica vulnerabilidades y técnicas de solución

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Identifica vulnerabilidades y técnicas de solución

Lab 1 hora 30 minutos universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos
ícono de información importante IMPORTANTE:

ícono de computadora de escritorio/laptop Asegúrate de completar este lab práctico únicamente en una computadora de escritorio o laptop.

ícono de verificación Se permiten solo 5 intentos por lab.

ícono de diana del cuestionario A modo de recordatorio, es habitual no responder de forma correcta a todas las preguntas en el primer intento o incluso tener que volver a realizar una tarea; esto forma parte del proceso de aprendizaje.

ícono de cronómetro Una vez comenzado el lab, no se puede detener el cronómetro. Después de 1 hora y 30 minutos, el lab terminará y tendrás que volver a empezar.

ícono de sugerencia Para obtener más información, consulta la lectura Sugerencias técnicas para el lab.

Descripción general de la actividad

Identificar vulnerabilidades y, además, implementar técnicas de solución es fundamental para garantizar la seguridad y la estabilidad de diversos sistemas y aplicaciones. Muchas aplicaciones y sistemas contienen información sensible, como información de identificación personal, registros contables o propiedad intelectual. Identificar vulnerabilidades ayuda a proteger estos datos sensibles del acceso no autorizado y posibles vulneraciones. Por lo general, abordar las vulnerabilidades de forma anticipada en el proceso de desarrollo genera menos gastos que lidiar con las violaciones de la seguridad más tarde. El costo de solucionar una vulnerabilidad suele ser más alto que el costo de prevenirla en primer lugar.

Como analista de seguridad, analizar con regularidad las vulnerabilidades puede ayudar a identificar y abordar los puntos débiles antes de los ataques maliciosos, lo que mitiga las posibles amenazas de forma proactiva. Proporciona información sobre la superficie de ataque de una aplicación, lo que te permite entender las posibles vías de explotación y priorizar las áreas críticas que deben mejorarse.

En este lab, aprenderás no solo cómo configurar y ejecutar una aplicación vulnerable, sino también cómo analizarla para detectar vulnerabilidades.

Situación

Cymbal Bank ha desarrollado una nueva aplicación bancaria para sus clientes corporativos que está configurada para alojarse y, luego, implementarse en la nueva infraestructura de nube. Javier, el director de seguridad de la información, desea priorizar la seguridad de esta aplicación antes de su lanzamiento para los clientes. Tu líder de equipo, Chloe, te asignó la tarea de identificar y mitigar cualquier vulnerabilidad para esta aplicación nueva. Usarás Web Security Scanner de Google Cloud para analizar la aplicación en busca de vulnerabilidades relacionadas con una de las principales vulnerabilidades de aplicaciones web de OWASP®, conocida como secuencia de comandos entre sitios (XSS).

Sigue estos pasos para completar esta tarea: Primero, crearás una dirección IP estática y, además, iniciarás una máquina virtual. Luego, implementarás la aplicación vulnerable. A continuación, configurarás y ejecutarás la aplicación. Luego, accederás a la aplicación y la analizarás. Por último, corregirás la vulnerabilidades y volverás a analizar la aplicación.

Configuración

Antes de hacer clic en Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

En este lab práctico, puedes realizar las actividades por tu cuenta en un entorno de nube real, en lugar de una simulación o un entorno de demostración. Para ello, se te proporcionan credenciales temporales nuevas que usarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana del navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • Tiempo restante
    • El botón Abrir la consola de Google
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
    Nota: Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
  2. Haz clic en Abrir la consola de Google (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito) si ejecutas el navegador Chrome. La página Acceder se abre en una pestaña del navegador nueva.

    Sugerencia: Puedes organizar las pestañas de manera independiente (una ventana al lado de la otra) para alternar fácilmente entre ellas.

    Nota: Si aparece el diálogo Elige una cuenta, haz clic en Usar otra cuenta.
  3. Si es necesario, copia el nombre de usuario de Google Cloud a continuación, y pégalo en el diálogo Ingresar. Haz clic en Siguiente.

{{{user_0.username | "nombre de usuario de Google Cloud"}}}

También puedes encontrar el nombre de usuario de Google Cloud en el panel Detalles del lab.

  1. Copia la contraseña de Google Cloud a continuación y pégala en el diálogo te damos la bienvenida. Haz clic en Siguiente.
{{{user_0.password | "contraseña de Google Cloud"}}}

También puedes encontrar la contraseña de Google Cloud en el panel Detalles del lab.

Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud podría generar cargos adicionales.
  1. Haz clic para avanzar por las páginas siguientes:
    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para las pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Menú de la consola de Google Cloud con el ícono de menú de navegación destacado

Tarea 1: Inicia una máquina virtual

En esta tarea, crearás una dirección IP estática y, además, iniciarás la máquina virtual para ejecutar la aplicación vulnerable.

  1. En la barra de título de la consola de Google Cloud, haz clic en el ícono Activar Cloud Shell (Ícono de Activar Cloud Shell). Si se te solicita, haz clic en Continuar.
  2. Copia el siguiente comando en la terminal de Cloud Shell:
gcloud compute addresses create xss-test-ip-address --region={{{project_0.default_region | "REGION"}}}

Este comando crea una dirección IP estática denominada xss-test-ip-address en la región . Esta IP estática se usará para analizar la aplicación web vulnerable.

  1. Presiona INTRO.

Si se te solicita, haz clic en Autorizar.

  1. Copia el siguiente comando en la terminal de Cloud Shell:
gcloud compute addresses describe xss-test-ip-address \ --region={{{project_0.default_region | "REGION"}}} --format="value(address)"

Este comando devuelve la dirección IP estática que generaste.

  1. Presiona INTRO.
  2. Copia la dirección IP del resultado y guárdala en un bloc de notas. Deberás usarla en una tarea posterior.
  3. Copia el siguiente comando en la terminal de Cloud Shell:
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 | "ZONE"}}} \ --metadata=startup-script='apt-get update; apt-get install -y python3-flask'

Este comando crea una instancia de VM para ejecutar la aplicación vulnerable.

  1. Presiona INTRO.
Nota: La secuencia de comandos de inicio instalará python-flask, un framework de aplicaciones web, que se usa para ejecutar una aplicación simple de Python. Esta aplicación muestra la vulnerabilidad de secuencia de comandos entre sitios (XSS), que es una vulnerabilidad de seguridad para aplicaciones web común.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.

Inicia una máquina virtual

Tarea 2: Configura y ejecuta la aplicación vulnerable

En esta tarea, descargarás y extraerás los archivos de la aplicación web para la aplicación vulnerable y, a continuación, implementarás la aplicación en SSH en el navegador.

Primero, crearás una regla de firewall que permitirá a la herramienta Web Security Scanner acceder a la aplicación vulnerable.

  1. Copia el siguiente comando en la terminal de Cloud Shell:
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

Este comando crea una regla de firewall que permite acceder a la aplicación web desde cualquier dirección IP de origen. Esto permite que Web Security Scanner acceda a la aplicación vulnerable y realice un análisis.

  1. Presiona INTRO.

A continuación, usa una conexión SSH para conectarte a la instancia de VM.

  1. En la consola de Google Cloud, haz clic en el menú de navegación (Menú de navegación).
  2. Selecciona Compute Engine > Instancias de VM.
  3. En la página Instancias de VM, en la columna Conectar, haz clic en el botón SSH junto a la instancia de prueba.

Esto abrirá una conexión SSH a tu instancia de VM en una nueva ventana del navegador.

  1. 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.

Ahora, extrae los archivos de la aplicación web.

  1. Copia el siguiente comando en la página SSH en el navegador (no en Cloud Shell):
gsutil cp gs://cloud-training/GCPSEC-ScannerAppEngine/flask_code.tar . && tar xvf flask_code.tar

Este comando descarga y extrae los archivos vulnerables de la aplicación web.

  1. Presiona Intro.

  2. Por último, copia el siguiente comando en la página SSH en el navegador:

python3 app.py

Este comando inicia la aplicación.

  1. Presiona INTRO.

Un mensaje debería indicar que la aplicación está funcionando.

Nota: Dado que se trata de una aplicación web que se instaló para usarse en entornos de desarrollo, es posible que existan vulnerabilidades asociadas con el archivo de configuración. Es importante probar cualquier aplicación antes de su uso en una red pública. Nota: No cierres la página SSH en el navegador cuando realices la siguiente tarea, ya que la aplicación debe seguir ejecutándose.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.

Configura y ejecuta la aplicación vulnerable

Tarea 3: Accede a la aplicación vulnerable

En esta tarea, probarás la aplicación en busca de una vulnerabilidad conocida como secuencia de comandos entre sitios (XSS). Las secuencias de comandos maliciosas, como el código HTML, pueden aprovechar las vulnerabilidades XSS en el contenido que luego se entrega a los navegadores web.

  1. Mientras se ejecuta la aplicación, abre una nueva ventana del navegador.
  2. Copia la siguiente URL en la pestaña del navegador y reemplaza <YOUR_EXTERNAL_IP> por la dirección IP estática de la VM que guardaste en un bloc de notas en la Tarea 1:

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

  1. Copia el siguiente código HTML, incluidas las etiquetas de la secuencia de comandos, en el formulario web:
<script>alert('This is an XSS Injection to demonstrate one of OWASP vulnerabilities')</script>

Este código inserta una vulnerabilidad de OWASP®.

En una página web para la aplicación de demostración del Cymbal Bank, se muestra un formulario web que contiene una secuencia de comandos entre sitios.

  1. Haz clic en PUBLICAR.

El código insertado mostraba un mensaje al navegador. Esta acción por sí misma no es maliciosa; sin embargo, los atacantes pueden introducir código malicioso en una aplicación que se puede aprovechar para robar datos de esta o implantar software malicioso en el dispositivo del usuario.

Se abrirá la ventana de alerta con el siguiente mensaje: “This is an XSS Injection to demonstrate one of OWASP vulnerabilities”.

Tarea 4. Analiza la aplicación

En esta tarea, analizarás la aplicación en busca de vulnerabilidades con Web Security Scanner.

Primero, habilita la API de Web Security Scanner.

  1. En la consola de Google Cloud, haz clic en el menú de navegación (Menú de navegación).
  2. Selecciona APIs y servicios > APIs y servicios habilitados. Se muestra la página APIs y servicios.
  3. Haz clic en + Habilitar APIs y servicios.
  4. En el campo de búsqueda, escribe Web Security Scanner y presiona INTRO.
  5. Selecciona API de Web Security Scanner.
  6. Haz clic en Habilitar.

Ahora, analiza la aplicación en busca de vulnerabilidades.

  1. En la consola de Google Cloud, haz clic en el menú de navegación (Menú de navegación).
  2. Selecciona Seguridad > Web Security Scanner. Es posible que debas expandir el menú desplegable Más productos en el menú de navegación.

Si se habilita la API de Web Security Scanner, la página Cloud Web Security Scanner muestra los detalles de Configuraciones de análisis.

  1. En la barra de herramientas Cloud Web Security Scanner, haz clic en + New scan.

  2. En la sección Nombre, asígnale al análisis el nombre Análisis de secuencia de comandos entre sitios.

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

  1. Agrega dos puntos y el número de puerto 8080 al final de la dirección IP. El campo Starting URL 1 debería ser similar al siguiente:
  1. En caso de que esté presente, borra Starting URL 2.
  2. En la sección URL excluidas, verifica que Autenticación esté configurada en Ninguna y Programa en Nunca. Deja todos los demás campos sin modificar.
  3. Haz clic en Guardar para crear el análisis.
  4. Haz clic en Ejecutar análisis para iniciar el análisis.
  5. Vuelve a la ventana SSH en el navegador.

En la ventana SSH en el navegador, deberías ver los registros que se generan a medida que Web Security Scanner prueba todas las URLs en busca de posibles vulnerabilidades.

  1. Cuando se complete el análisis, regresa a la consola de Google Cloud.
Nota: El análisis podría tardar entre 5 y 10 minutos en completarse.

En la pestaña Resultados, se deberían indicar las vulnerabilidades entre sitios, lo que demuestra cómo Web Security Scanner puede detectar una vulnerabilidad XSS.

Las vulnerabilidades también pueden encontrarse en la pestaña Vulnerabilidades en Security Command Center.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.

Analiza la aplicación

Tarea 5. Corrige las vulnerabilidades

En esta tarea, corregirás la vulnerabilidad XSS de la aplicación y volverás a ejecutar la aplicación con la nueva solución.

La recomendación para solucionar las vulnerabilidades actuales es validar y omitir los datos que no son de confianza proporcionados por los usuarios, lo que también apunta a las reglas de OWASP® correspondientes.

Para ello, editarás el código de la aplicación vulnerable para incluir líneas de código que validen y omitan los datos proporcionados por los usuarios.

  1. Vuelve a la página SSH en el navegador que está conectada a tu instancia de VM.
  2. Presiona CTRL + C para detener la aplicación en ejecución. De manera alternativa, puedes hacer clic en el ícono Enviar combinación de teclas en la esquina superior derecha de la ventana SSH en el navegador para ingresar la combinación de teclas CTRL + C.

Ahora, edita el archivo app.py con el editor nano.

  1. Copia el siguiente comando en la página SSH en el navegador:
nano app.py

Este comando abre el editor de código nano.

  1. Presiona INTRO.

  2. Para solucionar la vulnerabilidad XSS, valida la variable de la cadena de salida. La cadena de salida es el resultado procesado de la entrada del formulario web proporcionada por el usuario.

Asegúrate de que la aplicación no acepte la entrada del usuario como código HTML; en su lugar, omitirá los caracteres especiales que proporciona la entrada del usuario. Para ello, localiza las dos líneas que establecen la cadena de salida:

# 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). Las 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)
  1. Presiona CTRL + X para salir de nano, Y para guardar los cambios y, a continuación, INTRO para guardar tus cambios.
  2. Copia el siguiente comando en la terminal de Cloud Shell:
python3 app.py

Este comando vuelve a ejecutar la aplicación.

  1. Presiona INTRO.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.

Corrige las vulnerabilidades

Tarea 6. Vuelve a analizar la aplicación web

En esta tarea, volverás a analizar la aplicación para asegurarte de que no existan vulnerabilidades.

  1. Vuelve a la página Cloud Web Security Scanner en la consola de Google Cloud.
  2. Haz clic en Ejecutar para volver a ejecutar el análisis.
Nota: El análisis podría tardar entre 5 y 10 minutos en completarse.

En la pestaña Resultados, ahora se debería indicar que no se encontraron vulnerabilidades.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente. Asegúrate de esperar hasta que se complete el análisis para recibir crédito por completar esta tarea.

Vuelve a analizar la aplicación web

Conclusión

¡Muy bien!

En este lab, obtuviste experiencia práctica en el análisis para detectar vulnerabilidades de aplicaciones. Aprendiste la importancia de la capacidad del analista de seguridad para analizar las vulnerabilidades de aplicaciones, lo que es fundamental para ayudar a identificar y abordar posibles puntos débiles, administrar riesgos, satisfacer los requisitos de cumplimiento y, en última instancia, mantener una postura de seguridad sólida para proteger los recursos y la reputación de una organización.

Cuando cierras las brechas de seguridad y abordas los puntos débiles, puedes evitar posibles explotaciones, minimizar el impacto de los incidentes de seguridad y cumplir con las reglamentaciones de la industria.

En este lab, completaste uno de los aspectos fundamentales de las estrategias proactivas de seguridad cibernética.

Finaliza el lab

Antes de que finalices el lab, asegúrate de estar conforme con la forma en que completaste todas las tareas. Cuando estés conforme, haz clic en Finalizar Lab y luego haz clic en Enviar.

Finalizar el lab te quitará el acceso al entorno del lab y no podrás volver a acceder al trabajo que completaste.

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.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

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

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.