Este principio del pilar de seguridad del Google Cloud framework Well-Architected te ayuda a identificar controles prácticos que puedes implementar al principio del ciclo de vida del desarrollo de software para mejorar tu postura de seguridad. Proporciona recomendaciones que te ayudan a implementar barreras de control de seguridad preventivas y controles de seguridad posteriores a la implementación.
Descripción general de los principios
La seguridad "shift left" consiste en adoptar prácticas de seguridad en las primeras fases del ciclo de vida del desarrollo de software. Este principio tiene los siguientes objetivos:
- Evita los defectos de seguridad antes de que se hagan cambios en el sistema. Implementa barreras de protección de seguridad preventivas y adopta prácticas como la infraestructura como código (IaC), la política como código y las comprobaciones de seguridad en la canalización de CI/CD. También puedes usar otras funciones específicas de la plataforma, como el servicio de políticas de la organización y los clústeres de GKE reforzados en Google Cloud.
- Detecta y corrige errores de seguridad de forma rápida, fiable y en las primeras fases después de confirmar cualquier cambio en el sistema. Adopta prácticas como las revisiones de código, el análisis de vulnerabilidades posterior a la implementación y las pruebas de seguridad.
Los principios de implementar la seguridad desde el diseño y de seguridad shift-left están relacionados, pero difieren en cuanto al alcance. El principio de seguridad desde el diseño te ayuda a evitar errores de diseño fundamentales que requerirían cambiar la arquitectura de todo el sistema. Por ejemplo, un ejercicio de modelado de amenazas revela que el diseño actual no incluye una política de autorización y que todos los usuarios tendrían el mismo nivel de acceso sin ella. La seguridad de desplazamiento hacia la izquierda te ayuda a evitar defectos de implementación (errores y configuraciones incorrectas) antes de que se apliquen los cambios, y permite realizar correcciones rápidas y fiables después de la implementación.
Recomendaciones
Para implementar el principio de seguridad "shift left" en tus cargas de trabajo en la nube, ten en cuenta las recomendaciones de las siguientes secciones:
- Adopta controles de seguridad preventivos
- Automatizar el aprovisionamiento y la gestión de recursos en la nube
- Automatizar lanzamientos de aplicaciones seguras
- Asegúrate de que los despliegues de aplicaciones siguen los procesos aprobados.
- Analizar las vulnerabilidades conocidas antes de implementar la aplicación
- Monitoriza el código de tu aplicación para detectar vulnerabilidades conocidas
Adopta controles de seguridad preventivos
Esta recomendación está relacionada con las siguientes áreas de interés:
- Gestión de identidades y accesos
- Gobernanza, riesgos y cumplimiento en la nube
Los controles de seguridad preventivos son fundamentales para mantener una postura de seguridad sólida en la nube. Estos controles te ayudan a mitigar los riesgos de forma proactiva. Puedes evitar errores de configuración y accesos no autorizados a los recursos, permitir que los desarrolladores trabajen de forma eficiente y asegurarte de que se cumplen los estándares del sector y las políticas internas.
Los controles de seguridad preventivos son más eficaces cuando se implementan mediante la infraestructura como código (IaC). Con IaC, los controles de seguridad preventivos pueden incluir comprobaciones más personalizadas en el código de la infraestructura antes de que se implementen los cambios. Si se combinan con la automatización, los controles de seguridad preventivos pueden ejecutarse como parte de las comprobaciones automáticas de tu flujo de procesamiento de CI/CD.
Los siguientes productos y funciones pueden ayudarte a implementar controles preventivos en tu entorno: Google Cloud
- Restricciones del servicio de política de organización: configura restricciones predefinidas y personalizadas con un control centralizado.
- Controles de Servicio de VPC: crea perímetros alrededor de tus servicios de Google Cloud .
- Gestión de Identidades y Accesos (IAM), Gestor de Accesos Privilegiados y políticas de límite de acceso de principales: restringen el acceso a los recursos.
- Policy Controller y Open Policy Agent (OPA): aplica restricciones de IaC en tu flujo de procesamiento de CI/CD y evita errores de configuración en la nube.
Gestión de Identidades y Accesos te permite autorizar quién puede actuar en recursos específicos en función de los permisos. Para obtener más información, consulta Control de acceso a recursos de la organización con IAM.
El servicio de políticas de la organización te permite definir restricciones en los recursos para especificar cómo se pueden configurar. Por ejemplo, puede usar una política de la organización para hacer lo siguiente:
- Limitar el uso compartido de recursos en función del dominio.
- Limita el uso de las cuentas de servicio.
- Restringir la ubicación física de los recursos recién creados.
Además de usar políticas de la organización, puedes restringir el acceso a los recursos mediante los siguientes métodos:
- Etiquetas con gestión de identidades y accesos: asigna una etiqueta a un conjunto de recursos y, a continuación, define la definición de acceso de la etiqueta en sí, en lugar de definir los permisos de acceso de cada recurso.
- Condiciones de IAM: definen el control de acceso condicional basado en atributos para los recursos.
- Defensa en profundidad: usa Controles de Servicio de VPC para restringir aún más el acceso a los recursos.
Para obtener más información sobre la gestión de recursos, consulta el artículo Decidir una jerarquía de recursos para tu Google Cloud zona de aterrizaje.
Automatizar el aprovisionamiento y la gestión de recursos en la nube
Esta recomendación está relacionada con las siguientes áreas de interés:
- Seguridad para aplicaciones
- Gobernanza, riesgos y cumplimiento en la nube
Automatizar el aprovisionamiento y la gestión de recursos y cargas de trabajo en la nube es más eficaz si también adoptas IaC declarativo, en lugar de secuencias de comandos imperativas. IaC no es una herramienta ni una práctica de seguridad por sí sola, pero te ayuda a mejorar la seguridad de tu plataforma. Adoptar IaC te permite crear una infraestructura repetible y proporciona a tu equipo de operaciones un estado correcto conocido. La IaC también mejora la eficiencia de las reversiones, los cambios de auditoría y la resolución de problemas.
Si se combina con las automatizaciones y las pipelines de CI/CD, IaC también te permite adoptar prácticas como la política como código con herramientas como OPA. Puedes auditar los cambios en la infraestructura a lo largo del tiempo y ejecutar comprobaciones automáticas en el código de la infraestructura antes de que se implementen los cambios.
Para automatizar el despliegue de la infraestructura, puedes usar herramientas como Config Controller, Terraform, Jenkins y Cloud Build. Para ayudarte a crear un entorno de aplicaciones seguro mediante IaC y automatización,Google Cloud proporciona el plano técnico de las bases de la empresa. Este diseño es la opinión de Google y sigue todas nuestras prácticas y configuraciones recomendadas. El plano proporciona instrucciones paso a paso para configurar y desplegar tu Google Cloud topología con Terraform y Cloud Build.
Puedes modificar las secuencias de comandos del plano de las bases de la empresa para configurar un entorno que siga las recomendaciones de Google y cumpla tus requisitos de seguridad. Puedes seguir desarrollando el plano con otros planos o diseñar tu propia automatización. El Google Cloud Architecture Center ofrece otros planos que se pueden implementar sobre el plano de aspectos básicos de las empresas. A continuación, se muestran algunos ejemplos de estos planos:
- Desplegar una plataforma para desarrolladores empresarial en Google Cloud
- Desplegar una arquitectura sin servidor segura con Cloud Run
- Crear y desplegar modelos de IA generativa y aprendizaje automático en una empresa
- Importar datos de Google Cloud a un almacén de datos de BigQuery seguro
Automatizar lanzamientos seguros de aplicaciones
Esta recomendación está relacionada con la siguiente área de interés: seguridad de las aplicaciones.
Sin herramientas automatizadas, puede ser difícil implementar, actualizar y parchear entornos de aplicaciones complejos para cumplir requisitos de seguridad coherentes. Te recomendamos que crees flujos de procesamiento de CI/CD automatizados para el ciclo de vida de desarrollo de software (SDLC). Los flujos de procesamiento de CI/CD automatizados te ayudan a eliminar los errores manuales, a proporcionar bucles de retroalimentación de desarrollo estandarizados y a habilitar iteraciones de productos eficientes. La entrega continua es una de las prácticas recomendadas del marco de DORA.
Automatizar las versiones de aplicaciones mediante las canalizaciones de CI/CD ayuda a mejorar tu capacidad para detectar y corregir errores de seguridad de forma rápida, fiable y en las primeras fases. Por ejemplo, puedes analizar automáticamente los artefactos en busca de vulnerabilidades de seguridad cuando se creen, reducir el alcance de las revisiones de seguridad y volver a una versión segura y conocida. También puedes definir políticas para distintos entornos (como entornos de desarrollo, prueba o producción) de forma que solo se desplieguen los artefactos verificados.
Para ayudarte a automatizar las versiones de aplicaciones e integrar comprobaciones de seguridad en tu flujo de procesamiento de CI/CD, Google Cloud proporciona varias herramientas, como Cloud Build, Cloud Deploy, Web Security Scanner y Autorización binaria.
Para establecer un proceso que verifique varios requisitos de seguridad en tu ciclo de vida del desarrollo de software (SDLC), usa el framework Niveles de la cadena de suministro para artefactos de software (SLSA), que ha definido Google. SLSA requiere comprobaciones de seguridad para el código fuente, el proceso de compilación y la procedencia del código. Muchos de estos requisitos se pueden incluir en un flujo de procesamiento de CI/CD automatizado. Para saber cómo aplica Google estas prácticas internamente, consulta el Google Cloudenfoque de Google ante los cambios.
Asegúrate de que los despliegues de aplicaciones siguen los procesos aprobados.
Esta recomendación está relacionada con la siguiente área de interés: seguridad de las aplicaciones.
Si un atacante pone en riesgo tu canalización de CI/CD, se puede ver afectada toda tu pila de aplicaciones. Para proteger la canalización, debes implementar un proceso de aprobación consolidado antes de desplegar el código en el entorno de producción.
Si usas Google Kubernetes Engine (GKE), GKE Enterprise o Cloud Run, puedes establecer un proceso de aprobación mediante la autorización binaria. La autorización binaria adjunta firmas configurables a las imágenes de contenedor. Estas firmas (también llamadas atestaciones) ayudan a validar la imagen. En el momento del despliegue, la autorización binaria usa estas atestaciones para determinar si se ha completado un proceso. Por ejemplo, puedes usar la autorización binaria para hacer lo siguiente:
- Verifica que un sistema de compilación o una canalización de CI específicos hayan creado una imagen de contenedor.
- Valida que una imagen de contenedor cumpla una política de firma de vulnerabilidades.
- Verifica que una imagen de contenedor cumple los criterios para pasar al siguiente entorno de implementación, por ejemplo, del desarrollo al control de calidad.
Con la autorización binaria, puedes asegurarte de que solo se ejecute código de confianza en tus plataformas de destino.
Analizar las vulnerabilidades conocidas antes de implementar la aplicación
Esta recomendación está relacionada con la siguiente área de interés: seguridad de las aplicaciones.
Te recomendamos que utilices herramientas automatizadas que puedan realizar análisis de vulnerabilidades de forma continua en los artefactos de las aplicaciones antes de que se implementen en producción.
En el caso de las aplicaciones en contenedores, usa Artifact Analysis para ejecutar automáticamente análisis de vulnerabilidades en imágenes de contenedor. Artifact Analysis analiza las imágenes nuevas cuando se suben a Artifact Registry. El análisis extrae información sobre los paquetes del sistema del contenedor. Después del análisis inicial, Artifact Analysis monitoriza continuamente los metadatos de las imágenes analizadas en Artifact Registry para detectar nuevas vulnerabilidades. Cuando el análisis de artefactos recibe información nueva y actualizada sobre vulnerabilidades de fuentes de vulnerabilidades, hace lo siguiente:
- Actualiza los metadatos de las imágenes escaneadas para que estén al día.
- Crea nuevas ocurrencias de vulnerabilidades para las notas nuevas.
- Elimina las ocurrencias de vulnerabilidades que ya no son válidas.
Monitoriza el código de tu aplicación para detectar vulnerabilidades conocidas.
Esta recomendación está relacionada con la siguiente área de interés: seguridad de las aplicaciones.
Usa herramientas automatizadas para monitorizar constantemente el código de tu aplicación en busca de vulnerabilidades conocidas, como las 10 principales de OWASP. Para obtener más información sobre los Google Cloud productos y las funciones que admiten técnicas de mitigación de los diez riesgos principales según el proyecto OWASP, consulta las opciones de mitigación de los diez riesgos principales según el proyecto OWASP en Google Cloud.
Usa Web Security Scanner para identificar las vulnerabilidades de seguridad de tus aplicaciones web de App Engine, Compute Engine y GKE. El escáner rastrea tu aplicación, sigue todos los enlaces dentro del alcance de las URLs de inicio e intenta ejecutar la máxima cantidad posible de acciones de usuario y de gestores de eventos. Puede analizar y detectar automáticamente vulnerabilidades habituales, como cross-site scripting, inyección de código, contenido mixto y bibliotecas obsoletas o no seguras. Web Security Scanner identifica estos tipos de vulnerabilidades de forma temprana sin distraerte con falsos positivos.
Además, si usas GKE Enterprise para gestionar flotas de clústeres de Kubernetes, el panel de control de la postura de seguridad muestra recomendaciones prácticas y basadas en opiniones para ayudarte a mejorar la postura de seguridad de tu flota.