Descripción general de Web Security Scanner

Web Security Scanner identifica las vulnerabilidades de seguridad en tus aplicaciones web de App Engine, Google Kubernetes Engine (GKE) y Compute Engine. Rastrea la aplicación, para lo cual sigue todos los vínculos dentro del alcance de las URL de inicio, y trata de ejecutar la mayor cantidad posible de controladores de eventos y entradas del usuario. Web Security Scanner solo admite URLs y IP públicas que no detrás de un firewall.

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

Web Security Scanner está diseñado para complementar tus procesos de diseño y desarrollo seguros y existentes. Para evitar distracciones con falsos positivos, el Web Security Scanner protege tu trabajo y no muestra alertas de confianza bajas. Esta herramienta no reemplaza una revisión manual de seguridad y no garantiza que tu aplicación no tenga vulnerabilidades.

Tipos de análisis

Web Security Scanner proporciona análisis de vulnerabilidades web administradas y personalizadas para aplicaciones web públicas de App Engine, GKE y Compute Engine.

Análisis administrados

Security Command Center configura y administra los análisis administrados de Web Security Scanner. Los análisis administrados se ejecutan automáticamente una vez por semana para detectar y analizar extremos web públicas. Estos análisis no usan la autenticación y envían solicitudes solo de GET para que no envíen formularios en sitios web activos.

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

Si Security Command Center se activa en el a nivel de la organización, puedes usar análisis administrados de forma centralizada para controlar de forma centralizada detección de vulnerabilidades para proyectos en tu organización, sin tener que involucrar a equipos de proyectos individuales. Cuando se detectan los resultados, puedes trabajar con esos equipos para configurar análisis personalizados más completos.

Cuando habilitas Web Security Scanner como servicio, los resultados del análisis administrado se disponibles automáticamente en la página Vulnerabilidades de Security Command Center y informes relacionados. Para obtener información sobre cómo habilitar Web Security Scanner análisis administrados, consulta Configura los servicios de Security Command Center.

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

Análisis personalizados

Los análisis personalizados de Web Security Scanner proporcionan información detallada sobre los resultados de vulnerabilidades de la aplicación, como las bibliotecas desactualizadas, las secuencias de comandos entre sitios o el uso de contenido mixto.

Puedes definir análisis personalizados a nivel de proyecto.

Los resultados de 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 relevantes.

Detectores y cumplimiento

Web Security Scanner es compatible con las categorías OWASP Top 10, un documento que clasifica y proporciona orientación para la solución de las 10 aplicaciones web más importantes riesgos de seguridad, según lo determinado por el Open Web Application Security Project (OWASP).

La asignación de cumplimiento se incluye como referencia y no se proporciona ni se revisa mediante OWASP Foundation. Solo está diseñado para que supervises el cumplimiento los incumplimientos de controles. Las asignaciones no se proporcionan para su uso como base o como sustituto de la auditoría, certificación o informe de cumplimiento de su productos o servicios con cualquier norma o referencia regulatoria o del sector.

Para obtener más información sobre el cumplimiento, consulta Evalúa y, luego, informa el cumplimiento de comparativas de seguridad.

Encuentra tipos

Los análisis personalizados y administrados de Web Security Scanner identifican los siguientes tipos de resultados. En la En el nivel Estándar, Web Security Scanner es compatible con análisis personalizados de aplicaciones implementadas con las direcciones IP y las URL que no están detrás de un firewall.

Categoría Descripción del resultado Los 10 mejores de OWASP de 2017 Los 10 mejores de OWASP de 2021

Accessible Git repository

Nombre de categoría en la API: ACCESSIBLE_GIT_REPOSITORY

Un repositorio de Git se expone públicamente. Para resolver este hallazgo, quita los errores involuntarios acceso público al repositorio de GIT.

Nivel de precios: Estándar

Corregir este hallazgo

A5 A01

Accessible SVN repository

Nombre de categoría en la API: ACCESSIBLE_SVN_REPOSITORY

Un repositorio de SVN se expone públicamente. Para resolver este resultado, quita el elemento público acceso involuntario al repositorio de SVN.

Nivel de precios: Estándar

Corregir este hallazgo

A5 A01

Cacheable password input

Nombre de categoría en la API: CACHEABLE_PASSWORD_INPUT

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

Nivel de precios: Premium

Corregir este hallazgo

A3 A04

Clear text password

Nombre de categoría en la API: CLEAR_TEXT_PASSWORD

Las contraseñas se transmiten en texto claro y se pueden interceptar. Para solucionar este problema, sigue estos pasos: y, así, encriptar la contraseña transmitida a través de la red.

Nivel de precios: Estándar

Corregir este hallazgo

A3 A02

Insecure allow origin ends with validation

Nombre de categoría en la API: INSECURE_ALLOW_ORIGIN_ENDS_WITH_VALIDATION

Un extremo HTTP o HTTPS entre sitios valida solo un sufijo de Origin. encabezado de la solicitud antes de reflejarlo en Access-Control-Allow-Origin encabezado de respuesta. Para resolver este hallazgo, valida que el dominio raíz esperado sea parte del valor del encabezado Origin antes de reflejarlo en el Encabezado de respuesta Access-Control-Allow-Origin. Para los comodines de subdominio, anteponga el punto al dominio raíz, por ejemplo, .endsWith(".google.com")

Nivel de precios: Premium

Corregir este hallazgo

A5 A01

Insecure allow origin starts with validation

Nombre de categoría en la API: INSECURE_ALLOW_ORIGIN_STARTS_WITH_VALIDATION

Un extremo HTTP o HTTPS entre sitios valida solo un prefijo del Origin. encabezado de la solicitud antes de reflejarlo en Access-Control-Allow-Origin encabezado de respuesta. Para resolver este hallazgo, valida que el dominio esperado coincida por completo 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 hallazgo

A5 A01

Invalid content type

Nombre de categoría en la API: INVALID_CONTENT_TYPE

Se cargó un recurso que no coincide con el encabezado HTTP de tipo de contenido de la respuesta Para resuelve este hallazgo, establece el encabezado HTTP X-Content-Type-Options con el valor.

Nivel de precios: Estándar

Corregir este hallazgo

A6 A05

Invalid header

Nombre de categoría en la API: INVALID_HEADER

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

Nivel de precios: Estándar

Corregir este hallazgo

A6 A05

Mismatching security header values

Nombre de categoría en la API: MISMATCHING_SECURITY_HEADER_VALUES

Un encabezado de seguridad tiene valores duplicados y no coincidentes, lo que da como resultado un comportamiento indefinido. Para resolver este hallazgo, configura los encabezados de seguridad HTTP correctamente.

Nivel de precios: Estándar

Corregir este hallazgo

A6 A05

Misspelled security header name

Nombre de categoría en la API: MISSPELLED_SECURITY_HEADER_NAME

Un encabezado de seguridad está mal escrito y se ignora. Para resolver este hallazgo, configura HTTP encabezados de seguridad correctos.

Nivel de precios: Estándar

Corregir este hallazgo

A6 A05

Mixed content

Nombre de categoría en la API: MIXED_CONTENT

Los recursos se envían a través de HTTP en una página HTTPS. Para resolver este hallazgo, asegúrate de que todos los recursos se entreguen a través de HTTPS.

Nivel de precios: Estándar

Corregir este hallazgo

A6 A05

Outdated library

Nombre de categoría en la API: OUTDATED_LIBRARY

Se detectó una biblioteca que tiene vulnerabilidades conocidas. Para resolver este hallazgo, actualiza bibliotecas a una versión más reciente.

Nivel de precios: Estándar

Corregir este hallazgo

A9 A06

Server side request forgery

Nombre de categoría en la API: SERVER_SIDE_REQUEST_FORGERY

Se detectó una vulnerabilidad de falsificación de solicitudes del servidor (SSRF). Para resolver este hallazgo, usar una lista de entidades permitidas para limitar los dominios y las direcciones IP que la aplicación web puede hacer a las que envían solicitudes.

Nivel de precios: Estándar

Corregir este hallazgo

No aplicable A10

Session ID leak

Nombre de categoría en la API: SESSION_ID_LEAK

Cuando se realiza una solicitud multidominio, la aplicación web incluye la sesión del usuario identificador en su encabezado de solicitud Referer. Esta vulnerabilidad le brinda que reciben acceso al dominio al identificador de la sesión, que puede usarse para suplantar o identificar de manera inequívoca al usuario.

Nivel de precios: Premium

Corregir este hallazgo

A2 A07

SQL injection

Nombre de categoría en la API: SQL_INJECTION

Se detectó una posible vulnerabilidad de inyección de SQL. Para resolver este hallazgo, usa consultas con parámetros para evitar que las entradas del usuario influyan en la estructura del SQL para cada búsqueda.

Nivel de precios: Premium

Corregir este hallazgo

A1 A03

Struts insecure deserialization

Nombre de categoría en la API: STRUTS_INSECURE_DESERIALIZATION

El uso de una versión vulnerable de Apache Struts se detectó. Para resolver este resultado, actualiza Apache Stuuts a la versión más reciente.

Nivel de precios: Premium

Corregir este hallazgo

A8 A08

XSS

Nombre de categoría en la API: XSS

Un campo en esta aplicación web es vulnerable a un ataque de secuencias de comandos entre sitios (XSS). Para resolver este hallazgo, validar y escapar de los datos que no son de confianza proporcionados por los usuarios.

Nivel de precios: Estándar

Corregir este hallazgo

A7 A03

XSS angular callback

Nombre de categoría en la API: XSS_ANGULAR_CALLBACK

La string proporcionada por el usuario no está escapadas y AngularJS puede interpolarla. Para solucionar este problema, sigue estos pasos: Buscar, validar y escapar los datos que no son de confianza proporcionados por los usuarios y administrados por Angular en un framework de nube.

Nivel de precios: Estándar

Corregir este hallazgo

A7 A03

XSS error

Nombre de categoría en la API: XSS_ERROR

Un campo en esta aplicación web es vulnerable a un ataque de secuencia de comandos entre sitios. Para resolver este hallazgo, validar y escapar de los datos que no son de confianza proporcionados por los usuarios.

Nivel de precios: Estándar

Corregir este hallazgo

A7 A03

XXE reflected file leakage

Nombre de categoría en la API: XXE_REFLECTED_FILE_LEAKAGE

Se detectó una vulnerabilidad XML External Entity (XXE). Esta vulnerabilidad puede causar filtrar un archivo en el host. Para resolver este hallazgo, configura tu XML analizadores para inhabilitar entidades externas.

Nivel de precios: Premium

Corregir este hallazgo

A4 A05

Prototype pollution

Nombre de categoría en la API: PROTOTYPE_POLLUTION

La aplicación es vulnerable a la contaminación prototípica. Esta vulnerabilidad surge cuando se pueden asignar propiedades del objeto Object.prototype y que el atacante puede controlar. Los valores colocados en estos prototipos se asumen universalmente. para traducir en secuencia de comandos entre sitios o vulnerabilidades similares del cliente, así como errores lógicos.

Nivel de precios: Estándar

Corregir este hallazgo

A1 A03

Advertencias de uso

Los roles de IAM para Security Command Center se pueden otorgar a nivel de la organización, a nivel de carpeta o proyecto. Tu capacidad para ver, editar, crear o actualizar resultados, recursos, y las fuentes de seguridad dependen del nivel al que se te otorgue acceso. Para obtener más información Para los roles de Security Command Center, consulta Control de acceso.

Otros aspectos importantes que debes tener en cuenta cuando usas Web Security Scanner:

  • Dado que Web Security Scanner experimenta mejoras continuas, un futuro puede informar problemas que el análisis actual no informa.
  • Algunas características o secciones de tu aplicación se podrían omitir en las pruebas.
  • Web Security Scanner intenta activar cada control y entrada que encuentra.
  • Si expones acciones que cambian de estado para las que la cuenta de prueba tiene permiso, es probable que Web Security Scanner las active. Esto puede provocar resultados no deseados.
  • Web Security Scanner tiene un límite de 15 análisis por proyecto. Porque los análisis se ejecutan simultáneamente, se recomienda a los usuarios que alcancen este límite agregar varias URLs de inicio por análisis o para agregar análisis a diferentes proyectos que aún no han alcanzado el límite.

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

Para obtener información sobre los roles de Identity and Access Management (IAM) que se disponibles para Web Security Scanner, consulta Control de acceso.

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

El análisis de seguridad no se ejecuta inmediatamente. Se pone en cola y probablemente se ejecuta horas más tarde, según la carga del sistema. Una vez que el análisis comienza a ejecutarse, el tiempo que tome dependerá del tamaño de tu aplicación. El análisis de una aplicación grande con muchas URL puede tardar varias horas o incluso días. Si no se completa en un plazo de 20 días, este se detiene automáticamente. y todos los resultados del rastreo que se encuentren durante el análisis serán visibles como el del resultado del análisis de datos.

Restricciones de destino

Web Security Scanner tiene filtros que restringen los objetivos del análisis a la instancia específica de App Engine para la que este se creó. La introducción de direcciones URL para otro proyecto de App Engine o para un dominio externo generará un mensaje de error.

Los análisis de Compute Engine y GKE están restringidos a dominios que se asignan a direcciones IP externas estáticas reservadas para el mismo proyecto y direcciones IP externas estáticas que pertenecen al mismo proyecto. Si deseas obtener instrucciones para reservar direcciones IP para proyectos, consulta los siguientes vínculos:

App Engine en sí no proporciona una forma de mapear direcciones IP estáticas a una aplicación. Sin embargo, puedes usar Cloud Load Balancing y redes sin servidores grupos de extremos para reservar una dirección IP estática para tu balanceador de cargas que luego dirige el tráfico a tu aplicación. Para obtener información sobre precios, Consulta los precios de las direcciones IP externas.

Dentro de tu proyecto, Web Security Scanner intenta automáticamente evitar las URL de cierre de sesión y otras ubicaciones genéricas que pudiesen afectar de forma negativa un análisis. Sin embargo, para asegurarte, puedes usar la configuración del análisis a fin de excluir las URL de forma manual.

Validación

Las configuraciones de análisis se validan cuando se crean y antes de cada análisis. Web Security Scanner revisa la configuración de Security Command Center y los credenciales de autenticación para garantizar que los análisis estén configurados correctamente y puedan registrar a tu aplicación con éxito. Los parámetros de configuración, incluida la velocidad máxima de análisis, también se verifican para garantizar que estén dentro de los rangos admitidos.

Debes resolver los errores antes de crear o actualizar un análisis. Las aplicaciones que se modifican después de la configuración inicial pueden producir errores durante los análisis. Por ejemplo, si un dominio ya no apunta a una dirección IP que pertenece al proyecto, el recurso no se analiza y se informa un error en la página de configuración del análisis.

Prácticas recomendadas

Debido a que Web Security Scanner propaga campos, presiona los botones, hace clic en vínculos y realiza otras acciones del usuario, debes usarlo con precaución, en especial si analizas recursos de producción. Cloud Security Scanner podría potencialmente activar funciones que cambien el estado de tus datos o sistema, provocando resultados no deseados.

Por ejemplo:

  • En una aplicación de blog que permite comentarios públicos, Web Security Scanner podría publicar strings de prueba como comentarios en todos los artículos de tu blog.
  • En una página de registro de correo electrónico, Web Security Scanner podría generar una gran cantidad de correos electrónicos de prueba.

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

  1. Ejecuta análisis en un entorno de prueba. Configura un entorno de prueba mediante la creación de un proyecto de App Engine por separado, y carga allí tu aplicación y tus datos. Si usas Google Cloud CLI, puedes especificar el proyecto de destino como una opción de la línea de comandos cuando subes tu app.
  2. Utiliza una cuenta de prueba. Crea una cuenta de usuario que no tenga acceso a datos sensibles ni a operaciones dañinas, y úsala cuando analices tu app. Muchas aplicaciones presentan un flujo de trabajo especial durante el primer acceso de un usuario, como aceptar términos y crear un perfil. Debido a los diferentes flujos de trabajo, una cuenta de prueba para un usuario inicial puede tener resultados de análisis diferentes a los de una cuenta de usuario establecida. Es mejor realizar el análisis con una cuenta que se encuentre en el estado de usuario normal, después de que se complete el flujo por primera vez.
  3. Bloquea los elementos individuales de la interfaz de usuario que no deseas que se activen mediante la aplicación de la clase de CSS inq-no-click. Los controladores de eventos adjuntos a este elemento no se activan durante el rastreo y la prueba, sin importar si se trata de JavaScript intercalado, si se adjuntan mediante addEventListener o mediante la configuración del controlador de eventos adecuado.
  4. Utiliza datos de copia de seguridad. Considera hacer una copia de seguridad de tus datos antes de realizar análisis.
  5. URL excluidas. Puedes especificar patrones de URL que no se rastrearán ni se probarán. Para obtener información sobre sintaxis, consulta Cómo excluir URLs.

Antes de realizar el análisis, audita cuidadosamente tu aplicación para detectar cualquier función que pueda afectan a los datos, a los usuarios o a los sistemas más allá del alcance de su análisis.

¿Qué sigue?