¿Qué es un fork bomb? 🤔
Un fork bomb es un pequeño script que se replica a sí mismo infinitamente, generando miles de procesos en muy poco tiempo, lo cual satura la CPU y la memoria de tu sistema haciendo que se vuelva inusable. Es como si un ejército de clones apareciera de golpe y todos quisieran trabajar al mismo tiempo. Suelen tener un aspecto “raro” o “inofensivo” pero si los ejecutas en un terminal te aseguro que lo vas a recordar.
La palabra fork viene de una función que existe en sistemas como Linux o Unix: fork()
que se usa para crear nuevos procesos.
El código del caos 💣
Aquí tienes uno de los fork bombs más famosos, una línea que parece jeroglífica:
:(){ :|:& };:
Sí, eso tan críptico puede congelarte el ordenador, así que lo mejor es desmenuzarlo paso a paso para entenderlo.
Explicación paso a paso 🧠
Vale, vamos a traducir el código anterior a un lenguaje más comprensible:
boom() {
boom | boom &
}; boom
Vamos por partes:
boom()
: defines una función llamada boom.boom | boom &
: es el código de la función y cada vez que se ejecuta se llama a sí misma dos veces en paralelo (|
conecta dos llamadas) y&
las ejecuta en segundo plano.; boom
: se cierra el bloque de la función con;
y se ejecuta invocándola.
Como puede ver el número de procesos crece de forma exponencial, se va multiplicando sin parar: cada llamada genera dos nuevas, que generan dos más… y así hasta que el sistema se queda sin recursos.
¿Y qué hace el ”:”? 🧪
Aquí viene la gracia, :
es simplemente el nombre de la funciona. Sustituye bomb
por :
y todo cobrará sentido. Eso es legal en Bash, aunque no muy legible. Por eso ves:
:(){ :|:& };:
El primer :
define la función. El último :
la invoca.
El comando ”:” 🤓
Como curiosidad :
es ademas un comando válido en Bash que significa “no hacer nada” (literalmente). Se usa como “relleno” o cuando quieres una instrucción que simplemente no falle.
Por ejemplo:
while :; do
echo "Esto es un bucle infinito"
done
Aquí el :
actúa como un true
: el bucle nunca termina.
¿Y cómo me protejo de esto? 🔐
El fork bomb no borra nada, pero puede hacerte perder trabajo no guardado y obligarte a reiniciar. Para protegerte en sistemas Linux puedes limitar cuántos procesos puede crear cada usuario con:
ulimit -u 100
Esto evita que alguien (o tú sin querer) cree más de 100 procesos. Nunca ejecutes comandos raros que encuentres por ahí sin saber qué hacen. Si estás aprendiendo, haz pruebas en una máquina virtual, no en tu PC principal.
En resumen ✅
Un fork bomb es un script que colapsa tu ordenador creando procesos infinitos. Es una demostración de lo poderosa (y peligrosa) que puede ser una línea en Bash.
Aprender cómo funciona te ayuda a protegerte y entender mejor cómo opera tu sistema operativo.