Implementa la seguridad según el diseño

Last reviewed 2025-02-05 UTC

Este principio del pilar de seguridad del framework de arquitectura proporciona recomendaciones para incorporar funciones, controles y prácticas de seguridad sólidas en el diseño de tus aplicaciones, servicios y plataformas en la nube.Google Cloud Desde la ideación hasta las operaciones, la seguridad es más eficaz cuando se incorpora como parte integral de cada etapa del proceso de diseño.

Descripción general de los principios

Como se explica en la descripción general del compromiso de Google con la seguridad por diseño, seguro de forma predeterminada y seguro por diseño suelen usarse indistintamente, pero representan enfoques distintos para crear sistemas seguros. Ambos enfoques tienen como objetivo minimizar las vulnerabilidades y mejorar la seguridad, pero difieren en el alcance y la implementación:

  • Seguro de forma predeterminada: Se enfoca en garantizar que la configuración predeterminada de un sistema esté configurada en un modo seguro, lo que minimiza la necesidad de que los usuarios o administradores realicen acciones para proteger el sistema. El objetivo de este enfoque es proporcionar un nivel de seguridad básico para todos los usuarios.
  • Seguridad por diseño: Destaca la incorporación proactiva de consideraciones de seguridad durante el ciclo de vida de desarrollo de un sistema. Este enfoque consiste en anticipar posibles amenazas y vulnerabilidades con anticipación y tomar decisiones de diseño que mitiguen los riesgos. Este enfoque implica usar prácticas de programación seguras, realizar revisiones de seguridad y, además, incorporar la seguridad en todo el proceso de diseño. El enfoque de seguridad integrada es una filosofía general que guía el proceso de desarrollo y ayuda a garantizar que la seguridad no sea una idea adicional, sino una parte integral del diseño de un sistema.

Recomendaciones

Para implementar el principio de seguridad por diseño en tus cargas de trabajo en la nube, ten en cuenta las recomendaciones de las siguientes secciones:

Elige componentes del sistema que ayuden a proteger tus cargas de trabajo

Esta recomendación es relevante para todas las áreas de enfoque.

Una decisión fundamental para una seguridad eficaz es la selección de componentes del sistema sólidos, incluidos los componentes de hardware y software, que constituyen tu plataforma, solución o servicio. Para reducir la superficie de ataque de seguridad y limitar el daño potencial, también debes considerar cuidadosamente los patrones de implementación de estos componentes y sus configuraciones.

En el código de tu aplicación, te recomendamos que uses bibliotecas, abstracciones y frameworks de aplicaciones simples, seguras y confiables para eliminar clases de vulnerabilidades. Para buscar vulnerabilidades en las bibliotecas de software, puedes usar herramientas de terceros. También puedes usar software de código abierto garantizado, que ayuda a reducir los riesgos de tu cadena de suministro de software mediante el uso de paquetes de software de código abierto (OSS) que Google usa y protege.

Tu infraestructura debe usar opciones de redes, almacenamiento y procesamiento que admitan una operación segura y se alineen con tus requisitos de seguridad y niveles de aceptación de riesgos. La seguridad de la infraestructura es importante para las cargas de trabajo internas y las orientadas a Internet.

Si quieres obtener información sobre otras soluciones de Google que admiten esta recomendación, consulta Cómo implementar la seguridad de desplazamiento hacia la izquierda.

Compila un enfoque de seguridad en capas

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

  • Seguridad de la IA y el AA
  • Seguridad de la infraestructura
  • Administración de identidades y accesos
  • Seguridad de los datos

Te recomendamos que implementes la seguridad en cada capa de la aplicación y la pila de infraestructura mediante un enfoque de defensa en profundidad.

Usa las funciones de seguridad en cada componente de tu plataforma. Para limitar el acceso y identificar los límites del posible impacto (es decir, el radio de explosión) en caso de un incidente de seguridad, haz lo siguiente:

  • Simplifica el diseño del sistema para adaptarlo a la flexibilidad siempre que sea posible.
  • Documenta los requisitos de seguridad de cada componente.
  • Incorpora un mecanismo seguro y sólido para abordar los requisitos de resiliencia y recuperación.

Cuando diseñes las capas de seguridad, realiza una evaluación de riesgos para determinar las funciones de seguridad que necesitas para cumplir con los requisitos de seguridad internos y los requisitos regulatorios externos. Te recomendamos que uses un marco de trabajo de evaluación de riesgos estándar de la industria que se aplique a los entornos de nube y que sea relevante para tus requisitos normativos. Por ejemplo, Cloud Security Alliance (CSA) proporciona Cloud Controls Matrix (CCM). La evaluación de riesgos te proporciona un catálogo de riesgos y los controles de seguridad correspondientes para mitigarlos.

Cuando realices la evaluación de riesgos, recuerda que tienes un acuerdo de responsabilidad compartida con tu proveedor de servicios en la nube. Por lo tanto, los riesgos en un entorno de nube difieren de los riesgos en un entorno local. Por ejemplo, en un entorno local, debes mitigar las vulnerabilidades de la pila de hardware. En cambio, en un entorno de nube, el proveedor de servicios en la nube asume estos riesgos. Además, recuerda que los límites de las responsabilidades compartidas difieren entre los servicios de IaaS, PaaS y SaaS de cada proveedor de servicios en la nube.

Después de identificar los posibles riesgos, debes diseñar y crear un plan de mitigación que use controles técnicos, administrativos y operativos, así como protecciones contractuales y certificaciones de terceros. Además, un método de modelado de amenazas, como el método de modelado de amenazas de aplicaciones de OWASP, te ayuda a identificar posibles brechas y a sugerir acciones para abordarlas.

Usa servicios y una infraestructura endurecida y certificada

Esta recomendación es relevante para todas las áreas de enfoque.

Un programa de seguridad maduro mitiga las vulnerabilidades nuevas, como se describe en los boletines de seguridad. El programa de seguridad también debe proporcionar una solución para corregir las vulnerabilidades en las implementaciones existentes y proteger las imágenes de la VM y del contenedor. Puedes usar guías de endurecimiento específicas para el SO y la aplicación de tus imágenes, así como comparativas como la que proporciona el Center for Internet Security (CIS).

Si usas imágenes personalizadas para tus VMs de Compute Engine, debes aplicarles parches por tu cuenta. Como alternativa, puedes usar las imágenes de SO seleccionadas que proporciona Google, a las que se les aplican parches con regularidad. Para ejecutar contenedores en VMs de Compute Engine, usa las imágenes de SO optimizadas para contenedores seleccionadas por Google. Google aplica parches a estas imágenes y las actualiza con regularidad.

Si usas GKE, te recomendamos que habilites las actualizaciones automáticas de nodos para que Google actualice los nodos del clúster con los últimos parches. Google administra los planos de control de GKE, que se actualizan y se parchan automáticamente. Para reducir aún más la superficie de ataque de tus contenedores, puedes usar imágenes sin distro. Las imágenes distroless son ideales para aplicaciones sensibles a la seguridad, microservicios y situaciones en las que es fundamental minimizar el tamaño de la imagen y la superficie de ataque.

Para cargas de trabajo sensibles, usa la VM protegida, que evita que se cargue código malicioso durante el ciclo de inicio de la VM. Las instancias de VM protegidas proporcionan seguridad de inicio, supervisan la integridad y usan el Módulo de plataforma de confianza virtual (vTPM).

Para ayudar a proteger el acceso SSH, el Acceso al SO permite que tus empleados se conecten a tus VMs mediante permisos de Identity and Access Management (IAM) como fuente de información, en lugar de depender de las claves SSH. Por lo tanto, no es necesario que administres claves SSH en toda la organización. El Acceso al SO vincula el acceso de un administrador a su ciclo de vida de empleado, de modo que, cuando los empleados cambian de rol o abandonan tu organización, su acceso se revoca con su cuenta. El Acceso al SO también admite la autenticación de dos factores de Google, que agrega una capa de seguridad adicional contra los ataques de apropiación de cuentas.

En GKE, las instancias de aplicación se ejecutan dentro de contenedores de Docker. Para habilitar un perfil de riesgo definido y evitar que los empleados realicen cambios en los contenedores, asegúrate de que tus contenedores sean inmutables y sin estado. El principio de inmutabilidad significa que tus empleados no modifican el contenedor ni acceden a él de forma interactiva. Si se debe cambiar el contenedor, compila una imagen nueva y vuelve a implementarla. Habilita el acceso SSH a los contenedores subyacentes solo en situaciones de depuración específicas.

Para ayudar a proteger de forma global las configuraciones de tu entorno, puedes usar políticas de la organización para establecer restricciones o límites en los recursos que afectan el comportamiento de tus activos en la nube. Por ejemplo, puedes definir las siguientes políticas de la organización y aplicarlas de forma global en una Google Cloud organización o de forma selectiva a nivel de una carpeta o un proyecto:

  • Inhabilita la asignación de direcciones IP externas a las VMs.
  • Restringe la creación de recursos a ubicaciones geográficas específicas.
  • Inhabilita la creación de cuentas de servicio o sus claves.

Encriptación de datos en reposo y en tránsito

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

  • Seguridad de la infraestructura
  • Seguridad de los datos

La encriptación de datos es un control fundamental para proteger la información sensible y es una parte clave de la administración de datos. Una estrategia de protección de datos eficaz incluye el control de acceso, la segmentación de datos y la residencia geográfica, la auditoría y la implementación de encriptación que se basa en una evaluación cuidadosa de los requisitos.

De forma predeterminada, Google Cloud encripta los datos del cliente almacenados en reposo, sin que debas realizar ninguna acción. Además de la encriptación predeterminada,Google Cloud proporciona opciones para la encriptación de sobre y la administración de claves de encriptación. Debes identificar las soluciones que se adapten mejor a tus requisitos de generación, almacenamiento y rotación de claves, ya sea que elijas las claves para tu almacenamiento, procesamiento o cargas de trabajo de macrodatos. Por ejemplo, las claves de encriptación administradas por el cliente (CMEK) se pueden crear en Cloud Key Management Service (Cloud KMS). Las CMEK pueden estar basadas en software o protegidas por HSM para cumplir con tus requisitos regulatorios o de cumplimiento, como la necesidad de rotar las claves de encriptación con regularidad. Autokey de Cloud KMS te permite automatizar el aprovisionamiento y la asignación de CMEK. Además, puedes usar Cloud External Key Manager (Cloud EKM) para incorporar tus propias claves que provienen de un sistema de administración de claves de terceros.

Te recomendamos que los datos estén encriptados durante el tránsito. Google encripta y autentica los datos en tránsito en una o más capas de red cuando los datos se transfieren fuera de los límites físicos que Google no controla o que no actúan en su nombre. Se encripta todo el tráfico de VM a VM dentro de una red de VPC y entre redes de VPC con intercambio de tráfico. Puedes usar MACsec para encriptar el tráfico a través de conexiones de Cloud Interconnect. IPsec proporciona encriptación para el tráfico a través de las conexiones de Cloud VPN. Puedes proteger el tráfico de aplicación a aplicación en la nube con funciones de seguridad como parámetros de configuración de TLS y mTLS en Apigee y Cloud Service Mesh para aplicaciones alojadas en contenedores.

De forma predeterminada, Google Cloud encripta los datos en reposo y en tránsito a través de la red. Sin embargo, los datos no se encriptan de forma predeterminada mientras están en uso en la memoria. Si tu organización maneja datos confidenciales, debes mitigar las amenazas que comprometen la confidencialidad y la integridad de la aplicación o los datos en la memoria del sistema. Para mitigar estas amenazas, puedes usar la computación confidencial, que proporciona un entorno de ejecución confiable para tus cargas de trabajo de procesamiento. Para obtener más información, consulta Descripción general de Confidential VMs.