systemadmin.es > Seguridad > Como evitar las fork bombs

Como evitar las fork bombs

Mediante el siguiente comando en una bash, lo mas seguro es que se cuege vuestra maquina:

:(){ :|:& };:

Estos caracteres, que pueden parecer criptícos, solo definen una función llamada “:” que se llama recusivamente a si misma redirigiendo su salida, con una unnamed-pipe, a si misma dejado el proceso en segundo plano.

La función, explicada paso a paso sería:

  • Se define la función “:”
    :()
    {
  • Se llama a si misma y se deja en background:
    :|: &
  • Cierra función:
    };
  • Llamada a la función que inicia el cuelgue de la maquina:
    :

Para evitar que un proceso realiza una gran cantidad de forks, como en este caso, se debe usar los limites del sistema mediante el fichero /etc/security/limits.conf. Se puede consultar todas sus opciones mediante el comando man:

man -s 5 limits.conf

En este caso lo que interesa es la opción nproc, que limita el número máximo de procesos por usuario.

Por ejemplo, para evitar que un usuario pueda tener mas de 200 procesos se añadiría al final del fichero:

*               soft    nproc           200
*               hard    nproc           200

Por lo que al reintentar el ataque, no se colgaría la maquina, sinó que solo se obtedría este mensaje:

-bash: fork: Resource temporarily unavailable

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>