Implementa aplicaciones de manera segura

Last reviewed 2023-08-08 UTC

En este documento del framework de arquitectura de Google Cloud, se proporcionan prácticas recomendadas para implementar aplicaciones de forma segura.

Para implementar aplicaciones seguras, debes tener un ciclo de vida de desarrollo de software bien definido, con verificaciones de seguridad adecuadas durante las etapas de diseño, desarrollo, prueba e implementación. Cuando diseñas una aplicación, recomendamos una arquitectura de sistema en capas que usa frameworks estandarizados para la identidad, la autorización y el control de acceso.

Automatiza las versiones seguras

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. Por lo tanto, recomendamos que compiles una canalización de CI/CD para estas tareas, lo que puede resolver muchos de estos problemas. Las canalizaciones automatizadas quitan errores manuales, proporcionan ciclos de reacción de desarrollo estandarizados y habilitan iteraciones rápidas de productos. Por ejemplo, los grupos privados de Cloud Build te permiten implementar una canalización de CI/CD administrada y muy segura para sectores altamente regulados, como las finanzas y la atenión médica.

Puedes usar la automatización para analizar las vulnerabilidades de seguridad cuando se crean artefactos. También puedes definir políticas para diferentes entornos (desarrollo, prueba, producción, etc.) de modo que solo se implementen los artefactos verificados.

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

Si un atacante pone en riesgo tu canalización de CI/CD, toda tu pila 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 planeas usar Google Kubernetes Engine (GKE) o GKE Enterprise, puedes establecer estas verificaciones y equilibrios 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 la implementación, la autorización binaria usa estas certificaciones para determinar si un proceso se completó antes. 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 integración continua (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

Escanea en busca de vulnerabilidades conocidas antes de la implementación

Te recomendamos que uses herramientas automatizadas que puedan realizar análisis de vulnerabilidades de forma continua en imágenes de contenedor antes de que los contenedores se implementen en la producción.

Usa Artifact Analysis para escanear de forma automática las vulnerabilidades de los contenedores almacenados en Artifact Registry y Container Registry. Este proceso incluye dos tareas: el escaneo y el análisis continuo.

Para comenzar, Artifact Analysis escanea las imágenes nuevas cuando se suben a Artifact Registry o Container Registry. El análisis extrae información sobre los paquetes del sistema en el contenedor.

Artifact Analysis busca vulnerabilidades cuando subes la imagen. Después del análisis inicial, Artifact Analysis supervisa continuamente los metadatos de las imágenes analizadas en Artifact Registry y Container 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

Se recomienda usar herramientas automatizadas que puedan supervisar el código de la aplicación de forma constante en busca de vulnerabilidades conocidas, como OWASP Top 10. Para obtener una descripción de los productos y las funciones de Google Cloud que admiten las 10 técnicas principales de mitigación de OWASP, consulta Las 10 opciones principales de mitigación de OWASP.

Usa Web Security Scanner para identificar las vulnerabilidades de seguridad en las aplicaciones web de App Engine, Compute Engine y Google Kubernetes Engine. El scanner Rastrea la aplicación, para lo cual 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 de forma automática las vulnerabilidades comunes, incluidas las secuencias de comandos entre sitios (XSS), la inyección de Flash, el contenido mixto (HTTP en HTTPS) y las bibliotecas desactualizadas o inseguras. Web Security Scanner te brinda una identificación temprana de estos tipos de vulnerabilidades con bajas tasas de falsos positivos.

Controla el movimiento de datos entre perímetros

Para controlar el movimiento de datos en un perímetro, puedes configurar perímetros de seguridad en torno a los recursos de tus servicios administrados por Google. Usa los Controles del servicio de VPC para colocar todos los componentes y servicios en tu canalización de CI/CD (por ejemplo, Container Registry, Artifact Registry, Artifact Analysis y la autorización binaria) dentro de un perímetro de seguridad.

Los Controles del servicio de VPC mejoran tu capacidad de mitigar el riesgo de copia o transferencia de datos no autorizadas (robo de datos) de los servicios administrados por Google. Con los Controles del servicio de VPC, puedes configurar perímetros de seguridad en torno a los recursos de los servicios administrados por Google y controlar el movimiento de datos en los límites perimetrales. Cuando un perímetro de servicio se aplica de manera forzosa, las solicitudes que infringen la política del perímetro se rechazan, como las solicitudes que se realizan a servicios protegidos fuera del perímetro. Cuando un servicio está protegido por un perímetro de aplicación forzosa, los Controles del servicio de VPC garantizan lo siguiente:

  • Un servicio no puede transmitir datos fuera del perímetro. Los servicios protegidos funcionan con normalidad dentro del perímetro, pero no pueden enviar recursos y datos fuera del perímetro. Esta restricción ayuda a evitar que los usuarios maliciosos con información privilegiada que podrían tener acceso a proyectos en el perímetro roben datos.
  • Las solicitudes que provienen del exterior del perímetro al servicio protegido se respetan solo si las solicitudes cumplen con los criterios de los niveles de acceso que se asignaron al perímetro.
  • Los proyectos pueden acceder a ese servicio en otros perímetros mediante puentes perimetrales.

Encripta tus imágenes de contenedor

En Google Cloud, puedes encriptar tus imágenes de contenedor mediante las claves de encriptación administradas por el cliente (CMEK). Las claves CMEK se administran en Cloud Key Management Service (Cloud KMS). Cuando usas CMEK, puedes inhabilitar o destruir la clave para inhabilitar de forma temporal o permanente el acceso a una imagen de contenedor encriptada.

¿Qué sigue?

Obtén más información para proteger la cadena de suministro y la Seguridad para aplicaciones con los siguientes recursos: