Fork bomb para Unix (Linux, BSD, etc)
Hoy dando vueltas por lugares de seguridad me encuentro con un gran barullo con kriptopolis uno de los buenos sitios que he encontrado sobre seguridad y privacidad, en donde de vez en vez me topo con muy buena información para protección y ataque ![]()
Bueno lo que nos trae a este post es el pequeño escándalo que provoco un post sobre una “bomba lógica” que existe para los herederos de sistema unix, ahora hago la aclaración antes de el post referido, primero que nada para dejar claros algunos puntos que muy acertadamente en los comentarios de este post se hicieron como una aclaración de que esta “bomba lógica” no es tan lógica puesto que se trata de un Fork bomb y esto no es nada mas que un programa o código que provoca un DoS y claro ustedes preguntaran como lo provoca, ante de eso vamos a ver el mencionado post de kriptopolis:
Esta bomba lógica produce un DoS (denegación de servicio) mediante un proceso que consume toda la memoria del sistema, dejando totalmente inutilizable el PC y obligando a reiniciar.
Paso a explicar un poco de qué se trata…
Todo se lleva a cabo introduciendo una serie de caracteres en una terminal. Estos caracteres fueron liberados por uno de los programadores del kernel Unix
El codigo en cuestion: (sin espacios)
: ( ) { : | : & } ; :
Probado en FreeBSD, OpenBSD, PcBSD, Slackware, Debian, SuSe, Mandriva, Gentoo, Ubuntu
Ahora vamos a desenmarañar todo este barullo, bueno la tal bomba lógica no es eso sino un código que genera procesos indiscriminadamente en un sistema *nix de forma recursiva hasta que causa que el sistema se llene ademas de la memoria del mismo hasta que este se cuelga definitivamente. Su solución es bajar el numero de procesos que un usuario puede manejar o generar
Prueba de nuestra configuración limite para nuestro usuario
techno@techno-laptop:~$ ulimit -u
unlimited
Verificación de los limites de nuestro sistema
techno@techno-laptop:~$ ulimit -ad
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) unlimited
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimite
Ahora la solucion
Limitamos los procesos para que resista esta clase de “ataques”
ulimit -n 8191 Probado en Gentoo
ulimit -n 8118 Probado en Ubuntu
Así que bueno, así termina nuestros 2 minutos de alarma en el sistema
, bueno ahora ustedes como yo y claro como en el post original estarán de acuerdo, es bastante ilógico que nuestros sistemas vengan con valores fuera de lo aceptable para el control y prevención de estos “scripts kiddies”.
Link | Denegacion de Servicio en Unix (Linux, BSD, etc)
Noticias Relacionadas De Compiz a beryl en ubuntu edgyLinux - Quick Tip - Chivo de comandos
Gentoo/FreeBSD
Quick tip | Linux | Aprendamos Vi/Vim




























Paulo Cesar Alvarado