GNU/Linux >> Tutoriales Linux >  >> Linux

Seguridad de LXC en comparación con OpenVZ

(Descargo de responsabilidad:no una autoridad en OpenVZ. Esta respuesta es más obstinada de lo que suelen ser mis respuestas, ¡así que siéntete libre de criticar!)

OpenVZ podría ser "más" seguro en el sentido de que no se integra con todo el kernel, por lo que su superficie de ataque es un poco más baja. Sin embargo, OpenVZ es esencialmente lo que sirvió de inspiración para los espacios de nombres y, por lo tanto, en última instancia, LXC y Docker. No creo que continúe por mucho tiempo ahora que esas soluciones más completas son, bueno, completas.

Como señaló WhiteWinterWolf, una de las grandes diferencias es que LXC finalmente puede usar el espacio de nombres de usuario, abriendo la posibilidad de que los usuarios sin privilegios ejecuten contenedores y asegurando que el código contenido que sale del contenedor conserve los privilegios de los usuarios sin privilegios. Además, los contenedores basados ​​en espacios de nombres pueden eventualmente estar completamente etiquetados con SELinux. Los contenedores Docker normalmente ya lo son, y Dan Walsh está trabajando en una forma de hacer que SELinux imponga automáticamente una capa adicional de aislamiento entre contenedores mediante el uso de categorías generadas aleatoriamente para procesos contenidos.

Entonces, en resumen, los contenedores son mejores porque:Pueden frustrar parcialmente algunas rupturas de contenedores (limitándolas a un UID sin privilegios), lo que hace que las escaladas de privilegios dentro del contenedor sean irrelevantes. Son más compatibles y se desarrollan más activamente, y en particular beneficiarse enormemente del soporte de SELinux.

Y son peores porque:Su TCB es muy grande, en todo el kernel y de vez en cuando se producirán errores que conducirán a exploits y rupturas. Me parece que el espacio de nombres de usuario es una especie de caso extremo. Por lo general, logra la escalada de privilegios a través de un error en el SCI (que podría reproducir después de su ruptura) o ataques de diputados confusos en un servicio privilegiado (que probablemente seguirán existiendo fuera de su contenedor en primer lugar). Por lo tanto, aún necesitaría limitar estrictamente ese UID de ejecución de contenedores a los contenedores en ejecución.

En resumen, siga practicando la defensa en profundidad y siga pensando en cómo permite que los procesos contenidos interactúen con el mundo exterior y cómo ejecuta los contenedores. Las diferencias existen pero, como puede ver, son bastante mínimas.


Linux
  1. Detrás de escena con los contenedores de Linux

  2. Contenedores LXD y redes con IP estática

  3. Linux o Windows:el problema de la seguridad

  4. ¿Cuáles son las implicaciones de seguridad de systemd en comparación con systemv init?

  5. ¿Cómo manejar las actualizaciones de seguridad dentro de los contenedores Docker?

Lxc y cómo empezar?

Todo lo que necesita saber sobre los contenedores de Linux (LXC)

Cómo instalar y configurar contenedores LXC Linux en CentOS/RHEL/Ubuntu

Cómo configurar una red externa para contenedores en contenedores de Linux (LXC)

Seguridad de alojamiento web

Seguridad de Linux frente a Windows