fbpx
Wikipedia

Bomba fork

Una bomba fork es una forma de ataque del tipo denegación de servicio sobre un computador implementando una operación fork o alguna otra funcionalidad equivalente mediante la cual un proceso es capaz de autorreplicarse. La bomba fork es considerado un wabbit ya que no se autorreplica de la misma forma que los gusanos o los virus. Su efecto se basa en la suposición de que el número de programas y procesos que se ejecutan simultáneamente en un ordenador tiene un límite.

Esquema de funcionamiento de la bomba fork, los procesos son divididos recursivamente hasta causar una denegación de servicio o un bloqueo del sistema.

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. Si la tabla de procesos se llega a saturar, entonces no se pueden iniciar nuevos programas hasta que no se cierre alguno. En el caso de que esto suceda, es muy poco probable que se pueda iniciar un programa útil ya que los procesos de la bomba estarán esperando para poder crear nuevos procesos a la primera oportunidad que se les conceda.

Las bombas fork no sólo ocupan espacio dentro de la lista de procesos, también consumen tiempo de proceso y memoria de la máquina donde se ejecutan. Como resultado de esto, los ordenadores se vuelven lentos e incluso se pueden volver inutilizables dada la falta de memoria y la imposibilidad de aprovechar el procesador.

Dificultad de solución

Una vez una bomba fork ha sido activada de forma "satisfactoria" en un sistema, puede que no sea posible ejecutar ninguna tarea sin un reinicio del sistema, ya que la única solución es detener todos los procesos iniciados por ella. Normalmente se requiere cargar un programa adicional para "matar" procesos, lo que puede no ser posible si no hay posiciones vacías dentro de la tabla de procesos o espacio dentro de las estructuras de memoria.

Prevención

Una forma de prevenir el ataque de una bomba fork es limitar el número de procesos que un usuario puede ejecutar. Cuando un proceso intenta crear otro proceso y el propietario de dicho proceso ya posee la cantidad máxima de procesos que se le ha asignado, el intento de creación del nuevo proceso falla. El máximo número de procesos asignado a cada usuario debe ser lo suficientemente bajo para poder resistir la ejecución simultánea de una bomba fork por cada usuario y dejar libres los suficientes recursos como para poder restaurar el sistema.

Téngase en cuenta que la ejecución accidental de una bomba fork es altamente improbable en más de un usuario a la vez.

Los sistemas de tipo Unix típicamente tienen establecido este límite, controlado con el comando ulimit del shell. En los kernel Linux existe una variable llamada RLIMIT_NPROC, que indica la cantidad máxima de procesos que se puede ejecutar. Si un proceso intenta llamar a la función fork y el usuario propietario del proceso ya tiene igual o más procesos que los indicados en RLIMIT_NPROC la llamada a la función fallará.

Otra solución implica la detección de bombas fork antes de su ejecución por parte del sistema operativo, aunque eso supone más gasto de recursos por parte del sistema. Existe un módulo para el Kernel de Linux.[1]

Ejemplo de una bomba fork

Código fuente de una bomba fork programada en Batch funcional en cualquier versión de Microsoft Windows:

%0|%0 

O bien, una reacción más rápida:

:s start "" %0 goto :s 

Código fuente de una bomba fork programada en UNIX C o C++:

#include <unistd.h> int main()  {  while(true)  {  fork();  }  return 0; } 

Bomba fork para bash de linux

:(){ :|:& };: 

O de forma larga

#!/bin/bash bomba(){ bomba | bomba & } bomba 

En Perl:

fork while fork 

En Python:

import os while True: os.fork() 

En Ruby:

def forkbomb loop { fork { forkbomb } } end; forkbomb 


Véase también

Referencias

  1. Rohit Singh. «Fork Bomb Defuser!» (en inglés). Consultado el 2010. 
  •   Datos: Q524059

bomba, fork, bomba, fork, forma, ataque, tipo, denegación, servicio, sobre, computador, implementando, operación, fork, alguna, otra, funcionalidad, equivalente, mediante, cual, proceso, capaz, autorreplicarse, bomba, fork, considerado, wabbit, autorreplica, m. Una bomba fork es una forma de ataque del tipo denegacion de servicio sobre un computador implementando una operacion fork o alguna otra funcionalidad equivalente mediante la cual un proceso es capaz de autorreplicarse La bomba fork es considerado un wabbit ya que no se autorreplica de la misma forma que los gusanos o los virus Su efecto se basa en la suposicion de que el numero de programas y procesos que se ejecutan simultaneamente en un ordenador tiene un limite Esquema de funcionamiento de la bomba fork los procesos son divididos recursivamente hasta causar una denegacion de servicio o un bloqueo del sistema Una bomba fork funciona creando una gran cantidad de procesos muy rapidamente con el objetivo de saturar el espacio disponible en la lista de procesos mantenida por el sistema operativo del computador Si la tabla de procesos se llega a saturar entonces no se pueden iniciar nuevos programas hasta que no se cierre alguno En el caso de que esto suceda es muy poco probable que se pueda iniciar un programa util ya que los procesos de la bomba estaran esperando para poder crear nuevos procesos a la primera oportunidad que se les conceda Las bombas fork no solo ocupan espacio dentro de la lista de procesos tambien consumen tiempo de proceso y memoria de la maquina donde se ejecutan Como resultado de esto los ordenadores se vuelven lentos e incluso se pueden volver inutilizables dada la falta de memoria y la imposibilidad de aprovechar el procesador Indice 1 Dificultad de solucion 2 Prevencion 3 Ejemplo de una bomba fork 4 Vease tambien 5 ReferenciasDificultad de solucion EditarUna vez una bomba fork ha sido activada de forma satisfactoria en un sistema puede que no sea posible ejecutar ninguna tarea sin un reinicio del sistema ya que la unica solucion es detener todos los procesos iniciados por ella Normalmente se requiere cargar un programa adicional para matar procesos lo que puede no ser posible si no hay posiciones vacias dentro de la tabla de procesos o espacio dentro de las estructuras de memoria Prevencion EditarUna forma de prevenir el ataque de una bomba fork es limitar el numero de procesos que un usuario puede ejecutar Cuando un proceso intenta crear otro proceso y el propietario de dicho proceso ya posee la cantidad maxima de procesos que se le ha asignado el intento de creacion del nuevo proceso falla El maximo numero de procesos asignado a cada usuario debe ser lo suficientemente bajo para poder resistir la ejecucion simultanea de una bomba fork por cada usuario y dejar libres los suficientes recursos como para poder restaurar el sistema Tengase en cuenta que la ejecucion accidental de una bomba fork es altamente improbable en mas de un usuario a la vez Los sistemas de tipo Unix tipicamente tienen establecido este limite controlado con el comando ulimit del shell En los kernel Linux existe una variable llamada RLIMIT NPROC que indica la cantidad maxima de procesos que se puede ejecutar Si un proceso intenta llamar a la funcion fork y el usuario propietario del proceso ya tiene igual o mas procesos que los indicados en RLIMIT NPROC la llamada a la funcion fallara Otra solucion implica la deteccion de bombas fork antes de su ejecucion por parte del sistema operativo aunque eso supone mas gasto de recursos por parte del sistema Existe un modulo para el Kernel de Linux 1 Ejemplo de una bomba fork EditarCodigo fuente de una bomba fork programada en Batch funcional en cualquier version de Microsoft Windows 0 0 O bien una reaccion mas rapida s start 0 goto s Codigo fuente de una bomba fork programada en UNIX C o C include lt unistd h gt int main while true fork return 0 Bomba fork para bash de linux amp O de forma larga bin bash bomba bomba bomba amp bomba En Perl fork while fork En Python import os while True os fork En Ruby def forkbomb loop fork forkbomb end forkbombVease tambien EditarFork MalwareReferencias Editar Rohit Singh Fork Bomb Defuser en ingles Consultado el 2010 Datos Q524059 Obtenido de https es wikipedia org w index php title Bomba fork amp oldid 143260786, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos