Modeliranje DoS napada
Uvod
Posljednih desetak godina napadi uskraćivanjem usluga postali su popularno sredstvo nanošenja štete onima koji pružaju bilo kakave informacije i usluge putem interneta. Napadi uskraćivanjem usluge (eng. DoS – Denial of Service) su aktivnosti poduzete od strane zlonamjernih korisnika s ciljem onemogućavanja pravilnog funkcioniranja računala ili mrežnih resursa, čime određene usluge postaju nedostupne.
Općenito o DoS napadima
DoS napadi nisu zanemariv problem u današnje vrijeme. Razlozi za pokretanjem DoS napada mogu biti različiti te ih je moguće izvršavati koristeći različite alate pisane upravo za ovakve svrhe, ali i alate čija je temeljna namjena sasvim drugačija. Najčešći razlog za njihovo pokretanje je obijest zlonamjernih korisnika.
DoS napadi često se provode i kao jedna od faza nekog većeg napada koji za cilj ima dobivanje neovlaštenog pristupa žrtvinom računalu. Jedan primjer takve situacije može biti napad ne neki od kriptografskih protokola u kojem je privremeno potrebno neki kriptografski servis učiniti nedostupnim.
Svaki DoS napad ima tri uključene strane. To su:
- napadač – osoba koja provodi napad. On želi oštetiti neko ciljano računalo na internetu.
- žrtva – računalo koje trpi napad. Rezultat napada je nemogućnost žrtve da isporuči uslugu svojim korisnicima.
- korisnici – sve osobe koje na legalan način koriste usluge žrtve. Za vrijeme DoS napada njima je pristup željenim uslugama onemogućen.
Termin DoS napad najčešće se pojavljuje u kontekstu računalnih mreža i mrežnih tehnologija budući da se takvi napadi najčešće provode putem njih. No, DoS napadi nisu ograničeni samo na računalne mreže. DoS napad moguće je provesti iskorištavanjem neke sigurnosne ranjivosti.
Osim problema sa softverom, svako fizičko uništavanje infrastrukture također je oblik DoS napada. Za uspješno provođenje takvog napada napadač mora imati fizički pristup infrastrukturi ili softveru na ciljanom računalu.
U usporedbi s fizičkim uništavanjem infrastrukture, za DoS napad putem mreže nije potreban fizički pristup žrtvi i oni ne spadaju u domenu kontrole fizičke sigurnosti.
Napadi iskraćivanjem usluge najčešće se obavljaju od strane udaljenih napadača pa se globalno dijele na dvije skupine prema sloju na kojeg su usmjerni. Na taj način moguće ih je podijeliti u navedene skupine:
- napadi usmjereni na aplikacijski sloj,
- napadi usmjereni na mrežni sloj.
Napadi na mrežni sloj često ne dolaze iz samo jednog izvora pa se takve naziva distribuiranim napadima uskraćivanja resursa (eng. DDoS – Distributed DoS).
- Prema izvorima [1], [2]
DoS napadi na aplikacijskom sloju
DoS napadi na aplikacijskom sloju u većini slučajeva imaju za cilj onesposobiti ili otežati rad aplikacija, a rjeđe i uzrokovati trajni prestanak rada računalnih servisa i aplikacija. Pri tome oni mogu biti izvedeni od strane lokalnih ili udaljenih korisnika.Uspješnom provođenju aplikacijskih DoS napada najvuše doprinosi njihovo otežano detektiranje od strane sustava za detekciju neovlaštenih aktivnosti (eng. IDS – Intrusion Detection System). Detekriranje je otežano jer ove stre napada ne zahtijevaju pojačan mrežni promet te takve pakete nije moguće razlikovati od uobičajneih paketa koji putuju mrežom. Stoga sustavi za detekciju neovlaštenih aktivnosti moraju biti prilagođeni različitim računalnim aplikacijama kako bi mogli detektirati neuobičajena ponašanja programa koji bi mogli rezultirati DoS stanjem. Postavlja se pitanje zašto su aplikacije uopće ranjive na te napade i može li se to spriječiti? Osnovni razlozi propusta kod aplikacija uzrokovani su kod razvoja i implemetiranja, zbog pogrešnih pretpostavki učinjenih u tim fazama. Osim toga, programeri često koriste tuđa programska rješenja i biblioteke koje nisu provjerene i imaju nedostatke.
Iskorištavanje različitih nedostataka aplikacije zasniva se na detaljnim analizama rada aplikacije, njenih funcionalnosti te identifikaciji i interpretaciji unosa. Na taj način zlonamjerni korisnici mogu razotkriti brojne nedostatke uz pomoć kojih će uzrokovati potpuni ili djelomični prestanak funkcioniranja aplikacije ili uništiti podatke kojima aplikacija pristupa ili ih kreira.
Napadi preko korisničkih imena
Na velikom broju sustava korisnici su u mogućnosti prijavljivati se nerealno veliki broj puta. Na taj način zlomnamjerni napadač može opteretiti mehanizam autentifikacije i time onemogućiti prijavu drugim korisnicima. Ukoliko mehanizam prijave različito opisuje pogrešku unosa nepostojećeg korisničkog imena i pogrešku unosa pogrešne zaporke, napadaču je olakšano detektiranje legitimnih korisničkih imena. Stoga je aplikacija sigurnija ukoliko prijavljuje istu pogrešku i za neispravno korinsičko ime i za pogrešnu zaporku. Sigurnost prijave se može podići na višu razinu ako se korisniku ograniči broj unosa netočnih zaporki. Ipak, i tu postoji nedostatak. Ako deblokiranje računa zahtijeva intervenciju administratora, napadač može korisniku ograničiti uslugu blokirajući njegov račun. Zbog toga, naučinkovitija opcija je korištenja zaključavanja na određeni vremenski period nakon kojeg se račun automatski otključava i može se ponovno koristiti. Aplikacija koje zahtijevaju registraciju novih korisnika, podložne su napadima iscrpljivanja resursa ukoliko se proces registracije automatizira, a veliki broj registriranih korisnika se potpm iskoriti za napad. Rješenje je stvaranje niza izobličenih znakova te njihovo prikazivanje tijekom registracije u obliku slikovnog formata. Programi za optičko prepoznavanje ne mogu prepoznati te izobličene znakove te je na taj način spriječena automatska registracija korisnika. Drgi način je validacija elektroničkom poštom, ali i ova metoda može se relativno jednostavno automatizirati.
Napadi orijentirani na transakcije
Svaka transakcija koju obavlja aplikacija zahjteva određeni interval procesorskog vremena i podatkovnog mjesta. Neke transakcije imaju i financijske troškove. DoS napad je moguće izvršiti obavljanjem velikih količina transakcija što može dovesti do onemogućenog rada aplikacije ili do većih troškova.
Napadi na baze podataka
Obzirom da web aplikacije sve češće koriste baze podataka za premanje podataka, napadi ovakve vrste nisu zanemariv problem. Ako napadač želi opteretiti žrtvinu vezu prema internetu, mora posjedovati bržu vezu od napadnute. No, ako postavi pažljivo osmišljen upit, napadač može napraviti mnogo veće opterećenje na sustav. Na taj način onemogućuje legitimnim korisnicima korištenje baze podataka.
Napadi zasnovani na iscrpljivanju jedinstvenog identifikatora sjednice (eng. session ID)
Kod HTTP-a se svaki jedinstveni identifikator sjednice mora generirati prilikom prvog pristupa stranici, što oduzima procesorske resurse, te negdje pohraniti, što oduzima podatkovni prostor. Napad se može izvršiti slanjem zahtjeva za velikim brojem session ID-jeva što će na različite načine iscrpiti resurse, a time se onemogućava rad ostalim korisnicima. Ovakav napad je moguć samo ako aplikacija generira taj broj prije autentikacije. U protivnom, mogućnost ovakovog napada je smanjena jer se korisnik može samo jednom prijaviti. No, ako je doszovljeno više sjednica po korisniku tada je aplikacija ipak ranjiva. Stoga je najsigurnije rješenja za ovaj napad dozvoljavanje jedne sjednice po korisniku te nemogućnost automatskih registracija novih korisnika.
Napadi zasnovani na prepisivanju spremnika
Najčešće pogreške od strane programera događaju se kod upravljanja memorijom i to kod jezika kao što su C i C++ koji zahtijevaju takav pristup. Pogreška uzrokuje stvaranje datoteke sa sadržajem memorije na dijelu gdje je došlo do pogreške i prekid izvršavanja programa. Navedena pogreška može se izbjeći pažljivim razvojem aplikacije, ali kod dinamičkih unosa kod web aplikacija vjerojatnost pojave ovakvih pogrešaka višestruko se povećava. Korištenje jezika poput Jave, PHP-a ili C#-a onemogućuje pogreške ovog tipa.
Napadi zasnovani na nemogućnosti otpuštanja zauzetih objekata ili resursa
Ovakve pogreške najčešće se događaju kod programskih jezika gdje se zauzeti objekti moraju eksplicitno osloboditi od strane programera. Kod C ili C++ to se uglavnom događa sa zauzetom memorijom koja se ne solobodi nakon završetka programa, što dovodi do tzv. curenja memorije (eng. memory leak). Kod jezika kao što je Java često se ne predvide svi mogući završeci izvođenja programa pa resursi poput veza na bazu ostaju zauzeti, a nakon određenog broja stvorenih nezatvorenih veza, rad s bazom postaje otežan. Ako napadač uoči takve pogreške, vrlo lako može uzrokovati nepravilno funkcioniranje sustava.
Napadi zasnovani na prevelikim zahtjevima napadača
Ako se korisniku omogući unos podataka bez dovoljne provjere, a isti se podaci koriste kao uvjet programske petlje, aplikacija postaje podložna DoS napadima. Za primjer možemo uzeti aplikaciju koja ispisuje informacije o određenom broju osoba gdje korisnik zadaje broj o kojem će biti ispisane informacije. Korisnik tu može bitno otežati rad aplikacije. Unosom broja koji doseže najveću vrijednost cjelobrojne 32-bitne varijable, sigurno će doći do usporavanja sustava, zauzeća memorije, opterećenja sustava za upravljanje bazom i dr. Zato je uvijek potrebno ograničavati korisnički unos, pogotovo kada on izravno utječe na izvršavanje programa.
Napadi na sistemske dnevničke zapise
Brojni programi koriste dnevničke zapise (eng. log) gdje bilježe svoje aktivnosti. Velikim brojem dugih zapisa u log datotekama, moguće je popuniti diskovni prostor. Rješenje za ovakve napade jest pažljivo određivanje podataka prilikom implemetacije aplikacije, kako bi se onemogućio upis ogromnih količina podataka te spriječio DoS napad.
Napadi korištenjem elektroničke pošte
Najjednostavniji oblik napada na elektroničku poštu jest odašiljanje velike količine elektorničkih poruka na ciljanu adresu. DoS napad moguće je izvesti i postavljanjem lažne izvorne adrese poruke. Na primjer, postavljanje poruke na usenet grupe pri čemu se koristi tuđa adresa, uzrokovat će dolazak neželjenih spam poruka. Rješenje jest ograničiti odašiljanje poruka s s neistinitom adresom. Odašiljanje velikog broja poruka na nepostojeće adrese, pri ćemu je porukama lažirana izvorna adresa, uzrokuje velik broj prijava nemogućnosti isporuke tih poruka, ali na adresu koja je upisana kao izvorna- žrtvina adresa.
- Prema izvorima [1], [2]
DoS napadi na mrežnom sloju
Cilj DoS napada na mrežnom sloju jest onemogućiti ispravno funkcioniranje mrežnih usluga i komunikacijskih kanala. To je moguće postići na dva načina:
- pretrpavanjem komunikacijskih kanala (eng. flooding attacks),
- iskorištavanjem ranjivosti mrežnih protokola i usluga (eng. vulnerability attacks).
Napadi korištenjem posebno oblikovanih mrežnih paketa
Uspostavljanje veze korištenjem TCP protokola odvija se postavljanjem odgovarajućih zastavica u mrežnim paketima. Uloga zastavica je određivanje sadržaja i tipa paketa. Tako se zastavica SYN (eng. synchronize) koristi kod uspostave veze, ACK (eng. acknowlegde) kod potvrda za primljeni paket, a FIN (eng. finish) za prekid uspostavljene veze.
Uspostavaljanje veze između klijenta i poslužitelja prikazano je na slici:
Napadi pretrpavanja paketima s postavljenom SYN zastavicom
Primanje paketa s postavljenom SYN zastavicom, obavještava se poslužitelj da se stvara nova veza prema njemu. Priprema za prihvat nove veze podrazumijeva alokaciju memorijskog prostora za primanje i slanje paketa te za podatke uz opis veze. Poslužitelj zatim šalje SYN/ACK paket klijentu te čeka odgovor. Poslužitelj je sada spreman za primanje ACK paketa od klijenta i razmjenu podataka. Ako ne primi odgovor u određenom roku, poslužitelj ponovno šalje SYN/ACK paket. Ovdje se javlja mogućnost napada pretrpavanja poslužitelja paketima s postavljenom SYN zastavicom i lažnom izvornom IP adresom. Ako lažna adresa nije dodijeljena niti jednom računalu na internetu, poslužitelj šalje SYN/ACK paket na nepostojeću adresu čekajući odgovor koji neće dobiti. Nakon dovoljne količine takvih zahtjeva, poslužitelju je onemogućeno normalno funkcioniranje i odgovaranje na zahtjeve. Ako je lažna adresa ipak dodjeljena nekom računalu, ono će napadnutom poslužitelju poslati paket s postavljenom RST zastavicom te mu na taj način dati do znanja da ono nije zatražilo uspostavu veze.
Obrane od ovakve vrste napada može se temeljiti na detektiranju povećanog broja SYN paketa. U tom slučaju stvaraju se privremene datoteke na računalu unutar kojih se bilježe podaci o mogućim uspostavama veza, a datoteke se nazivaju SYN-kolačići (eng. SYN-cookie). Ukoliko se primi odgovarajući ACK paket, alociraju se potrebni resursi za omogućavanje nove veze. Drugi način obrane je konfiguriranje vatrozida kao tzv. SYN-proxy poslužitelja. Vatrozid tada zaprima veze umjesto poslužitelja i tek kada je veza uspješno uspostavljena, prosljeđuje zahtjeve poslužitelju.
Napadi pretrpavanja paketima s postavljenom ACK zastavicom
Slično prethodnom slučaju, moguće je iskoristiti još jedan način napada i to generiranjem paketa s postavljenom ACK zastavicom. Napadnuto računalo dodjeljuje određeno procesorsko vrijeme za obradu pristiglog paketa, da bi tek kasnije ustanovilo da se radi o paketu koji nije namijenjen njemu. Velika količina primljenih paketa, onemogućava pravilno funkcioniranje računala.
Napadi pretrpavanja ICMP paketima
Ova vrsta napada zasniva se na korištenju ICMP protokola za slanje velikog broja paketa na žrtvinu adresu. ICMP protokol ne uspostavlja vezu između dva računala niti se koristi za razmjenu informacija stoga obrada paketa zhjteva znatno manje resursa. Svaki napad putem ICMP-a nije usmjeren na iskorištenje resursa žrtve nego na zaguušenje mrežne veze velikim brojem paketa. U tim napadima obično se šalju paketi tipa echo request koji u zaglavlju imaju kodnu oznaku 8. Oni od primatelju zahtjevaju odgovor echo reply paketom. Napadač može uspješno provesti napad samo ukoliko ima bržu mrežnu vezu nego žrtva. On će u tom slučaju komunikacijski kanal do žrtve prepuniti echo request paketima, pa više niti jedan zahtjevdrugih korisnika neće moći doći do žrtve. Jedno od mogućih rješenja jest ograničavanje broja ICMP paketa u jedinici vremena pri čemu se svi ostali odbacuju kada se prijeđe granica. Moguće je i potpuno zabraniti ICMP pakete.
Napadi pretrpavanja UDP paketima
UDP protokol omogućuje razmjenu paketa između dva računala bez prethodnog uspostavljanja komunikacijskog kanala i stvaranja sesije. Zbog toga on ne omogućuje pouzdan prijenos paketa budući da oni na odredište mogu doći u krivom redoslijedu, biti duplicirani ili jednostavno nestati. Sam napad temelji se na slanju velikog broja UDP paketa žrtvi, a svaki paket ima slučajno generiran odredišni port. Žrtva kod obrade paketa mora provjeriti koja aplikacija koristi navedeni UDP port, zaključiti da port ne koristi niti jedna aplikacija i odgovoriti ICMP destination unreachable paketom. Pretpostavka je da će za veliki broj UDP paketa žrtva odgovratai velikim brojem ICMP paketa te time zagušiti vezu prema internetu.
Smurf napadi
Ovaj napad dobio je naziv prema palikaciji koja izvršava taj tip napada. Napad se provodi stvaranjem echo request paketa s lažnom izvorišnom adresom te odašiljanjem istog na sva računala koristeći broadcast adresu. Paket zahtjeva biva isporučen svim računalima u mreži, a to pridonosi intenzitetu napada. Rezultat je velika količina ICMP paketa odgovora umjerenih na žrtvino računalo. Obrana od napada temelji se na pravilnom konfiguriranju usmjerivača na mreži: onemogućavanje broadcast usmjeravanja ili podešavanje vatrozida da ne propušta echo request pakete.
Fraggle napadi
Za razliku od Smurf napada koji koriste ICMP pakete, Fraggle koristi UDP pakete koji se šalju na broadcast adresu. Obrana od ovakvih napada je teža jer korištenje UDP protokola često nije moguće zabraniti kao što se to može kod ICMP-a.
Targa3 napadi
Targa3 napadi zasnivaju se na oblikovanju neispravnih paketa bilo kojeg protokola. Ako takav posebno oblikovani apket stigne na odredište, operacijski sustav alocira potrebnu količinu memorije i ostalih resursa, a u konačnici to biva uzaludno jer paket nikad nije ni bio ispravan. No, vrlo malo paketa uopće dosegne odredište jer već prije budu odbačeni.
Napadi fragmentacijom paketa
Ukoliko poruka koju je potrebno prenjeti kanalom prelazi maksimalnu veličinu, dijeli se u manje pakete. Oni na odrdište ne moraju stići pravilnim redoslijedom. Napadi koriste upravo tu osobinu. Jedan od poznatijih takvih napada je Rose napad. Ovim napadom stvaraju se samo prvi i zadnji paket, a ranjivi sustav očekuje i ostale pakete pa rezervira potrebne resurse i stvalja se u stanje čekanja. Zbog toga niti jedan legitimni zahtjev neće biti obrađen. New Down napad sličan je Rose napadu, ali kod njega se fragmenti generiraju počevši od prvog do zadnjeg, no uz manji broj propuštenih dijelova. Računalo koje prima takav slijed paketa alocira mjesto za čitavu poruku, ali je nikad ne primi u potpunosti. Povećano korištenje resursa šteti obavljanju ostalih legitimnih zadataka sustava. Rješenje napada zasnovanih na fragmentaciji paketa nalazi se u ograničavanju vremena tijekom kojeg se čeka dok nepotpuni niz bude idbačen te u ograničenom broju ponovljenih zahtjeva.
Land napad
Ako napadač pošalje paket s istom ciljnom i izvorišnom adresom radi se o Land napadu. Operacijski sustav koji primi ovakav napad najčešće prestaje s radom i automatski se resetira. Moguće je i uzrokovanje kontinuirane međusobne razmjene paketa između dva odredišta. Obrana od ovakvog napada sastoji se od pravilne konfiguracije vatrozida koja sprečava dolazak ovakvog paketa do sustava.
- Prema izvorima [1], [2]
Raspodijeljeni napadi
Raspodijeljeni napadi su napadi zasnovani na korištenju više računala izvora napada, dok jedno računalo predstavlja žrtvu.
DDoS napadi
DDoS (eng. Distributed Denial of Service) su napadi izvršeni od strane većeg broja napadača. To su najčešće računala nazvana zombiji, čiji vlasnici ni ne znaju da njihovo računalo generira DoS napade na drugo računalo ili načunala na internetu.
Ideja ostvarena ovakvim napadima je zatrpavanje komunikacijskih kanala beskorisnim prometom koji onemogućuje prometovanje legitimnim paketima te iskorištavanje velike količine resursa poslužitelja i drugih računala. Velike količine prometa s interneta dolaze do usmjerivača mreže kojoj pripada žrtva. Svi paketi koji nisu proslijeđeni u bilo kojem smjeru, bivaju odbačeni. Tu su uključeni i legitimni paketi što dovodi napadnutu mrežu u stanje neipravnog funkcioniranja. Na napad se može početi sumnajti već kod usporenja mrežnog prometa, nedostupnosti neke stranice, nemogućnosti pristupa bilo kojoj stranici i slično. Pravilna konfiguracija vatrozida, korištenje antivirusa na korisničkim računalima te izbjegavanje javnog objavljivanja adresa elektroničke pošte svakako mogu umanjiti ishode napada ili ih i potpuno spriječiti.
- Prema izvorima [1], [2], [3]
DRDoS napadi
DRDoS (eng. Distributed Reflection DoS) vrlo su slični DoS napadima, no DRDoS napadi zasnivaju se na uspostavi veze u tri koraka. Napadač (ili više njih) stvara TCP paket s postavljenom SYN zastavicom kako bi inicirao vezu prema nekom računalu na internetu. No, paket je oblikovan tako da je umjesto izvorišne adrese postavljena IP adresa žrtve. SYN paket dolazi na odredište, a ono odgovara na adresu iz izvorišnog polja. Ako poslužitelj može uspostaviti vezu, paket s postavljenom SYN i ACK zastavicom biva odaslan žrtvi.
Peer-to-peer napadi
Posebnost ovog DDoS napada je u tome što nije potreban botnet računala da bi se on izveo, nego se koriste legitimni korisnici peer-to-peer mreža. Koristeći brojne peer-to-peer mreže napadači iskorištavaju ranjivost u istima. Napadač nalaže klijentima peer-to-peer čvorišta za dijeljenje datoteka da se isključe iz svojih peer-to-peer mreža i spoje na žrtvin sustav. Rezultat toga je nekoliko tisuća računala koja se agresivno pokušavaju povezati na ciljano računalo. Tipični web poslužitelj može obrađivati nekoliko stotina veza u sekundi prije nego što mu performanse počnu opadati. Unatoč tome, većina web poslužitelja pada gotovo odmah pri pet ili šest tisuća veza u sekundi. Ovakva ranjivost se može sanirati ukoliko se onemogući spajanje peer-to-peer mreža na port 80.
Zaštita od DoS napada
Zbog sve veće popularnosti DoS napada razvili su se i brojni mehanizmi zaštite od istih. No, iako brojni, niti jedan ne pruža apsolutnu zaštitu. Većina mehanizama može samo smanjiti štetu koja nastaje DoS napadima. Pri tome, kod implementacije brojnih mehanizama najviše se ipak gleda na isplativost istih. Ako je zaštita skuplja nego resurs kojeg štiti, ista nije isplativa te je stoga nepotrebna.
DoS napadi na aplikacijskom sloju mogu biti izrazito teški za uočavanje, a samim time i za sprječavanje. Zbog toga se obrana od ove vrste napada mora temeljiti prvenstveno na redovitoj primjeni zakrpa i instalaciji odgovarajućih nadogradnji.
Napadi na mrežnom sloju se puno lakše uočavaju jer uglavnom podrazumijevaju povećanje mrežnog prometa, neuobičajene mrežne pakete i dr.
Ipak, postoji par osnovnih pravila za uspješnu obranu od DoS napada, a to su:
• redovito izrađivanje sigurnosnih kopija sustava ili njegovih dijelova
• pažljivo osmišljavanje zaporki i dozvola
• onemogućavanje nekorištenih i nepotrebnih resursa
• pravilno konfiguriranje vatrozida
• ograničavanje diskovnog prostora za pojedine korisnike
• redovito provjeravanje fizičke ispravnosti svih resursa
• sigurna izgradnja mrežne infrastrukture kako bi se povećala tolerancija na pogreške.
Kada sustav već postane žrtva DoS napada, najjednostavnije rješenje je promjena IP adrese napadnutog računala. Zapisi u DNS poslužitelju se ažuriraju, a ciljan adresa na koju su zlonamjerni paketi poslani postaje nepostojeća te se oni odbacuju. Ako je moguće, privremeno povećanje resursa i kapaciteta kanala također je dobro rješenje. Tako bi napad manje utjecao na legitimni promet. Svakako, to je samo privremenom rješenje. Najjednostavniji način obrane je ipak isključivanje sve opreme s interneta, no to u većini slučajeva nije izvedivo.
U današnje vrijeme, području sigurnosti interneta pridaje se sve veća pažnja te se njime bavi sve veći broj stručnjaka.
- Prema izvorima [1], [2], [3]
Modeliranje (simulacija) DoS napada
Primjer 1. Slowed down routers
Sa slike vidimo da imamo korisnike koji su preko više usmjernika povezani na server, napadača te još neke čvorove. U ovom scenariju napada udaljeni napadač mijenja IP usmjeravanje na različitim usmjernicima. Korisnički čvorovi su podijeljeni u 3 podmreže (Subnet Blue, Subnet Red, Subnet Green) određene rubnim usmjernici R3, R4 i R5. Usmjernik R2 povezuje sve podmreže sa serverom. Čvor Cyber Effects Config sadrži potrebne skripte i opise napada kako bi napadač mogao mijenjati postavke usmjernika dok čvorovi Profiles i Applications postoje kako bi se generirao promet od korisnika prema serveru i obrnuto.
Imamo definirana 4 profila napada, 3 skripte koje će ti napadi koristiti te jedan profil za čišćenje (Remedy). Profil za čišćenje koristi admin kako bi „čistio“ usmjernike od eventualnih zaraza (Infections). Na prvoj slici vidimo spomenuta 4 profila napada koje koristi napadač prilikom napada na pojedini usmjernik, dok na drugoj slici vidimo skripte koje ti profili pozivaju nakon što njih pozove napadač. Postoji i profil za čišćenje (Cyber Remedy Profiles) i on koristi Scan and Clean skriptu tipa Remedy.
Nadalje,svaki napad se sastoji od 2 faze:
- Faza P1 – pošalji skriptu Infect and Decrease IP Fwd Rate 99.9% koja prvo zarazi usmjernik, a zatim smanji njegovu stopu usmjeravanja za 99,9%
- Faza P2 – 450 sekundi (7,5 min) nakon faze P1, pošalje se skripta Scan and Clean koja poništava promjene napravljene u fazi P1, tj. vraća stopu IP usmjeravanja na originalnu vrijednost i „čisti“ usmjernik od zaraze.
Kao što vidimo u postavkama profila napadača te za njegov konkretan profil Change R3 IP Rate, napad se zaista sastoji od spomenute 2 faze te se koriste navedene skripte. Također, u fazi P1 moramo definirati na koji usmjernik želimo da se napad primjeni (u ovom slučaju R3), a u fazi P2 je bitno primijetiti da počinje 450 sec nakon faze P1 i odredište je isto kao i kod P1. Svi ostali profili koje napadač koristi su potpuno iste strukture kao i ovaj profil, samo je odredište različiti usmjernik.
Profili koriste skripte. Kad napadač pošalje napad na bilo koji usmjernik, on aktivira jedan od profila, a onda profil najprije poziva skriptu Infect and Decrease IP Fwd Rate 99,9% (Slika 8), a zatim skriptu Scan and Clean. Kao što i naziv govori, prva skripta ima namjeru da zarazi zadani čvor (faza A) i smanji mu mogućnost IP usmjeravanja za 99,9% (faza B). Druga skripta koju napadač koristi, Scan and Clean, služi kako bi sakrio trag da je ikad napao taj čvor. U fazi A traži se zaraženi čvor, dok se u fazi B pronađeni čvor čisti od zaraze sa vjerojatnošću od 100%. Drugu Scan and Clean skriptau, ovaj puta tipa Remedy, admin može koristiti kako bi očistio zaraženi čvor.
Čvor napadač (Attacker) ima 4 profila konfigurirana na sljedeći način: - profil Change R3 IP Rate počinje u 200-toj sekundi od početka simulacije (Subnet Red) - profil Change R4 IP Rate počinje u 900-toj sekundi od početka simulacije (Subnet Green) - profil Change R5 IP Rate počinje u 1600-toj sekundi od početka simulacije (Subnet Blue) - profil Change R2 IP Rate počinje u 2300-toj sekundi od početka simulacije (sve podmreže).
U čvoru Napadač, dakle definiramo u kojem trenutku od početka simulacije će napadač početi napadati zadani usmjernik, tj. koji profil će pokrenuti, a profil je već definiran i zna se koje skripte će pojedini profil pozvati. Također, kada napadač napada usmjernik R2, napadaju se sve podmreže budući da je R2 zajednički usmjernik se kroz njega dolazi do svih podmreža (ako usporimo njega, usporili smo sve jer je on direktna veza sa serverom).
Rezultati simulacije
Graf 1 prikazuje broj bitova u sekundi koje napadač šalje. Svakom usmjerniku šalje dvije skripte. Prva zarazi i smanji stopu prosljeđivanja usmjernika, a druga služi za čišćenje tragova kako ga se ne bi moglo pronaći.
Graf 2 prikazuje kako usmjernici R2, R3, R4 i R5 primaju promet. Kao što smo mogli pretpostaviti iz prethodnog grafa, svaki router prima dvije skripte, prvu u kojoj napadač zarazi i smanji stopu prosljeđivanja usmjernika te drugu u kojoj napadač šalje skriptu za čišćenje tragova.
Graf 3 prikazuje kako se mijenja HTTP vrijeme odgovora za korisnike (user_0 do user 4) iz crvene podmreže (koja ima vezu prema internetu preko usmjernika R3). Vidljivo je da kada napadač napadne router R3 (3,33 min) svim korisnicima iz crvene podmreže se poveća HTTP vrijeme odgovora i to traje do 10,83min kada napadač šalje skriptu za čišćenje i vraća stopu prosljeđivanja na normalnu vrijednost.
Također, vidimo da se vrijeme odgovora za iste korisnike poveća kada napadač napada usmjernik R2 (od 38,33 do 45,83 min). To se događa jer je R2 zajednički usmjernik za sve podmreže pa kada se njemu smanji stopa prosljeđivanja, to se odrazi i na ostale usmjernike te na kraju i krajnje korisnike. Također, budući da R2 prosljeđuje veću količinu prometa od ostalih usmjernika, HTTP vrijeme odgovora je još i veće nego kada se napadaju rubni usmjernici. Isto vrijedi i za ostale rubne usmjernike (R4 i R5), HTTP odgovora se poveća prilikom napada na njega te prilikom napada na usmjernik R2.
Primjer 2. Ping of Death napad
Jedan od poznatijih napada je tzv. Ping of Death napad. Pretpostavljena veličina ICMP paketa je 56 okteta, a starije verzije operacijskih sustava nisu bile u stanju obraditi paket koji je veći od 1024 okteta. Kod OS Windows 95 primitak ovakvog paketa uzrokovao je pojavu plavog ekrana te je nemoguće dalje raditi (eng. Blue Screen Of Death). Zaštita od ovakvih napada temeljila se na zabrani prolaska ICMP echo paketima, no napadači su zaobišli takvu zabaranu odašiljanjem echo reply paketa. Danas svi operacijski sustavi imaju obranu od ovakvih napada.
Scenarij 1:
Scenarij 1 predstavlja uobičajeno funkcioniranje sustava, bez napada.
U scenariju imamo 2 radne stanice, Registration i Finance Office koje su spojene na Campus Switch. Campus Router je spojen na Internet, kao i Reg+Finance Server. Konfiguracije radnih stanica (čvorova) te Application i Profile Configuration prikazane su na slikama.
Rezultate ovog scenarija zatim ćemo usporediti sa scenarijem u slučaju kada je prisutan napadač.
Scenarij 2:
Scenarij 2 predstavlja rad sustava kod napada.
Attacker je povezan na Internet i napada Reg+FinanceServer. U IP Attributes čvoru definirana je veličina paketa 65527 bajta.
Attacker će provesti napad slanjem paketa prema serveru.
Rezultati simulacija (usporedba)
Statistike u oba scenarija promatrane su kroz 2 odabrana parametra, DB Query (slanje DB upita serveru) i Ftp (strujanje podataka između servera i Ftp aplikacija). Na slici ispod linije grafova prikazuju vremena odgovora (eng. Response time) kod postavljanja upita, u oba scenarija.
Slika ispod prikazuje primanje paketa u oba slučaja.
Slika ispod prikazuje usporedbu vremena odgovora kod download i uploada, u oba slučaja.
Primjer 3. DDoS napad
Scenarij 1:
Attacker će provesti napade. Sys_admin će pokušati ublažiti napad, tj. eliminirati skripte kojima je zaražena mreža. Serveru koji je pod DDoS napadom je dodijeljena IP adresa 192.102.100.1 . U crvenim pravokutnicima se nalaze potencijalni čvorovi (eng. Infected devices) koji mogu, ali i ne moraju biti zaraženi. Svi čvorovi su povezani u mrežu preko usmjernika i prespojnika, te su svi i međusobno povezani. Klijenti (eng. HTTP Clients) koriste http aplikaciju sa servera (plavi pravokutnik).
Postavke napada:
Napadač počinje napad između 100-te i 110-sekunde.
DDoS napad je definiran u Cyber Effect Config čvoru.
Napad je podijeljen u 2 faze:
- Faza 1
Na početku napada, skripta se šalje na sve čvorove (sve one koji podržavaju Cyber Effect) u pokušaju da zarazi ostale uređaje, te napadaču dolazi povratna poruka i odgovor je li zaraza uspjela ili ne.
- Faza 2
Nakon 150 sekundi od početka napada (250-ta sekunda u simulaciji), šalje se nova skripta zaraženim uređajima sa uputama da počnu slati promet prema serveru, kako bi poplavili taj čvor. Skripta će poslati te upute samo onim uređajima koji su u prethodnoj fazi uspješno zaraženi. Samo čvorovi u crvenim pravokutnicima su podložni zarazi, sa postotkom zaraze 80%, ukoliko prime zlonamjernu poruku od napadača.
Sys_Admin postavke: Sys_admin ima svoj profil u skripti Scan and clean konfiguriran tako da počinje između 300-te i 310-te sekunde. On ima samo jednu fazu, to je da šalje clean skriptu svim čvorovima u mreži. Clean skripta ima efekt Scan for Infections konfiguriran tako da ima 50% šanse za čišćenjem, što znači da oko 50% uređaja može biti očišćeno od zaraze. Čvorovi koji će biti uspješno očišćeni prestati će slati promet prema serveru, što će umanjiti efekt poplavljivanja tijekom napada.
Kod napada razlikujemo 4 skripte:
- Infect ("zarazi") - ima efekt da zarazi uređaj,
- Flood 192.102.100.1 ("poplavi 192.102.100.1") - generira promet prema određenom čvoru,
- Infect (600s) and Confirm - ima 2 koraka: prvi da zarazi čvor (trajanje zaraze je 600 sekundi), a drugi vraća povratnu informaciju, tj. informaciju ako je čvor uspješno zaražen,
- Clean - skenira uređaje koji su zaraženi, skeniranje traje 1 sekundu i ima šansu od 50% da očisti zaraženi čvor.
Nakon što su skripte i profili uspješno kreirani, potrebno je podesiti određene postavke napadača i admina, kako bi simulacija bila funkcionalna. U postavkama Cyber Effects (Attacker) treba odabrati efekt koji želimo, odabrati profil napada, i vrijeme njegovog početka. U ovom slučaju odabran je profil DDoS Attack, koji se sastoji od 2 faze, faze Zarazi i potvrdi, te faze Počni poplavljivanje prema serveru. U postavkama Sys_admin također je potrebno podesiti postavke liječenja mreže. Izabire se profil Scan and Clean koji je prije kreiran i postavlja se početak djelovanja nakon 300 sekundi.
Scenarij 2:
Više napadača i zaraženih uređaja
Ovaj primjer služi da bismo mogli usporediti rezultate između dvije slične simulacije. Promjene:
- dodano 13 čvorova koje je moguće zaraziti,
- dodan usmjernik i prespojnik,
- kreiran novi plan napada DDoS Attack 2 koji počinje nakon 600s,
- vrijeme zaraze produženo na 1200s.
Rezultati simulacija (usporedba)
Na grafovima 4 i 5 vidljivo je da je broj zaraženih uređaja veći u drugom scenariju. Razlog tome je naravno veći broj uređaja. Vidljivo je djelovanje admina između 4-te i 6-te minute , vrlo velik broj uređaja se uspije očistiti Clean skriptom. Na kraju je vidljiva razliku u vremenima kad Infect skripta prestaje djelovati. U prvom slučaju je to nakon 600s, a u drugom 1200s. Zbog toga su u prvom slučaju uređaji nakon 12-te minute čisti, dok u drugom postanu čisti tek oko 22-te minute.
Na grafovima 6 i 7 vidljivi su rezultati strujanja podataka prema serveru. U drugom scenariju broj bitova je veći zbog udjela zaraženih čvorova, no tu se događa i drugi napad, koji pokazuje razliku u izgledu grafa kada djeluje admin, i kad admin ne djeluje. Kod djelovanja admina vidljiva je "stepenica", nakon koje se skoro upola smanji napad, dok je napad bez djelovanja admina proveden u cijelosti jednako.
Na grafovima 8 i 9 možemo primijetiti da se u trenutcima trajanja napada događa velik skok, tj. povećava se vrijeme odaziva servera prema http klijentu.
Na grafovima 10 i 11 vidljivo je da je najviše i u jednoj i u drugoj simulaciji na udaru bio sam server, kroz kojeg je prošlo najviše prometa. Nakon toga na drugom mjestu nalazi se usmjernik R2, pa R1 i na samom kraju napadač.
Literatura
[1]
Nacionalni CERT: Napadi uskraćivanjem usluge (pristupljeno 2.1.2018.)
[2]
CARNet CERT u suradnji s LS&S: Napadi uskraćivanjem resursa (pristupljeno 6.1.2018.)
[3]
Computer Crime Research Denial of Service: Network security: DoS vs DDoS attacks, December 2005, (pristupljeno 6.1.2018.)
[4]
US-CERT: Security Tip, Understanding Denial of Service Attacks, February 2013,(pristupljeno 5.1.2018.)
[5]
Youtube: Ping of Death DoS Attack simulated in Riverbed (OPNET) modeler (pristupljeno 8.1.2018.)
--Nikolina Bukovec 20:25, 18. siječnja 2018. (CET)