Explicación rápida de la bomba fork en GNU/Linux

Advertimos que si por curiosidad desean probar lo que mostramos a continuación, queda bajo su responsabilidad

Explicación rápida de la bomba fork. ¿Que hace la bomba fork en GNU/Linux?

:(){ :|:& };:

Es un tipo de ataque de denegación de servicios o DoS, que básicamente lo que hace es saturar el espacio disponible en el ordenador, aunque es posible usar bombas fork en cualquier lenguaje, solo me centraré en bash, por su forma que parece tan extraña

Aunque se ve muy complejo, es sencillo es una simple función que se llama a ella misma… Ahora la bomba Fork legible para humanos XD

:(){ 
  :|:& 
};:

Aquí una función simple…

funcion(){ 
  var1= $1 
  echo "Funcion" 
}

Para cualquier persona que sepa leer y un poco de programación

bomba(){ 
  bomba | bomba & 
};bomba

Como se puede ver es realmente simple, se crea una función que se llama a ella misma, que crea un ciclo que no se detiene hasta lograr su objetivo saturar el ordenador.

En resumen…

:(){

Es la función llamada :

:|:

Se llama la función a ella misma, por medio de recursividad y tuberías. La peor parte es cuando se llama por segunda vez…

&

Hace que se ejecute la función de fondo, así el proceso no puede ser terminado, hasta acabar con todos los recursos

};:

Termina la función y se vuelve a llamar de nuevo…

Por si alguien tenia curiosidad al ver ese seductor código que para un newbe hasta podría ser extraño, pero no es nada que un poco de lógica no resuelva

Este artículo ha sido escrito en nuestro foro por wada, solo lo traigo acá con algunas pequeñas ediciones en el texto.


16 comentarios

  1.   eliotime3000 dijo

    Porque hay hombres que no buscan nada lógico, como dinero. No puedes comprarlos, intimidarlos, convencerlos, ni negociar con ellos. Hay hombres que solo quieren ver arder el mundo.

    Alfred.

  2.   nano dijo

    De hecho es interesante, aunque hoy día si te lanzan una bomba fork no pasaría nada porque hay niveles de seguridad que seteas donde limitas la cantidad de procesos que puede generar cualquier programa, solo distros como Arch, Gentoo, etc no traen estas restricciones por defecto y debes crearlas tu.

    Es chistoso porque Tete y yo pasamos un día horas cagándonos de la risa con este tema, mucha gente que instala Arch solo lo instala y le pone el entorno, pero e olvidan de muchas otras cosas importantísimas que son necesarias para configurar (o al menos eran necesarias, la verdad es que no tengo idea de como sea ahora) y por eso se decía que era “fácil y rápido de instalar”.

    En fin, creo que hubiese sido un poco mas simple explicarlo con la bomba en python, que es aun mas explícita.

    1.    eliotime3000 dijo

      De hecho, esos ajustes de ejecución de procesos suelen ser bastante importantes a la hora de instalar una distro GNU/Linux con un minimalismo como el que tiene Arch y/o Gentoo.

      Y por cierto, las veces que me pongo a usar Arch son para probar las versiones de programas e interfaces que recién han salido del horno. En fin, es bastante interesante esa bomba de fork.

    2.    F3niX dijo

      Si, es mucho mas sencillo de entender en python los dejo aca por si a alguien les intereza:
      import os
      while True:
      —-os.fork()

      Y con recursividad:

      import os
      def bomba():
      —-os.fork()
      —-bomba()
      bomba()

      Y nano cabe desctacar que en debian 7 Stable, tampoco hay seguridad para esto, por lo menos no con python, te cuelga el sistema instantaneo.

      Saludos.

    3.    O_Pixote_O dijo

      pues yo he ejecutado una bomba fork en ubuntu y se calo el ordenador instantaneamente

  3.   Bi0sPo1n7 dijo

    Para desactivar la bomba, se limita los procesos en la terminal con: ulimit -u 50 y bomba desactivada :p.

  4.   MoDeM dijo

    En todo caso hay que mencionar que los O.S. actuales tienen limitados cuantos procesos pueden tener activos, es cosa de lanzar una bomba fork en un Fedora y no pasara nadita.

    1.    Roberto dijo

      Sin duda, pero por ejemplo solaris y windows (que es donde lo he probado) no vienen protegidos.

  5.   SirJuno dijo

    COOL! 🙂

  6.   mj dijo

    Haga lo mismo; pero esta vez haga que sea util, es decir que ejecute en windows y haber que sucede. No en GNU/Linux.
    Muy curioso, la proximidad al tema de sabotaje informático, no se si ese podría ser el caso del reproductor Gnash: en el sitio Vimeo corre vídeos de forma impecable, pero en Youtube apenas y alcanza resolución de 240 pixels; En Dailymotions ni reproduce, a mi forma de ver algo incomprensible para mí, dado que no soy programador.
    De no cambiar eso, creo que, no es mala idea que los simpatizantes del software libre publiquemos nuestros vídeos en donde si se difunda para todos, sin discriminación.

    1.    eliotime3000 dijo

      Gnash debería fijarse en ello, pero como su desarrollo era lento, Mozilla optó por hacer su propio reproductor de Flash a punta de Javascript llamado Shumway. Espero que Shumway salga pronto para poder reemplazar el Flash Player que tengo en GNU/Linux.

  7.   x11tete11x dijo

    y ya que estamos no viene demas decir como protegerse, una forma muy basica (y sobre todo para los noobs Archers) es limitar la cantidad de procesos, para esto nos vamos a /etc/security/limits.conf y agregamos la siguiente linea:

    * hard nproc 1000

    con esto, limitamos los procesos a esa cantidad, yo por ejemplo lo tengo puesto en esa cantidad (aunque todo el SO a full corre con mucho menos, unos 200-300 procesos) y al aplicarle la bomba fork, mi SO sigue totalmente funcional e inmune, esta claro que si limitamos la cantidad de procesos a algo muy bajo podria traer alguna que otra consecuencia ya que algun programa querria crear procesos y el SO no lo dejaria, en mi caso, limitado a 1000 procesos me va perfecto

    1.    xphnx dijo

      Yo lo he puesto a
      * soft nproc 500
      * hard nproc 1000

      Aunque la wiki de arch recomienda el soft a 100 y hard a 200.

      Aunque no deberia haber problema, me da miedo lanzarme una bomba para probar…xD

  8.   Martin dijo

    La forma más sencilla de hacer escudarse es limitando el valor de ulimits de forma que se pueda matar el proceso de la bomba.

  9.   vidagnu dijo

    Interesante articulo, para prevenirlo en Slackware utilizamos ulimit en el archivo /etc/profile

    1.    msx dijo

      El problema de restringir ulimit es que puede limitarte el uso del sistema dependiendo qué hagas.

Deja un comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.