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 |
---|---|---|---|---|
|
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 |
Vulnerabilidad | A5 | A01 |
|
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 |
Vulnerabilidad | A5 | A01 |
|
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 |
Vulnerabilidad | A5 | A01 |
|
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 |
Vulnerabilidad | A3 | A04 |
|
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 |
Vulnerabilidad | A3 | A02 |
|
Un endpoint HTTP o HTTPS entre sitios solo valida un sufijo del encabezado de solicitud Nivel de precios: Premium |
Vulnerabilidad | A5 | A01 |
|
Un endpoint HTTP o HTTPS entre sitios solo valida un prefijo del encabezado de solicitud Nivel de precios: Premium |
Vulnerabilidad | A5 | A01 |
|
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 Nivel de precios: Premium o Estándar |
Vulnerabilidad | A6 | A05 |
|
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 |
Vulnerabilidad | A6 | A05 |
|
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 |
Vulnerabilidad | A6 | A05 |
|
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 |
Vulnerabilidad | A6 | A05 |
|
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 |
Vulnerabilidad | A6 | A05 |
|
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 |
Vulnerabilidad | A9 | A06 |
|
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 |
Vulnerabilidad | No aplicable | A10 |
|
Al hacer una solicitud entre dominios, la aplicación web incluye el identificador de sesión del usuario en su encabezado de solicitud Nivel de precios: Premium |
Vulnerabilidad | A2 | A07 |
|
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 |
Vulnerabilidad | A1 | A03 |
|
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 |
Vulnerabilidad | A8 | A08 |
|
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 |
Vulnerabilidad | A7 | A03 |
|
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 |
Vulnerabilidad | A7 | A03 |
|
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 |
Vulnerabilidad | A7 | A03 |
|
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 |
Vulnerabilidad | A4 | A05 |
|
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 Nivel de precios: Premium o Estándar |
Vulnerabilidad | A1 | A03 |
|
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 |
Configuración errónea | No aplicable | No aplicable |
|
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 |
Configuración errónea | No aplicable | No aplicable |
|
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 |
Configuración errónea | No aplicable | No aplicable |
|
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 |
Configuración errónea | No aplicable | No aplicable |
|
Se ha detectado que falta un encabezado de respuesta. Para evitar el secuestro de clics, implementa un encabezado de respuesta HTTP, como
Nivel de precios: Premium |
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:
Compute Engine: Reservar una dirección IP externa estática
GKE: Configurar nombres de dominio con direcciones IP estáticas
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:
- 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.
- 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.
- 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 medianteaddEventListener
o al definir la propiedad del controlador de eventos adecuada. - Usa los datos de la copia de seguridad. Te recomendamos que hagas una copia de seguridad de tus datos antes de analizarlo.
- 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
- Empieza a usar Web Security Scanner.