6-04-05 01:23
Modul mod_dosevasive, dopunska obrana web servera
piše DUBRAVKO PENEZIĆ
Modul za web poslužitelje mod_dosevasive je modul za web servere (Apache, iPlanet) koji prati rad servera te obrađuje primljene zahtjeve za resursima.
Namjena mu je da detektira neuobičajno ponašanje klijenata koji serveru šalju upite, te da na temelju definiranih pravila osigura ravnomjerno posluživanje zahtjeva svih klijenata. Pravila su jednostavna: reguliraju broj istovremenih zahtjeva za istim resursom (50) i/ili broja zahtjeva za istim resursom (više od 1) s iste IP adrese klijenta u vremenu od 1 sekunde. Pravila su napisana generički pa je parametre moguće mijenjati u samoj konfiguracijskoj datoteci. Ovako sastavljena pravila omogućavaju detekciju i sprečavanje napada tipa DoS na web server.
Što i kako radi?
Po dolasku zahtjeva za web resursom modul uzima IP adresu stroja koji je zahtjev poslao i stavlja ga na privremeni popis nepoželjnih (black listu). URL i IP adresa se kolacioniraju i provjerava se ima li u internom cacheu isti upit već upućen intervalu od jedne sekunde, te da li je taj upit postavljen više od 50 puta.
Kada je uvjet ispunjen, tj. kada je broj upita nerazumno velik, IP adresa ostaje na black listi u trajanju od 10 sekundi, a server klijentu vraća grešku 403. Ako se poslije toga upit ponovi, sustav produljuje status na black listi za novih 10 sekundi.
Tako se čuva dostupnost poslužitelja, sprečava DoS napad, a legalnim korisnicima informacije su dostupne.
Problemi mogu nastati kod velikih proxy sustava, a kad je neki sadržaj posebno zanimljiv... ali to ionako spada u sivu zonu rada servera kada je na svaki način preopterećen.
Ovakav pristup i sam modul mod_dosevasive omogućavaju da se popis nepoželjnih IP adresa proslijedi sustavu iptable ili samom ruteru, te web server zaštiti djelotvornijom tehnikom. Razumljivo, mod_dosevasive bilježi moguće napade i u sam syslog. Evo primjera takvoga zapisa:
Aug 6 17:41:49 elijah mod_dosevasive[23184]: [ID 801097 daemon.alert]
Blacklisting address x.x.x.x: possible DoS attack.
Za koga?
Server zastićen modulom mod_dosevasive zaštićen je od manjih i srednjih DoS napada ili ometanja rada višekratnim zahtijevanjem iste stranice. Ako nema drugoga načina za odbijanje mogućih zahtjeva (iptables, routeri) web poslužitelj će izdržati sve dok bude mogao odgovarati na upite.
Ukupno gledajući, mod_dosevasive će na manjim i srednje opterećenim serverima osim same zaštite omogućit će dodatnu razinu zaštite, a povezan s drugim alatima modul otkriva i šalje upozorenja kada se dogodi DoS napad.
Instalacija
Izvorni kod modula može se preuzeti na adresi:
http://www.nuclearelephant.com/projects/dosevasive/
Trenutačno nema paketa za distribuciju Debian.
Nakon raspakiranja modul se iskompajlira kao zaseban modul, ili ga se statički uključi u kompajliranje web servera. Potanke upute su u datoteci README iz koje smo i sami mnogo toga dokučili.
Pri instalaciji server treba zaustaviti i ponovno pokrenuti. Sustav se može ispitati korištenjem priloženog PERL programa test.pl. Instalacija i testiranje prolaze uredno (verzija 1.0). Sustav podržava dodatno konfiguriranje kroz konfiguracijsku datoteku samog servera (httpd.conf)
|