wabbits

Según wikipedia es la "correcta" forma de llamar a los programas que se reproducen a si mismos a gran velocidad, un ejemplo de esto son los fork bomb. El término viene desde Bugs Bunny, en la versión en inglés, Elmer Fudd cuando se dispone a cazar a Bugs dice algo como

"Be vewwy, vewwy quiet. I’m hunting wabbits."

Bomba fork

Las bombas fork no sólo ocupan espacio dentro de la lista de procesos, también consumen tiempo de proceso y memoria de la máquina donde se ejecutan. Como resultado de esto, los ordenadores se vuelven lentos e incluso se pueden volver inutilizables dada la falta de memoria y la imposibilidad de aprovechar el procesador.Encontré un par de ejemplos en diferentes lenguajes

Bash

:(){ :|:& };:

MS Windows usando un archivo .bat

:s
start %0
goto s

Usando Perl

(forking usando el intérprete Perl):
perl -e "fork while fork" &

En C

#include

int main()
{
while(0==0)
fork();
}

Prevención

Lo primero es hacer un poco de estudio, puedes ir probando estos comandos para ver cuantos procesos tienes ahora mismo en ejecución y hacerte una idea de a cuanto deberías limitarlo, por ejemplo yo lo tengo a 200, que ya es difícil llegar a esas alturas. ps aux | wc -l: Te mostrará cuantos procesos hay en total. ps aux | grep `whoami` | wc -l: Mostrará los de tu usuario.

[victor@anakin ~/ ] $ ps aux | wc -l
140
[victor@anakin ~/ ] $ ps aux | grep `whoami` | wc -l
48

Los sistemas de tipo Unix típicamente tienen establecido este límite. En Linux existe una variable llamada RLIMIT_NPROC, que indica la cantidad máxima de procesos que se puede ejecutar. Como pueden leer arriba dice que típicamente lo tiene establecido, pero es un fallo de nuestro amado Ubuntu no hacerlo, podemos comprobarlo con el comando ulimit -u.

[victor@anakin ~/ ] $ ulimit -u
6132

Pero es solucionable para ello editaremos el archivo /etc/security/limits.conf para poner el límite. Fíjate que ya hay algunos puestos, pero comentados.

[victor@anakin ~/ ] $ sudo gedit /etc/security/limits.conf

y le añadimos * hard nproc con el numero de procesos en mi caso 200 antes mencionado.

* hard nproc 200

Nos quedara algo mas o menos así.

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

* hard nproc 200

# End of file

Para que los cambios tengan efecto es necesario reiniciar pero tu sesión, en resumen vuelve a iniciar sesión. Para los amigos de MS Windows vean como se las arreglan porque no se como hacerlo. Saludos y hasta la próxima….



3 comentarios

  1. 1
    Caro
    26 de Diciembre del 2007 a las 1:58 Citar

    Se entiende

    =)

    Uso Mozilla Firefox Mozilla Firefox 2.0.0.11 en Ubuntu Linux Ubuntu Linux
  2. 2
    juan
    23 de Enero del 2008 a las 12:28 Citar

    Caro el 26 Diciembre 2007 a las 1:58 dijo:

    Se entiende

    =)

    si, yo creo que los pollos no vuelan porque no se lo merecen

    Uso Safari Safari 523.12 en Mac OS Mac OS X
  3. 3
    ulises
    14 de Febrero del 2008 a las 21:22 Citar

    genial, por fin como prevenir que los usuarios abran mas programas de los debidos.
    gracias

    Uso Mozilla Firefox Mozilla Firefox 2.0.0.12 en Windows Windows XP

Añade tu Comentario

XHTML: Puedes usar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

*
Para probar que eres una persona (no un script de span), escribe la palabra de seguridad de la siguiente imagen. Click en la imagen para escuchar el archivo de sonido.
click para escuchar un archivo de sonido de la palabra anti-spam

blank