[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