Este principio del pilar de seguridad del Google Cloud framework de Well-Architected te ayuda a identificar controles prácticos que puedes implementar en las primeras etapas del ciclo de vida de desarrollo de software para mejorar tu postura de seguridad. Proporciona recomendaciones que te ayudan a implementar barandillas preventivas de seguridad y controles de seguridad posteriores a la implementación.
Descripción general del principio
La seguridad de detección temprana de errores significa adoptar prácticas de seguridad en una etapa temprana del ciclo de vida del desarrollo de software. Este principio tiene los siguientes objetivos:
- Evitar defectos de seguridad antes de que se realicen cambios en el sistema Implementa medidas de seguridad preventivas y adopta prácticas como la infraestructura como código (IaC), la política como código y las verificaciones de seguridad en la canalización de CI/CD. También puedes usar otras capacidades 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.
- Detectar y corregir errores de seguridad de forma temprana, rápida y confiable después de que se confirmen los cambios del 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 detección temprana de problemas de seguridad están relacionados, pero difieren en alcance. El principio de seguridad por diseño te ayuda a evitar errores de diseño fundamentales que requerirían volver a diseñar 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 correcciones rápidas y confiables después de la implementación.
Recomendaciones
Para implementar el principio de seguridad de desplazamiento hacia la izquierda en tus cargas de trabajo en la nube, considera las recomendaciones de las siguientes secciones:
- Adopta controles de seguridad preventivos
- Automatiza el aprovisionamiento y la administración de los recursos de la nube
- Automatiza las versiones seguras de aplicaciones
- Asegúrate de que las implementaciones de la aplicación sigan los procesos aprobados
- Analiza en busca de vulnerabilidades conocidas antes de la implementación de la aplicación
- Supervisa el código de tu aplicación en busca de vulnerabilidades conocidas
Adopta controles de seguridad preventivos
Esta recomendación es pertinente para las siguientes áreas de enfoque:
- Administración de identidades y accesos
- Administración, riesgo y cumplimiento de 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 manera eficiente y garantizar el cumplimiento de los estándares de la industria y las políticas internas.
Los controles de seguridad preventivos son más eficaces cuando se implementan con infraestructura como código (IaC). Con IaC, los controles de seguridad preventivos pueden incluir verificaciones más personalizadas en el código de infraestructura antes de que se implementen los cambios. Cuando se combinan con la automatización, los controles de seguridad preventivos pueden ejecutarse como parte de las verificaciones automáticas de tu canalización de CI/CD.
Los siguientes productos y Google Cloud capacidades pueden ayudarte a implementar controles preventivos en tu entorno:
- Restricciones del Servicio de políticas de la organización: Configura restricciones predefinidas y personalizadas con control centralizado.
- Controles del servicio de VPC: Crea perímetros alrededor de tus servicios de Google Cloud .
- Identity and Access Management (IAM), Privileged Access Manager y políticas de límite de acceso de la entidad principal: Restringen el acceso a los recursos.
- Policy Controller y Open Policy Agent (OPA): Aplica restricciones de IaC en tu canalización de CI/CD y evita errores de configuración en la nube.
IAM te permite autorizar quién puede actuar sobre recursos específicos en función de los permisos. Para obtener más información, consulta Control de acceso a los recursos de la organización con IAM.
El Servicio de políticas de la organización te permite establecer restricciones en los recursos para especificar cómo se pueden configurar. Por ejemplo, puedes usar una política de la organización para hacer lo siguiente:
- Limitar el uso compartido de recursos según el dominio.
- Limitar el uso de 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 con los siguientes métodos:
- Etiquetas con IAM: Asigna una etiqueta a un conjunto de recursos y, luego, establece la definición de acceso para la etiqueta, en lugar de definir los permisos de acceso en cada recurso.
- Condiciones de IAM: Definen el control de acceso condicional basado en atributos para los recursos.
- Defensa en profundidad: Usa los Controles del servicio de VPC para restringir aún más el acceso a los recursos.
Para obtener más información sobre la administración de recursos, consulta Elige una jerarquía de recursos para tu Google Cloud zona de destino.
Automatiza el aprovisionamiento y la administración de los recursos de la nube
Esta recomendación es pertinente para las siguientes áreas de enfoque:
- Seguridad para aplicaciones
- Administración, riesgo y cumplimiento de la nube
Automatizar el aprovisionamiento y la administración de recursos y cargas de trabajo en la nube es más eficaz cuando también adoptas IaC declarativa, en lugar de secuencias de comandos imperativas. La 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 la IaC te permite crear una infraestructura repetible y proporciona a tu equipo de operaciones un buen estado conocido. La IaC también mejora la eficiencia de las reversiones, los cambios de auditoría y la solución de problemas.
Cuando se combina con canalizaciones de CI/CD y automatización, la IaC también te brinda la capacidad de 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 verificaciones automáticas en el código de infraestructura antes de que se implementen los cambios.
Para automatizar la implementación de la infraestructura, puedes usar herramientas como Config Controller, Terraform, Jenkins y Cloud Build. Para ayudarte a compilar un entorno de aplicación seguro con IaC y automatización,Google Cloud proporciona el plano de bases empresariales. Este plano es el diseño bien definido de Google que sigue todas nuestras prácticas y configuraciones recomendadas. El blueprint proporciona instrucciones paso a paso para configurar e implementar tu topología de Google Cloud con Terraform y Cloud Build.
Puedes modificar las secuencias de comandos del plano de base empresarial para configurar un entorno que siga las recomendaciones de Google y satisfaga tus propios requisitos de seguridad. Puedes desarrollar aún más el plano con planos adicionales o diseñar tu propia automatización. ElGoogle Cloud Centro de arquitectura proporciona otros planos que se pueden implementar sobre el plano de bases empresariales. A continuación, se incluyen algunos ejemplos de estos planes:
- Implementa una plataforma para desarrolladores empresariales en Google Cloud
- Implementa una arquitectura segura sin servidores con Cloud Run
- Crea e implementa modelos de IA generativa y aprendizaje automático en una empresa
- Importa datos de Google Cloud a un almacén de datos seguro de BigQuery
Automatiza las versiones seguras de aplicaciones
Esta recomendación es pertinente para la siguiente área de enfoque: Seguridad para aplicaciones.
Sin herramientas automatizadas, puede ser difícil implementar, actualizar y aplicar parches a entornos de aplicaciones complejos para cumplir con los requisitos de seguridad coherentes. Te recomendamos que compiles canalizaciones de CI/CD automatizadas para tu ciclo de vida de desarrollo de software (SDLC). Las canalizaciones de CI/CD automatizadas te ayudan a quitar errores manuales, proporcionar ciclos de reacción de desarrollo estandarizados y habilitar iteraciones eficientes de productos. La entrega continua es una de las prácticas recomendadas que sugiere el marco de DORA.
Automatizar los lanzamientos de aplicaciones con canalizaciones de CI/CD ayuda a mejorar tu capacidad para detectar y corregir errores de seguridad de forma temprana, rápida y confiable. Por ejemplo, puedes analizar automáticamente las vulnerabilidades de seguridad cuando se crean artefactos, reducir el alcance de las revisiones de seguridad y revertir a una versión segura y conocida. También puedes definir políticas para diferentes entornos (como entornos de desarrollo, prueba o producción) de modo que solo se implementen los artefactos verificados.
Para ayudarte a automatizar las versiones de aplicaciones y a incorporar verificaciones de seguridad en tu canalización 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 SDLC, usa el framework de Niveles de cadena de suministro para artefactos de software (SLSA), que definió Google. La SLSA requiere verificaciones de seguridad para el código fuente, el proceso de compilación y el origen del código. Muchos de estos requisitos se pueden incluir en una canalización de CI/CD automatizada. Para comprender cómo Google aplica estas prácticas de forma interna, consulta El enfoque deGoogle Cloudpara el cambio.
Asegúrese de que las implementaciones de la aplicación sigan los procesos aprobados
Esta recomendación es pertinente para la siguiente área de enfoque: Seguridad para aplicaciones.
Si un atacante compromete tu canalización de CI/CD, toda la pila de aplicaciones puede verse afectada. Para ayudar a proteger la canalización, debes aplicar un proceso de aprobación establecido antes de implementar el código en producción.
Si usas Google Kubernetes Engine (GKE), GKE Enterprise o Cloud Run, puedes establecer un proceso de aprobación con la autorización binaria. La autorización binaria adjunta firmas configurables a las imágenes del contenedor. Estas firmas (también llamadas certificaciones) ayudan a validar la imagen. En el momento de la implementación, la autorización binaria usa estas certificaciones para determinar si se completó un proceso. Por ejemplo, puedes usar la autorización binaria para realizar las siguientes acciones:
- Verificar que un sistema de compilación específico o una canalización de CI hayan creado una imagen de contenedor
- Validar que una imagen de contenedor cumpla con la política de firma de vulnerabilidades.
- Verificar que una imagen de contenedor pase los criterios para ascender al siguiente entorno de implementación, por ejemplo, desde el desarrollo hasta el control de calidad
Con la Autorización binaria, puedes aplicar que solo se ejecute código de confianza en tus plataformas de destino.
Analiza en busca de vulnerabilidades conocidas antes de la implementación de la aplicación
Esta recomendación es pertinente para la siguiente área de enfoque: Seguridad para aplicaciones.
Te recomendamos que uses herramientas automatizadas que puedan realizar análisis de vulnerabilidades de forma continua en artefactos de aplicaciones antes de que se implementen en la 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 contenedores. Artifact Analysis analiza las imágenes nuevas cuando se suben a Artifact Registry. El análisis extrae información sobre los paquetes del sistema en el contenedor. Después del análisis inicial, Artifact Analysis supervisa continuamente los metadatos de las imágenes analizadas en Artifact Registry para detectar vulnerabilidades nuevas. Cuando Artifact Analysis recibe información nueva y actualizada sobre vulnerabilidades de fuentes de vulnerabilidades, hace lo siguiente:
- Actualiza los metadatos de las imágenes analizadas para mantenerlas actualizadas.
- Crea casos de vulnerabilidades nuevos para las notas nuevas.
- Borra los casos de vulnerabilidades que ya no son válidos.
Supervise el código de la aplicación en busca de vulnerabilidades conocidas
Esta recomendación es pertinente para la siguiente área de enfoque: Seguridad para aplicaciones.
Usa herramientas automatizadas para supervisar constantemente el código de tu aplicación en busca de vulnerabilidades conocidas, como OWASP Top 10. Para obtener más información sobre los Google Cloud productos y las funciones que admiten las técnicas de mitigación de OWASP Top 10, consulta lasopciones de mitigación de OWASP Top 10 en Google Cloud.
Usa Web Security Scanner para identificar las vulnerabilidades de seguridad en tus aplicaciones web de App Engine, Compute Engine y GKE. El scanner rastrea tu aplicación, sigue todos los vínculos dentro del alcance de tus URLs de inicio y trata de ejecutar la mayor cantidad posible de controladores de eventos y entradas del usuario. Puede analizar y detectar automáticamente vulnerabilidades comunes, incluidas las secuencias de comandos entre sitios, la inyección de código, el contenido mixto y las bibliotecas desactualizadas o inseguras. Web Security Scanner proporciona una identificación temprana de estos tipos de vulnerabilidades sin distraerte con falsos positivos.
Además, si usas GKE Enterprise para administrar flotas de clústeres de Kubernetes, el panel de postura de seguridad muestra recomendaciones prácticas y revisadas para ayudarte a mejorar la postura de seguridad de tu flota.