Bombas fork y como evitarlas

¿ que es un fork ?

Un fork es una bifurcación, en informática es cuando un proceso se divide en 2 e incluso estos a su vez se pueden subdividir en 2 mas, es una forma hacer multitarea similar a los hilos, sin embargo un fork gasta mas recursos que un hilo

¿ Como se puede hacer una bomba fork ?

Con cualquier lenguaje o que soporte dicha subdivisión, prácticamente cualquier lenguaje permite un fork, en un shell bash de linux y de los unix también

Lanzar una bomba fork en bash

$ bomba(){ bomba|bomba & }; bomba

explicación

bomba() {} declara la función bomba en el shell bash y espera ejecutar comandos entre las llaves {}

bomba | bomba & se llama así misma de forma recursiva y le pasa su salida que no es nada a otra funcion que resulta ser ella misma, por lo que se vuelve a llamar, esta su vez se va al fondo como servicio usando el & , una vez en que esta corriendo como servicio o demonio se sigue llamando a si misma en un bucle que termina por agotar la RAM y la capacidad del CPU de procesar

; es un separador de sentencias como en C y algunos lenguajes

bomba Si solo escribimos el bomba(){ bomba|bomba & } no pasaria nada, pues esto declara la funcion y su codigo, pero nunca es llamada, al momento de ejecutar llamarla por primera vez es que se desencadena la denegación de servicio

la forma clásica es :(){:|:&};: Donde simplemente se cambia el nombre de bomba por dos puntos

Bomba fork en lenguaje C

#include <unistd.h>

void main()
{
while(1) fork();
}

¿ Se puede evitar el daño de una bomba fork ?

Si, se deben limitar los procesos que un solo usuario puede lanzar, la mayoría de las veces se puede configurar los limites en el directorio /etc/security/ y en el archivo limits.conf

Al archivo se le agregan lineas de varios tipos de configuración entre ellas nproc que son los números de procesos que tiene permitidos, por ejemplo el usuario de nombre usuario

usuario soft nproc 500
usuario hard nproc 512

Solo se le permiten máximo 512 procesos simultáneos y advertencia a los primeros 500

Servidor para hackear de forma legal ( Actualizado ) NADIE LO PUDO HACKEAR

Otro reto sin hackeos

Add a Comment

Comment spam protected by SpamBam