PDA

Pogčedajte punu verziju : Zaštita od DDoS napada


LiquidBrain
02. 08. 2007., 12:53
Postoje nacini za zastitu od DDoS napada...

Malo teorije: http://www.cs.purdue.edu/nsl/ftn-report.pdf
ieeexplore.ieee.org/iel5/9817/30953/01437179.pdf?arnumber=1437179 (http://devprotalk.com/ieeexplore.ieee.org/iel5/9817/30953/01437179.pdf?arnumber=1437179)
http://www10.org/cdrom/papers/409/

Bluesman, mozda ti ovi tekstovi pomognu da se predomislish...

Peca
03. 08. 2007., 02:32
mod_evasive [modul za apache] resava http flood.
ja ga malo modifikovao i spasava me glavobolje svakodnevno.

bNasty
03. 08. 2007., 14:21
Uz rizik da skrenem temu u tehnikalije (ili advocacy?) za takve ddos napade je OpenBSD + pf zakon; nikakvi mod_xxx, let the kernel do its stuff :)

ivanhoe
03. 08. 2007., 17:19
Uz rizik da skrenem temu u tehnikalije (ili advocacy?) za takve ddos napade je OpenBSD + pf zakon; nikakvi mod_xxx, let the kernel do its stuff :)

sustina price je da je tesko naci dobrog i pouzdanog admina koji uz to ume i da radi sa production serverima.. od toga svi beze kao djavo od krsta, nece niko da bude kriv kad nesto crkne... e sad ako je tesko naci ljude za lindzu, kakve su tek sanse naci nekog za BSD :)

Dzordz
03. 08. 2007., 17:32
Kad smo vec kod tehnikalija :)

Jel managed dedicated hosting znaci da oni rade sve sto se tice servera (odrzavanje, zastita i ostalo) dok je na "nama" pitanje samo deployment i bezbednost aplikacije?

LiquidBrain
03. 08. 2007., 17:38
Uz rizik da skrenem temu u tehnikalije (ili advocacy?) za takve ddos napade je OpenBSD + pf zakon; nikakvi mod_xxx, let the kernel do its stuff :)

OpenBSD je super, ali samo packet filter ne moze da resi problem, jer ce u jednom trenutku da dodje do
data overhead-a, koji ce da dovede do 100% iskoriscenja procesorskog vremena, i opet ode sve u tri lepe...

To se resava tako sto stavish jedan server koji ce da analizira pakete, pa ukoliko je neko u nekom kratkom vremenskom periodu poslao dva ista ili slicna zahteva, onda ga forwardujesh na neki dummu server... A glavni server koji radi celu pricu ostaje sa relativno malim povecanjem zahteva... :)

Naravno sve se to radi kombinovanjem treceg i cetvrtog layera... :)

Odo u tehnicku stranu...:1023:

twix
03. 08. 2007., 20:15
@LiquidBrain

Ako dosnet ima jachi link od tebe (a obicno ima)... filter ti ne pomaze, koliko sam video do sada :)

Znaci solucija, ako imas jachi link od attackera... da onda vrsis preusmeravanja i filtriranje paketa, mislim da tako rade jachi igrachi (google, ebay, amazon, etc.), u ostalim slucajevima dolazi do zagusivanja/preopterecenja itd.

Ispravi me ako gresim...

artur_dent
03. 08. 2007., 21:30
Kad smo vec kod tehnikalija :)

Jel managed dedicated hosting znaci da oni rade sve sto se tice servera (odrzavanje, zastita i ostalo) dok je na "nama" pitanje samo deployment i bezbednost aplikacije?

U principu i da i ne, moze ti se lako desiti da ti kazu nesto u fazonu "to i to ne ulazi u standardnu administraciju i moras ga dodatno platiti".
Sto se meni desilo recimo kada sam trazio da mi instaliraju php5 i php4 paralelno, satro kompajliranje php-a ne ulazi u standardno odrzavanje.

LiquidBrain
03. 08. 2007., 22:02
@twix, delimicno si u pravu, jer ti jedan deo saobracaja mozesh da obradish, dok drugi zaglusuje link.

E sada ako taj deo saobracaja lepo redirektujesh, na dummy server, koji ce da generishe isti ack i sin broj kao paket koji treba da se posalje kao odgovor od servera koji se napada, ti automatski mozesh kroz neki slabiji link da redirektujesh napad, i onda ce samo dummy server da bude opterecen, sa nekim bednim linkom...

Inace tehnika koja se koristi za to koristi se i za hijacking konekcija.... tako da ce samo po jedan zahtev od svakog attack hosta da dodje na server koji je napadnut... :)

Za sada ne postoji software koji konkretno radi to, ali ja imam gomilu connection hijackera, koji se uz malo dorade prilagode za to...
Inace testirana metoda... :)

Pozdrav.

ivanhoe
04. 08. 2007., 13:07
Ajd da vas pitam ovde, da ne otvaram novu temu:

Yahoo Slurp! spider mi siluje servere, evo ga tail iz access.log-a:

74.6.130.205 - - [04/Aug/2007:06:02:23 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
74.6.130.203 - - [04/Aug/2007:06:02:38 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
74.6.130.203 - - [04/Aug/2007:06:02:38 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
74.6.65.237 - - [04/Aug/2007:06:02:44 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
74.6.130.200 - - [04/Aug/2007:06:02:47 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
74.6.130.205 - - [04/Aug/2007:06:02:51 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
74.6.130.205 - - [04/Aug/2007:06:02:51 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"
74.6.130.204 - - [04/Aug/2007:06:03:03 -0500] "GET /robots.txt HTTP/1.0" 200 122 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"


ranije mi je ovo isto radio i sa stranama na sajtu, sto je potpuno ubijalo server, ali sad sam mu zabranio preko robots.txt pristup i sad samo skida robots.txt, ali to radi sa milion IP adresa i salje mi oko 3 zahteva u sekundi, sto zajendo sa prilicno velikim saobracajem na sajtu (i samo 1GB RAM-a) nije uopste zanemarljivo..

Jel postoji neki nacin da ga se resim trajno? Saobracaj sa Yahoo-a me uopste ne interesuje na ovom serveru znaci spreman sam da ga ubijem skroz ako moze... vec sam ga blokirao po IP-ju pomocu Deny, ali to samo malo skracuje vreme servisiranja, on i dalje shiba zahteve i cima server... znaci mene zanima da li ima neka caka da zastitim apache da uopste ne stizu ti njegovi zahtevi (iptables ili tako nesto)

misk0
04. 08. 2007., 14:02
Yahoo botovi imaju ogranicen opseg adresa, mozes traziti od provajdera (ukoliko imas dedicated server) da na ruteru blokira te adrese. Druga mogucnost ti je mod_throttle za apache koji ima tonu nekih opcija a jedna od njih je i da blokira odredjene IPove prije nego sto apache otvori proces za njega, tj prije nego sto ga 'obradi'. Na taj nacin mozes smanjiti opterecenje na procesoru.
Treca mogucnost: pisati Yahooo da te izbaci iz baze???

ivanhoe
04. 08. 2007., 14:53
jel postoji mod_throttle za apache2.0 ?
pokusavam da ga nadjem, ali nalazim samo verziju za 1.3

bNasty
04. 08. 2007., 15:16
OpenBSD je super, ali samo packet filter ne moze da resi problem, jer ce u jednom trenutku da dodje do
data overhead-a, koji ce da dovede do 100% iskoriscenja procesorskog vremena, i opet ode sve u tri lepe...

To se resava tako sto stavish jedan server koji ce da analizira pakete, pa ukoliko je neko u nekom kratkom vremenskom periodu poslao dva ista ili slicna zahteva, onda ga forwardujesh na neki dummu server... A glavni server koji radi celu pricu ostaje sa relativno malim povecanjem zahteva...

Sve to stoji. Uz chinjenicu da je pf MNOGO VISHE nego prosti packet filter. Nikada se nisam preterano upushtao u konfiguraciju iptables na linuxu, ali shto vishe vremena provodim na OpenBSD-u sve sam vishe mishljenja da su kojekakvi mod_ovo/ono nepotrebni, chak i ako OpenBSD radi i kao pf i kao web-server.

Recimo, PF se vrti u kernelu i treba mu svega 32MB za 30,000 statefull konekcija i ne brine ga preterano CPU ni velichina paketa (i 486 mozhe da opsluzhi 5Mbps liniju). Ima ugradjenu zashtitu od spoofinga i SYN-proxy povrh toga. Podrzhava load-balancing i na ulazu i na izlazu (random, round-robin, itd.) i traffic shaping. I josh gomilu stvari...
Ono shto je meni trebalo - IP tabele su dinamichke. PF mozhe da prati sve IP adrese koje, recimo, probiju limit broja konekcija u sekundi i automatski ih stavi na "hladjenje" na neko vreme (reshenje za taj Yahoo problem). Plus shto je flooding zashtita moguca u 2 linije. Naravno, sve to pre nego zahtev i stigne do bilo kog drugog servera na istoj ili drugoj mashini.

Verovatno je sve ovo moguce i sa iptables (bilo bi lepo da neko potvrdi), ali video sam dosta sluchajeva gde OpenBSD bez problema prezhivljava saobracaj koji ugushi, konkretno, Ubuntu server.

Ako imash mogucnosti, stavish jedan mali OpenBSD PF (mozhe i FreeBSD, jer je PF i tamo portovan, ali je OpenBSD mnogo "lakshi" i mozhe da se potera na veoma slabom hardveru) ispred svog web servera i uzhivash, ostavish Apache-u da radi ono chemu je namenjen.

Naravno, ostaje pitanje odrzhavanja, treba ti neko ko zna kako da namesti PF, k'o shto reche ranije :)

Peca
04. 08. 2007., 16:23
Druga mogucnost ti je mod_throttle za apache koji ima tonu nekih opcija a jedna od njih je i da blokira odredjene IPove prije nego sto apache otvori proces za njega, tj prije nego sto ga 'obradi'. Na taj nacin mozes smanjiti opterecenje na procesoru.

brate, sto throotle, zar nije logicnije iz kernela da im blokiras celu C klasu:
/sbin/iptables -I INPUT -s 74.6.65.0/24 -j DROP
/sbin/iptables -I INPUT -s 74.6.130.0/24 -j DROP

LiquidBrain
04. 08. 2007., 19:49
Da, taj rad, dropujesh paket, i posto on ceka response, usporish ga poprilicno...

Peca
04. 08. 2007., 20:09
ma ne usporis ga vec ga totalno odseces, bar ako pricamo o ovoj liniji koju sam izneo.
ta linija skroz blokira sve zivo iz tog opsega.

ima neka fora da se ogranici maximalni broj syn paketa po sekundi... e to bi bilo usporavanje.

Peca
05. 08. 2007., 19:52
zaboravih da pitam:

Uz rizik da skrenem temu u tehnikalije (ili advocacy?) za takve ddos napade je OpenBSD + pf zakon; nikakvi mod_xxx, let the kernel do its stuff :)

kako ces http request-ove da filtriras sa pf, kada kroz jednu jedinu http konekciju moze da se shibne po 1000 request-ova ?