Zaštita od DDoS napada
Danko Sačer, Dijana Šebečić, Marin Desnica, Leda Link - Projekt: Zaštita od DDoS napada
Sadržaj |
Uvod
Razne tvrtke iz različitih djelatnosti, koriste internetske usluge o kojima ovisi njihovo poslovanje. Iz tog razloga, uskraćivanje tih usluga može dovesti do velikih problema, odnosno prouzročiti velike gubitke od kojih se teško ili čak nemoguće oporaviti. Obični korisnici također koriste brojne servise interneta. Na internetu je prisutno više stotina milijuna računala i među njima se nalaze i zlonamjerni korisnici koji žele onemogućiti te servise koje ostali korisnici koriste u različite svrhe. To su napadi odbijanja servisa – DoS napadi. Tehnologija korištena u DoS napadima širi se i napreduje te se koristi za napadanje infrastrukture interneta, dok se zaštita od ovakvih napada relativno sporo unapređuje. U nastavku će biti riječi o DoS i DDoS napadima, kako se ostvaruju te na koji način se ipak moguće zaštiti od njih.
Dijana Šebečić
DoS napadi
DoS je skraćenica za Denial of Service i označava napad uskraćivanja usluga. Ovaj napad je zlonamjerni pokušaj jedne ili više osoba da prouzrokuje napad na neki poslužitelj i na taj način uskrati neku uslugu korisniku. Cilj DoS-a je onesposobiti uređaj ili mrežu kako korisnici više ne bi njome imali pristupa. Takav napad karakterizira namjerno generiranje velike količine mrežnog prometa. Na taj način dolazi do zasićenja mrežnih resursa i poslužitelja pa oni zbog opterećenja nisu više u mogućnosti ispunjavati potrebne usluge korisnicima. Izvori mrežnog napada su distribuirani na više mjesta na internetu. Važno je istaknuti da računala s kojih se napadi obavljaju nisu u vlasništvu napadača već oni koriste računalo neke žrtve koja nije svjesna da se njeno računalo koristi za napad. Napadači pronalaze računala „žrtve“ koja posjeduju neku ranjivost, probijaju sustav zaštite i šire zlonamjerni kod. Posljedica DoS napada je nemogućnost korištenja mrežnih usluga kao što su e-mail, web i sl. od strane legitimnih korisnika.
Dijana Šebečić
Obilježja DoS napada
Nakon što računalo „žrtva“ dođe u vlast napadača, on izvršava jednu naredbu kojom pokreće napad s mnogo provaljenih računala na jedno ciljano računalo. To se često obavlja uz pomoć alata za automatizirano izvođenje napada. Ovi napadi se najčešće koriste u kontekstu napada na neku web stranicu na internetu. To znači da napadači „bombardiraju“ velikim brojem posebno konstruiranih zahtjeva, određeni servis na web poslužitelju, sve dok ne dođe do zasićenja poslužitelja, usporenja rada i na kraju onemogućavanja korisnika da otvore tu web stranicu.
Simptomi koji su prisutni kod DoS napada su slijedeći:
- neuobičajena sporost mreže (prilikom otvaranja datoteke ili pristupanja web stranicama),
- nedostupnost određene web stranice,
- nemogućnost pristupa bilo kojoj web stranici,
- drastično povećanje broja primljenih “spam” poruka elektroničke pošte (ovaj tip DoS napada se naziva "Mail-Bomb").
U DoS napade ne spadaju svi gubici usluga jer uskraćivanje usluga može biti samo jedna od komponenata cjelokupnog napada. DoS napad može uzrokovati probleme u granama mreže (eng. branches) oko napadnutog računala. To se može dogoditi kada napadač namjerno iskoristi komunikacijski kapacitet jednog usmjerivača između Interneta i LAN-a kako bi se kompromitirala cijela mreža ili se može dogoditi nenamjerno u slučaju nepravilne konfiguracije ili slabe mrežne infrastrukture. Napadi u mreži mogu biti usmjereni na bilo koji mrežni uređaj, na usmjerivače, poslužitelje elektroničke pošte ili DNS poslužitelje. Svaki sustav koji je spojen na Internet i opremljen mrežnim uslugama temeljenim na TCP protokolu potencijalna je žrtva napada.
Noviji trend u DoS napadima je slanje enormne količine beskorisnih spam poruka. Na taj način se korisne poruke i resursi mogu izgubiti. Crvi i virusi također mogu biti poslani putem spama da bi stvorili početni skup zaraženih računala. Prema “The Communications Research Network’s” VoIP bi mogao postati nova meta DoS napada.
DoS napad može uključivati izvršenje zlonamjernih programa namijenih za:
- maksimalno korištenje procesora kako bi se sprečavala bilo koja operacija,
- pokretanje pogreške u mikroprocesoru,
- pokretanje pogreške u redoslijedu naredbi kako bi računalo prešlo u nestabilno stanje,
- iskorištavanje pogreške u operacijskom sustavu da bi se uzrokovalo “izgladnjivanje”(eng. resource starvation) tj. korištenje svih dostupnih objekata tako da pravi posao ne može biti završen,
- rušenje samog operacijskog sustava,
- pokretanje posebno oblikovanih HTML datoteka koje navode korisnika da posjete web stranice mnogo puta sve dok se ne prekorači dopušteni komunikacijski kapacitet.
Dijana Šebečić
Tipovi i metode napada
Osnovni tipovi DoS napada su:
-Potrošnja računalnih resursa. Oni mogu biti komunikacijski kapacitet, diskovni prostor ili procesorsko vrijeme.
-Poremećaj konfiguracijskih podataka kao što je usmjeravanje informacija.
-Poremećaj informacija o stanju kao što je neželjeno ponovno postavljanje TCP veze.
-Poremećaj fizičke komponente mreže.
-Prekid komunikacije između legitimnih korisnika.
Metode napada
DoS napadi se dijele na softverska iskorištavanja i na poplavljivanja (eng.flooding). Kod floodinga vrijedi pravilo da onaj koji upravlja najvećim bandwidthom pobjeđuje. Ove napadi se još dijele na napade s jednog izvora, napade s više izvora ili napade s refleksijom. Kod napada s jednim izvorom je prisutan jedan napadač, a kod napada s više izvora više napadača. Kod oba napada se mogu dodati zombie računala koja su zaražena iskorištavanjem neke ranjivosti. Ona sadrže skrivene programe za upravljanje iz daljine. S druge strane, napadi s refleksijom su specijalni slučajevi napada s više izvora. Mogu se koristiti za skrivanje identiteta napadača ili pak za pojačavanje napada. Reflektor može biti bilokoje računalo koje odgovara na zahtjeve, a to se može postići na način da se dodaje IP adresa računala žrtve u izvorno polje zahtjeva. Na taj način, računalo reflektor će poslati odgovor žrtvi umjesto napadaču. Ukoliko se radi o mnogo računala reflektora tada govorimo o DoS napadu. Ovdje je važno razlikovati zombie računala od računala reflektora. Glavna razlika je ta što su reflektori legalni poslužitelji internet usluga pa je napade s refleksijom jako teško istrijebiti.
Najčešće metode napada:
- ICMP fwuds - napad poplavljivanjem, odnosno slanjem velikog broja paketa na poslužitelje s ciljem iskorištenja svih raspoloživih resursa.
- Teardrop napad - napad kod kojeg se šalju oštećeni IP fragmenti s preklapanjem na ciljano računalo.
- Stalni DoS napadi - napad koji iskorištava sigurnosne nedostatke na udaljenim upravljačkim sučeljima, prouzorkuje velike štete koje zahtjevaju zamjenu ili ponovnu instalaciju hardvera jer je usmjeren izravno na uništavanje računalnih komponenti.
- Poplavljivanje na razini aplikacije - ovaj napad se postiže najčešće distribuiranim DoS napadom korištenjem botnet-a.
- Nuke - napad koji se sastoji od slanja fragmentiranih ili oštećenih ICMP paketa na cilj.
Dijana Šebečić
DDoS napadi
Razlika između DoS i DDoS napada je što DoS napad izvodi s jednog računala, a DDoS s većeg broja računala te je iz tog razloga učinkovitiji. Kratica DDoS označava Distributed Denial of Service, odnosno distribuirano uskraćivanje usluga. Iz tog razloga osnovna ideja napada je prethodna instalacija velike količine DoS servera na različitim računalima koji čekaju naredbu centralnog klijenta za generiranje onoliko prometa koliko želi napadač prema jednoj mreži. Do potrebnih računala napadač dolazi pretraživanjem skupina IP adresa kako bi pronašao dovoljno računala koja su zaražena nekim određenim trojanskim konjem ili crvom te uz pomoć već gotovih alata, stekao kontrolu nad njima te ih iskoristio za napad na neki web poslužitelj. Za zadavanje naredbi svim inficiranim računalima, napadač koristi specijalnu infrastrukturu koja se naziva C&C (Command & Control).
DDoS napadi se danas najčešće izvode na opisani način, odnosno putem tzv. botneta. Botneti su mreže zaraženih računala, kao što smo već rekli, trojanskim konjem ili crvom. Iz toga razloga počinitelja je teško otkriti i općenito, DDoS napad je lakše pokrenuti nego se odbraniti od njega. Iako je ostvarivanje ovakvog napada kompleksan posao, na internetu postoje gotovi paketi koji se mogu iskoristiti u tu svrhu pa za ostvarivanje napada nije potrebno imati veliko znanje.
Sami DDoS napadi mogu biti usmjereni na bilo koji resurs (ne samo na web stranice) dok je god krajnji rezultat jednak; uskraćivanje usluge korisnicima. To znači da se DDoS napad može svesti, u jednostavnom slučaju, na iskorištenje veze na Internet, a u kompleksnijim slučajevima može biti riječ o simulaciji upita legitimnih korisnika u velikom broju.
DDoS napadi se mogu zamijeniti s navalom posjetitelja što je najveći problem prilikom detekcije ovakvih napada. Osim za uskraćivanje usluga od strane zlonamjernih korisnika interneta, DDoS napadi se koriste od strane profesionalnih konsultanata za sigurnost. Uz pomoć DDoS napada oni testiraju izdržljivost mreže. Prije pojave DDoS alata postojali su komercijalnih alati za distribuirano preplavljivanje paketima koji su se koristili u poduzećima koja su se bavila sigurnošću. Uz pomoć njih se utvrđivalo koliku količinu prometa može jedna mreža podržati kako bi se usluge mogle ostvarivati.
Izvršavanje napada
1.Otkrivanje ranjivih aplikacija ili poslužitelja. Ranjivi poslužitelji su oni koji sadrže operacijske sustave i sistemske programe s poznatim ranjivostima, ne sadrže antivirusne programe, sadrže antivirusne programe starijih inačica ili oni koji nisu ispravno konfigurirani.
2.Instaliranje programa kako bi se prikrila provala u sustav i sakrili svi tragovi daljnih aktivnosti. Na primjer, uz pomoć alata zajedničkog naziva „rootkit“ koji nakon instalacije preuzimaju administratorske ovlasti.
3.Instaliranje novih programa, odnosno alata za izvršavanje napada na ugrožene poslužitelje. Poslužitelji u kojima su pokrenuti takvi alati za izvršavanje napada nazivaju se zombi računala.
4.Izvršenja napada jednom naredbom koja pokreće pakete naredbi za izvršenje napada sa svih računala.
Otkrivanje ranjivih poslužitelja i širenje zlonamjernog koda
Za otkrivanje ranjivih poslužitelja mogu se koristi različite tehnike. To su:
- Skeniranje slučajnim odabirom (eng. Random scanning)
- Skeniranje pomoću popisa pogodaka (eng. hit-list scanning)
- Topološko skeniranje (eng. Topological scanning)
- Skeniranje lokalne podmreže (eng. Local subnet scanning)
- Skeniranje razmjene (eng. Permutation scanning)
Kod skeniranja slučajnim odabirom, uređaj na kojem je pokrenut zlonamjerni kod proizvoljno odabire neku IP adresu iz nekog zadanog adresnog prostora i provjerava ranjivost te ukoliko je pronađe na njemu pokreće zlonamjerni kod. Za razliku od skeniranja slučajnim odabirom, kod skeniranje pomoću popisa pogodaka se prije početka skeniranja radi popis velikog broja potencijalno ugroženih računala. Kod topološkog skeniranja pri izvođenju napada se koriste informacije (URL adrese) pohranjene na otkrivenom ranjivom računalu kako bi se pronašli novi ciljevi. Skeliniranje lokalne podmreže djeluje u području iza vatrozida kod koje poslužitelj traži ugrožena računala u svojoj lokalnoj mreži. Kod skeniranja razmjene sva računala dijele zajednički popis IP adresa te nakon otkrivanja i napada novog ranjivog računala, to računalo počinje skeniranje s proizvoljnog mjesta u popisu.
Za širenje zlonamjernog koda koriste se metode koje se mogu podjeliti u tri skupine:
I. Širenje središnjeg izvora
II. Širenje ulančavanjem unazad
III. Autonomno širenje
Kod širenje središnjeg izvora se informacije o otkrivanju ranjivog sustava šalju do središnjeg izvora i nakon toga se zlonamjerni kod prenosi do novog kompromitiranog sustava. Kod širenja ulančavanjem napadač prenosi alat za izvođenje napada do novog ranjivog sustava. Autonomno širenje je metoda kod koje u trenutku kada se razbije sustav, poslužitelj prenosi alat za napad do novo otkrivenog ranjivog sustava.
Koraci prilikom širenja zlonamjernog koda su slijedeći:
1. iskorištavanje ranjivosti,
2. prijenos povratnih informacija,
3. širenje koda na ciljano računalo tj. prenošenje alata za napad,
4. ponavljanje radnje s sljedećim ranjivim računalom.
Dijana Šebečić
Vrste DDoS napada
Vrste DDoS napada (prema CERT):
- Tipični DDoS napadi
- Reflektirajući DDoS napadi (DRDoS)
- Peer-to-peer napad
- DNS backbone DDoS napad
Tipičan DDoS napad (eng. Distributed Denial of Service)
Učesnike u tipičnom DDoS napadu možemo podijeliti na napadača (eng. attacker), žrtvu (eng. victim), gospodar računalo (eng. master computer) i rob računalo (eng. slave computer). Napadačev botnet se sastoji od master zombie računala i slave zombie računala. Kako je napadač zarazio malicioznim kodom poslužitelje (master zombije), vrlo mu je jednostavno upravljati njima na način da im šalje naredbe kojima će oni potom djelovati i na slave zombie računala. Slave zombie računala su u stanju hibernacije sve dok master ne pošalje odgovarajuću naredbu za napad. Kada master zombie računalo pošalje određenu naredbu, ona pokreće slave zombie računala, te ona napadaju žrtvu. Upravo u ovom tipičnom DDoS napadu kada dođe do pokretanja slave zombie računala, ta računala počinju slati velike količine paketa podataka na žrtvu, te preplavljuju njezin sustav beskorisnim podacima i s čijim se opterećenjem izuzetno teško nositi. Prilikom slanja takvih paketa podataka žrtvi, IP adresa izvora bude lažirana kako bi otkrivanje zombie računala bilo što teže, te kako bi napadač time mogao sakriti svoj identitet.
Reflektirajući DDoS napad (eng. Distributed Reflected Denial of Service)
Ovaj oblik DDoS napada uključuje slanje lažnih zahtjeva na vrlo velik broj računala (što se za početak puno ne razlikuje od tipičnog DDoS napada, međutim u ovom obliku ta računala odgovaraju na te zahtjeve (od toga i dolazi do dijela reflected u nazivu ovog napada). Način na koji ta računala odgovaraju na računalo žrtve je upravo definiran u izvorišnoj adresi unutar zahtjeva koja je postavljena tako da svi odgovori na zahtjev budu preusmjereni na ciljano računalo žrtvu. DRDoS napad generira istu količinu paketnog prometa kao i tipičan DDoS napad, međutim koristi efikasniju metodu za postizanje istog. Metoda je sljedeća: kada poslužitelj prima SYN paket, odgovara SYN/ACK paketom. Pri napadu, šalje se SYN paket bilo kojem od javno dostupnih poslužitelja koji ima lažiranu izvornu IP adresu koja pokazuje na žrtvu napada. Primatelj SYN paketa generira SYN/ACK i šalje ga izvoru (koji je žrtva). Na ovaj način poslužitelj se koristi da bi odražavao pakete na ciljanu mrežu, a ne za slanje paketa izravno na cilj kao što je primjerice u tipičnom DDoS napadu. U odnosu na DDoS napad, DRDoS je napad koji može uzrokovati više štete s manjim brojem poslužitelja. Poslužitelji koji reflektiraju ne moraju biti ranjivi, tj. na njih ne treba provaljivati pa se za napad može koristiti veliki broj poslužitelja koji su inače dobro zaštićeni. Odmah možemo spomenuti i jedan od načina kako zaštititi sustav od DRDoS napada, a to je filtracijom SYN/ACK paketa. Ukoliko se pretpostavlja da je ciljano računalo zapravo poslužitelj, ono nema razloga primati SYN/ACK pakete jer poslužitelji primaju SYN i ACK pakete.
Peer to peer napad
Peer to peer napad se može smatrati jednom inačicom DDoS napada. Radi se zapravo o poznatom načinu veze jedan-na-jedan u koju su napadači uspjeli iskoristiti u zlonamjerne svrhe. Način na koji su to učinili jest tako da napadač nalaže klijentima velikih peer-to-peer čvorišta za dijeljenje datoteka da se isključe iz svojih peer-to-peer mreža i spoje na žrtvino računalo. Kao rezultat imamo tisuće računala koje se pokušavaju agresivno spojiti na žrtvino računalo. Iako tipični web poslužitelj može obrađivati nekoliko stotina veza u sekundi, većina poslužitelja pada prilikom par tisuća veza.
DNS backbone DDoS napad
DNS Backbone DDoS napad je napad u kojem se napadač koristi DDoS napadom kako bi razbio jedan ili više DNS poslužitelja. DNS (eng. Domain Name System) poslužitelj služi za prevođenje tekstualnih imena poslužitelja u IP adrese. Izvođenje ovog napada može biti vrlo štetno jer dolazi do velikog gubitka prometa. Izvođenje ovakvog napada je zapravo potpuno isto kao i tipičan DDoS napad ali je žrtva DNS poslužitelj.
Leda Link
Motivi za napad
Prvi DoS napadi su bile šale s ciljem dokazivanja da se nešto može učiniti, kao što je npr. „rušenje“ poznatog Web portala. Također, bili su tu i politički razlozi, odnosno pojedinci i grupe koji se nisu slagali s pogledima neke organizacije znali su izvesti DoS napad na njihova računala i mrežu. U novije vrijeme pojavio se velik broj napada s ciljem ucjena u kojoj se za zaštitu napadači tražili novčanu naknadu. Napadi su se izvodili i na suparničke tvrtke na tržištu kako bi se pokazala nadmoć.
Dijana Šebečić
Zaštita od DDos napada
Prema CERT-ovom dokumentu, zaštitu od DDoS napada možemo podijeliti na dvije vrste:
- Tehnička zaštita
- Zakonska zaštita
Tehnička zaštita
Kada govorimo o tehničkoj zaštiti, primarno se oslanjamo na zaštitu poslužitelja. Razlog tome jest upravo taj što je DDoS napad u pravilu uvijek orijentiran na poslužitelj. Kako bismo osigurali adekvatnu zaštitu poslužitelja, valja se držati određenih metoda koje bi se trebale provesti prilikom samog procesa zaštite (prema CERT):
- Napraviti popis svih procesa koji su pokrenuti na poslužitelju kao i popis svih mrežnih priključaka na kojima se pružaju usluge
- Onemogućiti sve procese osim onih koji su potrebni za normalan rad poslužitelja kako bi pružio predviđene usluge
- Uvesti filtriranje paketa
- Distribuirati web stranicu preko višestrukih poslužitelja
- Povezivanje na Internet preko više pristupnih točaka
- Ugradnja alata za praćenje napada
Kako CERT navodi, niti jedna od navedenih metoda nije u potpunosti učinkovita u obrani od DDoS napada. Razlog tome je što sve navedene metode ne djeluju na sve tipove DDoS napada, stoga je obrana od DDoS napada još uvijek vrlo kompliciran posao. Ipak, kako CERT navodi, radi se na novim obrambenim mehanizmima za obranu od DDoS napada, a jedan od takvih jest razvoj računala mamaca (eng. honeypots). Računala (ili u našem slučaju u pravilu poslužitelji) mamci se zapravo mogu najbolje definirati kao zamke za napadače. Cilj kreiranja mamca je u tome da osim što mogu puno jednostavnije doći do napadača (jer su konfigurirani tako da prate do najsitnijih detalja sav promet i zahtjeve), već i da omoguće što jednostavniju analizu tehnike napada na računalo/poslužitelj. Iako je namjena mamca prikupljanje informacija o ranjivosti sustava i prikupljanje novih inačica zlonamjernog koda, oni se mogu koristiti i kao kvalitetan mamac za napadače koji žele počiniti DDoS napad. Naime, mamci se predstavljaju kao korisni poslužitelji, poslužitelji koji imaju vrijedne informacije, i moguće je konfigurirati jedan mamac da predstavlja poslužitelj koji je napadaču od interesa.
Zakonska zaštita
Što se zakonske zaštite tiče, CERT također daje uvid i u mogućnosti kako odgovarati pred zakonom ukoliko dođe do otkrivanja napadača koji je koristio DDoS napad. Prema CERT, u Hrvatskoj imamo sljedeće zakonske zaštite:
- Konvencija o kibernetičkom kriminalu (donesena od Vijeća Europe, 23. studenog, 2001. godine, a stupila na snagu 1. srpnja, 2004. godine) - Zakon o izmjenama kaznenog zakona (Konvencija uvrštena u zakon, stupljeno na snagu 1. listopada, 2004. godine)
Članak 223.
Povreda tajnosti, cjelovitosti i dostupnosti računalnih podataka, programa i sustava
(1) Tko ošteti, izmjeni, izbriše, uništi ili na neki drugi način učini neuporabljivim ili nedostupnim tuđe računalne podatke ili računalne programe, kaznit će se novčanom kaznom ili kaznom zatvora do tri godine.
(2) Tko unatoč zaštitnim mjerama neovlašteno pristupi računalnim podacima ili programima ili neovlašteno presreće njihov prijenos, kaznit će se novčanom kaznom ili kaznom zatvora do tri godine.
(3) Tko onemogući ili oteža rad ili korištenje računalnog sustava, računalnih podataka ili programa ili računalnu komunikaciju, kaznit će se novčanom kaznom ili kaznom zatvora od tri godine.
(4) Ako je kazneno djelo iz stavka 1., 2., ili 3. ovog članka počinjeno u odnosu na računalni sustav, podatak ili program tijela državne vlasti, javne ustanove ili trgovačkog društva od posebnog javnog interesa, ili je prouzročena znatna šteta, kaznit će se kaznom zatvora od tri mjeseca do pet godina.
(5) Tko neovlašteno izrađuje, nabavlja, prodaje, posjeduje ili čini drugome dostupne posebne naprave, sredstva, računalne programe ili računalne podatke stvorene ili prilagođene za činjenje kaznenog djela iz stavka 1., 2. ili 3. Ovog članka, kaznit će se novčanom kaznom ili kaznom zatvora do tri godine.
(6) Posebne naprave, sredstva, računalni programi ili podaci stvoreni, korišteni ili prilagođeni za činjenje kaznenih djela, a kojima je počinjeno kazneno djelo iz stavka 1., 2. ili 3. ovog članka oduzet će se.
(7) Za pokušaj kaznenog djela iz stavka 1., 2. ili 3. ovog članka počinitelj će se kazniti.
Leda Link
Konkretizacija
Zaštita od distribuiranog Denial of Service napada može se zapravo promatrati kao zaštita servera od bilo kakvog napada (koji dovodi do ispada servera). Ciljevi napadača mogu biti raznovrsni no uglavnom se svode na ove dvije stvari, sam ispad servera (prekid rada, odgovaranja na zahtjeve korisnika) i manipulacija podacima (krađa, promjena, brisanje ili neovlašteno dohvaćanje/kopiranje podataka).
Ovaj prvi dio služi da se izravno i ciljno napadne neka kompanija, pružatelj usluga i servisa na webu. Ovako orijentirani napadi često se događaju iz frustracije pojedinca ili grupe prema nekoj pravnoj osobi koja je ili nanijela nekakvu štetu takvim ljudima (banke, osiguravajuća društva, web trgovine) ili u maloj mjeri prihvaćena u javnosti (npr. vladine i državne institucije zemalja nestabilnih društvenih situacija). To je u pravilu neka vrsta osvetničkog pothvata.
Zatim tu je još slučaj kada do ispada servera dolazi uslijed aktivnosti pojednica koji želi isprobati nešto novo (iz mračnog svijeta računala, neki novo razvijeni maliciozni kod i sl.), želi upoznati moguće ranjivosti web servisa na stvarnom primjeru (novak je u tom području) i vidjeti kako to radi ili pak nezna što radi i slučajno napadne neki server. Ovakvih korisnika se sve serverske kompanije moraju bojati jer oni neće birati metu napada već će slučajno odabrati neki server koji znaju te iskoristiti ga u lošoj namjeri. Srećom, takvi napadači obično i najviše griješe. Naime, ukoliko je server u određenoj mjeri zaštićen (prati aktivnosti svih korisnika pa i onih neautoriziranih), a korisnik nije previše upoznat sa područjem mreža i sigurnosti te ne zna točno što radi i želi njega se lako može otkriti. Nakon toga ovisno o težini prijestupa te politici zaštite (povrede) podataka neke kompanije, napadaća se može samo opomenuti, može mu se zabraniti daljnji pristup serveru ili ga se može kazneno prijaviti. Stoga nije baš preporučljivo raditi nešto za što niste sigurni kako će raditi ni kako će se odraziti na druge. Bolje je utažiti svoje apetite (istraživačke, eksperimentalne) na vlastitim resursima (vlastitom računalu na localhostu ili virtualnoj mašini) iako to možda neće dati potrebnu širinu znanja.
Dakako, do ispada servera može doći i nenamjerno, dakle može se dogoditi da u nekom trenutku naglo poraste interes stvarnih korisnika za nekim servisom/uslugom do tih razina koje server ne može procesirati, nije predviđen za toliki promet. To je više problem samog konstruiranja servera i njegove svrhe (namjene).
Drugi dio koji se odnosi na manipulaciju podataka još je ozbiljniji napad od samog ispada servera, no često je i njegov prateći dio. Pošto je vlasnik servisa taj koji mora osigurati zaštitu (tajnost, integritet, dostupnost, neporecivost) podataka (vlastitih i tuđih) napadom na podatke oštećuje se kompanija, ali i svi njeni korisnici do čijih podataka se došlo (pročitano, mijenjano, brisano, kopirano, itd.). Kompanija gubi na autoritetu i povjerenju korisnika, dok korisnici gube svoju privatnost uz mogućnost daljnjeg oštećenja tih korisnika (materijalno, emocionalno, itd.). Ovdje napadaći nisu motivirani osvetom ili zavjerom, već jednostavno nekim daljnim ciljem (materijalno se zadovoljiti). Ovakve napade obično provode stručnjaci koji su daleko iskusniji u ovom području od onih koji žele samo nešto probati te se njih vrlo rijetko može uhvatiti (u pravilu ih se nikad ne nađe). Oni, osim sigurnosti i rada mreže, poznaju (razumiju) i zakonodavstvo stranih država, znaju kako i gdje se sakriti i kako maskirati svoj identitet na mreži. Često se ovakvi napadi izvedu tako da nitko ni ne zna da su se dogodili, a ako se i kada otrkrije više im se ne može ući u trag.
Ovo gore navedeno su veliki problemi za sve kompanije koje koriste vlastite servere da bi pružale određene koristi na webu. Naime, često puta se ova dva slučaja napada povezuju. Jedni sruše server, a dok administratori to popravljaju drugi upadnu u sustav i kradu podatke. Stoga je vrlo bitno da server ostane „živ“, da u svakom trenutku pruža uslugu kako se ne bi dala mogućnost napadima na podatke. Denail of Service poznati je napad na raspoloživost servera. Distribuirani DoS daleko je opasniji s gledišta količine paketa koji najednom dolaze na neki port i zahtjevaju komunikaciju. Ovdje će se opisati kako se konkretno ovakvi napadi mogu zaustaviti odnosno kako se od njih zaštititi, što sve treba poduzeti i imati na umu da do takvih napada uopće ne bi došlo.
Danko Sačer
Koraci za smanjenje rizika i učinaka DDoS napada
Ne postoji neki predefinirani (univerzalni alat) za sprečavanje ove vrste napada. Naime, kada napadi dolaze sa različitih mjesta (različitih IP adresa) u istom trenutku njih sve se ne može odjednom identificirati i obraditi. No mogu se poduzeti neke mjere koje će doprinjeti zaštiti od DDoS napada, to jest, smanjiti rizike za napadom i umanjiti učinke ako se napad već dogodi. Da bi se smanjili rizici te umanjili učinci ovakvih napada, potrebno je poduzeti određene korake od strane korisničkih organizacija (kompanija), internet pružatelja usluga (ISP – Internet Service Provider), administratora mreže i pružatelja softvera. Jedino kolektivnom svješću svih sudionika na mreži i zajedničkim djelovanjem protiv bilo kakvih nepravilnosti može se doprinjeti većoj (nikad potpunoj) zaštiti servera.
Spoofing napadi su jedan od glavnih problema kod DDoS-a. Napadači obično prikrivaju vidljivost (identitet) računala sa kojeg napadaju maskiranjem izvorišne adrese (one sa koje se šalje zahtjev) u mrežnoj komunikaciji. To rezultira nemogućnošću pronalaska izvora napada odnosno vrlo često se pozornost i zaštita obraćaju na nekog tko uopće nema veze sa napadom. Ograničavanje napadača da maskiraju IP adrese neće spriječiti napade, ali će drastično smanjiti vrijeme pronalaska izvora napada. U svrhu ograničavanja maskiranja IP adresa, korisničke organizacije i ISP-ovi trebali bi osigurati da promet koji se odvija na mreži organizacije koju pruža ISP uvijek sadrži adresu izvora koja je zahtjevala komunikaciju na toj mreži (ako se sakriva izvor bolkira se pristup mreži). Što znači da kada se i dogodi napad može se otkrtiti odakle je on pokrenut u svrhu blokiranja ovakvih IP-ova. Konkretno, organizacije moraju osigurati da svi paketi koji se šalju iz njihove mreže imaju adresu izvorišta u rasponu njihove mreže. ISP-ovi također mogu osigurati backup za prikupljanje i odbijanje neželjenog prometa kojeg organizacije nisu uspjele filtrirati (dodatna razina zaštite) ako spoofing napad dolazi sa autoriziranog izvora. Problem slanja broadcast paketa također je jedan važan aspekt kojeg treba uzeti u obzir prilikom zaštite servera. Naime, ako napadač maskira izvornu adresu komunikacije adresom servera kojeg želi napasti, zatim pošalje pakete na broadcast adrese više različitih računala, ona će (ukoliko nisu poduzete mjere zaštite) odgovoriti na zahtjev i tako će svi napadati server (u želji za slanjem odgovora na broadcast poruku) čija adresa je stavljena kao izvorište (source) komunikacije. Najbolje rješenje ovog problema je da se broadcast promet isključi. Ako kompanija ima potrebu za ovakvim prometom, bolje ga je uključiti po potrebi ili blokirati određeni promet koji se šalje na broadcast adrese. Također, proizvođači mrežne opreme moraju osigurati da ruteri imaju mogućnost isključenja broadcast prometa i da to bude postavljeno kao defaultna konfiguracija rutera.
Odgovarajući odgovor na napade također je bitan aspekt sigurnosti. Mnoge kompanije uopće ne žele reagirati na napade koji im se dogode. Ili jednostavno zanemaruju napade ili ih zabilježe i dalje ne poduzimaju ništa. To svakako nije preporučljivo jer daje napadačima mogućnost da međusobno dogovaraju i isprobavaju napade bez ikakvih posljedica. Tu se otvara mogućnost da se razvijaju kriminalne radnje koje nitko neće kontrolirati ni znati za njih (osim same kompanije). Ovdje bitnu ulogu igraju takve kompanije koje bi trebale donijeti (i provoditi) politiku odgovora na incidente te uvjete odgovornosti i postupaka ukoliko dođe do napada (da li se napadača kazneno prijavljuje, da li će ga se samo opomenuti i o čemu to ovisi). ISP-ovi također moraju uspostaviti metode i politike odgovora na napade pružanja njihovih usluga (jer napadači često napadaju internet konekcije ako ne mogu sam server da postignu cilj – ispad iz mreže). Doduše, ISP-ovi u većini slučajeva imaju to područje jako dobro pokriveno (politikama reagiranja, odgovornostima neovlaštenog postupanja i pristupa njihovim uslugama i sl.). Također, za oboje vrijedi da bi se svi napadi u pravilu trebali prijaviti odgovarajućim tijelima (proizvođačima, centrima za sigurnost i sl.) da bi se i drugi korisnici mogli zaštititi od nekih napadača.
Kako se distribuirani DDoS izvršava uobičajeno od strane jednog napadača koji preko bootneta upravlja tuđim računalima koja onda napadaju metu, potrebno je zaštititi druga računala od preuzimanja od strane napadača. Računala kojima napadač upravlja su obično u vlasništvu neke kompanije (kojoj se vjeruje). Stoga je preporuka da se u njima redovito vrši sistemska provjera te u slučaju pronalaska malicioznog koda sistem se vraća u posljednje povoljno stanje („last known good state“) ili se čisti od takvog koda. Privatni korisnici također mogu biti meta ovakvih preuzimanja upravljanja računalom te bi stoga u svrhu vlastite sigurnosti i odgovornosti trebali provjeravati stanje svojih računala da ne bi došlo do neželjenih situacija (zbog neznanja ili nepažnje u zaštiti korisnik može biti optužen za napad). Također se preporuča da kompanije koriste neki napredniji, dobro konfiguriran firewall koji će filtrirati i analizirati promet na mreži te štititi od napada. Sva oprema se treba redovito provjeravati da li posjeduje trenutno važeće verzije zaštitinih alata. Dobro je napraviti i voditi listu top 20 napadnutih (otkrivenih) slabosti odnosno top 20 napada koji su se uočili kako bi administratori mogli postaviti prioritete zaštite (znali na što se više treba fokusirati). Naravno, neprestano usavršavanje i provjeravanje vlastitih stručnjaka (i administratora) za sigurnost, mrežu i cijeli sustav temelj je korištenja trendova i trenutnih rješenja za zaštitu i u slučaju napada.
Za kraj vrlo bitan čimbenik je važeća dokumentacija („living document“) koju bi svi sudionici trebali voditi, a koja prati sve promjene koje su se poduzimale u organizaciji, politici poslovanja, postavkama aplikacija, korištenim alatima itd. uslijed uoćenih prijetnji. Ovaj dokument može poslužiti za konzultiranje sa drugim stručnjacima (izvan organizacije) iz područja sigurnosti koji nam mogu dati neke korisne savjete i prijedloge za naše probleme odnosno na naša trenutna rješenja. Praćenje trenutnog stanja uvijek daje mogućnost brzog napretka povećanja sigurnosti od bilo kakvih DDoS i drugih napada.
Danko Sačer
Firewall zaštita
Firewall alati su jedna od osnovnih konkretnih mjera koje kompanije mogu poduzeti za sprečavanje DDoS napada. Oni omogućuju kontrolu prisupa mreži te prate sav promet koji se ondje odvija. Jedan od novijih alata na tržištu je FORTGuard Anti-DDoS Firewall. Definiran je za Windows 2000 Server računala i Windows 2003 Server računala. Link na službenu stranicu: http://fortguard.com/.
Alat je user-friendly, ima dosta jednostavno i funkcionalno grafičko sučelje koje omogućava korištenje i početnicima u području sigurnosti. Ovaj firewall ima mogućnost monitoringa, promatranja mreže. To daje prikaz svih veza i paketa koje host koristi odnosno koji se kreću mrežom (TCP veze, SYN paketi, ACK paketi, UDP paketi, ICMP paketi). Ako dođe do napada tako da se šalje ogroman broj tcp paketa ili http request zahtjeva, ovdje će se to vidjeti u konstantnom povećavanju broja pristiglih paketa ili zahtjeva za vezom (Slika 5.1).
Slika 5.1 Sučelje Fortguard alata: Monitoring [1]
Tada se može vidjeti odakle sve pristižu zahtjevi i blokirati ta računala stavljajući ih na crnu listu („black list“). Iako je kod običnog DoS napada to vrlo efikasno, distribuirani DoS je teško na taj način zaustaviti. Ako napada tisuće računala sa različitim IP adresama ne možemo sve njih u par sekundi zablokirati i staviti na crnu listu. Za to nam treba neko vrijeme, a dok jedne blokiramo drugi nam već mogu nanijeti štetu. Stoga, ovdje postoje mogućnosti filtriranja prometa na mreži i zaštite (blokiranje portova, filtriranje IP adresa, zaštita TCP veze, upavljanje upadima).
U dijelu „Ports to block“ mogu se dodati portovi ili raspon portova koji se želi blokirati. Prilikom dodavanja ispišu se svi otvoreni portovi vlastitog internet adaptera te se tako lako može odabrati što se želi blokirati. Zatim filtriranje IP („IP filters“) adresa omogućuje određivanje raspona IP adresa koje se želi odbiti („reject“), ali i raspona IP adresa kojima se vjeruje („trust“).
Upravljanje upadima odnosno uključivanjem opcije „Enable Intrusion Prevention“ (u „Intrusions“ dijelu u postavkama, Slika 5.2) aktivno se prate i blokiraju napadi crva, spyware-a, napadi ispada sustava, napadi na bazu podataka, napadi na mrežnu infrastrukturu i drugi slični napadi.
Slika 5.2 Sučelje Fortguard alata: Intrusions [2]
Također je potrebno ovdje definirati i „Time to Block (seconds)“ tako da se odredi koliko dugo će se odbijati mogući napad (preporuka 1800 sek). Maliciozni kod, ako ne uspije nakon kratkog vremena, se može uočiti na vrijeme i blokirati.
„TCP Flow Control“ dio kontrolira protok prometa na TCP vezi. Ovdje se ručno može podesiti zaštita TCP veze ako je napadnuta preplavljivanjem (TCP flooding ili HTTP request flooding). Dakle ako se napad trenutno odvija na portu 80, odabire se „add“ u dijelu „TCP Flow Control“, zatim se u polje „Port to Protect“ upisuje 80, te se u „Max Idle Time (seconds)“ upisuje 60. Zatim se pored „Connections Restriction per IP“ odabire „Settings“ te se postavljaju „Max Connections per IP“ (na primjer na 40) i „Time to Block (seconds)“ (na 1800 sek). Nakon toga se u postavkama „HTTP Proxy Access Restriction“ odabire „Disable Http Proxy Access“ te pored toga „Advanced“ gdje se odabire proxy opcija „Conservative Proxy Identification“ i „ok“. Još se onda definira „Time to Block (seconds)“ (može na 7200) da se stigne izvršiti identifikacija proxy-a i sve postavke se potvrde. U postavkama „Connections Restriction per IP“ mogu se još definirati polja “Tcp Connection Rate Restriction“ da se smanji učestalost napada ovisno o uvjetima napada (veličini i broju paketa, broju napadača i sl.). Tu se postavljaju „Max New Connections per IP“ npr. na 10, onda „Time Span“ na 10 sek te „Time to Block“ na 1800 sek. Tako da u 10 sek može doći jedan novi zahtjev sa neke IP adrese, a maksimalno može doći 10 novih zahtjeva, a ne tisuće.
Ako dolazi do ARP spoofing napada (neka osoba ili program (računalo) se predstavljaju kao netko drugi) potrebno je odabrati Anti-Arpspoof te nakon selektiranja vlastitog internet adaptera odabrati „Bind“.
Alat posjeduje i „Logs“ dio (Slika 5.3) u koji se zapisuje sve što se prati i mijenja na mreži tako da je moguće vidjeti što se događalo u bilo kojem trenutku.
Slika 5.3 Sučelje Fortguard alata: Logs [3]
Ako dođe do bilo kakvih problema ili je potreban savjet u obrani nekog napada uvijek se može kontaktirati služba za podršku support@fortguard.com.
Firewall uvelike može reducirati DDoS napade, no ne ih i u potpunosti spriječiti. Razlog tome je što bilo koji firewall alat posjeduje mogućnost odabira „trusted hosts“ odnosno računala kojima se vjeruje. Računala koja su upisana u ovo polje se ne provjeravaju putem firewall-a što je jedna od većih slabosti. Naime, napadač koji želi kompromitirati odnosno srušiti neki server može svoje računalo (ili druga zaražena računala – računala zombi) upisati u „trusted hosts“ polje i tako firewall uopće neće reagirati na promet koji ta računala šalju. Također, zna se da su serveri računala koja pružaju više od jedne funkcionalnosti. Jedan alat teško da će zaustaviti sve napade. Stoga treba pažnju i brigu o sigurnosti voditi u svakom dijelu. Ako server ima e-mail servis (što je uobičajeno i slučaj) potrebno je postaviti neka ograničenja i na takvu komunikaciju (filtriranje SMTP paketa odnosno blokiranje nepouzdanih e-mail servisa). Email poruka sa dodanim (attached) malicioznim kodom može zaobići firewall. Još jedan problem koji se javlja kod firewall-a je blokiranje SSH dolaznih tunela (SSH tuneliranje). Problem se javlja što se neki blokirani port može iskoristiti za preusmjeravanje veze na neki slobodan port. Moguća zaštita je kriptiranje podataka koji se šalju mrežom što u pravilu nije efikasno izvesti za sve podatke.
Ako je pak firewall prestrogo definiran može smanjiti umreženost i dostupnost stvarnim korisnicima. Smatra se da upotreba firewall-a nije poželjna u okruženjima gdje korisnici neprestano razmjenjuju aplikacije. Ono što se dobiva sigurnošću gubi se na funkcionalnosti. No, treba biti spreman prihvatiti neke nedostatke kako bi se rizik od uspješnog napada sveo na minimum.
Danko Sačer
Zaštita uz pomoć honeypot-a
U obrani od DoS napada honeypot se pokazao izuzetno efikasnim, međutim kod DDoS napada je situacija nešto složenija. Iz tog razloga se preporuča kreiranje honeynet-a, što mi nažalost nismo mogli pokazati u ovom projektu jer zahtjeva znatno više znanja jer se radi o umrežavanju honeypot-ova, te snažnije računalne resurse od onih koje mi posjedujemo. Ipak, na primjeru honeypot-a ćemo prikazati što smo uspjeli simulirati i izvesti neke zaključke.
HoneyBOT
HoneyBOT je softver kreiran za Windows operacijski sustav, te je njegova konfiguracija upravo konfiguracija honeypota, tj. tzv. „zamke“ za napadače. Jedna od glavnih kvaliteta HoneyBOT-a je u tome što kreira „karantenu“ malicioznog softvera, te samim time sustav na kojemu je pokrenut čini sigurnijim.
Kako HoneyBOT funkcionira?
HoneyBOT funkcionira tako da otvara više od 1000 UDP i TCP socketa za prisluškivanje na vašem računalu, a ti socketi su dizajnirani na način da simuliraju (imitiraju) nezaštićene servise. Kada se napadač spoji na neki od tih servisa, on zapravo smatra da je napao pravi server. HoneyBOT na siguran način snima svu komunikaciju između napadača i servisa, te sve rezultate sprema u log file za daljnju analizu. Ukoliko napadač pokuša iskoristiti ili uploadati rootkit ili trojanca na server, HoneyBOT će na siguran način pospremiti te fileove na računalo radi daljnje analize. Ipak, valja napomenuti da je HoneyBOT i dalje u eksperimentalnoj fazi, te nisu svi trenutno otvoreni portovi programirani da imitiraju nezaštićene servise.
Leda Link
HoneyBOT praktični dio
Naša instalacija i ostale karakteristike:
- HoneyBOT verzija 1.8 preuzeta s http://www.atomicsoftwaresolutions.com/download.php
- Virtualna mašina: Microsoft Windows XP Professional Service Pack 2
- Pokretanje virtualne mašine: Oracle VM VirtualBox
- Update-ati MSINET.OCX u system32
- Napraviti DMZ (ukoliko se radi o snimanju eksternog prometa)
Main screen HoneyBOT-a:
Slika 6.1. Main screen HoneyBOT
Na Slici 6.1 je prikazan glavni prozor aplikacije HoneyBOT. Kako iz slike možemo vidjeti, tab sadrži nekoliko opcija – File, View, Reports i Help.
File – sadrži opcije pokretanja, pauziranja i gašenja honeypota
View – ima prikaz servisa i whitelista
Reports – prikazuje reportove o portovima, protokolima i paketima koji su trenutno aktualni i praćeni na HoneyBOT serverima
Sav promet bilježen u aplikaciji HoneyBOT se sprema u log file, također može se uključiti opcija da se promet snima u CSV datoteku, te se potom može pregledno ispisati primjerice u excel-icu. Na ovoj slici je također prikazan tree view u kojemu se mogu vidjeti portovi i odgovorna računala.
Prilikom snimanja aktivnosti napadača možemo vidjeti sljedeće karakteristike:
- Date
- Time
- Remote IP
- Remote Port
- Local IP
- Local Port
- Protocol
- Bytes
Prilikom pokrenutog honeypot-a na našem računalu, bilo je pokrenuto 1336 socketa.
Interni promet
Slika 6.2. Interni promet snimljen HoneyBOT-om
Na Slici 6.2 je prikazan interni promet snimljen HoneyBOT-om. Ono što je evidentno iz snimljenog internog prometa jest da je neko računalo unutar naše mreže već zaraženo virusom ili crvom.
Eksterni promet
Kako bi se eksterni promet uopće mogao snimiti, potrebno je prvo računalo staviti u DMZ (eng. Demilitarized Zone) - izložiti IP adresu na Internet, tj. izložiti računalo van firewalla na Internet (nužno postaviti router). Time smo dobili ranjivo računalo koje simulira poslužitelj koji je aktivan i vidljiv napadaču, a zapravo u pozadini snima promet i može pronaći napadača.
Slika 6.3. Eksterni promet snimljen HoneyBOT-om
Slika 6.4. Log file paketa
Slika 6.3. pokazuje eksterni promet snimljen HoneyBOT-om u kojemu je vidljivo da se velik broj različitih IP adresa spajalo na poslužitelj, te je snimljeno koliko velik je bio promet poslan poslužitelju i što se u njemu nalazilo (vidljivo u karanteni u folderu captures). Detaljniji prikaz paketa je moguće vidjeti u log fileu paketa (Slika 6.4) gdje se točno može vidjeti što je primljeno bez da se pokreće maliciozni sadržaj i kompromitira računalni sustav.
Prilikom obrane od DoS napada, ovaj princip se pokazao izuzetno učinkovitim jer napadač napada krivi poslužitelj, misleći da je honeypot upravo poslužitelj kojeg želi napasti. Obraniti se od DDoS napada možemo također na ovaj način, uz pomoć honeypot-a, međutim kako se radi o napadu u više slojeva, puno je teže otkriti napadača (u teoretskom dijelu projekta je detaljno objašnjena „hijerarhija“ unutar DDoS napada gdje imamo napadača-master zombie računala-slave zombie računala-žrtvu). Iz tog razloga su u trenutnom istraživanju postali popularni honeynet-ovi, koji su zapravo mreže više honeypot-ova koji samim time mogu jednostavnije pratiti napadača DDoS napada, za koji možda samo jedan honeypot ne bi bio dovoljan.
Leda Link i Marin Desnica
Literatura
[1] http://www.scribd.com/doc/82334776/7/Za%C5%A1tita-od-DoS-napada
[3] http://www10.org/cdrom/papers/409/
[5] http://www.fortguard.com/help/FortGuard%20Anti-DDoS%20Firewall%20User's%20Manual%20v2.pdf
[7] http://www.sans.org/dosstep/roadmap.php
[8] http://sistemac.carnet.hr/node/658
[9] http://mreze.layer-x.com/s060100-0.html
[10] http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2008-09-240.pdf