Tenedor() bomba

Requisito previo: fork() en C
Fork Bomb es un programa que daña un sistema al hacer que se quede sin memoria. Bifurca procesos infinitamente para llenar la memoria. La bomba de bifurcación es una forma de ataque de denegación de servicio (DoS) contra un sistema basado en Linux.
Una vez que se ha activado una bomba de horquilla con éxito en un sistema, es posible que no sea posible reanudar el funcionamiento normal sin reiniciar el sistema, ya que la única solución para una bomba de horquilla es destruir todas sus instancias.

Programa C para Fork Bomb

C

// C program Sample  for FORK BOMB
// It is not recommended to run the program as
// it may make a system non-responsive.
#include <stdio.h>
#include <sys/types.h>
 
int main()
{
    while(1)
       fork();   
    return 0;
}

Bash Script para Fork Bomb

Nota : no ejecute este comando para ‘probarlo’ a menos que esté preparado para un bloqueo y/o un reinicio forzado de su sistema. Además, no necesita root para ejecutarse.
Si usa terminal, entonces bash script para fork() bomb script como se muestra a continuación.

:(){ :|: & };:

Explicación paso a paso del guión:

  1. :() significa que está definiendo una función llamada:
  2. {:|: &} significa ejecutar la función: y enviar su salida a la función : nuevamente y ejecutarla en segundo plano.
  3.  
    • : – carga otra copia de la función ‘:’ en la memoria
    • | – y canalice su salida a
    • : – otra copia de la función ‘:’, que debe cargarse en la memoria
    • Por lo tanto, ‘:|:’ simplemente obtiene dos copias de ‘:’ cargadas cada vez que se llama a ‘:’
    • & – rechazar las funciones, si el primer ‘:’ se elimina, todas las funciones que ha iniciado NO deben eliminarse automáticamente
    • } – final de qué hacer cuando decimos ‘:’
  4. ; Separador de comandos
  5. : ejecuta la función por primera vez

Esencialmente, está creando una función que se llama a sí misma dos veces en cada llamada y no tiene forma de terminarse. Seguirá duplicándose hasta que se quede sin recursos del sistema.

Cómo funciona

Las bombas de bifurcación funcionan consumiendo tiempo de CPU en el proceso de bifurcación y saturando la tabla de procesos del sistema operativo. Una implementación básica de una bomba de horquilla es un bucle infinito que lanza repetidamente nuevas copias de sí mismo. 
Para incapacitar un sistema, se basan en la suposición de que la cantidad de programas y procesos que pueden ejecutarse simultáneamente en una computadora. fork() generará un nuevo proceso, pero si coloca este proceso en un ciclo while true, creará muchos procesos y cuando se cruce el límite, su sistema fallará.

Manera de prevenir la bomba fork()

  • Evite el uso de la bifurcación en cualquier declaración que pueda terminar en un bucle infinito.
  • Puede limitar el proceso de bifurcación de la siguiente manera: –
    Simplemente inicie sesión como root y edite este archivo para agregar usuarios y configurar su límite.
# vi /etc/security/limits.conf

Edite el archivo como:

 your_user_name hard nproc 10
  • Puede intentar ejecutar el comando en Virtualbox si desea ejecutarlo.
  • Apague directamente su sistema en caso de que lo haya ejecutado y no haya encontrado una salida para continuar.

Referencias:

Este artículo es una contribución de Dhavalkumar Prajapati . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *