Este documento le ayudará a identificar Google Cloud productos y estrategias de mitigación Google Cloud que pueden ayudarle a defenderse frente a los ataques habituales a nivel de aplicación que se describen en OWASP Top 10. La lista de los 10 principales riesgos de seguridad de la Fundación Open Web Application Security (OWASP) incluye los 10 riesgos de seguridad más importantes que deben conocer todos los propietarios de aplicaciones. Aunque ningún producto de seguridad puede garantizar una protección total contra estos riesgos, aplicar estos productos y servicios cuando sea necesario en tu arquitectura puede contribuir a crear una solución de seguridad multicapa sólida.
La infraestructura de Google se ha diseñado para ayudarte a crear, desplegar y operar servicios de forma segura. Google se encarga de la seguridad física y operativa, del cifrado de los datos en reposo y en tránsito, y de muchas otras facetas importantes de una infraestructura segura. Para disfrutar de estas ventajas, debes desplegar tus aplicaciones enGoogle Cloud, pero es posible que tengas que tomar medidas adicionales para proteger tu aplicación frente a ataques específicos.
Las estrategias de mitigación que se indican en este documento se ordenan por riesgo de seguridad de la aplicación y por Google Cloud producto. Muchos productos desempeñan un papel importante en la creación de una estrategia de defensa en profundidad contra los riesgos de seguridad web. En este documento se proporciona información sobre cómo pueden mitigar los riesgos de OWASP Top 10 otros productos, pero también se ofrecen detalles adicionales sobre cómo pueden mitigar una amplia gama de esos riesgos Google Cloud Armor y Apigee. Google Cloud Armor, que actúa como cortafuegos de aplicaciones web (WAF), y Apigee, que actúa como pasarela de APIs, pueden ser especialmente útiles para bloquear diferentes tipos de ataques. Estos productos se encuentran en la ruta del tráfico de Internet y pueden bloquear el tráfico externo antes de que llegue a tus aplicaciones en Google Cloud.
.Resumen de los productos
Los Google Cloud productos que se indican en la siguiente tabla pueden ayudarte a protegerte contra los 10 principales riesgos de seguridad:
Producto | Resumen | A01 | A02 | A03 | A04 | A05 | A06 | A07 | A08 | A09 | A10 |
---|---|---|---|---|---|---|---|---|---|---|---|
Transparencia de acceso | Aumenta la visibilidad y el control sobre tu proveedor de servicios en la nube con registros de acceso de administrador y controles de aprobación | ✓ | ✓ | ||||||||
Apigee | Diseñar, proteger y escalar interfaces de programación de aplicaciones | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Artifact Registry | Almacena de forma centralizada los artefactos y las dependencias de compilación. | ✓ | |||||||||
Autorización binaria | Asegúrate de que solo se desplieguen en Google Kubernetes Engine las imágenes de contenedor que sean de confianza | ✓ | ✓ | ||||||||
Cloud Armor | Un cortafuegos de aplicación web (WAF) implementado en el perímetro de la red de Google para ayudar a defenderse de los vectores de ataque comunes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Inventario de Recursos de Cloud | Consulta, monitoriza y analiza todos tus recursos de Google Cloud y Google Distributed Cloud o multicloud en todos tus proyectos y servicios. | ✓ | ✓ | ✓ | ✓ | ||||||
Cloud Build | Crea, prueba y despliega en Google Cloud | ✓ | |||||||||
Cloud Key Management Service | Gestiona las claves de cifrado en Google Cloud | ✓ | ✓ | ||||||||
Cloud Load Balancing | Controlar qué cifrados negocia el proxy SSL o el balanceador de carga HTTPS | ✓ | ✓ | ✓ | ✓ | ||||||
Cloud Logging | Gestión y análisis de registros en tiempo real a escala | ✓ | |||||||||
Cloud Monitoring | Recoger y analizar métricas, eventos y metadatos de Google Cloud servicios y una amplia variedad de aplicaciones y servicios de terceros | ✓ | |||||||||
Cloud Source Repositories | Almacena, gestiona y monitoriza el código en un único lugar para tu equipo | ✓ | |||||||||
Google Security Operations | Encuentra amenazas automáticamente en tiempo real y a gran escala con la infraestructura, las técnicas de detección y las señales de Google. | ✓ | |||||||||
Identity Platform | Añade funciones de gestión de identidades y accesos a las aplicaciones, protege las cuentas de los usuarios y escala la gestión de identidades | ✓ | ✓ | ||||||||
Identity‑Aware Proxy | Utiliza las identidades y el contexto para proteger el acceso a tus aplicaciones y máquinas virtuales | ✓ | ✓ | ✓ | |||||||
reCAPTCHA | Ayuda a proteger tu sitio web frente a la actividad fraudulenta, el spam y el uso inadecuado | ✓ | |||||||||
Secret Manager | Almacena claves de API, contraseñas, certificados y otros datos sensibles | ✓ | ✓ | ||||||||
Security Command Center | Visibilidad centralizada de las analíticas de seguridad y la inteligencia sobre amenazas para identificar vulnerabilidades en tus aplicaciones | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Protección de Datos Sensibles | Descubre, clasifica y protege tus datos más sensibles | ✓ | ✓ | ✓ | |||||||
Llaves de seguridad Titan | Protege a los usuarios de alto valor con dispositivos de autenticación de dos factores resistentes al phishing que vienen equipados con un chip de hardware (con firmware creado por Google) para verificar la integridad de la llave. | ✓ | |||||||||
Firewalls de nube privada virtual | Permitir o denegar conexiones a o desde tus instancias de máquina virtual (VM) | ✓ | |||||||||
VirusTotal | Analiza archivos y URLs sospechosos para detectar tipos de malware y compártelos automáticamente con la comunidad de seguridad | ✓ | ✓ | ||||||||
Controles de Servicio de VPC | Aísla los recursos de los servicios multicliente Google Cloud para reducir el riesgo de filtración externa de datos | ✓ | ✓ | ||||||||
Google Cloud boletines de seguridad | Los últimos boletines de seguridad relacionados con los productos de Google Cloud | ✓ |
A01: Control de acceso vulnerado
Control de acceso defectuoso hace referencia a los controles de acceso que solo se aplican parcialmente en el lado del cliente o que se han implementado de forma deficiente. Para mitigar estos controles, a menudo es necesario reescribir el código del lado de la aplicación para asegurarse de que solo los usuarios autorizados puedan acceder a los recursos.
Apigee
Caso práctico:
- Aplicación del control de acceso
- Limitar la manipulación de datos
Apigee admite un enfoque por capas para implementar controles de acceso que impidan que los agentes maliciosos hagan cambios no autorizados o accedan al sistema.
Configura el control de acceso basado en roles (RBAC) para que los usuarios solo puedan acceder a los recursos y a la configuración que necesiten. Crea mapas de clave-valor cifrados para almacenar pares clave-valor sensibles, que aparecen enmascarados en la interfaz de usuario de Edge y en las llamadas a la API de gestión. Configura el inicio de sesión único con el proveedor de identidades de tu empresa.
Configura portales para desarrolladores para mostrar productos de API específicos según el rol del usuario. Configura el portal para mostrar u ocultar contenido en función del rol del usuario.
Inventario de Recursos de Cloud
Caso práctico:
- Monitorizar la TI no autorizada (también conocida como TI sin autorización)
- Instancias de proceso obsoletas
Uno de los vectores más habituales de exposición de datos es la infraestructura de TI huérfana o no autorizada. Configura notificaciones en tiempo real para recibir alertas sobre recursos en ejecución inesperados que podrían no estar protegidos correctamente o usar software obsoleto.
Cloud Load Balancing
Caso práctico:
- Control pormenorizado de cifrado SSL y TLS
Para evitar que se usen cifrados SSL o TLS débiles, asigna un grupo predefinido o una lista personalizada de cifrados que pueda usar Cloud Load Balancing.
Cloud Armor
Caso práctico:
- Filtrar solicitudes de diferentes orígenes
- Filtrar ataques de inclusión de archivos locales o remotos
- Filtrar ataques de contaminación de parámetros HTTP
En muchos casos, el control de acceso defectuoso no se puede mitigar mediante un firewall de aplicaciones web, ya que las aplicaciones no requieren ni comprueban correctamente los tokens de acceso en cada solicitud, y los datos se pueden manipular del lado del cliente. Múltiples retos de Juice Shop relacionados con el control de acceso roto. Por ejemplo, publicar comentarios en nombre de otro usuario aprovecha el hecho de que algunas solicitudes no se autentican en el servidor. Como puedes ver en la solución del reto, la vulnerabilidad se aprovecha completamente en el lado del cliente y, por lo tanto, no se puede mitigar con Cloud Armor.
Algunos problemas se pueden mitigar parcialmente en el servidor si la aplicación no se puede parchear inmediatamente.
Por ejemplo, si se pueden producir ataques de falsificación de solicitudes entre sitios (CSRF) porque tu servidor web implementa el uso compartido de recursos entre orígenes (CORS) de forma incorrecta, como se muestra en el reto CSRF Juice Shop, puedes mitigar este problema bloqueando por completo las solicitudes de orígenes inesperados con una regla personalizada. La siguiente regla coincide con todas las solicitudes con orígenes distintos de example.com y google.com:
has(request.headers['origin']) &&
!((request.headers['origin'] == 'https://example.com')||
(request.headers['origin'] == 'https://google.com') )
Cuando se deniega el tráfico que coincide con una regla de este tipo, la solución para la petición de verificación CSRF deja de funcionar.
El reto de manipulación de la cesta usa la contaminación de parámetros HTTP (HPP) para que puedas ver cómo atacar la tienda siguiendo la solución del reto.
HPP se detecta como parte del conjunto de reglas de ataques de protocolo. Para bloquear este tipo de ataque, usa la siguiente regla:
evaluatePreconfiguredExpr('protocolattack-stable')
.
Identity-Aware Proxy y Context-Aware Access
Caso práctico:
- Centraliza el control del acceso
- Funciona con aplicaciones on-premise y en la nube
- Protege las conexiones HTTP y TCP
- Acceso contextual
IAP te permite usar la identidad y el contexto para crear un muro de autenticación y autorización seguro alrededor de tu aplicación. Evita que se produzcan fallos en la autorización o en el control de acceso a tu aplicación pública con un sistema de autenticación y autorización gestionado de forma centralizada basado en Cloud Identity y Gestión de Identidades y Accesos (IAM).
Aplica controles de acceso granulares a aplicaciones web, máquinas virtuales, Google Cloud APIs y aplicaciones de Google Workspace en función de la identidad de los usuarios y el contexto de las solicitudes sin necesidad de una VPN convencional. Utiliza una única plataforma para gestionar las aplicaciones y los recursos infraestructurales alojados en la nube y almacenados on-premise.
Security Command Center
Security Command Center incluye dos servicios que te ayudan a solucionar problemas de controles de acceso: Security Health Analytics y Web Security Scanner.
Security Health Analytics admite los siguientes casos prácticos:
- Uso obligatorio de MFA o 2FA
- Protección de claves de API
- Monitorización de políticas de SSL
Security Health Analytics ayuda a evitar que se produzcan fallos en el control de acceso monitorizando el cumplimiento de la autenticación multifactor, la política SSL y el estado de tus claves de API.
Web Security Scanner admite los siguientes casos prácticos:
- Repositorios expuestos al público
- Validación de encabezados de solicitud no seguros
Web Security Scanner analiza tus aplicaciones web para detectar vulnerabilidades, como repositorios de código visibles públicamente y validación mal configurada de encabezados de solicitud.
A02: Fallos criptográficos
Los fallos criptográficos pueden deberse a la falta de encriptado o a un encriptado débil en tránsito, o a la exposición accidental de datos sensibles. Los ataques contra esas vulnerabilidades suelen ser específicos de la aplicación y, por lo tanto, necesitan una estrategia de defensa en profundidad para mitigarlos.
Apigee
Caso práctico:
- Mantén a salvo los datos sensibles
Usa TLS unidireccional y bidireccional para proteger la información sensible a nivel de protocolo.
Usa políticas como Asignar mensaje y JavaScript para eliminar los datos sensibles antes de que se devuelvan al cliente.
Usa técnicas estándar de OAuth y considera la posibilidad de añadir HMAC, hash, estado, nonce, PKCE u otras técnicas para mejorar el nivel de autenticación de cada solicitud.
Ocultar datos sensibles en la herramienta Edge Trace.
Encripta los datos sensibles en reposo en mapas de clave-valor.
Inventario de Recursos de Cloud
Caso práctico:
- Servicio de búsqueda
- Analizador de acceso
Uno de los vectores más habituales de exposición de datos es la infraestructura de TI huérfana o no autorizada. Puedes identificar los servidores que nadie mantiene y los contenedores con reglas de uso compartido demasiado amplias analizando los datos de series temporales de los recursos de la nube.
Configura notificaciones en tiempo real para recibir alertas sobre el aprovisionamiento inesperado de recursos que podrían no estar protegidos correctamente o no estar autorizados.
API Cloud Data Loss Prevention (parte de Protección de Datos Sensibles)
Caso práctico:
- Descubrimiento y clasificación de datos sensibles
- Enmascaramiento automático de datos
La API Cloud Data Loss Prevention (API DLP) te permite buscar datos potencialmente sensibles almacenados en segmentos o bases de datos para evitar fugas de información involuntarias. Si se identifican datos no permitidos, se pueden marcar o eliminar automáticamente.
Cloud Key Management Service
Caso práctico:
- Gestión segura de claves criptográficas
Cloud KMS ayuda a evitar la posible exposición de tus claves criptográficas. Usa este servicio de gestión de claves alojado en la nube para gestionar claves criptográficas simétricas y asimétricas de tus servicios en la nube del mismo modo que lo harías on-premise. Puedes generar, usar, rotar y eliminar claves criptográficas AES256, RSA 2048, RSA 3072, RSA 4096, EC P256 y EC P384.
Cloud Load Balancing
Caso práctico:
- Control pormenorizado de cifrado SSL y TLS
Las políticas de SSL pueden ayudar a evitar la exposición de datos sensibles, ya que te permiten controlar las funciones y los cifrados de SSL y TLS que se permiten en un balanceador de carga. Bloquea las cifrados no aprobados o no seguros según sea necesario.
Cloud Armor
Caso práctico:
- Filtrar las URLs de ataque conocidas
- Restringir el acceso a endpoints sensibles
Por lo general, la exposición de datos sensibles debe detenerse en la fuente, pero, como cada ataque es específico de una aplicación, los firewalls de aplicaciones web solo se pueden usar de forma limitada para detener la exposición de datos de forma general. Sin embargo, si tu aplicación no se puede parchear de inmediato, puedes restringir el acceso a los endpoints o patrones de solicitudes vulnerables mediante reglas personalizadas de Cloud Armor.
Por ejemplo, se pueden aprovechar varias pruebas de Juice Shop sobre la exposición de datos sensibles debido a un recorrido de directorios no seguro y a ataques de inyección de bytes nulos. Puedes mitigar estas inyecciones comprobando las cadenas de la URL con la siguiente expresión personalizada:
request.path.contains("%00") || request.path.contains("%2500")
Para resolver el reto de las métricas expuestas, accede al subdirectorio /metrics
que usa Prometheus.
Si tienes un endpoint sensible que está expuesto y no puedes eliminar el acceso de inmediato, puedes restringir el acceso a él, excepto para determinados intervalos de direcciones IP. Usa una regla similar a la siguiente expresión personalizada:
request.path.contains("/metrics") && !(inIpRange(origin.ip, '1.2.3.4/32')
Sustituye 1.2.3.4/32
por el intervalo de direcciones IP que debería tener acceso a la interfaz de métricas.
Los archivos de registro expuestos por error se usan para resolver uno de los retos de Juice Shop. Para evitar que se expongan los registros, define una regla que impida el acceso a los archivos de registro por completo:
request.path.endsWith(".log")
.
Identity-Aware Proxy y Context-Aware Access
Caso práctico:
- Acceso remoto seguro a servicios sensibles
- Centraliza el control del acceso
- Acceso contextual
Utiliza las identidades y el contexto para crear un perímetro de autenticación y autorización seguro alrededor de tu aplicación. Implementa herramientas, como informes de errores internos, bases de conocimientos corporativas o correo electrónico detrás de IAP, para permitir el acceso contextual solo a personas autorizadas desde cualquier lugar de Internet.
Con el acceso contextual, puedes aplicar controles de acceso granulares a aplicaciones web, máquinas virtuales (VMs), Google Cloud APIs y aplicaciones de Google Workspace basados en la identidad del usuario y el contexto de la solicitud sin necesidad de una VPN convencional. El acceso contextual, un sistema basado en el modelo de seguridad Zero Trust y en la implementación BeyondCorp de Google, te permite proporcionar acceso a tus usuarios, aplicar controles granulares y usar una sola plataforma para tus aplicaciones en la nube y on-premise, así como para tus recursos de infraestructura.
Secret Manager
Caso práctico:
- Claves criptográficas
- Claves de API
- Otras credenciales del sistema
Secret Manager es un servicio de almacenamiento seguro para tus datos más valiosos, como claves de API, contraseñas de cuentas de servicio y activos criptográficos. Almacenar estos secretos de forma centralizada puedes usar los sistemas de autenticación y autorización de Google Cloud, incluida la gestión de identidades y accesos, para determinar si una solicitud de acceso es válida.
Secret Manager no se ha diseñado para operaciones a gran escala, como la tokenización de tarjetas de crédito o el almacenamiento de contraseñas de usuarios individuales. Estas aplicaciones deben usar Identity Platform para la gestión de identidades y accesos de clientes (CIAM), Cloud Identity para los miembros de tu organización o un software de tokenización específico.
Security Command Center
Security Command Center incluye dos servicios que le ayudan a solucionar los errores criptográficos: Security Health Analytics y Web Security Scanner.
Security Health Analytics admite los siguientes casos prácticos:
- Uso obligatorio de MFA o 2FA
- Protección de claves de API
- Obligatoriedad de la rotación de claves de API
- Privacidad de las imágenes de Compute
- Cumplimiento de las reglas de claves SSH
- Monitorización del arranque seguro
- Seguridad de acceso a las APIs
- Monitorización de políticas de SSL
- Registros inhabilitados
- Alertas de LCA pública de segmento
Security Health Analytics ayuda a evitar que se expongan datos sensibles monitorizando el cumplimiento de la autenticación multifactor y el estado de tus claves de API. Recibe alertas sobre configuraciones no seguras en el almacenamiento de imágenes de contenedor, Cloud Storage, la política de SSL, la política de claves SSH, el registro, el acceso a la API y más.
Web Security Scanner admite el siguiente caso práctico:
- Contraseñas sin cifrar transmitidas a través de la red
Web Security Scanner analiza tus aplicaciones web e informa de los errores y las vulnerabilidades que detecta. Si tu aplicación transmite contraseñas sin cifrar, Web Security Scanner genera un CLEAR_TEXT_PASSWORD
.
VirusTotal
Caso práctico:
- Prevención del phishing
VirusTotal te permite analizar URLs en busca de contenido malicioso antes de mostrarlas a tus usuarios o empleados, ya sea que se encuentren en la entrada de un usuario, en correos, en chats, en registros o en otras ubicaciones.
Controles de Servicio de VPC
Caso práctico:
- Cortafuegos para servicios gestionados
Envuelve los servicios gestionados críticos en un cortafuegos para controlar quién puede llamar al servicio y a quién puede responder el servicio. Bloquea la salida no autorizada y la exfiltración de datos con reglas de perímetro salientes en servicios como Cloud Run Functions. Evita que usuarios y ubicaciones no autorizados envíen solicitudes a almacenes de datos y bases de datos gestionados. Crea perímetros seguros en torno a APIs potentes o potencialmente costosas.
Web Application Scanner
Caso práctico:
- Analizador de riesgos de seguridad de aplicaciones web
- Analizador de disponibilidad de repositorios de origen
Para evitar que tu aplicación web exponga datos sensibles, asegúrate de que las contraseñas no se envíen sin cifrar. Evita que se filtre código fuente sin procesar que pueda ser devastador comprobando si hay repositorios de código fuente de Git y Apache Subversion expuestos. Estos análisis se han diseñado para cubrir controles específicos de las 10 vulnerabilidades principales de OWASP.
A03: Inyección
Los fallos de inyección, como la inyección de SQL, NoSQL, SO y LDAP, se producen cuando se envían datos no fiables a un intérprete como parte de un comando o una consulta. Los datos hostiles del atacante pueden engañar al intérprete para que ejecute comandos no deseados o acceda a datos sin la autorización adecuada. Recomendamos que la aplicación sanee o filtre los datos de los usuarios antes de enviarlos a un intérprete.
En las siguientes secciones se describen los Google Cloud productos que pueden ayudar a mitigar este riesgo.
Apigee
Caso práctico:
- Bloqueo de inyección de SQL
- Bloqueo de inyección de NoSQL
- Bloqueo de inyección LDAP
- Bloqueo de inyección de JavaScript
Apigee proporciona varias políticas de validación de entrada para verificar que los valores proporcionados por un cliente coincidan con las expectativas configuradas antes de permitir el procesamiento posterior de las políticas o reglas. Apigee, que actúa como pasarela para las solicitudes de API entrantes, realiza una comprobación de límites para asegurarse de que la estructura de la carga útil se encuentra dentro de un intervalo aceptable. Puede configurar un proxy de API para que la rutina de validación de entrada transforme la entrada con el fin de eliminar secuencias de caracteres peligrosas y, a continuación, sustituirlas por valores seguros.
Hay varias formas de validar las entradas con la plataforma Apigee:
- JSONThreatProtection comprueba si la carga útil de JSON contiene amenazas.
- XMLThreatProtection comprueba si la carga útil XML contiene amenazas.
- JavaScript valida los parámetros y los encabezados.
- La política RegularExpressionProtection gestiona las inyecciones de código SQL.
- La política
OASValidation
valida un mensaje de solicitud o respuesta entrante con una especificación de OpenAPI (JSON o YAML). - La política
SOAPMessageValidation
valida cualquier mensaje XML con sus esquemas XSD y también puede validar mensajes SOAP con una definición WSDL.
Cloud Armor
Caso práctico:
- Filtrado de inyección de SQL
- Filtrado de inyección de PHP
Cloud Armor puede bloquear ataques de inyección comunes antes de que lleguen a tu aplicación. En el caso de la inyección de SQL (SQLi), Cloud Armor tiene un conjunto de reglas predefinido que se basa en el conjunto de reglas principal de ModSecurity de OWASP. Puedes crear políticas de seguridad que bloqueen ataques de inyección de SQL comunes definidos en el conjunto de reglas principal mediante la regla evaluatePreconfiguredExpr('sqli-stable')
, ya sea sola o junto con otras reglas personalizadas. Por ejemplo, puedes limitar el bloqueo de inyecciones SQL a aplicaciones específicas mediante un filtro de ruta de URL.
Para la inyección de PHP, existe otro conjunto de reglas preconfigurado. Puedes usar la regla evaluatePreconfiguredExpr('php-stable')
para bloquear ataques de inyección de PHP habituales.
En función de tu aplicación, activar las expresiones preconfiguradas puede provocar algunos falsos positivos, ya que algunas de las reglas del conjunto de reglas son bastante sensibles. Para obtener más información, consulta cómo solucionar falsos positivos y cómo ajustar el conjunto de reglas a diferentes niveles de sensibilidad.
En el caso de los ataques de inyección que no estén dirigidos a SQL o PHP, puedes crear reglas personalizadas para bloquear solicitudes cuando se utilicen palabras clave o patrones de escape específicos en esos protocolos en la ruta o la consulta de la solicitud. Asegúrate de que estos patrones no aparezcan en solicitudes válidas. También puede limitar estas reglas para que solo se usen en endpoints o rutas específicos que puedan interpretar los datos que se les envíen.
Además, algunos ataques de inyección se pueden mitigar mediante las reglas preconfiguradas para la ejecución remota de código y la inyección remota de archivos.
Security Command Center
Security Command Center incluye dos servicios que te ayudan a solucionar los fallos de inyección: Container Threat Detection y Web Security Scanner.
Container Threat Detection admite los siguientes casos prácticos:
- Detección de secuencias de comandos maliciosas
- Detección de shell inverso
- Detección de instalación de malware
El detector Malicious Script
Executed
de
Container Threat Detection
analiza todas las secuencias de comandos shell que se ejecutan en el sistema e informa de las que parecen maliciosas. Este detector te permite descubrir ataques de inyección de comandos de shell.
Si se inyecta un comando de shell correctamente, un atacante puede generar un shell inverso, lo que activa el detector Reverse
Shell
. También pueden instalar malware, lo que activa los detectores Added
Binary
Executed
y Added Library
Loaded
.
Web Security Scanner admite los siguientes casos prácticos:
- Monitorización de cross-site scripting
- Monitorización de inyecciones SQL
Web Security Scanner analiza tus aplicaciones web en busca de vulnerabilidades y proporciona detectores que monitorizan los ataques de cross-site scripting y de inyección de SQL.
A04: Diseño inseguro
El diseño inseguro se produce cuando las organizaciones no implementan los medios para evaluar y abordar las amenazas durante el ciclo de vida del desarrollo. El modelado de amenazas, que se lleva a cabo en las fases iniciales de diseño y perfeccionamiento, y que continúa durante las fases de desarrollo y pruebas, ayuda a las organizaciones a analizar las hipótesis y los fallos. Una cultura de aprendizaje sin culpables a partir de los errores es fundamental para un diseño seguro.
Apigee
Casos prácticos:
- Validación de entrada
- Controles de acceso
- Gestión de errores
- Políticas de protección de contenido
- Gestión de contraseñas
Apigee te permite validar las solicitudes y respuestas entrantes de tu aplicación mediante la política OASValidation. Además, para proteger el acceso, puedes configurar el inicio de sesión único (SSO), el control de acceso basado en roles (RBAC), limitar el acceso a las APIs (por ejemplo, con Auth0) y restringir las direcciones IP que tienen acceso a tu entorno. Con las reglas de gestión de errores, puedes personalizar cómo reacciona el proxy de API ante los errores.
Para proteger a los usuarios globales de Apigee frente a contraseñas poco seguras, Apigee ofrece opciones de caducidad, bloqueo y restablecimiento de contraseñas. Además, puedes habilitar la autenticación de dos factores (2FA).
API Cloud Data Loss Prevention (parte de Protección de Datos Sensibles)
Caso práctico:
- Identificar y ocultar datos confidenciales
Con la API Cloud Data Loss Prevention, puedes identificar datos confidenciales y tokenizarlos. La API DLP puede ayudarte a limitar la exposición de datos confidenciales, ya que, una vez que los datos se han tokenizado y almacenado, puedes configurar controles de acceso para restringir quién puede verlos. Para obtener más información, consulta Automatizar la clasificación de datos subidos a Cloud Storage y Desidentificar y reidentificar la IPI de conjuntos de datos a gran escala con Protección de Datos Sensibles.
Secret Manager
Caso práctico:
- Proteger el almacenamiento de credenciales
Secret Manager permite que las aplicaciones y las pipelines accedan a los valores de los secretos con nombre en función de los permisos concedidos con IAM. También proporciona acceso programático a los secretos para que los procesos automatizados puedan acceder a los valores de los secretos. Si está habilitada, todas las interacciones con Secret Manager proporcionan un registro de auditoría. Usa estos registros de auditoría para ayudarte con las necesidades de cumplimiento y forenses.
Security Command Center
El servicio Web Security Scanner, que forma parte de Security Command Center, admite el siguiente caso práctico:
- Identifica vulnerabilidades de seguridad en tus aplicaciones.
Web Security Scanner
analiza tus aplicaciones web en busca de vulnerabilidades. Sigue enlaces e intenta ejecutar la máxima cantidad posible de acciones de usuario y de gestores de eventos. Su detector de CACHEABLE_PASSWORD_INPUT
genera un resultado si 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 de contraseñas seguro.
A05: Configuración de seguridad incorrecta
Error de configuración de seguridad: se refiere a los fallos de las aplicaciones sin parches, las cuentas predeterminadas abiertas y los archivos y directorios desprotegidos que normalmente se pueden evitar con el refuerzo de la aplicación. Los errores de configuración de seguridad pueden producirse de muchas formas, como confiar en las configuraciones predeterminadas, hacer configuraciones parciales que pueden ser inseguras, permitir que los mensajes de error contengan detalles sensibles, almacenar datos en la nube sin los controles de seguridad adecuados o configurar incorrectamente los encabezados HTTP.
Apigee
Caso práctico:
- Gestionar configuraciones de seguridad
- Monitorizar configuraciones de seguridad
Un flujo compartido permite a los desarrolladores de APIs combinar políticas y recursos en un grupo reutilizable. Al capturar políticas y recursos reutilizables en un mismo lugar, un flujo compartido te ayuda a mantener la coherencia, reducir el tiempo de desarrollo y gestionar el código. Puedes incluir un flujo compartido en proxies de APIs individuales mediante una política FlowCallout o colocar flujos compartidos en enlaces de flujo para ejecutar automáticamente la lógica de flujo compartido en cada proxy de API desplegado en el mismo entorno.
Inventario de Recursos de Cloud
Caso práctico:
- Servicio de notificaciones en tiempo real
Notificaciones en tiempo real: pueden alertarte sobre el aprovisionamiento inesperado de recursos que podrían estar protegidos de forma inadecuada o no autorizados.
Cloud Load Balancing
Caso práctico:
- Control pormenorizado de cifrado SSL y TLS
Impide el uso de cifrados SSL o TLS con vulnerabilidades conocidas asignando un grupo predefinido o una lista personalizada de cifrados que pueda usar un balanceador de carga.
Cloud Armor
Caso práctico:
- Filtrar endpoints no seguros
- Filtrar ataques de inclusión de archivos locales o remotos
- Filtrar ataques de protocolo
Como los errores de configuración de seguridad pueden producirse a nivel de aplicación, la fundación OWASP recomienda reforzar y parchear la aplicación directamente, así como eliminar todas las funciones innecesarias.
Aunque un firewall de aplicaciones web (WAF), como Cloud Armor, no puede ayudarte a corregir la configuración incorrecta subyacente, puedes bloquear el acceso a partes de la aplicación por completo o para todos los usuarios, excepto para direcciones IP o países específicos. Restringir el acceso puede reducir el riesgo de que se aprovechen esas configuraciones incorrectas.
Por ejemplo, si tu aplicación expone una interfaz administrativa mediante una URL común, como /admin
, puedes restringir el acceso a esta interfaz aunque esté autenticada. Puedes hacerlo con una regla de denegación. Por ejemplo:
request.path.contains("/admin") && !(inIpRange(origin.ip, '1.2.3.4/32')
Sustituye 1.2.3.4/32
por el intervalo de direcciones IP que debería tener acceso a la interfaz de administrador.
Algunas configuraciones incorrectas se pueden mitigar parcialmente mediante los conjuntos de reglas de inclusión de archivos locales (LFI) o de inclusión de archivos remotos (RFI) predefinidos. Por ejemplo, no se puede superar el reto de imagen entre sitios de Juice Shop si se aplica el conjunto de reglas de inclusión de archivos locales. Usa la regla evaluatePreconfiguredExpr('lfi-stable') ||
evaluatePreconfiguredExpr('rfi-stable')
para bloquear las solicitudes que utilicen los conjuntos de reglas LFI y RFI, y ajusta las reglas según sea necesario. Puedes verificar que la solución del reto ya no funciona.
Algunos ataques HTTP también se pueden mitigar mediante conjuntos de reglas preconfigurados:
- Para evitar la falsificación de verbos HTTP, usa el conjunto de reglas de aplicación de métodos. Usa la regla
evaluatePreconfiguredExpr('methodenforcement-stable')
para inhabilitar los métodos de solicitud HTTP que no seanGET
,HEAD
,POST
yOPTIONS
. - Para bloquear ataques comunes contra el análisis HTTP y los proxies, como el contrabando de solicitudes HTTP, la división de respuestas HTTP y la inyección de encabezados HTTP, usa el conjunto de reglas de ataque de protocolo con la regla
evaluatePreconfiguredExpr('protocolattack-stable')
.
Security Command Center
Security Command Center incluye dos servicios que le ayudan a solucionar errores de configuración de seguridad: Security Health Analytics y Web Security Scanner.
Security Health Analytics admite el siguiente caso práctico:
- Monitorización y alertas de controles de seguridad
Security Health Analytics monitoriza muchas señales a través de una única interfaz para asegurarse de que tu aplicación mantiene las prácticas recomendadas de seguridad.
Web Security Scanner admite los siguientes casos prácticos:
- Analizador de aplicaciones web diseñado para los 10 principales riesgos de OWASP
- Errores de configuración del servidor HTTP
- Contenido mixto HTTP/HTTPS
- Entidad externa XML (XXE)
Web Security Scanner monitoriza los errores de seguridad habituales, como los errores de coincidencia de tipo de contenido, los encabezados de seguridad no válidos y el servicio de contenido mixto. Web Security Scanner también monitoriza las vulnerabilidades, como las de XXE. Estos análisis se han diseñado para cubrir los 10 controles principales de OWASP. Los siguientes detectores buscan errores de configuración de seguridad:
INVALID_CONTENT_TYPE
INVALID_HEADER
MISMATCHING_SECURITY_HEADER_VALUES
MISSPELLED_SECURITY_HEADER_NAME
MIXED_CONTENT
XXE_REFLECTED_FILE_LEAKAGE
Para obtener más información sobre estos y otros detectores, consulta el artículo Introducción a Web Security Scanner.
A06: Componentes vulnerables y obsoletos
Componentes con vulnerabilidades conocidas: es una categoría de vectores de ataque genéricos. La mejor forma de mitigar estas vulnerabilidades es monitorizar y actualizar rápidamente todos los componentes de tu aplicación.
Autorización binaria
Caso práctico:
- Restringir clústeres de GKE a contenedores de confianza
La autorización binaria es un control de seguridad de tiempo de despliegue que ayuda a garantizar que solo se desplieguen imágenes de contenedor de confianza en Google Kubernetes Engine (GKE). Con la autorización binaria, puedes requerir que una autoridad de confianza firme las imágenes durante el proceso de desarrollo y, después, aplicar la validación de la firma cuando se desplieguen. Al aplicar la validación, puedes tener la certeza de que tu proceso de compilación y lanzamiento solo usa imágenes verificadas.
Cloud Load Balancing
Caso práctico:
- Control pormenorizado de cifrado SSL y TLS
Impide el uso de cifrados SSL o TLS con vulnerabilidades conocidas asignando un grupo predefinido o una lista personalizada de cifrados que Cloud Load Balancing pueda usar.
Cloud Armor
Caso práctico:
- Bloquear el acceso a endpoints de aplicaciones no utilizados
- Bloquear vectores de ataque habituales
No se debe usar un cortafuegos de aplicaciones web (WAF), como Cloud Armor, como única estrategia de mitigación para bloquear ataques contra esta categoría, ya que los ataques suelen ser específicos de la biblioteca y no se pueden bloquear con conjuntos de reglas preconfigurados ni se pueden parchear en el lado del servidor. La única forma de mitigar este tipo de vulnerabilidades es monitorizar y actualizar periódicamente todos los componentes de tu aplicación.
Sin embargo, Cloud Armor puede ayudar a mitigar algunos ataques habituales contra aplicaciones vulnerables mediante sus reglas preconfiguradas para la ejecución de código remoto, la inclusión de archivos locales o la inclusión de archivos remotos.
Si sabes que hay componentes vulnerables en tu aplicación, pero no puedes aplicarles parches de inmediato, puedes bloquear el acceso a estas partes de la aplicación para reducir temporalmente el riesgo de que se aprovechen estos componentes. Crea una regla personalizada que coincida con la ruta de la URL o con las consultas que accedan a estos componentes vulnerables y deniegue el acceso. Si necesitas que usuarios o ubicaciones específicos accedan a estos componentes, puedes permitir que determinadas direcciones IP de origen de confianza accedan a ellos. Una regla que usa la ruta de la URL tiene un aspecto similar al siguiente:
`request.path.contains("/component") && !(inIpRange(origin.ip, '1.2.3.4/32')
Haz los cambios siguientes:
/component
: la ruta del componente con vulnerabilidades conocidas1.2.3.4/32
: el intervalo de direcciones IP que debe mantener el acceso a la interfaz.
Si hay partes de tu aplicación (por ejemplo, determinados directorios o tipos de archivo) a las que los usuarios finales nunca deben acceder, también puedes bloquear o restringir el acceso a estos recursos con una regla personalizada. De esta forma, se reduce el riesgo de forma proactiva si estos componentes se vuelven vulnerables en el futuro.
Google Cloud Boletines de seguridad
Caso práctico:
- Monitorización de boletines de seguridad
- CVEs de productos de Google Cloud
Los Google Cloud boletines de seguridad son una fuente fiable de boletines de seguridad que afectan a Google Cloud. Las publicaciones incluyen información general, enlaces a CVEs y recomendaciones para tomar medidas adicionales.
Security Command Center
Security Command Center incluye tres servicios que te ayudan a abordar los componentes vulnerables y obsoletos: Container Threat Detection, Event Threat Detection y Web Security Scanner.
Container Threat Detection admite los siguientes casos prácticos:
- Detección de secuencias de comandos maliciosas
- Detección de shell inverso
- Detección de instalación de malware
Si un atacante aprovecha un componente vulnerable y ejecuta una secuencia de comandos maliciosa, el detector de Malicious Script
Executed
de Container Threat Detection genera un resultado. Si un atacante genera una shell inversa, el detector Reverse
Shell
genera un resultado. Si un atacante instala malware, los detectores Added
Binary
Executed
y Added Library
Loaded
generan resultados.
Event Threat Detection admite los siguientes casos prácticos:
- Detección de minería de criptomonedas
- Detección de software malicioso
- Filtración externa de datos
- DoS saliente
Event Threat Detection monitoriza tu flujo de Cloud Logging y aplica lógica de detección e inteligencia de amenazas a un nivel granular. Cuando Event Threat Detection detecta una amenaza, escribe un resultado en Security Command Center y en un proyecto de Cloud Logging. Las siguientes reglas de detección son útiles para detectar los efectos de usar componentes con vulnerabilidades conocidas:
- Minería de criptomonedas. Detecta la minería de criptomonedas en función de las solicitudes DNS o de la conexión a direcciones de minería conocidas.
- Malware. Detecta solicitudes DNS basadas en malware o conexiones a direcciones incorrectas conocidas.
- Filtración externa a una tabla. Detecta los recursos que se guardan fuera de la organización, incluidas las operaciones de copia o transferencia.
- DoS saliente. Detecta vulnerabilidades explotadas que intentan llevar a cabo ataques de denegación de servicio.
Web Security Scanner admite los siguientes casos prácticos:
- Bibliotecas obsoletas
- Paneles de vulnerabilidades y detecciones
Web Security Scanner monitoriza las bibliotecas obsoletas incluidas en tu aplicación web. Puede monitorizar estos resultados en el panel de control de Security Command Center.
A07: Fallos de identificación y autenticación
Los fallos de identificación y autenticación son riesgos habituales porque la autenticación de aplicaciones y la gestión de sesiones a menudo se implementan de forma incorrecta. Los atacantes pueden aprovechar los fallos de implementación, como contraseñas, claves y tokens de sesión vulnerados, para asumir temporal o permanentemente la identidad de otros usuarios.
Transparencia de acceso
Caso práctico:
- Monitorización de proveedores de servicios
- Justificaciones de acceso
Normalmente, si querías recibir asistencia personalizada de proveedores externos, tenías que conceder y compartir credenciales temporales, lo que creaba la posibilidad de que las credenciales quedaran huérfanas o se filtraran. Aprobación de acceso es un servicio integrado que te permite aprobar o denegar las solicitudes de acceso que recibas de los empleados de Google encargados de mantener tu cuenta. Cada solicitud de acceso incluye una justificación para que puedas ver el motivo de cada acceso, incluidas las referencias a las incidencias.
Apigee
Caso práctico:
- Validación de claves
- Validación de tokens
- Políticas de OAuth
Apigee proporciona políticas de verificación de claves de API, OAuth y JSON Web Token (JWT), que ayudan a protegerse frente a este riesgo.
La validación de claves de API es la forma más sencilla de seguridad basada en aplicaciones que se puede configurar para una API. Una aplicación cliente presenta una clave de API con su solicitud. Apigee Edge, mediante una política adjunta a un proxy de API, comprueba que la clave de API tenga el estado aprobado para el recurso solicitado.
El marco de autorización OAuth 2.0 permite que una aplicación de terceros obtenga acceso limitado a un servicio HTTP, ya sea en nombre de un propietario de recursos organizando una interacción de aprobación entre el propietario de recursos y el servicio HTTP, o en su propio nombre permitiendo que la aplicación de terceros obtenga acceso.
Los JSON Web Tokens (JWT) se suelen usar para compartir reclamaciones o aserciones entre aplicaciones conectadas. Apigee ofrece compatibilidad con JWT mediante tres políticas.
Cloud Armor
Caso práctico:
- Limitar el acceso al endpoint de autenticación
- Restringir el uso no autorizado de tokens
Los ataques contra vulnerabilidades clasificadas como riesgo de autenticación vulnerada se mitigan mejor a nivel de aplicación o mediante otros controles. Sin embargo, Cloud Armor puede ayudar a limitar la superficie de ataque o bloquear vectores de ataque conocidos.
Por ejemplo, si tu aplicación tiene una base de usuarios limitada y esos usuarios proceden de un conjunto conocido de direcciones IP o países, puedes crear una política de seguridad que limite el acceso a tu aplicación a los usuarios de esos bloques de direcciones IP o países. Esta política puede ayudar a mitigar el análisis automatizado de endpoints que no se encuentren en estas áreas.
Si otros mecanismos de seguridad detectan que las contraseñas, las claves o los tokens de sesión se han visto comprometidos, puede bloquear el acceso a las solicitudes que contengan esos parámetros en una cadena de consulta mediante una regla personalizada.
Puede actualizar las reglas que haya definido anteriormente con el método securityPolicy.patchRule
. Puede identificar posibles tokens robados mediante mecanismos de detección de anomalías en los registros de balanceo de carga HTTP.
También puedes detectar posibles adversarios buscando contraseñas comunes en esos registros.
Puedes bloquear los ataques de fijación de sesión habituales con el conjunto de reglas de ModSecurity preconfigurado para la fijación de sesión.
Para usar la regla, añade la regla evaluatePreconfiguredExpr('sessionfixation-stable')
predefinida a tu política de seguridad.
Si tu aplicación incluye cambios de contraseña en la cadena de consulta, también puedes bloquear el uso de contraseñas comunes mediante una regla personalizada que coincida con el atributo request.query
. Sin embargo, es mucho mejor implementar estas comprobaciones en el lado de la aplicación, si es posible.
Identity‑Aware Proxy
Caso práctico:
- Centraliza el control del acceso
- Funciona con aplicaciones on-premise y en la nube
- Proteger las conexiones HTTP y TCP
- Acceso contextual
IAP se integra con el balanceo de carga HTTP(S) para que puedas usar la identidad y el contexto con el fin de crear un muro de autenticación y autorización seguro alrededor de tu aplicación. Evita que se produzcan errores de autenticación en tu aplicación pública aprovisionando usuarios externos en Identity Platform (consulta más información en la siguiente sección).
También puedes evitar que se produzcan fallos de autenticación en las interfaces administrativas protegiéndolas con Identity-Aware Proxy y autenticando a los usuarios aprovisionados con Gestión de Identidades y Accesos o Cloud Identity. Cualquier intento de acceder a la herramienta da como resultado un intento de autenticación registrado, seguido de una comprobación de autorización para asegurarse de que el usuario autenticado tiene permiso para acceder al recurso solicitado.
Identity Platform
Caso práctico:
- Autenticación como servicio
- Autenticación multifactor
- Acuerdo de nivel de servicio de Enterprise
- Compatibilidad amplia con protocolos
- Inteligencia de protección de cuentas de Google
Identity Platform es la plataforma de gestión de identidades y accesos de clientes (CIAM) para Google Cloud clientes. Identity Platform te ayuda a ofrecer una autenticación segura como servicio con compatibilidad multiprotocolo mediante SDKs y APIs. Ofrece autenticación multifactor, integración con servicios de autenticación de terceros y seguimiento de actividad auditable.
reCAPTCHA
Caso práctico:
- Intentos de inicio de sesión automatizados
- Web scraping de contenido
- Rellenado de credenciales
- Transacciones fraudulentas
- Apropiación de cuentas
- Cuentas falsas
- Blanqueo de dinero
reCAPTCHA ofrece un filtrado muy eficaz contra bots y otras formas de automatización y tráfico en bloque. Para ello, asigna una puntuación al nivel de riesgo de los intentos de acceso. Puedes ajustar tu modelo específico del sitio con comentarios automatizados. reCAPTCHA adapta las puntuaciones futuras a tu sitio.
Security Command Center
Security Command Center incluye tres servicios que te ayudan a abordar los fallos de identificación y autenticación: Event Threat Detection, Security Health Analytics y Web Security Scanner.
Event Threat Detection admite los siguientes casos prácticos:
- Detección de ataques de fuerza bruta
- Detección de abusos de IAM
Event Threat Detection monitoriza tu flujo de Cloud Logging y aplica lógica de detección e inteligencia de amenazas propia a nivel granular. Cuando Event Threat Detection detecta una amenaza, escribe un resultado en Security Command Center y en Cloud Logging en el proyecto que elijas. Los siguientes tipos de eventos son útiles para identificar la autenticación incorrecta:
- SSH por fuerza bruta. Detecta ataques de fuerza bruta de SSH en un host.
- Concesión anómala. Detecta los privilegios concedidos a usuarios de Gestión de Identidades y Accesos (IAM) ajenos a tu Google Cloud organización.
Security Health Analytics admite los siguientes casos prácticos:
- Uso obligatorio de MFA o 2FA
- Protección de claves de API
- Obligatoriedad de la rotación de claves de API
Security Command Center ayuda a evitar que se produzcan fallos en la autenticación monitorizando el cumplimiento de la autenticación multifactor y el estado de tus claves de API. Puedes identificar solicitudes sospechosas y bloquearlas o marcarlas para que se traten de forma especial.
Web Security Scanner admite el siguiente caso práctico:
- Fugas del identificador de sesión
Web Security Scanner analiza tus aplicaciones web en busca de vulnerabilidades como las filtraciones de IDs de sesión, que permiten que terceros se hagan pasar por un usuario o lo identifiquen de forma única.
Llaves de seguridad Titan
Caso práctico:
- Autenticación de dos factores resistente al phishing
- Autenticación en móviles y ordenadores
Las llaves de seguridad Titan utilizan criptografía de clave pública para verificar la identidad del usuario y la URL de la página de inicio de sesión. De esta forma, los atacantes no pueden acceder a tu cuenta, aunque hayan conseguido tu nombre de usuario y contraseña.
A08: Fallos de integridad de software y datos
Los fallos de integridad del software y de los datos pueden producirse cuando no se realizan comprobaciones de integridad durante las actualizaciones de software, el procesamiento de datos confidenciales o cualquier proceso de la canalización de CI/CD.
Artifact Registry
Caso práctico:
- Centralizar los artefactos en una única ubicación de confianza
- Usar la gestión de versiones, el análisis de vulnerabilidades y los flujos de trabajo de aprobación
Artifact Registry es un administrador unificado para que tu organización gestione imágenes de contenedores y paquetes de lenguajes (como Maven y npm). Se puede integrar con tus herramientas de desarrollo y ofrece análisis de vulnerabilidades para tus contenedores mediante Artifact Analysis.
Autorización binaria
Caso práctico:
- Asegúrate de que solo se despliegan contenedores de confianza
La autorización binaria verifica la integridad de los contenedores para que solo se desplieguen imágenes de contenedor de confianza. Puedes crear políticas para permitir o denegar la implementación en función de la presencia o ausencia de certificaciones. La autorización binaria aplica políticas a nivel de clúster, por lo que puedes configurar políticas diferentes para distintos entornos. Esta distinción permite que los requisitos de certificación sean progresivos a medida que los entornos se acercan a la producción.
Inventario de Recursos de Cloud
Caso práctico:
Servicio de búsqueda
Analizador de acceso
Uno de los vectores más habituales de exposición de datos es la infraestructura de TI huérfana o no autorizada. Para identificar los servidores que nadie mantiene y los contenedores con reglas de uso compartido demasiado amplias, analiza los datos de series temporales de los recursos de la nube.
Configura notificaciones en tiempo real para recibir alertas sobre el aprovisionamiento inesperado de recursos que podrían no estar protegidos correctamente o no estar autorizados.
Cloud Build
Caso práctico:
Revisar los cambios en el código
Ejecutar pruebas
Estandarizar las implementaciones de compilación
Cloud Build te permite crear una configuración de compilación para proporcionar instrucciones sobre el despliegue de la compilación, como ejecutar análisis estáticos y pruebas de integración.
Cloud Armor
Caso práctico:
- Bloquear la ejecución remota de código
Como la mayoría de los ataques contra la integridad del software y los datos son específicos de las aplicaciones, solo hay unas pocas formas de mitigar estos ataques, como usar un cortafuegos de aplicaciones web (WAF) como Cloud Armor. OWASP recomienda que no aceptes objetos serializados de fuentes que no sean de confianza. Si es posible, puedes restringir los endpoints que aceptan esos objetos a un conjunto de direcciones IP de confianza con una regla de denegación similar a la siguiente:
request.path.contains("/endpoint") && !(inIpRange(origin.ip, '1.2.3.4/32')
Haz los cambios siguientes:
/endpoint
: la ruta del endpoint que acepta objetos serializados1.2.3.4/32
: el intervalo de direcciones IP que debe mantener el acceso a la interfaz.
Para mitigar los ataques habituales contra la integridad del software y los datos que utilizan la ejecución de código remoto (RCE), usa el conjunto de reglas predefinido contra ataques de RCE. Puedes usar la regla evaluatePreconfiguredExpr('rce-stable')
para bloquear ataques RCE habituales contra shells de UNIX y Windows.
Los ataques de ejecución remota de código descritos en los retos de Juice Shop para deserializaciones no seguras ejecutan funciones y expresiones regulares en Node.js en el servidor. Este tipo de ataques no se bloquean con el conjunto de reglas RCE predefinido ni con la regla OWASP Modsecurity correspondiente, por lo que deben mitigarse mediante parches en el lado del servidor o reglas personalizadas.
VirusTotal
Caso práctico:
- Análisis de datos no fiables
La API de VirusTotal te permite subir y analizar archivos en busca de malware. Puedes analizar imágenes, documentos, archivos binarios y otros datos no fiables antes de que se procesen para eliminar determinadas categorías de entradas maliciosas.
Security Command Center
El servicio Web Security Scanner de Security Command Center admite el siguiente caso práctico:
- Deserialización no segura
Web Security Scanner
analiza tus aplicaciones web en busca de vulnerabilidades. Por ejemplo, si usas una versión de Apache Struts que hace que tu aplicación sea vulnerable a ataques de inyección de comandos remotos, Web Security Scanner genera un STRUTS_INSECURE_DESERIALIZATION
resultado.
A09: Fallos en el registro y la monitorización de seguridad
Si no registras, monitorizas ni gestionas adecuadamente los incidentes en tus sistemas, los atacantes pueden llevar a cabo ataques más profundos y prolongados contra los datos y el software.
Transparencia de acceso
Caso práctico:
- Monitorización y auditoría del acceso de proveedores de servicios
- Justificaciones de acceso
- Identificación de recursos y métodos
La imposibilidad de auditar el acceso de los proveedores de la nube puede ser un obstáculo para migrar de un entorno local a la nube. Esa verificación es posible con la función Transparencia de acceso, donde los controles de auditoría se asemejan más a los que se hacen on-premise. Puedes registrar el motivo de cada acceso, con referencias a incidencias de asistencia pertinentes. Nombres de identificación de recursos y métodos que indican a qué recursos ha accedido cada administrador y qué métodos ha utilizado. Gracias a la función Aprobación de acceso, puedes aprobar o denegar las solicitudes de acceso que recibas de los empleados de Google encargados de mantener tu servicio.
Apigee
Caso práctico:
- Exportar registros de Apigee a SIEM
- Usar la interfaz de monitorización de Apigee
- Sigue las prácticas recomendadas de monitorización
Apigee ofrece varias formas de registrar, monitorizar, gestionar errores y registrar auditorías:
- Registros
- Los mensajes de registro se pueden enviar a Splunk u otros endpoints de syslog mediante la política MessageLogging.
- Los datos analíticos de la API se pueden extraer mediante la API Analytics e importar o exportar a otros sistemas.
- En Edge para nube privada, puede usar la política MessageLogging para escribir en archivos de registro locales. También están disponibles los archivos de registro de cada uno de los componentes en ejecución.
- La política de JavaScript se puede usar para enviar mensajes de registro a un endpoint de registro de REST de forma síncrona o asíncrona.
- Monitorización
- Usa la interfaz de usuario o la API de Monitorización de APIs para monitorizar periódicamente las APIs y los back-ends, así como para activar alertas.
- Usa la monitorización del estado para monitorizar periódicamente los back-ends del servidor de destino.
- Apigee ofrece recomendaciones para monitorizar Edge para nubes privadas.
- Apigee también ofrece prácticas recomendadas que tu equipo puede usar para monitorizar tu programa de APIs.
- Gestión de errores
- Apigee ofrece un mecanismo de gestión de errores potente y versátil para los proxies de API. Al igual que un programa Java detecta excepciones, los proxies de API pueden detectar errores y determinar cómo devolver las respuestas adecuadas a los clientes.
- La gestión de errores personalizada de Apigee te permite añadir funciones, como el registro de mensajes, cada vez que se produce un error.
- Registros de auditoría
- La plataforma Apigee mantiene un registro de auditoría que monitoriza los cambios en los proxies de API, los productos y el historial de la organización.
- Este registro está disponible en la interfaz de usuario o a través de la API Management.
Google Security Operations
Caso práctico:
- Detección de amenazas
- Preaviso
Los equipos de seguridad pueden enviar su telemetría de seguridad a Google Security Operations para que puedas aplicar reglas de detección eficaces a un conjunto de datos unificado.
Protección de datos sensibles
Caso práctico:
- Máscara automática de datos sensibles
Identifica la información sensible de cumplimiento en tus flujos de registro y máscala o transfórmala de forma adecuada antes de archivarla en los registros. Por ejemplo, un mensaje de error o un volcado del núcleo pueden contener información sensible, como números de tarjetas de crédito o información personal identificable, que debe ocultarse.
Cloud Key Management Service
Caso práctico:
- Registro de eventos de solicitud de claves criptográficas
- Justificaciones de acceso
Justificaciones de Acceso a Claves te permiten ver el historial de todas las solicitudes de claves de cifrado registrando la justificación indicada y un registro de la aprobación o denegación de esa solicitud.
Cloud Logging
Caso práctico:
- Agregación de registros
- Almacenamiento de registros
- Búsqueda en registros
- Análisis de registros
Cloud Logging te permite almacenar, buscar, analizar, monitorizar y alertar sobre datos y eventos de registro de Google Cloud y Amazon Web Services. Incluye acceso al servicio BindPlane, que puedes usar para recoger datos de registro de más de 150 componentes de aplicaciones comunes, sistemas on-premise y sistemas de nube híbrida.
Cloud Monitoring
Caso práctico:
- Monitorización de registros
- Alertas de eventos
Cloud Monitoring ofrece visibilidad sobre el rendimiento, el tiempo de actividad y el estado general de las aplicaciones basadas en la nube. Proporciona un panel de control de monitorización, monitores de eventos y alertas a través de varios canales.
Cloud Source Repositories
Caso práctico:
- Atribución de cambios en el código
- Acceder al registro de auditoría
Usa los registros de auditoría de Cloud generados por Cloud Source Repositories para conocer las acciones realizadas en tu repositorio, así como cuándo y dónde se llevaron a cabo.
Error Reporting
Caso práctico:
- Capturar errores internos de la aplicación en Cloud Logging
- Recoger informes sobre fallos fuera de la instancia de proceso que ha fallado
Los errores internos de las aplicaciones pueden ser un indicador de un problema de seguridad, de una función que no funciona o de intentos de eludir la seguridad. Error Reporting cuenta, analiza y agrupa los fallos de los servicios que se ejecutan en la nube. Su interfaz centralizada para gestionar errores muestra los resultados y permite ordenarlos y filtrarlos. En una vista específica se muestran los detalles del error, como el gráfico de tiempo, las repeticiones, el número de usuarios afectados, las fechas de primera y última detección, y el rastreo de la pila de excepciones solucionadas. Habilita las alertas de móvil y por correo electrónico para que te avisen cada vez que se produzca un error nuevo.
Cloud Armor
Caso práctico:
- Registro de políticas de seguridad
- Paneles de control de monitorización
- Alertas sobre anomalías de tráfico
Los registros de solicitudes de Cloud Armor forman parte de Cloud Logging para balanceadores de carga de aplicaciones externos. Para acceder a la información de registro (por ejemplo, qué regla de política de seguridad ha coincidido con el tráfico), habilita el registro en todos los servicios de backend que tengan políticas de seguridad asociadas. Utiliza las reglas en el modo de vista previa para probarlas y registrar los resultados sin aplicar los efectos.
Cloud Armor también ofrece paneles de control de monitorización para las políticas de seguridad, que te permiten obtener una vista general de la cantidad de tráfico que ha pasado o se ha denegado en cualquiera de tus políticas de seguridad. Cloud Armor publica resultados sobre anomalías en el tráfico, como picos en el tráfico permitido o aumentos en el tráfico denegado, en Security Command Center.
Cloud Armor escribe automáticamente registros de auditoría de actividad de administración, que registran las operaciones que modifican la configuración o los metadatos de un recurso. Este servicio también se puede configurar para escribir registros de auditoría de acceso a los datos, que contienen llamadas a la API que leen la configuración o los metadatos de los recursos, así como llamadas a la API iniciadas por el usuario que crean, modifican o leen los datos de los recursos proporcionados por el usuario.
Identity Platform
Caso práctico:
- Registros de auditoría de la actividad administrativa
- Registros de auditorías de acceso a los datos
- Registros de auditoría de los eventos del sistema
- Registros de auditoría de denegación de acceso por infracción de las políticas
- Registros de actividad de autenticación
Identity Platform es la plataforma de gestión de identidades y accesos de clientes (CIAM) de Google Cloud que registra la actividad de autenticación de forma predeterminada.
Habilita varios registros de auditoría potentes, como la actividad del administrador, el acceso a los datos, los eventos del sistema y los intentos de autenticación denegados.
Security Command Center
Casos prácticos:
- Monitorización de alertas
- Gestión de amenazas
- Informes de análisis de vulnerabilidades
- Supervisión del cumplimiento
- Monitorización de recursos
- Resultados del análisis de seguridad
Con el panel de control Cumplimiento, puedes monitorizar continuamente el cumplimiento de los controles de PCI-DSS, CIS Google Cloud Computing Foundations Benchmark y más. La página Recursos muestra de forma detallada todos los recursos de tu organización.Google Cloud En la página, puedes ver los recursos de toda tu organización o filtrar los recursos de un proyecto específico por tipo de recurso o por tipo de cambio. Por último, puedes consultar un inventario de resultados detallado de todos los recursos de tu organización para ver los posibles riesgos de seguridad.
Además, el servicio Event Threat Detection de Security Command Center admite los siguientes casos prácticos:
- Fuerza bruta
- Minería de criptomonedas
- Abuso de IAM
- Malware
- Suplantación de identidad (phishing)
Event Threat Detection monitoriza tu flujo de Cloud Logging y aplica lógica de detección e inteligencia de amenazas propia a nivel granular. Event Threat Detection identifica las entradas destacadas de sus registros y las eleva para que se revisen. Cuando Event Threat Detection detecta una amenaza, escribe un resultado en Security Command Center y en un proyecto de Cloud Logging.
A10: falsificación de solicitud del lado del servidor (SSRF)
Un ataque SSRF se produce cuando un atacante obliga a un servidor vulnerable a activar solicitudes maliciosas no deseadas a servidores de terceros o recursos internos. Los fallos de SSRF pueden producirse cuando una aplicación web obtiene un recurso remoto sin validar la URL proporcionada por el usuario.
Apigee
Caso práctico:
- Bloquear ataques SSRF mediante LFI o RFI
Apigee tiene analizadores XML y JSON integrados que usan XPath o JSONPath para extraer datos. Tiene una política XMLThreatProtection para protegerse de las cargas útiles XML maliciosas y una política JSONThreatProtection para protegerse de las cargas útiles JSON maliciosas.
La política ExtractVariables de Apigee te permite extraer el contenido de una solicitud o una respuesta y asignarlo a una variable. Puede extraer cualquier parte del mensaje, incluidos los encabezados, las rutas de URI, las cargas útiles JSON y XML, los parámetros de formulario y los parámetros de consulta. La política funciona aplicando un patrón de texto al contenido del mensaje y, cuando encuentra una coincidencia, asigna una variable con el contenido del mensaje especificado.
Cloud Armor
Caso práctico:
- Filtrar ataques SSRF mediante LFI o RFI
Dado que los ataques SSRF pueden ser complejos y adoptar diferentes formas, las posibilidades de mitigación de los firewalls de aplicaciones web son limitadas. Los ataques se mitigan mejor parcheando los analizadores XML o JSON, impidiendo las entidades externas y limitando al mínimo las transferencias de datos XML o JSON en servidores web públicos. Sin embargo, en función de la aplicación y del tipo de ataque, Cloud Armor puede ayudar a defenderse contra la exfiltración de datos y otros impactos.
Aunque ninguna regla del conjunto de reglas principales de OWASP ModSecurity protege específicamente contra los ataques SSRF, las reglas de inclusión de archivos locales (LFI) y de inclusión de archivos remotos (RFI) pueden ayudar a protegerte contra algunos de estos ataques. Para evitar que un atacante recupere archivos locales del servidor, puedes usar la regla evaluatePreconfiguredExpr('lfi-stable')
en una política de seguridad de Cloud Armor.
El reto SSRF Juice Shop usa los conjuntos de reglas de inclusión de archivos remotos (RFI) o de inclusión de archivos locales (LFI) preconfigurados para mitigar algunos de estos ataques, ya que bloquean la inclusión de URLs o el salto de directorios. Por ejemplo, la siguiente regla habilita ambos conjuntos de reglas:
evaluatePreconfiguredExpr('lfi-stable') ||
evaluatePreconfiguredExpr('rfi-stable')
Cuando se implementa una regla de este tipo, la solución para el reto SSRF también deja de funcionar.
Controles de Servicio de VPC
Caso práctico:
- Perímetros de red para segmentar servidores
Para reducir el impacto de los ataques SSRF, puedes usar Controles de Servicio de VPC para crear perímetros que segmenten los servidores de otros recursos de tu organización. Estos perímetros ofrecen protección contra la filtración externa de datos. Cuando se ejecuta en modo obligatorio, las solicitudes de API a servicios restringidos no cruzan el límite del perímetro a menos que se cumplan las condiciones de las reglas de entrada y salida necesarias del perímetro.
Cortafuegos de nube privada virtual (VPC)
Caso práctico:
- Aplica políticas de cortafuegos o reglas de control de acceso a la red de tipo "denegar de forma predeterminada" para bloquear todo el tráfico, excepto el tráfico de intranet esencial.
Los cortafuegos de VPC se aplican al tráfico entrante y saliente de tus proyectos y de tu red de VPC. Puede crear reglas de cortafuegos que bloqueen todo el tráfico, excepto el que quiera permitir. Para obtener más información, consulta la descripción general de las reglas de cortafuegos de VPC.
Security Command Center
El servicio Web Security Scanner de Security Command Center admite el siguiente caso práctico:
- Monitorización de aplicaciones web
Web Security Scanner
analiza tus aplicaciones web en busca de vulnerabilidades. Por ejemplo, si tu aplicación es vulnerable a la falsificación de solicitudes del lado del servidor, Web Security Scanner genera un resultado SERVER_SIDE_REQUEST_FORGERY
.
Siguientes pasos
- Protección de aplicaciones web y APIs activada Google Cloud
- OWASP Top 10
- Google Cloud boletines de seguridad
- Google Cloud Centro de prácticas recomendadas de seguridad
- Recursos de cumplimiento
- Comparativa del CIS para Google Cloud
- Security Command Center
- Apigee
- Cloud Armor
- Todos los productos de seguridad Google Cloud
- Consulta arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Centro de arquitectura de Cloud.