UDP (User Datagram Protocol) je uz TCP najbitniji protokol transportnog sloja. Omogućava jednostavan i brz, ali nepouzdan prijenos podataka. Zbog činjenice da UDP zaglavlje u sebi sadrži jako malo informacija (izvorišna vrata, odredišna vrata, duljina i opcionalna zaštitna suma) često je teško izvući neke korisne podatke iz njegove analize. Najlakši način provjere ispravnosti UDP paketa je provjera zaštitne sume, no to često nije pouzdano, a često nije ni moguće jer je zaštitna suma opcionalna pa ne mora biti zadana. Napadi koji se temelje ne UDP protokolu su najčešće napadi uskraćivanja usluge te se najčešće lagano mogu detektirati u alatima za analizu mrežnog prometa (npr. Wireshark). UDP se rijetko koristi za skeniranje jer ga dosta malo aplikacija koristi u odnosu na TCP te je skeniranje UDP protokolom često nepouzdano.
UDP (User Datagram Protocol) jedan je od najbitnijih komunikacijskih protokola te je uz TCP protokol najvažniji protokol transportnog sloja. Protokoli transportnog sloja pružaju end-to-end spajanje aplikacija te se razlikuju po pouzdanosti, održavanju paketa i načinu upravljanja prijenosom. UDP protokol je puno jednostavniji i brži od TCP-a te pruža minimalne informacije povrh IP protokola, no cijena njegove jednostavnosti i brzine je to što je on u odnosu na TCP protokol veoma nepouzdan, a samim time su i podaci podložniji manipulaciji.
Kad govorimo u nepouzdanosti UDP protokola, misli se na to da ako paket iz bilo kakvog razloga nije dostavljen na odredišnu adresu se ne dobiva povratna informacija o tome te paketi nisu označeni rednim brojem. Ovo znači da se s ovim problemima moraju baviti protokoli višeg sloja.
Neki od protokola višeg sloja koji koriste UDP kao transportni protokol su: DNS (Domain Name System), TFTP (Trivial File Transfer Protocol) i SNMP (Simple Network Management Protocol). UDP se također koristi od strane protokola za prijenos govora, s obzirom na to da u njima nije osobito bitno da za svaki paket bude potvrđeno je li dostavljen ili ne te su suvišni ikakvi drugi meta-podaci koje pruža TCP.
UDP zaglavlje sastoji se od sljedećih komponenti:
Najlakši način provjere jesu li podaci u UDP paketu ispravni je korištenjem zaštitne sume. U nastavku će kratko biti objašnjeno računanje zaštitne sume.
Računanje na strani pošiljatelja:
S obzirom na to da svaki dio zaglavlja ima 16 bita, svaki segment se može tretirati kao cijeli broj od 16 bita. Zaštitna suma se računa tako da se izvršava zbrajanje tih brojeva te se zatim njihov komplement sprema u polje namijenjeno za zaštitnu sumu.
Računanje na strani primatelja:
Zaštitna suma se opet računa ispočetka tako da se svaki dio zaglavlja tretira kao broj te se oni zbrajaju. Taj zbroj se onda zbraja s brojem spremljenim u polju zaštitna suma. Ako taj zbroj nije 1111111111111111, to znači da je došlo do greške, zato što je ovo u biti zbrajanje broja s njegovim komplementom što treba rezultirati sa svim jedinicama.
Bitno je naglasiti da zaštitna suma nije obavezan dio UDP zaglavlja, tako da to često uopće neće biti dostupno za analizu.
Jedan od najčešćih slučajeva korištenja UDP paketa za svrhu napada je DOS amplifier napad koji za svrhu ima uskraćivanje usluge. Ovaj napad funkcionira tako da se pošalje UDP paket s lažnom izvorišnom adresom (predaje se IP adresa računala „žrtve“), te onda neko računalo (ovdje se naziva „posrednik“) „žrtvi“ šalje neki uobičajeno dosta velik odgovor (ili njih više) te se na taj način uskraćuje usluga s tog računala.
Ovakve napade se najčešće može prepoznati po tome što će biti poslan jako velik broj UDP paketa s malog broja (ili samo jedne) IP adresa i portova. Za promatranje UDP paketa se najčešće koristi alat Wireshark.
Jedna od upotreba UDP protokola u analizi je skeniranje, koje se izvodi u velikom broju alata od kojih je jedan od najpoznatijih Nmap. Tamo je standardna opcija za skeniranje protokol TCP, no može se koristiti i UDP. UDP skeniranje je dosta rjeđe od TCP skeniranje zato što puno više aplikacija koristi TCP nego UDP. UDP skeniranje se radi tako da se na više različitih portova na ciljanom računalu pošalje „prazni UDP paket“ (ima samo zaglavlje) te se port po odgovoru klasificira kao otvoren ili zatvoren. Problem kod UDP skeniranja je to što je veoma teško procijeniti što se dogodilo ako uopće ne bude vraćen odgovor, s obzirom na to da je UDP protokol u kojem ne postoji nikakvo potvrđivanje primitka poruke.
S obzirom na to da je UDP dosta jednostavan protokol kojemu je cijela poanta u tome da se pri prijenosu podataka koriste samo ključne informacije, ne iznenađuje previše da su mogućnosti analize UDP paketa dosta malobrojne. Napadi koji se temelje na UDP protokolu najčešće iskorištavaju činjenicu da kod UDP protokola ne postoji potvrda primitka poruke niti provjera njenog izvora, tako da računala koja prime UDP paket na njega odgovaraju bez dodatnih provjera. Također, upravo zato što UDP sam po sebi u svom zaglavlju ne sadrži skoro nikakve meta-podatke je vrlo uzak skup napada koji mogu biti izvršeni na njega. Jedina ugrađena sigurnosna mjera u UDP je zaštitna suma, a ni ona nije osobito korisna zato što je opcionalna, odnosno često će biti potpuno izostavljena iz komunikacije UDP protokolom.
https://en.wikipedia.org/wiki/User_Datagram_Protocol
FER materijali kolegija Komunikacijske mreže
https://linuxhint.com/udp_wireshark_analysis/
https://www.ques10.com/p/10930/how-is-checksum-computed-in-udp-1/
https://resources.infosecinstitute.com/topic/network-traffic-analysis-for-ir-udp-with-wireshark/