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] | +()()()---------()()()--------------------+