UDP (User Datagram Protocol) protokol je protokol koji se nalazi na transportnom sloju OSI modela. Uz TCP tvori jedan od temeljnih Internet protokola. Protokol pruža nespojnu i nepouzdanu uslugu transporta paketa te je moguća međusobna komunikacija bez uspostava mreže. Kako je UDP beskonekcijski, nepouzdan protokol koji nema kontrolu toka koristi se za prijenos višemedijskih podataka i za usluge temeljene na principu zahtjev/odziv.
Postoji više vrsta napada na UDP od kojih detaljnije obrađujemo “UDP spoofing”, “UDP Hijacking”, “UDP storm”, “UDP flooding” i “UDP amplification”. Neki od spomenutih napada imaju cilj onemogućavanja rada servisa odnosno računala (DDoS) dok se drugi koriste za mijenjanje sadržaja paketa u mreži i lažno predstavljanje.
Keywords: udp; udp storm; udp hijacking; udp storm; udp flooding; udp amplification
UDP (User Datagram Protocol) je protokol transportnog sloja OSI modela. Za razliku od TCP protokola, UDP je beskonekcijski i nepouzdan protokol stoga nije potrebno uspostavljati vezu za razmjenu paketa. UDP koristimo za stvarno-vremene servise kao računalni gaming, video i audio komunikaciju, streaming itd. Kako je za sve te potrebe bitan vrlo brzi prijenos podataka i velika performansa, UDP dopušta odbacivanje umjesto obrade zakašnjelih paketa. Također ne postoji provjera grešaka unutar UDP-a stoga se dodatno poveća propusnost.
Zaglavlje UDP-a sastoji se od 8 bajtova fiksiranih podatak (Tablica 1). Sastoji se od izvorišnih vrata, odredišnih vrata, duljine datagrama i kontrolne sume. Duljina polja za UDP vrata iznosi 16 bitova što omogućava raspon vrata od 0 do 65535. Vrata se koriste za razlikovanje različitih korisničkih procesa i zahtjeva. Duljina podataka označava duljinu zaglavlja zajedno s duljinom podataka.
Iskorištavanje UDP protokola najviše se koristi za napade uskraćivanja usluge. U nastavku bit će pojašnjeni UDP obmana, UDP otimanje, UDP oluje i skeniranje UDP portova.
Napad UDP obmana iskorištava činjenicu da je UDP 'stateless' protokol. Kod protokola UDP, IP adresa je jedini način identifikacije računala. Pojednostavljeni primjer napada prikazan je na slici 2. Napadač ima cilj predstaviti se kao drugo računalo. Kako bi u tome uspio, sastavlja UDP paket u kojemu mijenja izvorišnu IP adresu u IP adresu žrtvinog računala. Takav paket koji sadrži 'spoofanu' IP adresu šalje se poslužitelju koji zatim šalje odgovor s najčešće velikim teretom prema žrtvinoj IP adresi. Poslužitelj ne zna kako je došlo do promjene izvorišne IP adrese te automatski odgovara na zahtjev. U ovome napadu, neposredni poslužitelj se koristi kako bi generirao paket koji je nekoliko puta veći od zahtjeva. Tako se efektivno povećava teret napada koji se šalje žrtvi. Faktor povećanja tereta je omjer veličine odgovora i zahtjeva koji varira ovisno o korištenom protokolu. Tako ako se koristi DNS veličina odgovora može biti 28 do 54 puta veća od veličine zahtjeva. Primjerice ako napadač pošalje teret od 64 bajta prema DNS poslužitelju, poslužitelj može kreirati preko 3400 bajta neželjenog prometa prema žrtvi.
Napad UDP otimanje iskorištava to što UDP protokol nema servis oporavljanja od grešaka, ne garantira isporuku, integritet podataka, ne provjerava je li paket dupliciran te ne koristi redoslijed paketa i sinkronizaciju. Kako je većinom korišten gdje je brzina isporuke paketa bitnija od sigurnog primanja paketa, ne koriste se redni brojevi kao kod TCP protokola. U ovoj vrsti napada napadač sluša vezu i čeka klijentove UDP zahtjeve. Na odabrani klijentov UDP zahtjev odgovara prije poslužitelja sa spoofanim paketom (Slika 3). Kako nema nikakve provjere klijent misli kako je paket dobio od poslužitelja. Na taj način moguće je poslati željeni teret prema klijentu koji može sadržavati maliciozne namjere.
UDP oluje su tip napada uskraćivanja usluge, zagušenja poslužitelja i mreže. U tim napadima veliki broj UDP paketa se šalje prema žrtvinom poslužitelju/računalu s ciljem preopterećivanja te onemogućavanja mogućnosti procesuiranja i odgovaranja na pakete.
UDP oluja također iskorištava postojanje poslužitelja 'UDP Small Services' koji su korisni za općenitu dijagnostiku (Tablica 1).
Naziv | Port | Opis usluge |
---|---|---|
echo | 19/udp | Poslužitelj vraća podatke koje je poslao klijent |
daytime | 13/udp | Poslužitelj vraća vrijeme i datum |
chargen | 19/udp | Poslužitelj odgovara s datagramom koji sadrži string ASCII karaktera |
time | 37/udp | Poslužitelj vraća vrijeme kao 32-bitni broj |
Primjer napada prikazan je na slici 3. Za napad potreban je samo jedan paket koji napadač šalje jednom od poslužitelja servisa. U ovom slučaju napadač šalje posredniku chargen paket s lažiranom izvorišnom adresom gdje se predstavlja kao poslužitelj echo. Na taj način servisi echo i chargen kreću se 'ping-pongati' paketima te dovode do zagušenja mreže i/ili samih poslužitelja. Obično napadač pošalje nekoliko paketa kako bi pojačao djelovanje napada. Petlja paketa izvodi se sve dok jedno računalo ne završi s radom.
Skeniranje portova je uobičajena tehnika koju napadači koriste za otkrivanje otvorenih vrata i slabih točaka u mreži. Napad pomaže napadačima da pronađu otvorene portove te shvate da li poslužitelj na tom portu prima ili šalje podatke. Također moguće je otkriti postoje li sigurnosni sustavi poput vatrozida unutar sustava. Kod skeniranja UDP portova, napadačev cilj je otkriti koji se UDP poslužitelji vrte na računalu. Napadač šalje paket na port te ako je port zatvoren većinom se generiraju poruke “ICMP port unreachable” (ne uvijek). Otvoreni portovi ne šalju nikakav odgovor te ako se ne dobije ICMP poruka smatra se da je port otvoren. No, ako se ne dobije poruka ne može se uvijek zaključiti da je port otvoren jer je UDP nepouzdan protokol. Dolazi do komplikacija pri skeniranju ako je računalo udaljeno jer je veća mogućnost gubitaka datagrama. Stoga potrebno je osigurati retransmisiju. Također, neki operacijski sustavi ograničavaju brzinu slanja ICMP poruka, stoga generiraju ograničen broj ICMP poruka u sekundi. Tako ova tehnika otkrivanja slabosti sustava postaje jako spora i teško sa sigurnošću izvediva. Jedan od alata koji se koristi je program Nmap koji prilagođava brzinu slanja brzini primljenih odgovora.
U 2020. godini izmjeren je rekordan UDP amplifikacijski napad s izvorištem u nekoliko kineskih pružatelja internetskih usluga. S tri pružatelja internetskih usluga napad na tisuće Googleovih IP adresa trajao je 6 mjeseci te je dosegao 2.5 Tbps propusnosti. Napad je koristio nekoliko mreža za spoofanje 167 milijuna paketa po sekundi prema 180,000 izloženih CLDAP, DNS i SMTP poslužitelja.
U veljači 2020. godine AWS (Amazon Web Services) pogođen je napadom uskraćivanja usluge. Ovo je najveći napad uskraćivanja usluge ikad, a napadao je nepoznatog AWS korisnika koristeći CLDAP reflection. Ova tehnika se oslanja na ranjivost CLDAP poslužitelja treće strane te amplificira teret poslan prema žrtvinoj IP adresi 56 do 70 puta. Napad je trajao tri dana te je dosega čak 2.3 terabajta po sekundi.
U rujnu 2016. godine Brian Krebs, cybersecurity stručnjak, napadnut je DDoS napadom. Krebs je zabilježio 269 DDoS napada od srpnja 2012. godine no ovaj napad je bio tri puta veći od ijednog napada ikada prije. Izvor napada bio je Mirai botnet koji se služio s više od 600,000 zaraženih IoT uređaja (IP kamere, ruteri, video-playeri). Sljedeći Mirai botnet napad dogodio se 19. rujna kada je napadnut najveći Europski hosting pružatelj OVH koji uslužuje 18 milijuna aplikacija za preko milijun klijenata. Napad je izveden s procijenjeno 140,000 botova koji su generirali teret od 1.1 terabit po sekundi. Napad je trajao 7 dana.
Zbog svog načina rada UDP podilazi mnogim opasnostima iskorištavanja. Kroz razne prikazano je kako je vrlo lako moguće onesposobiti mrežu, računalo ili servis koristeći lažirano UDP zaglavlje. Obrana od napada ovakve vrste mora se riješiti na aplikacijskom sloju OSI modela. Ovaj wiki dokument približava UDP obmanu, otimanje, oluje i skeniranje UDP portova. Svaki napad je opasan te može dovesti do katastrofalnih posljedica. Najpoznatiji napadi UDP protokolom prikazani su kako bi se dočarao stupanj opasnosti ovakve ranjivosti.
[1] Sigurnost u Internetu, FER, predavanja 2020.
[2] Network or TCP Session Hijacking [mrežno, pristupljeno 07.01.2021.]
[3] UDP Reflection Attacks [mrežno, pristupljeno 07.01.2021.]
[4] UDP Session Hijacking [mrežno, pristupljeno 07.01.2021.]
[5] How does a UDP flood attack work? [mrežno, pristupljeno 07.01.2021.]
[6] Five Most Famous DDoS Attacks [mrežno, pristupljeno 07.01.2021.]
[7] What is an Online Port Scanner and How to Prevent Attacks [mrežno, pristupljeno 07.01.2021.]
[8] How does UDP port scanning and service detection work? [mrežno, pristupljeno 07.01.2021.]