[HACK] Jaulas en Zeus.

damablanca at hushmail.com damablanca at hushmail.com
Tue Jul 20 23:05:19 CEST 2010


> > "J.A. Gutierrez" wrote:
> >
> > >         Si es asi, basta que los ficheros necesarios de la jaula
> > >         (supongo que libc.so, ls etc) sean hardlinks.
> >
> >       Con el inconveniente de que si alguien consigue acceso de root
> > en una de tus "jaulas", puede modificar las librerías compartidas que
> > empleas en el resto de jaulas o (peor aún) en el sistema.
> 
>         si alguien consigue root en una jaula chroot, o mucho me
>         equivoco, o tiene root en todo el sistema sin demasiado
>         problema, asi que el tener las librerias copiadas no creo
>         que ofrezca muchas ventajas...

Si alguien consigue root en una jaula es r00t en todo el sistema salvo que 
tiene el "path de raiz" asociado al proceso actual asignado a un punto arbitrario 
del arbol de ficheros.

La tecnica de hacer un "chroot" no es otra cosa que cambiar la raiz real 
del arbol de ficheros a un punto del arbol de ficheros arbitrario que proporciona 
el usuario que lo invoca en la llamada a la funcion del sistema que lleva 
el mismo nombre.

Sin particularizar para ningun sistema operativo y en lineas generales cada 
proceso corriendo en el sistema posee una serie de paths relacionados con 
el arbol de directorios. Uno de ellos es el propio path actual dondo se 
encuentra (visible con el comando pwd). Otro es un path especial (que lleva 
diferentes nombres segun las versiones de OS que se corra) y que contra 
el que el sistema hace sus chequeos ... etc ... etc ...  Este "path especial 
o path raiz del proceso" es necesario para implementar la caracteristica 
de chrootado y cuando se crea un proceso en el sistema coincide con la verdadera 
raiz del arbol de ficheros. Una vez se hace una llamada a chroot este pasa 
a tener un nuevo path raiz asociado. El sistema lo utilizara para hacer 
sus validaciones y limitara cualquier acceso como si este fuese la raiz 
real pero resolvera las rutas fisicas a un fichero en el ultimo punto contra 
la verdadera raiz real.

Como se puede ver no tiene nada que ver chrootar un proceso con los privilegios 
de este salvo que solamente el usuario con id=0 (root) puede hacer una llamada 
a chroot. Por eso cuando os enjaulan y haceis una llamada a chroot para 
restablecer el path la llamada falla. Si teneis un operativo Unix podeis 
probar a loggear con el usuario root y enjaularos y desenjaularos. Luego 
podeis intentar hacer lo mismo pero despues de enjaularos haceis un 'su' 
a un usuario diferente y vereis como la posterior llamada a chroot fallara.

El hecho de tener que copiar librerias en una jaula tiene que  ver bastante 
poco con la seguridad de estas y si con el acceso y la resolucion relativa 
que hacen algunos procesos contra ellas. Si un programa espera encontrar 
una libreria situada en /lib/loquesea.lib y lo enjaulais en /tmp/jaula1 
debeis poner la libreria en /tmp/jaula1/lib/loquesea.lib puesto que para 
el programa la nueva raiz esta en /tmp/jaula1

> 
> >       Resumiendo: Si eres paranoico, copia las librerías. No es para
> > tanto, el espacio de disco duro no está barato, está regalado!
> 
>         tambien hay que considerar el aumento de curro de actualizar/
>         chequear los ficheros de cada jaula respecto a una unica copia...
> 

Si eres paranoic@ copialas y sino tambien o la mayoria de las  veces no 
funcionara ... Yo lo que utilizo cuando hago varias jaulas diferentes son 
puntos de anclaje comunes y/o volumenes de solo lectura para librerias y 
ficheros que un usuario no tiene porque sobreescribir. De esta manera puedo 
montar las mismas copias de las librerias en puntos comunes compartiendo/ahorrando 
espacio y protegiendo a nivel de montaje de solo lectura (o los permisos 
adecuados). Luego hago los pertinentes links al punto de montaje para que 
resuelva sin problemas contra todas las jaulas como el Sr.Gutierrez ha dicho 
;). El punto de montaje debe ser visible a todas las jaulas.

-- dama

P.D : La Srta. Molist ha hecho un fantastico trabajo acerca de la "reunion" 
llevada a cabo por el CCC en diversas publicaciones y la nueva economia. 
Mis felicitaciones.


More information about the hacking mailing list