Prevenir fork bombs
Hoy casualmente lei un artículo donde hablaban de las fork bombs, basicamente es un script recursivo que usa todos los recursos disponibles del sistema creando infinitos sub-programas que bloquean el sistema eventualmente haciéndole un ataque DOS. En una pc de escritorio común esto puede llevar solo unos segundos. El script más simple es el siguiente:
:(){ :|:& };:
Esta es la explicación del código sacada de wikipedia:
:() # define ':' -- whenever we say ':', do this:
{ # beginning of what to do when we say ':'
: # load another copy of the ':' function into memory...
| # ...and pipe its output to...
: # ...another copy of ':' function, which has to be loaded into memory
# (therefore, ':|:' simply gets two copies of ':' loaded whenever ':' is called)
& # disown the functions -- if the first ':' is killed,
# all of the functions that it has started should NOT be auto-killed
} # end of what to do when we say ':'
; # Having defined ':', we should now...
: # ...call ':', initiating a chain-reaction: each ':' will start two more.
Por lo menos a mi me parece muy interesante ya que ni siquiera es necesario ser super-usuario para ejecutar el script, cualquier pc o servidor que no esté preparado contra esto es vulnerable y muy facil de atacar.
Una forma de prevenir el ataque de una fork bomb es limitar el número máximo de procesos que un usuario puede ejecutar, afortunadamente linux tiene un archivo de configuración que está en /etc/security/limits.conf que permite setear un máximo de procesos por usuario o por usuario de un grupo.
La sintaxis es realmente muy simple y agregando la siguiente linea se limitará el número máximo de procesos permitidos de cualquier usuario en el grupo “users” en 300:
@users hard nproc 300
Para saber cuánto es el límite actual establecido por el sistema en una terminal: (para el usuario actual)
$ ulimit -u
Hay otras formas para evitar estos scripts pero son módulos para instalar, y realmente lo veo mucho mas seguro y simple editar el archivo que dije mas arriba
In: linux · Tagged with: attack, bomb, dos, fork, limits.conf, ulimit
