Una Fork Bomb è un tipo di attacco DoS (Denial of Service) che sfrutta la chiamata di sistema fork()
per creare nuovi processi, ciascuno dei quali è una copia del processo originale. Ripetendo questa operazione in modo esponenziale, la Fork Bomb può saturare tutte le risorse di processo disponibili su una macchina, portandola rapidamente a un punto in cui non è più in grado di eseguire ulteriori operazioni.
Funzionamento
La chiamata fork()
è una funzione utilizzata nei sistemi operativi Unix e Unix-like per creare un nuovo processo duplicando il processo chiamante. Ogni volta che fork()
viene invocata, il sistema operativo crea un nuovo processo figlio che è una copia quasi identica del processo padre. Una Fork Bomb sfrutta questo meccanismo in modo malizioso.
Un esempio semplice di Fork Bomb in un linguaggio di scripting potrebbe essere il seguente:
bashCopy code:(){ :|: & };:
Questo codice crea una funzione chiamata :
che richiama se stessa due volte, inviando una copia di se stessa in background. Questo porta rapidamente alla creazione di un numero esponenziale di processi, esaurendo le risorse di sistema disponibili.
Impatto
Quando una Fork Bomb viene eseguita su un sistema, i seguenti effetti possono essere osservati:
- Esaurimento delle risorse di processo: Il numero di processi in esecuzione sul sistema cresce esponenzialmente, fino a saturare il limite massimo di processi che il sistema può gestire. Questo impedisce l’avvio di nuovi processi, inclusi quelli critici per il funzionamento del sistema operativo.
- Degradazione delle prestazioni: Con un numero elevato di processi in esecuzione, la CPU e la memoria del sistema vengono rapidamente consumate, portando a una drastica riduzione delle prestazioni. I processi legittimi potrebbero non avere abbastanza risorse per funzionare correttamente.
- Blocco del sistema: In casi estremi, la Fork Bomb può causare il completo blocco del sistema, richiedendo un riavvio fisico per recuperare la funzionalità.
Prevenzione
Per proteggere un sistema da una Fork Bomb, sono necessarie misure preventive, che includono:
- Limitazione delle risorse: Configurare limiti sul numero massimo di processi che un utente può creare usando strumenti come
ulimit
su sistemi Unix. Ad esempio, eseguendoulimit -u <numero>
si può impostare un limite sul numero di processi per utente. - Monitoraggio e rilevamento: Utilizzare strumenti di monitoraggio per rilevare comportamenti anomali che potrebbero indicare l’esecuzione di una Fork Bomb. Software di monitoraggio delle risorse di sistema possono inviare allarmi quando viene raggiunto un utilizzo eccessivo delle risorse.
- Controllo degli accessi: Restringere l’accesso ai sistemi critici, assicurando che solo utenti autorizzati possano eseguire codice. Questo riduce il rischio che utenti malintenzionati possano eseguire una Fork Bomb.
Conclusione
La Fork Bomb è un esempio classico di come una semplice operazione possa essere sfruttata in modo malevolo per causare gravi interruzioni di servizio. Comprendere il funzionamento di questo tipo di attacco e implementare misure preventive è essenziale per mantenere la stabilità e la sicurezza dei sistemi informatici.