viernes, 20 de julio de 2007

CHROOT: enjaulando aplicaciones

Hola gente!

Llevaba un tiempo sin actualizar y os quiero compensar con algo que me parece de bastante interés. La mayoría ya lo conoceréis (no es ningún secreto), pero puede que no lo hayáis puesto en practica nunca, y la verdad es que es algo bastante útil sobre todo hablando de temas de seguridad.
Como bien podéis leer en el titulo el tema de hoy es chroot. Como dicen sus siglas (CHange ROOT) el proceso es "simple", solo consiste en cambiar la raiz del sistema de ficheros teniendo así dos raíces.

Me explico: es como tener en el mismo sistema operativo dos / en una de las cuales (normalmente) instalaremos algun servicio como Apache o alguna distribución testing como Sid para no comprometer el sistema estable.

Y diréis: y lo de enjaular? a que viene?

Muy simple desde el nuevo sistema de ficheros creado no podremos acceder a nada que este fuera de el. Por tanto, si creamos un nuevo / y en ese mismo sistema instalamos Apache, tendremos un shadow con solo el password del usuario de Apache, los logs accesibles seran solo los de Apache y, ojo al dato, los ejecutables disponibles en /bin serán solo los necesarios para que funcione Apache.

Que significa esto?
Significa que aunque un atacante consiguiera acceder al sistema de ficheros del servidor Apache, solo podría acceder a los ejecutables y a los ficheros contenidos en ese sistema de ficheros, lo cual es mas bien poco, y al mismo tiempo tendría vetado el acceso al sistema de ficheros raiz orignal que contiene toda la "chicha"... en resumen: estaría enjaulado.

El único inconveniente respecto a esto es conseguir que todo funcione correctamente a la primera, ya que según la aplicación que vayas a chrootear, tendrás que conocer al dedillo los ficheros que necesita para funcionar y sus ubicaciones, redirigir el syslogd para que guarde los logs en el lugar adecuado... etc. Aunque con la practica seguro que seréis capaces de generar vuestros propios scripts para automatizar la tarea.

Por supuesto podéis enjaular cualquier tipo de aplicación, especialmente las que tengan toma de contacto con el exterior (por eso el ejemplo de Apache), para asi proteger vuestro servidor de intrusos indeseados.

Por mi parte nada mas, solo deciros que busquéis mas información sobre esto en la red, encontrareis abundante información, y si sois lectores de @rroba, hace algunos números Yorkshire publico un articulo sobre jaulas chroot en Apache (o fue okahei? esta memoria me va a matar ;) ....)

Salu2!

No hay comentarios: