Implementa la seguridad basada en pruebas tempranas

Last reviewed 2025-02-05 UTC

Este principio del pilar de seguridad del Google Cloud Marco de trabajo de Well-Architected te ayuda a identificar controles prácticos que puedes implementar en las primeras etapas del ciclo de vida del desarrollo de software para mejorar tu postura de seguridad. Proporciona recomendaciones que te ayudan a implementar barreras de seguridad preventivas 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 las primeras etapas 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. Implementar barreras de seguridad preventivas y adoptar 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 en el sistema. Adoptar prácticas como revisiones de código, análisis de vulnerabilidades posteriores a la implementación y pruebas de seguridad.

Los principios de implementación de la seguridad por diseño y la seguridad de detección temprana de errores están relacionados, pero difieren en el alcance. El principio de seguridad por diseño te ayuda a evitar fallas de diseño fundamentales que requerirían volver a diseñar 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 detección temprana de errores 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 detección temprana de errores en tus cargas de trabajo en la nube, considera las recomendaciones de las siguientes secciones:

Adopta controles de seguridad preventivos

Esta recomendación es relevante para las siguientes áreas de enfoque:

  • Administración de identidades y accesos
  • Administración, riesgo 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 configuraciones incorrectas y el acceso no autorizado 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 la 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:

IAM te permite autorizar quién puede actuar en recursos específicos según los permisos. Para obtener más información, consulta Control de acceso para 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:

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 sí, en lugar de definir los permisos de acceso en cada recurso.
  • Condiciones de IAM: Define 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 recursos en la nube

Esta recomendación es relevante para las siguientes áreas de enfoque:

  • Seguridad para aplicaciones
  • Administración, riesgo y cumplimiento en 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 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 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 de 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 aplicaciones 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 plano proporciona instrucciones paso a paso para configurar y, luego, implementar tu Google Cloud topología con Terraform y Cloud Build.

Puedes modificar las secuencias de comandos del plano de bases empresariales para configurar un entorno que siga las recomendaciones de Google y cumpla con tus propios requisitos de seguridad. Puedes compilar aún más el plano con planos adicionales o diseñar tu propia automatización. El Google Cloud Architecture Center proporciona otros planos que se pueden implementar sobre el plano de bases empresariales. Los siguientes son algunos ejemplos de estos planos:

Automatiza las versiones seguras de aplicaciones

Esta recomendación es relevante para el 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 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, proporcionan ciclos de reacción de desarrollo estandarizados y habilitan iteraciones eficientes de productos. La entrega continua es una de las prácticas recomendadas que el framework de DORA recomienda.

Automatizar las versiones 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 conocida y segura. 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, incluidas 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. SLSA requiere verificaciones 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 una canalización de CI/CD automatizada. Para comprender cómo Google aplica estas prácticas de forma interna, consulta el enfoque de Google Cloud's para el cambio.

Asegúrate de que las implementaciones de la aplicación sigan los procesos aprobados

Esta recomendación es relevante para el siguiente área de enfoque: Seguridad para aplicaciones.

Si un atacante pone en riesgo tu canalización de CI/CD, toda tu 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) 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 relevante para el 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 la fuente 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.

Supervisa el código de la aplicación en busca de vulnerabilidades conocidas

Esta recomendación es relevante para el 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 Google Cloud los productos y las funciones que admiten las 10 técnicas principales de mitigación de OWASP, consulta Las 10 opciones principales de mitigación de OWASP en Google Cloud.

Usa Web Security Scanner para identificar las vulnerabilidades de seguridad en las aplicaciones web de App Engine, Compute Engine y GKE. El scanner rastrea la aplicación, sigue todos los vínculos dentro del alcance de las URL de inicio y trata de ejecutar la mayor cantidad posible de controladores de eventos y entradas del usuario. Puede analizar y detectar automáticamente vulnerabilidades comunes, entre las que se incluyen secuencias de comandos entre sitios, inyección de código, contenido mixto, y 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 para administrar flotas de clústeres de Kubernetes, el panel de postura de seguridad muestra recomendaciones prácticas y bien definidas para ayudar a mejorar la postura de seguridad de tu flota.