Opsio - Cloud and AI Solutions

Mejores prácticas de seguridad de contenedores para entornos de producción

Publicado: ·Actualizado: ·Revisado por el equipo de ingeniería de Opsio
Traducido del inglés y revisado por el equipo editorial de Opsio. Ver original →
Fredrik Karlsson

Group COO & CISO

Operational excellence, governance, and information security. Aligns technology, risk, and business outcomes in complex IT environments

Mejores prácticas de seguridad de contenedores para entornos de producción

¿Sus contenedores son lo suficientemente seguros para la producción?Los contenedores brindan un excelente aislamiento entre aplicaciones, pero las configuraciones incorrectas, las imágenes vulnerables y las configuraciones de tiempo de ejecución inseguras pueden hacer que los contenedores pasen de ser una ventaja de seguridad a convertirse en una desventaja. Esta guía cubre las prácticas de seguridad que requieren los entornos de contenedores de producción.

Conclusiones clave

  • Comience con imágenes mínimas:Las imágenes Distroless y Alpine reducen la superficie de ataque en un 90 % en comparación con las imágenes completas del sistema operativo.
  • Escanear en cada etapa:Construya, impulse, implemente y continuamente en el registro. Las vulnerabilidades se descubren después de la implementación.
  • Nunca ejecutar como root:Los contenedores raíz pueden escapar al huésped. Los contenedores que no son raíz están contenidos incluso si están comprometidos.
  • Sistemas de archivos de solo lectura:Si no es necesario escribir en el contenedor, haga que el sistema de archivos sea de solo lectura para evitar la persistencia del malware.
  • El monitoreo en tiempo de ejecución detecta lo que el escaneo omite:Los exploits de día cero, los ataques a la cadena de suministro y las amenazas internas requieren detección en tiempo de ejecución.

Seguridad de imagen

Utilice imágenes base mínimas

Cada paquete en una imagen de contenedor es una superficie de ataque potencial. Una imagen típica de Ubuntu contiene más de 100 paquetes; una imagen sin distribución contiene solo el tiempo de ejecución de la aplicación. Utilice Google Distroless para las aplicaciones Java, Python, Node.js y Go. Utilice Alpine (5 MB) cuando necesite un shell para depurar. Nunca utilice imágenes completas del sistema operativo (Ubuntu, Debian, CentOS) en producción: contienen cientos de paquetes innecesarios con vulnerabilidades conocidas.

Construcciones de varias etapas

Utilice Dockerfiles de varias etapas para separar las dependencias de compilación de las imágenes en tiempo de ejecución. La etapa de construcción incluye compiladores, administradores de paquetes y herramientas de desarrollo. La etapa final contiene sólo la aplicación compilada y dependencias mínimas de tiempo de ejecución. Esto evita que las herramientas de compilación (que a menudo tienen CVE de alta gravedad) aparezcan en las imágenes de producción.

Tubería de escaneo de imágenes

  • Tiempo de construcción:Escanee la canalización CI antes de ingresar al registro. Construcciones de bloques con vulnerabilidades críticas.
  • Registro:El escaneo continuo en ECR, ACR o Harbor captura CVE recién descubiertos en imágenes existentes.
  • Entrada:Los controladores de admisión Kubernetes verifican los resultados del escaneo de imágenes antes de permitir la implementación.
  • Tiempo de ejecución:Supervise el comportamiento anómalo del contenedor que pueda indicar la explotación de vulnerabilidades sin parches.

Seguridad en tiempo de ejecución

Endurecimiento del contenedor

ConfiguraciónValor recomendadoPor qué
ejecutar como no raízverdaderoImpide el escape del contenedor mediante privilegios de root
readOnlyRootFilesystemverdaderoEvita que el malware escriba en el sistema de archivos
permitirEscalada de privilegiosfalsoImpide que los procesos obtengan privilegios adicionales
capacidadessoltar: ["TODOS"]Elimina todas las capacidades de Linux, agrega solo lo necesario
Perfil seccompTiempo de ejecución predeterminadoRestringe las llamadas al sistema disponibles para el contenedor
límites.de.recursosConfigurar CPU y memoriaPreviene el abuso de recursos (criptominería, DoS)

Monitoreo del tiempo de ejecución con Falco

Falco monitorea el comportamiento de los contenedores según las reglas de seguridad y alerta sobre violaciones. Las reglas predeterminadas detectan: shell generado dentro de un contenedor, acceso a archivos confidenciales (/etc/shadow, /etc/passwd), conexiones de red inesperadas, intentos de escalada de privilegios, ejecución del administrador de paquetes en contenedores de producción y procesos de criptominería. Se pueden agregar reglas personalizadas para el comportamiento específico de su aplicación.

Consulta gratuita con expertos

¿Necesitan ayuda experta con mejores prácticas de seguridad de contenedores para entornos de producción?

Nuestros arquitectos cloud les ayudan con mejores prácticas de seguridad de contenedores para entornos de producción — desde la estrategia hasta la implementación. Reserven una consulta gratuita de 30 minutos sin compromiso.

Solution ArchitectEspecialista en IAExperto en seguridadIngeniero DevOps
50+ ingenieros certificadosAWS Advanced PartnerSoporte 24/7
Totalmente gratis — sin compromisoRespuesta en 24h

Seguridad de la cadena de suministro

Firma y verificación de imágenes

Firme imágenes de contenedores en el momento de la compilación utilizando cosign (Sigstore) o Docker Content Trust. Verifique las firmas en la implementación a través de los controladores de admisión Kubernetes. Esto garantiza que solo se puedan implementar imágenes creadas por su canalización CI/CD, lo que evita ataques a la cadena de suministro en los que los atacantes envían imágenes maliciosas a su registro.

Lista de materiales de software (SBOM)

Genere SBOM para cada imagen de contenedor usando Syft o Trivy. Un SBOM enumera todos los componentes (paquetes del sistema operativo, bibliotecas, dependencias) de la imagen. Cuando se revela una nueva vulnerabilidad, puede identificar inmediatamente qué imágenes están afectadas sin volver a escanear todo. Los SBOM son cada vez más requeridos por las regulaciones y los clientes empresariales.

Cómo Opsio protege los contenedores

  • Tubería de imágenes:Implementamos escaneo, firma y aplicación de políticas en todo el ciclo de vida de la imagen de su contenedor.
  • Seguridad en tiempo de ejecución:Implementamos y administramos Falco/Sysdig para un monitoreo continuo del tiempo de ejecución del contenedor.
  • Kubernetes endurecimiento:Reforzamos las configuraciones de clúster según los puntos de referencia CIS con un monitoreo continuo del cumplimiento.
  • Respuesta al incidente:Nuestro equipo SOC responde a incidentes de seguridad de contenedores con capacidad forense y de contención.

Preguntas frecuentes

¿Son los contenedores más seguros que las máquinas virtuales?

Los contenedores brindan aislamiento a nivel de proceso a través de espacios de nombres y cgroups Linux, mientras que las máquinas virtuales brindan aislamiento a nivel de hardware a través de hipervisores. Las máquinas virtuales tienen límites de aislamiento más estrictos. Los contenedores ofrecen una implementación más rápida y una superficie de ataque más pequeña (cuando se utilizan imágenes mínimas). En la práctica, los contenedores configurados correctamente con monitoreo de seguridad en tiempo de ejecución son lo suficientemente seguros para la mayoría de las cargas de trabajo de producción. Las cargas de trabajo altamente sensibles pueden beneficiarse del aislamiento de nivel VM o del sandboxing de contenedores (gVisor, Kata Containers).

¿Cuál es el mayor riesgo de seguridad de los contenedores?

Ejecutar contenedores como root con capacidades ilimitadas. Un contenedor raíz con todas las capacidades puede escapar al sistema host, accediendo a otros contenedores, recursos del host y potencialmente al servidor Kubernetes API. La solución es simple: configure runAsNonRoot: true, elimine todas las capacidades y use sistemas de archivos de solo lectura. Estas tres configuraciones eliminan la mayoría de los riesgos de seguridad de los contenedores.

¿Cómo manejo los secretos en contenedores?

Nunca incluya secretos en imágenes de contenedores ni los pase como variables de entorno (visibles en listados y registros de procesos). Utilice la gestión de secretos externa: HashiCorp Vault con inyección de sidecar, AWS Secrets Manager con integración ECS/EKS o Azure Key Vault con controlador CSI. Los secretos deben inyectarse en tiempo de ejecución y almacenarse sólo en la memoria, nunca en el disco.

Sobre el autor

Fredrik Karlsson
Fredrik Karlsson

Group COO & CISO at Opsio

Operational excellence, governance, and information security. Aligns technology, risk, and business outcomes in complex IT environments

Editorial standards: This article was written by a certified practitioner and peer-reviewed by our engineering team. We update content quarterly to ensure technical accuracy. Opsio maintains editorial independence — we recommend solutions based on technical merit, not commercial relationships.