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 es compatible con URLs públicas y IP que no están detrás de un firewall.
Web Security Scanner es compatible con el entorno estándar de App Engine y los entornos flexibles de App Engine, las instancias de Compute Engine y los 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 análisis personalizados.
Si Security Command Center está activado a nivel de la organización, puedes usar análisis administrados para administrar de forma centralizada la detección de vulnerabilidades de las aplicaciones web básicas en los proyectos de tu organización, sin necesidad de incluir 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 un servicio, los resultados de análisis administrados quedan 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 administrados de Web Security Scanner, consulta Cómo configurar los servicios de Security Command Center.
Las verificaciones administradas solo admiten aplicaciones que usan el puerto predeterminado, que es 80 para las conexiones HTTP y 443 para las conexiones HTTPS. Si tu aplicación usa un puerto que no es 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.
Los análisis personalizados se definen a nivel del 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 admite categorías en las OWASP Top Ten, un documento que clasifica y proporciona orientación de solución para los 10 riesgos de seguridad de aplicaciones web más importantes, 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. Su único propósito es que supervises las infracciones de los controles de cumplimiento. Las asignaciones no se proporcionan a fin de usarlas como base, o como sustituto de la auditoría, certificación o informe de cumplimiento de los productos o servicios con cualquier comparativa o estándar regulatoria o industrial.
Para obtener más información sobre el cumplimiento, consulta Cómo evaluar y generar informes sobre el cumplimiento de las comparativas de seguridad.
Encuentra tipos
Los análisis personalizados y administrados de Web Security Scanner identifican los siguientes tipos de resultados. En el nivel Standard, Web Security Scanner admite análisis personalizados de aplicaciones implementadas con URLs e IP públicas 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 |
---|---|---|---|
Nombre de categoría en la API: |
Un repositorio de Git se expone públicamente. Para resolver este problema, quita el acceso público no intencional al repositorio de GIT. Nivel de precios: Premium o Estándar |
A5 | A01 |
Nombre de categoría en la API: |
Un repositorio de SVN se expone públicamente. Para solucionar este problema, quita el acceso no intencional al público en el repositorio de SVN. Nivel de precios: Premium o Estándar |
A5 | A01 |
Nombre de categoría en la API: |
Las contraseñas ingresadas en la aplicación web se pueden almacenar en la caché de un navegador normal, en lugar de un almacenamiento de contraseña seguro. Nivel de precios: Premium |
A3 | A04 |
Nombre de categoría en la API: |
Las contraseñas se transmiten en texto claro y se pueden interceptar. Para resolver esto, encripta la contraseña que se transmite a través de la red. Nivel de precios: Premium o Estándar |
A3 | A02 |
Nombre de categoría en la API: |
Un extremo HTTP o HTTPS entre sitios solo valida un sufijo del encabezado de solicitud Nivel de precios: Premium |
A5 | A01 |
Nombre de categoría en la API: |
Un extremo HTTP o HTTPS entre sitios valida solo un prefijo del encabezado de solicitud Nivel de precios: Premium |
A5 | A01 |
Nombre de categoría en la API: |
Se cargó un recurso que no coincide con el encabezado HTTP de tipo de contenido de la respuesta Para resolver este problema, configura el encabezado HTTP Nivel de precios: Premium o Estándar |
A6 | A05 |
Nombre de categoría en la API: |
Un encabezado de seguridad tiene un error de sintaxis y los navegadores lo ignoran. Para solucionar este problema, configura los encabezados de seguridad HTTP de forma correcta. Nivel de precios: Premium o Estándar |
A6 | A05 |
Nombre de categoría en la API: |
Un encabezado de seguridad tiene valores duplicados y no coincidentes, lo que da como resultado un comportamiento indefinido. Para solucionar este problema, configura los encabezados de seguridad HTTP de forma correcta. Nivel de precios: Premium o Estándar |
A6 | A05 |
Nombre de categoría en la API: |
Un encabezado de seguridad está mal escrito y se ignora. Para solucionar este problema, configura los encabezados de seguridad HTTP de forma correcta. Nivel de precios: Premium o Estándar |
A6 | A05 |
Nombre de categoría en la API: |
Los recursos se envían a través de HTTP en una página HTTPS. Para resolver esto, asegúrate de que todos los recursos se entreguen a través de HTTPS. Nivel de precios: Premium o Estándar |
A6 | A05 |
Nombre de categoría en la API: |
Se detectó una biblioteca que tiene vulnerabilidades conocidas. Para resolver esto, actualiza las bibliotecas a una versión más reciente. Nivel de precios: Premium o Estándar |
A9 | A06 |
Nombre de categoría en la API: |
Se detectó una vulnerabilidad de falsificación de solicitudes del servidor (SSRF). Para resolver este resultado, usa una lista de entidades permitidas a fin de limitar los dominios y las direcciones IP a las que la aplicación web puede realizar solicitudes. Nivel de precios: Premium o Estándar |
No aplicable | A10 |
Nombre de categoría en la API: |
Cuando se realiza una solicitud de dominio cruzado, la aplicación web incluye el identificador de sesión del usuario en el encabezado de su solicitud Nivel de precios: Premium |
A2 | A07 |
Nombre de categoría en la API: |
Se detectó una posible vulnerabilidad de inyección de SQL. Para resolver este resultado, usa consultas con parámetros para evitar que las entradas del usuario influyan en la estructura de la consulta de SQL. Nivel de precios: Premium |
A1 | A03 |
Nombre de categoría en la API: |
Se detectó el uso de una versión vulnerable de Apache Struts. Para resolver este resultado, actualiza Apache Stuuts a la versión más reciente. Nivel de precios: Premium |
A8 | A08 |
Nombre de categoría en la API: |
Un campo en esta aplicación web es vulnerable a un ataque de secuencias de comandos entre sitios (XSS). Para resolver esto, valida y escapa los datos no confiables del usuario. Nivel de precios: Premium o Estándar |
A7 | A03 |
Nombre de categoría en la API: |
La string proporcionada por el usuario no está escapadas y AngularJS puede interpolarla. Para resolver esto, valida y omite los datos que no son de confianza proporcionados por los usuarios y que el framework de Angular controla. Nivel de precios: Premium o Estándar |
A7 | A03 |
Nombre de categoría en la API: |
Un campo en esta aplicación web es vulnerable a un ataque de secuencia de comandos entre sitios. Para resolver esto, valida y escapa los datos no confiables del usuario. Nivel de precios: Premium o Estándar |
A7 | A03 |
Nombre de categoría en la API: |
Se detectó una vulnerabilidad XML External Entity (XXE). Esta vulnerabilidad puede hacer que la aplicación web filtre un archivo en el host. Para resolver este resultado, configura tus analizadores de XML a fin de inhabilitar las entidades externas. Nivel de precios: Premium |
A4 | A05 |
Nombre de categoría en la API: |
La aplicación es vulnerable a la contaminación del prototipo. Esta vulnerabilidad surge cuando
se pueden asignar valores controlables por el atacante a las
propiedades del objeto Nivel de precios: Premium o Estándar |
A1 | A03 |
Advertencias de uso
Los roles de IAM de Security Command Center se pueden otorgar a nivel de organización, carpeta o proyecto. Tu capacidad para ver, editar, crear o actualizar resultados, recursos y fuentes de seguridad depende del nivel al que se te otorga acceso. Para obtener más información sobre los roles de Security Command Center, consulta Control de acceso.
Otros aspectos importantes que debes tener en cuenta cuando usas Web Security Scanner:
- Debido a que Web Security Scanner se encuentra en constante mejora, es posible que un análisis futuro informe problemas que no se hayan detectado en el análisis actual.
- 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. Debido a que las búsquedas se ejecutan de forma simultánea, se recomienda a los usuarios que alcancen este límite que agreguen varias URLs de inicio por búsqueda o que agreguen búsquedas a diferentes proyectos 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 Identity and Access Management (IAM) que están 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 URLs puede tardar varias horas o incluso días. Si un análisis no se completa en un plazo de 20 días, se detiene automáticamente, y todos los resultados y hallazgos del rastreo que se encuentren durante el análisis se mostrarán como el resultado del análisis.
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:
Compute Engine: Reserva una dirección IP externa estática
GKE: Configura nombres de dominio con direcciones IP estáticas
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 grupos de extremos de red sin servidores para reservar una dirección IP estática para tu balanceador de cargas, que luego dirige el tráfico a tu aplicación. Consulta la sección sobre los precios de las direcciones IP externas para obtener información acerca de los precios.
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 verifica la configuración de Security Command Center y las credenciales de autenticación de tu aplicación para garantizar que los análisis estén configurados correctamente y puedan acceder 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:
- 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.
- 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.
- 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 medianteaddEventListener
o mediante la configuración del controlador de eventos adecuado. - Utiliza datos de copia de seguridad. Considera hacer una copia de seguridad de tus datos antes de realizar análisis.
- URL excluidas. Puedes especificar patrones de URL que no se rastrearán ni se probarán. Para obtener información sobre la sintaxis, consulta Cómo excluir URLs.
Antes de realizar un análisis, revisa cuidadosamente tu aplicación para detectar cualquier característica que pueda afectar los datos, usuarios o sistemas más allá del alcance de tu análisis.
¿Qué sigue?
- Comienza a usar Web Security Scanner.