¿El uso de chroot para un servicio expuesto públicamente proporciona algún beneficio de seguridad real?

¿El uso de chroot para un servicio expuesto públicamente proporciona algún beneficio de seguridad real?

Me gustaría una respuesta definitiva sobre por qué se debe seguir esta práctica con servicios que están expuestos a redes potencialmente hostiles (es decir, Internet). Según tengo entendido, existe un método para salir de una cárcel chroot, por lo que si esta medida de seguridad no tiene un valor real, ¿por qué algunas instalaciones todavía la aplican?

Respuesta1

Nunca debes considerar un chroot como una característica de seguridad completa. Si bien esto hace que el ataque sea más difícil, si logras obtener algo de control dentro del chroot, es bastante fácil escapar. Existe un método que implica hacer chroot a un directorio principal (..) Más informaciónaquí. La razón por la que chroot ofrece algún beneficio de seguridad es que muchas de las aplicaciones que un hacker podría esperar tener simplemente no estarán allí. Si tuviera la opción de elegir algo con chroot o sin chroot, elegiría la opción chroot.

Un mejor enfoque sería algo como la cárcel de BSD, las zonas de Solaris o alguna tecnología de virtualización como KVM o Xen. Estos enfoques toman la misma idea de compartimentalización que chroot y los hacen más fuertes. También podrías mirar algo como SELinux, pero esto es un poco más complicado y, por lo tanto, propenso a errores.

Respuesta2

Según tengo entendido, existe un método para salir de una cárcel chroot (...) entonces, ¿por qué algunas instalaciones todavía lo siguen?

Puedes decir lo mismo de las contraseñas. La cuestión es que, muy a menudo, conseguir algunos recursos significa poner tantos obstáculos en el camino del intruso para obligarlo a darse por vencido antes de alcanzar el objetivo. No puede confiar en un único método para proteger un recurso determinado. Además, el chrooting te da más control sobre la aplicación que estás ejecutando. Puede restringir los recursos del sistema de archivos a los que tiene acceso esta aplicación.

Respuesta3

Sí lo hace.

  • Si su demonio o lo que sea que proporcione el servicio no se ejecuta como root, entonces incluso un agujero en ese demonio está aislado del resto del sistema.
  • Si su sistema operativo puede restringir las operaciones que se pueden realizar mientras se ejecuta chroot(), es aún mejor. Los parches grsec para Linux, por ejemplo, pueden eliminar la capacidad del usuario root dentro de un chroot para escapar o crear nodos /dev dentro del chroot.

Sin embargo, si obtiene un error de kernel explotable (o simplemente un agujero de raíz si no hay cárceles grsec o BSD) dentro del chroot, entonces todo el sistema es propiedad. No es así si ejecuta un virtualizador real (como VMWare, pero NO jails BSD. No ayudan ya que usan el mismo kernel para todos los "sistemas").

Entonces sí, agrega una capa de seguridad, si se usa correctamente.

Respuesta4

Considero que chroots es demasiado complicado y nunca he podido instalar uno. Se podría argumentar que si hubiera podido hacerlo, me interesaría mucho, pero todavía no lo he hecho.

Creo que aislar sus servicios en máquinas virtuales (en Xen, por supuesto, pero VMWare también funcionará si insiste :-P) es una idea mucho mejor considerando la potencia informática disponible en estos días. Las máquinas virtuales también tienen la gran ventaja de ser realmente fáciles de realizar copias de seguridad/migrar, algo que los chroots no tienen. También tiene una interfaz completa para administrar máquinas virtuales, que definitivamente no tiene para chroots.

información relacionada