Detalles de los resultados de los análisis

En esta página se describen los resultados que Cloud Security Scanner puede obtener al realizar análisis.

Clases de vulnerabilidades

Cloud Security Scanner detecta las siguientes clases de vulnerabilidades: cross-site scripting (XSS), inyección de Flash, contenido mixto, contraseñas sin cifrar y uso de bibliotecas poco seguras de JavaScript. Si el sistema descubre alguna de ellas, los resultados aparecerán resaltados para que los examines detenidamente.

Cross-site scripting

Las pruebas de inyección de XSS que realiza Cloud Security Scanner simulan ataques de inyección. Para ello, se inserta una cadena de prueba benigna en campos que el usuario puede editar y se llevan a cabo diversas acciones. Los detectores personalizados observan el navegador y el Modelo en Objetos para la Representación de Documentos (DOM) durante la prueba para determinar si se ha realizado alguna operación de inyección y para evaluar las posibilidades de ser utilizada con un uso malintencionado.

Si el código de JavaScript que contiene la cadena de prueba se ejecuta sin impedimentos, se iniciará el depurador de Chrome.

Este es un ejemplo de alerta de XSS en el parámetro vulnerable q=.

Dado que la cadena de prueba pudo ejecutarse, sabemos que es posible inyectar y ejecutar código de JavaScript en esta página. Si un atacante encuentra esta vulnerabilidad, podría ejecutar el código de JavaScript que quiera cuando los usuarios (las víctimas) hagan clic en un enlace malintencionado.

En determinadas circunstancias, la aplicación que se está probando podría modificar la cadena de prueba antes de que el navegador la analice. Por ejemplo, podría validar una entrada o limitar el tamaño de un campo. Cuando el navegador intente ejecutar esta cadena de prueba modificada, probablemente deje de funcionar y se muestre un error de ejecución de JavaScript. Esto indica que se ha producido un problema de inyección. No obstante, es probable que no sea posible aprovechar esta vulnerabilidad para un uso malintencionado. Deberás comprobar manualmente si las modificaciones de la cadena de prueba se pueden evitar y confirmar que el problema efectivamente es una vulnerabilidad de XSS.

Este un ejemplo de alerta de fallo del código de JavaScript, que indica que el parámetro q= podría tener un problema de inyección.

Hay varias formas de solucionar este problema. La más recomendada es escapar todos los parámetros recibidos y utilizar un sistema de plantillas que admita el escape automático contextual.

Cross-site scripting en Angular

Si Angular interpola las cadenas que facilitan los usuarios, podrían producirse vulnerabilidades de XSS en los módulos de AngularJS. Inyectar valores de los usuarios en interpolaciones de AngularJS puede permitir que ocurra lo siguiente:

  • Un atacante puede inyectar código arbitrario en la página que renderizan los navegadores.
  • Un atacante puede llevar a cabo acciones haciéndose pasar por los navegadores afectados en los orígenes de las páginas.

Este es un ejemplo de alerta de fallo que muestra un problema de inyección de XSS en Angular.

Para reproducir esta posible vulnerabilidad, haz clic en el enlace de la URL de reproducción que puedes encontrar en la consola de Google Cloud Platform (GCP) después de hacer el análisis correspondiente. Este enlace abrirá directamente un cuadro de diálogo de alerta, o bien inyectará la cadena "XSSDETECTED" para demostrar que el ataque puede ejecutar código. Si ocurre esto último, puedes abrir las herramientas de desarrollo de tu navegador y buscar "XSSDETECTED" para encontrar exactamente su posición.

Inyección de Flash

Cloud Security Scanner puede encontrar parámetros que se reflejan en el inicio de una respuesta, un fenómeno que también se conoce como Rosetta Flash. En determinadas circunstancias, un atacante puede provocar que el navegador ejecute la respuesta como si fuera un archivo Flash proporcionado por la aplicación web vulnerable.

Este es un ejemplo de alerta de inyección de Flash en el parámetro callback=.

Para solucionar este problema, no incluyas datos que el usuario pueda controlar al inicio de una respuesta HTTP.

Contenido mixto

Cloud Security Scanner observa pasivamente el tráfico HTTP y detecta cuándo se realizan solicitudes de archivos JavaScript o CSS a través de HTTP en el contexto de una página HTTPS.

Este es un ejemplo de alerta de contenido mixto en una página HTTPS attribute_script que incluye un recurso HTTP de http://irrelevant.google.com.

Para solucionar este problema, utiliza enlaces HTTP relativos. Por ejemplo, sustituye http:// por //.

Biblioteca obsoleta

Si se sabe que la versión de una biblioteca que se ha incluido tiene algún problema de seguridad, Cloud Security Scanner puede detectarlo. Se lleva a cabo un análisis basado en firmas que trata de identificar la versión de la biblioteca que se está utilizando y la contrasta con una lista de bibliotecas vulnerables conocidas. Puede haber falsos positivos si no es posible detectar la versión o si se ha aplicado manualmente un parche a la biblioteca.

Este es un ejemplo de alerta de biblioteca obsoleta debido al uso de jquery-1.8.1.js.

Para solucionar este problema, actualiza la biblioteca a una versión que se sepa que es segura.

Contraseña sin cifrar

Cloud Security Scanner puede detectar si la aplicación transmite campos de contraseña sin cifrar.

Este es un ejemplo de alerta de contraseña sin cifrar.

Para proteger la información sensible que se transfiere entre el cliente y el servidor, adopta las siguientes precauciones:

  • Utiliza certificados TLS/SSL.
  • Usa siempre el protocolo HTTPS en las páginas que incluyan campos de contraseña.
  • Comprueba que los atributos de acción de formulario se dirijan siempre a URLs del tipo HTTPS.

Encabezado content‑type no válido

Cloud Security Scanner puede detectar si se ha cargado un recurso que no coincide con el encabezado HTTP content-type de la respuesta.

Este es un ejemplo de alerta de encabezado content-type no válido.

Para corregir esta vulnerabilidad, comprueba que:

  • Las respuestas JSON se envían con el encabezado content-type application/json.
  • El resto de respuestas sensibles se envían con los tipos MIME apropiados.
  • El contenido se envía con el encabezado HTTP X-Content-Type-Options: nosniff.

Encabezado de seguridad no válido

Cloud Security Scanner puede detectar si un encabezado de seguridad contiene errores sintácticos. Si es así, los navegadores lo ignorarán.

Este es un ejemplo de encabezado de seguridad no válido.

Encabezado Referrer-Policy

Los encabezados Referrer-Policy válidos contienen uno de los siguientes valores: una cadena vacía, no-referrer, no-referrer-when-downgrade, same-origin, origin, strict-origin, origin-when-cross-origin, strict-origin-when-cross-origin o unsafe-url.

Encabezado X-Frame-Options

Los encabezados X-Frame-Options válidos solo pueden tener los valores DENY (no permitir ningún marco), SAMEORIGIN (permitir marco si la URL de nivel superior tiene el mismo origen) o ALLOW-FROM URL. Recuerda que ALLOW-FROM URL no es compatible con Chrome. Ten en cuenta también que no se permite el uso de varios encabezados X-Frame-Options.

Encabezado X-Content-Type-Options

Los encabezados X-Content-Type-Options válidos solo pueden tener el valor nosniff.

Encabezado X-XSS-Protection

Los encabezados X-XSS-Protection válidos deben empezar por 0 ("inhabilitado") o 1 ("habilitado"). Después, y solo si habilitas la protección, puedes añadir hasta dos opciones: mode=block mostrará una página en blanco en lugar de filtrar el XSS y report=URL enviará informes a URL. Las opciones deben separarse con puntos y coma: 1; mode=block; report=URI. Comprueba que no haya puntos y coma al final.

Nombre de encabezado de seguridad mal escrito

Cloud Security Scanner puede detectar si el nombre de un encabezado de seguridad está mal escrito. Si hay errores de este tipo, los encabezados no resultan efectivos y deben corregirse.

Este es un ejemplo de nombre de encabezado de seguridad mal escrito.

Para reproducir esta vulnerabilidad, consulta cuál es el error en la pestaña de red de las herramientas de desarrollador de tu navegador.

Valores del encabezado de seguridad no coincidentes

Cloud Security Scanner puede detectar si una respuesta contiene encabezados de seguridad duplicados con valores en conflicto. Algunos encabezados HTTP relacionados con la seguridad presentan un comportamiento impredecible si se declaran dos veces en la respuesta con valores diferentes.

Este es un ejemplo de valores de encabezado de seguridad que no coinciden.

Para corregir esta vulnerabilidad, conserva solo uno de los dos encabezados.

Repositorio accesible

Cloud Security Scanner puede detectar repositorios de Git o SVN accesibles en la aplicación. Esto puede conducir a brechas en la configuración y en el código fuente.

Este es un ejemplo de repositorio de Git accesible.

Para reproducir esta vulnerabilidad, haz clic en la URL de reproducción del informe de resultados.

Verificar el problema

Cuando Cloud Security Scanner informe de un problema, deberás verificar la ubicación en la que se ha producido. Realiza esta operación con un navegador que tenga la protección contra XSS desactivada. Lo mejor es usar una instancia de prueba independiente de Chrome, pero también puedes utilizar la mayoría de los navegadores modernos que te permiten inhabilitar la protección contra XSS.

Si quieres inhabilitar esta protección en Chrome, haz lo siguiente:

  • Si usas Linux, invoca el comando de Chrome para este sistema operativo de la siguiente manera:

    chrome --user-data-dir=~/.chrometest --allow-running-insecure-content \ --disable-xss-auditor --disable-sync --bwsi

  • Si utilizas Mac OSX, invoca el comando de Chrome así:

    open -n /Applications/Google\ Chrome.app/ --args --disable-xss-auditor \ --user-data-dir=/tmp/xssrepro

Recuerda que la aplicación de la política de seguridad del contenido (CSP) puede evitar que el código de JavaScript se ejecute, de forma que se dificulte la reproducción del XSS. Si tienes este problema, consulta la consola de registros del navegador para obtener información sobre la infracción de la CSP en cuestión.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Security Scanner