Implementa la seguridad temprana

Last reviewed 2025-02-05 UTC

Este principio en el pilar de seguridad del Google Cloud Marco de trabajo bien arquitectónico te ayuda a identificar controles prácticos que puedes implementar al principio del ciclo de vida de desarrollo de software para mejorar tu postura de seguridad. Se proporcionan recomendaciones que te ayudan a implementar protecciones de seguridad preventivas y controles de seguridad posteriores a la implementación.

Descripción general de los principios

Seguridad con detección temprana de errores significa adoptar prácticas de seguridad al principio del ciclo de vida del desarrollo de software. Este principio tiene los siguientes objetivos:

  • Evita los defectos de seguridad antes de realizar cambios en el sistema. Implementa barreras de seguridad preventivas y adopta prácticas como infraestructura como código (IaC), política como código y verificaciones 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 endurecidos en Google Cloud.
  • Detecta y corrige errores de seguridad con anticipación, rapidez y confiabilidad 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 seguridad de Implementa la seguridad por diseño y de detección temprana de errores están relacionados, pero tienen un alcance diferente. El principio de seguridad por diseño te ayuda a evitar fallas de diseño fundamentales que requerirían la reestructuración de todo el sistema. Por ejemplo, el ejercicio de modelado de amenazas revela que el diseño actual no incluye una política de autorización, y 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 en la implementación (errores y parámetros de configuración incorrectos) 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, ten en cuenta 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 de la nube

Los controles de seguridad preventivos son cruciales para mantener una postura de seguridad sólida en la nube. Estos controles te ayudan a mitigar los riesgos de forma proactiva. Puedes evitar parámetros de configuración incorrectos y accesos no autorizados a los recursos, permitir que los desarrolladores trabajen de manera eficiente y ayudar a 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 la IaC, los controles de seguridad preventivos pueden incluir verificaciones más personalizadas en el código de la infraestructura antes de que se implementen los cambios. Cuando se combinan con la automatización, los controles de seguridad preventivos se pueden ejecutar como parte de las verificaciones automáticas de la canalización de CI/CD.

Los siguientes productos y Google Cloud funciones pueden ayudarte a implementar controles preventivos en tu entorno:

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:

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, configura 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 relevante 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 de la nube es más efectivo cuando también adoptas la IaC declarativa, en lugar de las 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 le proporciona a tu equipo de operaciones un 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 la automatización y las canalizaciones de CI/CD, la IaC también te permite adoptar prácticas como la política como código con herramientas como OPA. Puedes auditoría los cambios de infraestructura a lo largo del tiempo y ejecutar verificaciones automáticas en el código de la infraestructura antes de que se implementen los cambios.

Para automatizar la implementación de la infraestructura, puedes usar herramientas como Controlador de configuración, Terraform, Jenkins y Cloud Build. Para ayudarte a compilar un entorno de aplicaciones seguro con IaC y la automatización,Google Cloud proporciona el plano de bases empresariales. Este modelo es el diseño definido de Google que sigue todas nuestras configuraciones y prácticas recomendadas. El plano proporciona instrucciones paso a paso para configurar y, luego, implementar tu topología Google Cloud con Terraform y Cloud Build.

Puedes modificar las secuencias de comandos del plano de bases de Enterprise para configurar un entorno que siga las recomendaciones de Google y que cumpla con tus propios requisitos de seguridad. Puedes desarrollar el plan con planos adicionales o diseñar tu propia automatización. ElGoogle Cloud Centro de arquitectura proporciona otros planos que pueden implementarse sobre el plano de bases empresariales. Los siguientes son algunos ejemplos de estos planos:

Automatiza los lanzamientos seguros de aplicaciones

Esta recomendación es relevante para el siguiente área de enfoque: seguridad de la aplicación.

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 automatizadas de CI/CD te ayudan a quitar errores manuales, proporcionar ciclos de comentarios estandarizados sobre el desarrollo y habilitar iteraciones eficientes de productos. La entrega continua es una de las prácticas recomendadas del framework de DORA.

Automatizar los lanzamientos de aplicaciones con canalizaciones de CI/CD ayuda a mejorar tu capacidad de detectar y corregir errores de seguridad de forma anticipada, rápida y confiable. Por ejemplo, puedes analizar vulnerabilidades de seguridad automáticamente 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 también 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 marco de trabajo de Niveles de cadena de suministro para artefactos de software (SLSA) que definió Google. El 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 deGoogle Cloudpara el cambio.

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

Esta recomendación es relevante para el siguiente área de enfoque: seguridad de la aplicación.

Si un atacante compromete la 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 mediante 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 hacer lo siguiente:

  • 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.
  • Verifica que una imagen de contenedor pase los criterios de ascenso al siguiente entorno de implementación, como del desarrollo al control de calidad.

Mediante la autorización binaria, puedes exigir que solo se ejecute el código de confianza en las plataformas de destino.

Analizar en busca de vulnerabilidades conocidas antes de implementar la aplicación

Esta recomendación es relevante para el siguiente área de enfoque: seguridad de la aplicación.

Te recomendamos que uses herramientas automatizadas que puedan realizar análisis de vulnerabilidades de manera continua en los artefactos de la aplicación antes de que se implementen en la producción.

En el caso de las aplicaciones alojadas en contenedores, usa Artifact Analysis para ejecutar de forma automática análisis de vulnerabilidades de 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 de forma continua los metadatos de las imágenes analizadas en Artifact Registry para detectar vulnerabilidades nuevas. Cuando Artifact Analysis recibe información de vulnerabilidad nueva y actualizada 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 relevante para el siguiente área de enfoque: seguridad de la aplicación.

Usa herramientas automatizadas para supervisar constantemente el código de la 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 de mitigación principales de OWASP, consulta las 10 opciones de mitigación principales 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 tu aplicación, sigue todos los vínculos dentro del alcance de las 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 las 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 Enterprise 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.