[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Evitar vulnerabilidad de bash



El 6/05/05, Santiago Vila<sanvila@unex.es> escribió:
> On Fri, 6 May 2005, José Luis Patiño Andrés wrote:
> 
> > El vie, 06-05-2005 a las 10:36 +0200, Urizev escribió:
> > > Hola chicos, como puedo evitar que el comando siguiente no tueste
> > > el ordenador.
> > >
> > > $ :(){ :|:& };:
> >
> > Por cierto, no puedo resistir la curiosidad... ¿de dónde has sacado eso?
> > ¿sirve para algo? ¿qué es lo que hace?
> 
> Lo que hace es definir una función de shell llamada `:' y luego
> (de ahí el punto y coma) ejecutar dicha función. La función es
> recursiva y de ahí viene el desastre. En bash(1) hay información sobre
> las funciones de shell, por si a alguien le interesa.
> 
> > Prueba con un alias a ver si puedes cambiar la acción de ese 'comando'.
> 
> Poner alias no servirá de mucho. Cualquier usuario puede quitar un
> alias con "unalias", pero incluso si no pudiera, siempre podría
> definir lo anterior con otro nombre que no sea `:', por ejemplo:
> 
> a(){ a|a& };a
> 
> (bueno, *supongo* que funcionaría igual, pero la verdad es que no lo
> he probado :-)
> 
> 
La solución es la misma que se comentaba hace un par de meses a raíz
de un artículo sobre una forkbomb (esto creo que viene actuando de la
misma manera): hay un archivo, limits.conf, en /etc/security/, con una
serie de parámetros como el uso máximo de memoria, el número máximo de
procesos... Habría que editar ese archivo con más o menos cuidado, de
modo que en cuanto el comando que pones ahí llegase a su límite, el
bash lo matase. El caso es saber qué límites son los adecuados, pero
eso es algo que puedes calcular mediante "prueba y error". Venga,
suerte, y ya nos contarás qué límites impones.



Reply to: