Información general sobre Web Security Scanner

Web Security Scanner identifica las vulnerabilidades de seguridad y los errores de configuración de tus aplicaciones web de App Engine, Google Kubernetes Engine (GKE) y Compute Engine. Rastrea tu aplicación, sigue todos los enlaces dentro del alcance de las URLs de inicio e intenta ejecutar la máxima cantidad posible de acciones de usuario y de gestores de eventos. Web Security Scanner solo admite URLs e IPs públicas que no estén protegidas por un cortafuegos.

Web Security Scanner es compatible con el entorno estándar de App Engine, los entornos flexibles de App Engine, las instancias de Compute Engine y los recursos de GKE.

Web Security Scanner se ha diseñado para complementar los procesos de desarrollo y diseño seguros que ya tengas. Para no distraerte con falsos positivos, Web Security Scanner tiende a no informar de todos los problemas y no muestra alertas de baja confianza. No sustituye a una revisión de seguridad manual y no garantiza que tu aplicación esté libre de vulnerabilidades de seguridad.

Los resultados categorizados como configuraciones incorrectas representan problemas que se pueden resolver si los clientes actualizan las configuraciones. Aunque estos resultados son importantes para mejorar la postura de seguridad, son distintos de las vulnerabilidades, que representan debilidades que se pueden aprovechar de forma activa. Puede ver estas configuraciones incorrectas en la página Resultados de Security Command Center. Para obtener más información, consulta Resultados de configuración incorrecta de Web Security Scanner.

Tipos de análisis

Web Security Scanner ofrece análisis de vulnerabilidades web gestionados y personalizados para aplicaciones web públicas de App Engine, GKE y Compute Engine.

Análisis gestionados

Security Command Center configura y gestiona los análisis gestionados de Web Security Scanner. Los análisis gestionados se ejecutan automáticamente una vez a la semana para detectar y analizar endpoints web públicos. Estos análisis no usan autenticación y envían solicitudes GET únicamente, por lo que no envían ningún formulario en sitios web activos.

Los análisis gestionados se ejecutan de forma independiente a los análisis personalizados.

Si Security Command Center está activado a nivel de organización, puedes usar análisis gestionados para gestionar de forma centralizada la detección de vulnerabilidades básicas de aplicaciones web en los proyectos de tu organización sin tener que involucrar a los equipos de cada proyecto. Cuando se detecten resultados, puedes colaborar con esos equipos para configurar análisis personalizados más completos.

Cuando habilitas Web Security Scanner como servicio, los resultados de los análisis gestionados están disponibles automáticamente en la página Vulnerabilidades de Security Command Center y en los informes relacionados. Para obtener información sobre cómo habilitar los análisis gestionados de Web Security Scanner, consulta el artículo Configurar los servicios de Security Command Center.

Los análisis gestionados solo admiten aplicaciones que usan el puerto predeterminado, que es el 80 para las conexiones HTTP y el 443 para las conexiones HTTPS. Si tu aplicación usa un puerto no predeterminado, haz un análisis personalizado.

Análisis personalizados

Los análisis personalizados de Web Security Scanner proporcionan información detallada sobre las vulnerabilidades detectadas en las aplicaciones, como las bibliotecas obsoletas, el cross-site scripting o el uso de contenido mixto.

Puedes definir análisis personalizados a nivel de proyecto.

Los resultados de los análisis personalizados están disponibles en Security Command Center después de completar la guía para configurar análisis personalizados de Web Security Scanner.

Resultados del análisis

En esta sección se describen los tipos de resultados de Web Security Scanner y los estándares de cumplimiento pertinentes.

Detectores y cumplimiento

Web Security Scanner admite categorías de OWASP Top Ten, un documento que clasifica y proporciona directrices de corrección para los 10 riesgos de seguridad más críticos de las aplicaciones web, según lo determinado por el proyecto abierto de seguridad de aplicaciones web (OWASP).

El mapeo de cumplimiento se incluye como referencia y no lo proporciona ni lo revisa la Fundación OWASP. Solo se ha diseñado para que monitorices las infracciones de los controles de cumplimiento. Las asignaciones no se proporcionan para que se utilicen como base o sustituto de la auditoría, la certificación o el informe de cumplimiento de sus productos o servicios con respecto a cualquier estándar o referencia del sector o de la normativa.

Para obtener más información sobre el cumplimiento, consulta Evaluar y registrar el cumplimiento de las comparativas de seguridad.

Tipos de resultados

Los análisis personalizados y gestionados de Web Security Scanner identifican los siguientes tipos de resultados. En el nivel Standard, Web Security Scanner ofrece análisis personalizados de aplicaciones desplegadas con IP y URL públicas que no estén protegidas por un cortafuegos.

Categoría Buscando descripción Categoría de resultado Los 10 mejores de OWASP 2017 Los 10 principales riesgos de OWASP del 2021

Nombre de la categoría en la API: ACCESSIBLE_GIT_REPOSITORY

Se expone públicamente un repositorio de Git. Para solucionar este problema, elimina el acceso público no intencionado al repositorio de Git.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A5 A01

Nombre de la categoría en la API: ACCESSIBLE_SVN_REPOSITORY

Un repositorio SVN está expuesto públicamente. Para solucionar este problema, retira el acceso público no intencional al repositorio SVN.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A5 A01

Nombre de la categoría en la API: ACCESSIBLE_ENV_FILE

Un archivo ENV está expuesto públicamente. Para resolver este problema, elimina el acceso público no intencional al archivo ENV.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A5 A01

Nombre de la categoría en la API: CACHEABLE_PASSWORD_INPUT

Las contraseñas introducidas en la aplicación web se pueden almacenar en caché en la caché normal del navegador en lugar de en un almacenamiento seguro de contraseñas.

Nivel de precios: Premium

Corregir este resultado

Vulnerabilidad A3 A04

Nombre de la categoría en la API: CLEAR_TEXT_PASSWORD

Las contraseñas se transmiten sin cifrar y se pueden interceptar. Para solucionar este problema, cifra la contraseña transmitida a través de la red.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A3 A02

Nombre de la categoría en la API: INSECURE_ALLOW_ORIGIN_ENDS_WITH_VALIDATION

Un endpoint HTTP o HTTPS entre sitios solo valida un sufijo del encabezado de solicitud Origin antes de reflejarlo en el encabezado de respuesta Access-Control-Allow-Origin. Para solucionar este problema, valide que el dominio raíz esperado forma parte del valor del encabezado Origin antes de reflejarlo en el encabezado de respuesta Access-Control-Allow-Origin. En el caso de los comodines de subdominio, añade un punto delante del dominio raíz (por ejemplo, .endsWith(".google.com")).

Nivel de precios: Premium

Corregir este resultado

Vulnerabilidad A5 A01

Nombre de la categoría en la API: INSECURE_ALLOW_ORIGIN_STARTS_WITH_VALIDATION

Un endpoint HTTP o HTTPS entre sitios solo valida un prefijo del encabezado de solicitud Origin antes de reflejarlo en el encabezado de respuesta Access-Control-Allow-Origin. Para resolver este problema, valide que el dominio esperado coincida completamente con el valor del encabezado Origin antes de reflejarlo en el encabezado de respuesta Access-Control-Allow-Origin. Por ejemplo, .equals(".google.com").

Nivel de precios: Premium

Corregir este resultado

Vulnerabilidad A5 A01

Nombre de la categoría en la API: INVALID_CONTENT_TYPE

Se ha cargado un recurso que no coincide con el encabezado HTTP content‑type de la respuesta. Para resolver este problema, asigne el valor correcto al encabezado HTTP X-Content-Type-Options.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A6 A05

Nombre de la categoría en la API: INVALID_HEADER

Un encabezado de seguridad tiene un error de sintaxis y los navegadores lo ignoran. Para resolver este problema, defina los encabezados de seguridad HTTP correctamente.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A6 A05

Nombre de la categoría en la API: MISMATCHING_SECURITY_HEADER_VALUES

Un encabezado de seguridad tiene valores duplicados que no coinciden, lo que da lugar a un comportamiento indefinido. Para resolver este problema, defina los encabezados de seguridad HTTP correctamente.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A6 A05

Nombre de la categoría en la API: MISSPELLED_SECURITY_HEADER_NAME

Un encabezado de seguridad está mal escrito y se ignora. Para resolver este problema, defina los encabezados de seguridad HTTP correctamente.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A6 A05

Nombre de la categoría en la API: MIXED_CONTENT

Los recursos se sirven a través de HTTP en una página HTTPS. Para solucionar este problema, asegúrate de que todos los recursos se sirven a través de HTTPS.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A6 A05

Nombre de la categoría en la API: OUTDATED_LIBRARY

Se ha detectado una biblioteca que tiene vulnerabilidades conocidas. Para resolver este problema, actualiza las bibliotecas a una versión más reciente.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A9 A06

Nombre de la categoría en la API: SERVER_SIDE_REQUEST_FORGERY

Se ha detectado una vulnerabilidad de falsificación de solicitud del lado del servidor (SSRF). Para solucionar este problema, usa una lista de permitidos para limitar los dominios y las direcciones IP a los que puede enviar solicitudes la aplicación web.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad No aplicable A10

Nombre de la categoría en la API: SESSION_ID_LEAK

Al hacer una solicitud entre dominios, la aplicación web incluye el identificador de sesión del usuario en su encabezado de solicitud Referer. Esta vulnerabilidad da al dominio receptor acceso al identificador de sesión, que se puede usar para suplantar la identidad del usuario o identificarlo de forma única.

Nivel de precios: Premium

Corregir este resultado

Vulnerabilidad A2 A07

Nombre de la categoría en la API: SQL_INJECTION

Se ha detectado una posible vulnerabilidad de inyección de SQL. Para solucionar este problema, utilice consultas con parámetros para evitar que las entradas de los usuarios influyan en la estructura de la consulta SQL.

Nivel de precios: Premium

Corregir este resultado

Vulnerabilidad A1 A03

Nombre de la categoría en la API: STRUTS_INSECURE_DESERIALIZATION

Se ha detectado el uso de una versión vulnerable de Apache Struts. Para resolver este problema, actualiza Apache Struts a la versión más reciente.

Nivel de precios: Premium

Corregir este resultado

Vulnerabilidad A8 A08

Nombre de la categoría en la API: XSS

Un campo de esta aplicación web es vulnerable a un ataque de cross-site scripting (XSS). Para resolver este problema, valida y añade caracteres de escape a los datos introducidos por usuarios en los que no confíes.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A7 A03

Nombre de la categoría en la API: XSS_ANGULAR_CALLBACK

No se ha aplicado un escape a una cadena proporcionada por el usuario y AngularJS puede interpolarla. Para solucionar este problema, valida y añade caracteres de escape a los datos introducidos por usuarios en los que no confías gestionados por el framework Angular.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A7 A03

Nombre de la categoría en la API: XSS_ERROR

Un campo de esta aplicación web es vulnerable a un ataque de cross-site scripting. Para resolver este problema, valida y añade caracteres de escape a los datos introducidos por usuarios en los que no confíes.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A7 A03

Nombre de la categoría en la API: XXE_REFLECTED_FILE_LEAKAGE

Se ha detectado una vulnerabilidad de entidad externa XML (XXE). Esta vulnerabilidad puede provocar que la aplicación web filtre un archivo en el host. Para resolver este problema, configure sus analizadores XML para que no permitan entidades externas.

Nivel de precios: Premium

Corregir este resultado

Vulnerabilidad A4 A05

Nombre de la categoría en la API: PROTOTYPE_POLLUTION

La aplicación es vulnerable a la contaminación de prototipos. Esta vulnerabilidad se produce cuando se pueden asignar valores controlables por el atacante a las propiedades del objeto Object.prototype. Se da por hecho que los valores insertados en estos prototipos se traducen universalmente en secuencias de comandos entre sitios o en vulnerabilidades similares del lado del cliente, así como en errores de lógica.

Nivel de precios: Premium o Estándar

Corregir este resultado

Vulnerabilidad A1 A03

Nombre de la categoría en la API: HSTS_MISCONFIGURATION

Se ha detectado un encabezado de seguridad de transporte estricta mediante HTTP (HSTS) mal configurado. Para reducir considerablemente el riesgo de que se cambien las conexiones HTTP a versiones inferiores y de que se produzcan ataques de eavesdropping, corrige el encabezado HSTS mal configurado. Los encabezados HSTS fuerzan las conexiones a través de canales cifrados (TLS) para que las conexiones HTTP sin cifrar fallen. Consulta más información sobre los encabezados HSTS.

Nivel de precios: Premium

Corregir este resultado

Configuración errónea No aplicable No aplicable

Nombre de la categoría en la API: CSP_MISSING

Se ha detectado que falta el encabezado de respuesta HTTP de la política de seguridad de contenido (CSP). Los encabezados CSP mitigan la explotación de vulnerabilidades web habituales, especialmente las de cross-site scripting (XSS), al impedir que se carguen secuencias de comandos o complementos no fiables. Se recomienda usar un encabezado CSP estricto. Consulta más información sobre los encabezados CSP

Nivel de precios: Premium

Corregir este resultado

Configuración errónea No aplicable No aplicable

Nombre de la categoría en la API: CSP_MISCONFIGURATION

Se ha detectado un encabezado de respuesta HTTP de política de seguridad de contenido (CSP) mal configurado. Los encabezados CSP mitigan la explotación de vulnerabilidades web habituales, especialmente las de cross-site scripting (XSS), al impedir que se carguen scripts o complementos no fiables. Se recomienda usar un encabezado CSP estricto. Más información sobre los encabezados CSP

Nivel de precios: Premium

Corregir este resultado

Configuración errónea No aplicable No aplicable

Nombre de la categoría en la API: COOP_MISSING

Se ha detectado que falta el encabezado HTTP Cross-Origin-Opener-Policy (COOP). COOP es un mecanismo de seguridad web que restringe el acceso de una página abierta en una ventana nueva a las propiedades de su página de origen. COOP ofrece una capa de protección sólida frente a ataques web comunes.

Nivel de precios: Premium

Corregir este resultado

Configuración errónea No aplicable No aplicable

Nombre de la categoría en la API: CLICKJACKING_PROTECTION_MISSING

Se ha detectado que falta un encabezado de respuesta. Para evitar el secuestro de clics, implementa un encabezado de respuesta HTTP, como X-Frame-Option (XFO) o Content-Security-Policy (CSP). El clickjacking(también llamado "UI redress") es un ataque web en el que los atacantes modifican la interfaz de un sitio web de destino para que las víctimas no se den cuenta de que están realizando una acción importante. Se recomienda implementar un encabezado de respuesta HTTP: los encabezados XFO son fáciles de usar y los encabezados CSP ofrecen más flexibilidad.
- Consulte más información sobre los encabezados XFO
- Consulte más información sobre los encabezados CSP

Nivel de precios: Premium

Corregir este resultado

Configuración errónea No aplicable No aplicable

Advertencias de uso

Los roles de gestión de identidades y accesos de Security Command Center se pueden conceder a nivel de organización, carpeta o proyecto. La posibilidad de ver, editar, crear o actualizar hallazgos, recursos y fuentes de seguridad depende del nivel de acceso que se te haya concedido. Para obtener más información sobre los roles de Security Command Center, consulta Control de acceso.

Otros aspectos importantes que debe tener en cuenta al usar Web Security Scanner:

  • Como Web Security Scanner se mejora continuamente, es posible que en un análisis futuro se detecten problemas que no se hayan detectado en el análisis actual.
  • Es posible que no se prueben algunas funciones o secciones de tu aplicación.
  • Web Security Scanner intenta activar todos los controles y las entradas que encuentra.
  • Web Security Scanner solo admite sitios web que usen IPv4. No se analizan los sitios web que usan IPv6.
  • Si expones acciones que cambian el estado para las que tu cuenta de prueba tiene permiso, es probable que Web Security Scanner las active. Esto podría dar lugar a resultados no deseados.
  • Web Security Scanner tiene un límite de 15 análisis por proyecto. Como los análisis se ejecutan simultáneamente, se recomienda a los usuarios que alcancen este límite que añadan varias URLs de inicio por análisis o que añadan análisis a proyectos diferentes que aún no hayan alcanzado el límite.

¿Quién puede ejecutar un análisis de seguridad?

Para obtener información sobre los roles de Gestión de Identidades y Accesos (IAM) disponibles para Web Security Scanner, consulta Control de acceso.

¿Cuánto tiempo se necesita para realizar un análisis de seguridad?

El análisis de seguridad no se ejecuta inmediatamente. Se pone en cola y, después, se ejecuta más tarde, posiblemente horas después, en función de la carga del sistema. Una vez que se inicie el análisis, el tiempo que tarde dependerá del tamaño de tu aplicación. El análisis de una aplicación grande con muchas URLs puede tardar varias horas o incluso días. Si un análisis no se completa en un plazo de 20 días, se detendrá automáticamente y todos los resultados de rastreo y los hallazgos encontrados durante el análisis se mostrarán como resultado del análisis.

Restricciones de segmentación

Web Security Scanner tiene filtros que restringen los objetivos de análisis a la instancia de App Engine específica para la que se crea el análisis. Si introduces URLs de otro proyecto de App Engine o de un dominio externo, se mostrará un mensaje de error.

Los análisis de Compute Engine y GKE se limitan a los dominios que se asignan a direcciones IP externas estáticas reservadas para el mismo proyecto y a las direcciones IP externas estáticas que pertenecen al mismo proyecto. Para obtener instrucciones sobre cómo reservar direcciones IP para proyectos, consulta los siguientes enlaces:

App Engine no ofrece ninguna forma de asignar direcciones IP estáticas a una aplicación. Sin embargo, puedes usar Cloud Load Balancing y grupos de endpoints de red sin servidor para reservar una dirección IP estática para tu balanceador de carga, que luego dirige el tráfico a tu aplicación. Para obtener información sobre los precios, consulta la página Todos los precios de redes.

En tu proyecto, Web Security Scanner intenta automáticamente evitar las URLs de cierre de sesión y otras ubicaciones genéricas que puedan afectar negativamente a un análisis. Sin embargo, para asegurarte, puedes usar la configuración de análisis para excluir URLs manualmente.

Validación

Las configuraciones de análisis se validan cuando se crean y antes de cada análisis. Web Security Scanner comprueba la configuración de Security Command Center y las credenciales de autenticación de tu aplicación para asegurarse de que los análisis estén configurados correctamente y puedan iniciar sesión en tu aplicación. También se comprueban los parámetros de configuración, incluida la velocidad máxima de escaneo, para asegurarse de que se encuentran dentro de los intervalos admitidos.

Debes solucionar los errores antes de que se cree o se actualice un análisis. Las aplicaciones que se cambien después de la configuración inicial pueden generar errores durante los análisis. Por ejemplo, si un dominio ya no apunta a una dirección IP propiedad del proyecto, el recurso no se analiza y se informa de un error en la página de configuración del análisis.

Prácticas recomendadas

Como Web Security Scanner rellena campos, pulsa botones, hace clic en enlaces y realiza otras acciones de usuario, debes usarlo con precaución, sobre todo si vas a analizar recursos de producción. Web Security Scanner podría activar funciones que cambien el estado de tus datos o de tu sistema, lo que podría dar lugar a resultados no deseados.

Por ejemplo:

  • En una aplicación de blog que permita comentarios públicos, Web Security Scanner puede publicar cadenas de prueba como comentarios en todos tus artículos del blog.
  • En una página de registro por correo electrónico, Web Security Scanner puede generar un gran número de correos de prueba.

A continuación, se indican algunas técnicas que puedes usar, por separado o combinadas, para evitar resultados no deseados:

  1. Ejecuta análisis en un entorno de prueba. Configura un entorno de prueba creando un proyecto de App Engine independiente y cargando tu aplicación y tus datos en él. Si usas la CLI de Google Cloud, puedes especificar el proyecto de destino como una opción de línea de comandos al subir tu aplicación.
  2. Usa una cuenta de prueba. Crea una cuenta de usuario que no tenga acceso a datos sensibles ni a operaciones dañinas y úsala al analizar tu aplicación. Muchas aplicaciones presentan un flujo de trabajo especial durante el primer inicio de sesión de un usuario, como aceptar los términos y crear un perfil. Debido al flujo de trabajo diferente, una cuenta de prueba de un usuario inicial puede tener resultados de análisis distintos a los de una cuenta de usuario establecida. Lo mejor es hacer el análisis con una cuenta que esté en el estado de usuario normal, una vez completado el flujo de primera vez.
  3. Bloquea elementos de la interfaz de usuario concretos que no quieras que se activen aplicando la clase CSS inq-no-click. Los controladores de eventos que se adjuntan a este elemento no se activan durante el rastreo y las pruebas, independientemente de si son JavaScript insertado o se adjuntan mediante addEventListener o al definir la propiedad del controlador de eventos adecuada.
  4. Usa los datos de la copia de seguridad. Te recomendamos que hagas una copia de seguridad de tus datos antes de analizarlo.
  5. URLs excluidas: puede especificar patrones de URL que no se rastrearán ni se probarán. Para obtener información sobre la sintaxis, consulta el artículo sobre cómo excluir URLs.

Antes de realizar el análisis, audita cuidadosamente tu aplicación para detectar cualquier función que pueda afectar a los datos, los usuarios o los sistemas que no estén incluidos en el ámbito del análisis.

Siguientes pasos