Salut, sunt Ionut din partea itassistant.org si astazi va voi prezenta ce este un fork bomb si cum putem sa ne protejam impotriva unui astfel de atac.
Un fork bomb este un atac de tipul “denial of service” si consta in pornirea unui numar mare de procese, care duc la saturarea tabelei de procese, a procesorului si a memoriei. Acest atac poate incetini sistemul sau se poate chiar ajunge la imposibilitatea de a-l folosi fiind necesar un reboot.
Numele atacului vine de la apelul de sistem Linux: “fork” in urma caruia un proces da nastere unui proces copil.
Sa analizam un simplu exemplu de fork bomb in bash:
bomb() { bomb | bomb &}; bomb
Am creat o noua functie numita: bomb, care se autoapeleaza si isi redirecteaza iesirea catre alta copie a sa. Deasemnea rulam cele 2 copii in background astfel incat daca procesul parinte este omorat sa nu isi incheie executia si copilul.
Daca rulam acest exemplu pe un server neprotejat, acesta cel mai probabil s-ar bloca. Pentru a porni un fork bomb pe un sistem nu ai neaparat nevoie de drepturi administrative, un cont de simplu utilizator care nu a fost limitat corespunzator este de ajuns.
Pentru a verifica limitarile userului curent tastam comanda:
ulimit -a
In cazul nostru suntem interesati de campul: “max user processes”. Daca acest camp este unlimited, sistemul este vulnerabil.
Pentru a proteja sistemul de un atac de tip fork bomb putem sa limitam toti userii inafara de cel privilegiat: root. Facem acest lucru editand fisierul: “/etc/bash.bashrc” (avem nevoie de drepturi administrative) si sa adaugam urmatoarele reguli:
if [ `/usr/bin/id -u` -ne 0]; then ulimit -u 2000 &> /dev/null else ulimit -u unlimited fi
Acum sistemul nu mai este vulnerabil deoarece cand userul atinge limita de procese (2000 in cazul de fata), nu vor mai fi create noi procese.
Related posts:
Tags: atac-tutorial-video, fork-bomb-tutorial-video


super tare . se vede ca esti in domeniu , ce sti ca propia palma .
Multumim, cioc. Te mai asteptam.
Diferite tipuri de fork bomb, in functie de SO si limbaj:
XP/Vista:
creati un .bat si scrieti:
:bomb
start %0
goto bomb
am reusit sa blochez si win 7 cu batul asta
cod C :
#include
int main() { while(1) fork(); }
Perl :
perl -e “fork while fork” &
Python:
import os
while(1):
os.fork()
pt python atentie la sintaxa.
Din ce am studiat eu pe windows nu prea se poate limita numarul de procese (cel putin nu am gasit solutie pt asta)
Foarte util si usor de inteles chiar va admir.
Exista cumva un tip de program sau protectie impotriva atacurilor DDoS?
Salut Paul,
Exista firewall pentru a bloca acest tip de atacuri.
In Linux un instrument bun este ‘iptables’.
Aha deci exista,crezi ca in scurt timp va aparea si un tutorial cu el sau no chance?:D
Salut Paul,
O sa facem si un tutorial pe tema asta, pana atunci aici gasesti un articol interesant: https://help.ubuntu.com/community/IptablesHowTo