Virtual Environments vs SELinux / AppArmor: ¿Qué es mejor para ejecutar aplicaciones no confiables?

1

Por entornos virtuales, me refiero a los contenedores de Linux como Docker y Vagrant y VirtualBox no completo.

Entonces, el problema es que a menudo tengo que instalar paquetes de fuentes no confiables en mi Ubuntu. Sin embargo, últimamente me he vuelto paranoico con estas aplicaciones y he estado pensando en limitar su acceso o ejecutarlas en SandBox.

Aquí hay un escenario que he estado considerando:

Si instalo un paquete que no es de confianza en mi máquina y uso SELinux / AppArmor para protegerlo, y este paquete necesita conectarse a la red, ¿cómo puedo estar seguro de usar SELinux que el paquete no está enviando mis registros de claves o cualquier otro? Otra información de este tipo a través de Internet? En este caso, parece que si ejecuto la aplicación en un entorno Docker diferente, sería más seguro porque no tendría acceso a mis pulsaciones de teclado ni a ninguna otra información similar.

También hay muchos otros escenarios. Pero mi pregunta es la siguiente: en general, ¿cuál proporciona una mejor seguridad de estas dos opciones? ¿Cuáles son exactamente las capas / medidas de seguridad proporcionadas por estos dos métodos?

    
pregunta shivams 09.05.2015 - 02:54
fuente

1 respuesta

1

Docker intenta algunos trucos para contener procesos, pero los propios creadores reconocen que no son contenedores efectivos de aplicaciones listas para usar. Ya que le preocupa la seguridad, pero no está interesado en un entorno VM pesado, recomendaría ejecutar SELinux y Docker juntos. SELinux puede aplicar automáticamente una etiqueta MCS a cada contenedor Docker lanzado, lo que ayuda a protegerlo contra la ruptura del contenedor. Esto hace que sea realmente fácil obtener la fuerza de SELinux y la facilidad de uso de Docker.

Para ampliar aún más esto, Docker no contiene efectivamente las aplicaciones iniciadas dentro de él. Docker se comunica directamente con el kernel ya que no hay un hipervisor entre él y el sistema host. Esto significa que un atacante dentro de un contenedor capaz de usar ataques de explotación de privilegios locales que son bastante comunes y generalmente fáciles de realizar.

SELinux sería mucho más capaz de contener la aplicación, ya que se podría evitar de manera efectiva que se comunique desde cualquier componente del sistema que no fuera necesario. Puede ser difícil crear perfiles, pero esta es, de lejos, una mejor opción para contener una aplicación.

    
respondido por el theterribletrivium 09.05.2015 - 04:00
fuente

Lea otras preguntas en las etiquetas