GNU/Linux, Seguridad&Hack/Crack, Sistemas Operativos, Windows

Cuidado! ¿Bombas Fork? ¿Qué son?

Una bomba fork funciona creando una gran cantidad de procesos muy rápidamente con el objetivo de saturar el espacio disponible en la lista de procesos mantenida por el sistema operativo del computador[…] Como resultado los ordenadores se vuelven lentos e incluso se pueden volver inutilizables dada la falta de memoria… wikipedia.org

Lo anterior es la definición que wikipedia nos proporciona. En pocas palabras una “bomba fork” es un programa, función o proceso que crea a su vez otros procesos y estos a su vez crean otros más y asi sucesivamente hasta que agotan los recursos de la PC. Llegará el momento en que nuestra computadora no tendra más memoria RAM donde albergar tantos procesos, hará uso muy lento del swapping pues el procesador seguira ocupado atendiendo esos procesos y finalmente habrá un cuelgue definitivo del sistema!

Lo anterior no indica ningún fallo o vulnerabilidad en el kernel del Sistema Operativo, aunque pienso que el planificador de procesos de cada Sistema Operativo deberia ser capaz de detener nativamente la ejecución de procesos cuando no se cuenten con los recursos suficientes! Sin embargo, esta es solo una suposición que hago.

En los sistemas operativos Windows, Unix y derivados como Linux, se esta expuesto a este tipo de “ataques” y de hecho en Windows no parece haber una solución fácil o al menos que podamos encontrar tan abiertamente para evitar estos ataques.

Si usas Windows y quieres saber de lo que estoy hablando, cierra y guarda todos tus programas, documentos. Luego abre el block de notas y escribe esto:

:s
start %0
goto s

Guarda el archivo con el nombre que gustes pero con la extensión .bat
Ahora, guarda la dirección de este artículo por que seguramente lo vas a necesitar para volver y saber en que termina esta historia. Ejecuta el archivo bat y mientras reinicias tu sistema voy con los que usan Linux.

Bien, mientras los users windows reinician su SIstema vamos a hacerlo contigo (tambien guarda documentos que tengas abiertos). Abre un Terminal y ejecuta lo siguiente:

windoctor@windoc-laptop:~$ :(){ :|:& };:

………….

………….

La mala noticia es que para los usuarios Windows no conozco una forma de limitar el número máxico de procesos que puede ejecutar un usuario así que tendrás que seguir como hasta ahora!

Para los que usan Linux hay que editar el archivo limits.conf que generalmente se encuentra en la ruta /etc/security

windoctor@windoc-laptop:~$ sudo gedit  /etc/security/limits.conf

ahi agregar la siguiente línea:

* hard nproc 1000

Ahora, cabe aclarar que cada distribución viene configurada con un número de procesos máximos, aunque varias distros (dependiendo de la versión) tienen un número ilimitado de procesos a ejecutar como por ejemplo ubuntu 6.10. Entonces debemos averiguar cuántos procesos pueden ejecutarse como máximo tecleando:

windoctor@windoc-laptop:~$ ulimit -u 

Podría aparecerte un número mayor a 4000 o quizá como ilimitado. Ahora dependiendo de esto podrías poner el límite no a 1000, quizá a 2000, tambien depende de las características de tu equipo.

Hecho lo anterior, deberas reiniciar tu sesión.

Finalmente comprueba que ahora al teclear ulimit -u tengas como máximo de procesos a ejecutar el número que pusiste en el archivo limits.conf, si es así, vuelve a ejecutar :(){ :|:& };: y observa que tu sistema ya no se cuelga, de hecho posiblemente te aparezca algo como:

bomba_fork

Presionando la combinación de las teclas Ctrl + D podrás cerrar la ventana del Terminal y volver a tener el control del Sistema.

Y bueno finalmente para terminar, como muchos de ustedes pueden darse cuenta esto no es una amenaza potencialmente peligrosa para usuarios domésticos, más bien para servidores pero como es de suponerse esto es algo que los Administradores deben tener muy en cuenta.

Esto de las “bombas fork” es algo viejisimo, tanto así que las nuevas generaciones de jovenes deben conocer, especialmente aquellos que empizan a administrar servidores. Por aquellos que tengan experiencia, pues ya saben sobre la existencia de esto y seria bueno nos instruyeran a todos los novatos en estas cosas.

Saludos!!

2 comentarios en “Cuidado! ¿Bombas Fork? ¿Qué son?

  1. Te dire que no conocía eso de bombas fork, pero ahora que acabo de leerlo me parece un buen artículo, y coincido contigo en que el planificador de procesos de cada S.O deberia saber como
    detener la ejecución de procesos, pues tuve que reiniciar mi computadora.
    Creo que apuntare tu e-mail, pues me intreresa saber en que parte te ubicas exactamente , para invitarte al cine.
    Bueno continuaré leyendo tu blog todos los días.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s