¿Cómo funciona una bomba fork?
La prima Wikipedia dice lo siguiente sobre las bombas fork:
La bomba fork es una forma de ataque del tipo denegación de servicio sobre un computador que implementa la operación fork, o alguna funcionalidad equivalente mediante la cual un proceso es capaz de crear otro proceso.¿A qué suena apetitoso? Lo que más me llama la atención de las bombas fork es la belleza de su código en bash (imagen superior).
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 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.
Y tú te estarás preguntando... ¿esa ristra de símbolos puede ser tan letal para un sistema? La respuesta es sí. Si expandimos el código, y nombramos a la función bomb en vez de :, quedaría algo así:
1 2 3 | bomb() { bomb | bomb & }; bomb |