On Fri, 6 May 2005, Santiago Vila wrote:
> 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.
Hola Santiago permiteme que sin corregirte en nada, a�ada algo porque
aqu� lo que yo veo es que el que pregunta no solo no entend�a lo que
hacia ese comando sino que lo ha interpretado en clave de vulnerabilidad,
que a mi modo de ver merece alguna aclaraci�n adicional.
En esa misma p�gina bash(1) viene informaci�n sobre el comando interno
ulimit que aclara bastante las cosas.
Hay muchas variantes de ataques de este tipo que se basan en hacer un
uso desmedido de los recursos del sistema porque lo normal es no limitar
excesivamente estos recursos a unos usuarios que por tener acceso a una
cuenta de shell supuestamente ser�n usuarios de cierta confianza.
En este caso el fallo de seguridad no estar�a en una hipot�tica vulnerabilidad
del bash, sino en proporcionar una cuenta sin limitaci�n adecuada de recursos
a un usuario con mala uva.
Desde un programita en C se puede hacer igualmente un uso abusivo de
todos los recursos del sistema abriendo ficheros a lo loco, consumiendo
memoria a lo loco, generando procesos a lo loco, accediendo de forma
aleatoria en todo el espacio de memoria para forzar la swap, etc.
No controlo mucho el tema pero he querido hacer una prueba r�pida y
he probado con: ulimit -n 200 -s 500 -u 500 -v 150000
Con eso ya no se cuelga en mi sistema pero como es l�gico en otros sistemas
habr� que adecuar los valores.
--
Un saludo
Antonio Castro
/\ /\
\\W//
_|0 0|_
+-oOOO-(___o___)-OOOo---------------------+
| . . . . U U . Antonio Castro Snurmacher |
| . . . . . . . [EMAIL PROTECTED] |
+()()()---------()()()--------------------+