Virtualization is a technique that allows multiple instances typically running different guest operating systems on top of single physical hardware. A hypervisor, a layer of software running on top of the host operating system, typically runs and manages these different guest operating systems. Rather than to run different services on different servers for reliability and security reasons, companies started to employ virtualization over their servers to run these services within a single server. This approach proves beneficial to the companies as it provides much better reliability, stronger isolation, improved security and resource utilization compared to running services on multiple servers. Although hypervisor based virtualization offers better resource utilization and stronger isolation, it also suffers from high overhead as the host operating system has to maintain different guest operating systems.
To tackle this issue, another form of virtualization known as Operating System-level virtualization has emerged. This virtualization provides light-weight, minimal and efficient virtualization, as the different instances are run on top of the same host operating system, sharing the resources of the host operating system. But due to instances sharing the same host operating system affects the isolation of the instances. In this paper, we will first establish the basic concepts of virtualization and point out the differences between the hyper-visor based virtualization and operating system-level virtualization. Next, we will discuss the container creation life-cycle which helps in forming a container threat model for the container systems, which allows to map different potential attack vectors within these systems. Finally, we will discuss a case study, which further looks at isolation provided by the containers.
academic
Análisis de Seguridad en Virtualización a Nivel de Sistema Operativo
La tecnología de virtualización permite ejecutar múltiples instancias en un único hardware físico, generalmente con diferentes sistemas operativos invitados. Aunque la virtualización basada en hipervisor proporciona mejor utilización de recursos y aislamiento más fuerte, presenta problemas de alto costo debido a que el sistema operativo anfitrión debe mantener diferentes sistemas operativos invitados. Para resolver este problema, surge la virtualización a nivel de sistema operativo, que proporciona virtualización ligera, minimalista y eficiente, pero afecta el aislamiento entre instancias debido a que estas comparten el mismo sistema operativo anfitrión. Este artículo establece conceptos fundamentales de virtualización, analiza las diferencias entre virtualización basada en hipervisor y virtualización a nivel de sistema operativo, discute el ciclo de vida de creación de contenedores, construye un modelo de amenazas de contenedores y analiza mediante estudios de caso el aislamiento proporcionado por los contenedores.
Problema de Eficiencia en Utilización de Recursos: El enfoque tradicional de desplegar diferentes servicios en servidores distintos, aunque mejora la confiabilidad y seguridad, es costoso y presenta baja utilización de recursos
Problema de Sobrecarga de Virtualización: Aunque la virtualización basada en hipervisor mejora la utilización de recursos, el mantenimiento de múltiples sistemas operativos invitados genera alta sobrecarga
Problema de Aislamiento de Seguridad en Contenedores: Aunque la virtualización a nivel de sistema operativo resuelve el problema de sobrecarga, el compartir el kernel del sistema operativo puede afectar el aislamiento de seguridad
Virtualización Tradicional: La virtualización basada en hipervisor tiene gran sobrecarga, requiriendo un sistema operativo invitado completo para cada máquina virtual
Análisis de Seguridad Insuficiente: El análisis de seguridad e aislamiento de la virtualización a nivel de sistema operativo no es lo suficientemente profundo
Ausencia de Modelo de Amenazas: Falta un modelo de amenazas sistemático para contenedores que identifique vectores de ataque potenciales
Establecimiento de Marco Comparativo de Tecnologías de Virtualización: Comparación sistemática de ventajas y desventajas entre virtualización basada en hipervisor y virtualización a nivel de sistema operativo
Construcción de Modelo Detallado del Ciclo de Vida de Creación de Contenedores: Análisis del proceso completo de contenedores Docker desde su construcción hasta ejecución
Propuesta de Modelo Integral de Amenazas de Contenedores: Identificación y clasificación de 9 clases principales de vectores de ataque en sistemas de contenedores
Análisis de Casos de Vulnerabilidades Reales: Análisis profundo de dos vulnerabilidades reales: CVE-2024-21626 y CVE-2022-0847
Recomendaciones de Endurecimiento de Seguridad de Contenedores: Propuesta de prácticas de seguridad prácticas basadas en resultados de análisis
Esta investigación tiene como objetivo analizar sistemáticamente la seguridad e aislamiento de la virtualización a nivel de sistema operativo (especialmente contenedores Docker), identificar vectores de ataque potenciales mediante la construcción de un modelo de amenazas y proporcionar recomendaciones de endurecimiento de seguridad.
La investigación se enfoca en cuatro componentes principales del sistema de contenedores Docker:
Docker Engine: Tecnología de contenedorización de código abierto que proporciona capacidad para construir y containerizar aplicaciones
Docker Daemon (dockerd): Proceso que se ejecuta en segundo plano, escucha comandos Docker y actúa como interfaz entre la CLI y el tiempo de ejecución del contenedor
Containerd: Sistema de tiempo de ejecución de contenedor de alto nivel que proporciona gestión de transporte de imágenes, gestión del ciclo de vida de contenedores, almacenamiento y funcionalidades de red
Runc: Tiempo de ejecución de contenedor de bajo nivel ligero y seguro que interactúa directamente con el sistema operativo subyacente
Ataques Externos: Acceso remoto al sistema de contenedores a través de la red
Ataques Internos: Atacante ya ubicado dentro del contenedor como usuario que inicia el ataque
Manipulación de Imágenes de Repositorio: Atacante altera imágenes de contenedor en el repositorio
Vulnerabilidades en Código de Aplicación: Explotación de vulnerabilidades en código de aplicación y dependencias de terceros
Configuración Inadecuada de Imagen de Contenedor: Otorgamiento de permisos innecesarios excesivos durante la configuración de imagen
Configuración Inadecuada de Contenedor: Extracción de imágenes que contienen código malicioso desde directorios públicos
Vulnerabilidades del Anfitrión: Explotación de vulnerabilidades del sistema operativo anfitrión que ejecuta contenedores
Transmisión de Información Dentro del Sistema: Atacante monitorea el intercambio de información entre contenedores
Vulnerabilidades de Escape de Contenedor: Explotación de vulnerabilidades en sistemas de tiempo de ejecución como containerd o runc para escapar al anfitrión
Comunicación de Red No Segura: Atacante monitorea comunicación entre contenedores para obtener información
Consumo de Recursos No Controlado: Scripts maliciosos consumen recursos excesivos, causando escasez de recursos en otros contenedores
Esta investigación adopta la metodología de análisis de casos de vulnerabilidades reales, seleccionando dos vulnerabilidades de seguridad representativas para análisis profundo:
Un contenedor es un proceso desde la perspectiva del sistema operativo anfitrión, con un sistema de archivos independiente montado como sistema de archivos raíz mediante chroot
El atacante crea enlaces simbólicos que apuntan a descriptores de archivo 7 y 8
El aislamiento de seguridad de contenedores presenta los siguientes problemas:
Riesgo de Kernel Compartido: Todos los contenedores comparten el mismo kernel del sistema operativo; vulnerabilidades del kernel afectan todos los contenedores
Vulnerabilidades de Tiempo de Ejecución: Vulnerabilidades en sistemas de tiempo de ejecución de contenedor (como runc) pueden causar escape de contenedor
Riesgo de Configuración Errónea: Configuración de permisos inadecuada aumenta riesgos de seguridad
Este artículo se basa en el desarrollo de tecnología de virtualización; el concepto de virtualización existe desde los años sesenta, pero no se convirtió en tecnología dominante hasta los años noventa.
Modelo de Amenazas Sistemático: En comparación con investigación existente, este artículo proporciona una clasificación más integral de amenazas de contenedores
Análisis de Casos Reales: Proporciona evidencia concreta de amenazas de seguridad mediante análisis de vulnerabilidades CVE reales
Perspectiva del Ciclo de Vida: Analiza problemas de seguridad desde la perspectiva del ciclo de vida de creación de contenedores
Naturaleza de Doble Filo de la Virtualización a Nivel de Sistema Operativo: Aunque proporciona una solución de virtualización ligera y eficiente, el compartir el kernel del sistema operativo presenta desafíos de aislamiento de seguridad
Diversidad de Vectores de Amenaza: Los sistemas de contenedores enfrentan amenazas de seguridad en todo el ciclo de vida, desde repositorios de imágenes hasta entornos de tiempo de ejecución
Riesgos de Seguridad Reales: El análisis de casos CVE confirma la existencia real de amenazas graves de seguridad como escape de contenedor y escalada de privilegios
Desafío de Seguridad Continuo: La seguridad de contenedores es un problema en evolución continua que requiere actualización constante de medidas de protección
Restricción de Alcance de Investigación: Se enfoca principalmente en contenedores Docker, sin cubrir otras tecnologías de contenedores (como FreeBSD Jails, Solaris Zones)
Profundidad del Modelo de Amenazas: Aunque identifica vectores de ataque principales, la discusión de medidas de protección específicas para cada ataque no es lo suficientemente profunda
Número de Casos Experimentales: Solo analiza dos casos CVE, lo que puede ser insuficiente para reflejar completamente la complejidad de amenazas de seguridad de contenedores
Análisis Cuantitativo Insuficiente: Falta evaluación cuantitativa del grado de riesgo de diferentes vectores de ataque
El artículo propone las siguientes direcciones de investigación:
Detección de Amenazas Impulsada por IA: Integración de tecnología de inteligencia artificial para mejorar la capacidad de resistencia de sistemas containerizados contra vulnerabilidades emergentes
Protocolos de Comunicación Segura: Desarrollo de protocolos de comunicación entre contenedores más seguros
Optimización para Entornos Inalámbricos: Optimización de redes de contenedores para entornos inalámbricos
Innovación a Nivel de Sistema: Mejora de asignación de recursos mediante innovación a nivel de sistema, asegurando rendimiento y seguridad en infraestructura distribuida dinámica
El artículo cita 38 referencias relacionadas, incluyendo principalmente:
Libros de texto clásicos de sistemas operativos (Tanenbaum & Bos, Modern Operating Systems)
Monografías especializadas en seguridad de contenedores (Rice, Container Security)
Reportes importantes de vulnerabilidades de seguridad (CVE-2024-21626, CVE-2022-0847)
Trabajos de investigación relacionados del equipo de autores en seguridad, IA e IoT
Evaluación General: Este artículo proporciona un marco de análisis de seguridad relativamente integral para virtualización a nivel de sistema operativo. Aunque tiene limitaciones en innovación teórica, posee alto valor en practicidad y sistematicidad, siendo apropiado como material de introducción y referencia en el campo de seguridad de contenedores.