fakultet elektrotehnike i...
TRANSCRIPT
Sveučilište u Zagrebu
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
UDP protokol
Seminarski rad u okviru predmeta „Računalna forenzika“
Zagreb, 2018. Ena Tomić, 0036504631
Sadržaj Uvod ......................................................................................................................................................................................... 1
1. UDP datagrami ........................................................................................................................................................... 2
2. Primjena ....................................................................................................................................................................... 2
3. Napad preplavljivanjem UDP paketima (UDP Flood Attack) .................................................................. 3
3.1. Direktni napad preplavljivanjem UDP paketima (Direct UDP Attack) ........................................ 5
3.2. Fragmentacijski napad UDP preplavljivanjem (Fragmentation UDP Attack) .......................... 5
3.3. Kako oslabiti UDP Flood napad? ................................................................................................................ 5
4. Napadi pojačavanja koji se temelje na UDP-u (UDP Amplification Attacks)..................................... 6
4.1. Zaraženi sustavi ............................................................................................................................................... 6
4.2. Detekcija i zaštita ............................................................................................................................................ 7
Zaključak ................................................................................................................................................................................ 9
Bibliografija ....................................................................................................................................................................... 10
1
Uvod
UDP protokol je predstavljen još 1980.godine i jedan je od najstarijih postojećih protokola.
To je jednostavni OSI transportni protokol za mrežne klijent/poslužitelj aplikacije. Temelji se
na IP protokolu i glavna je alternativa TCP protokolu. UDP je nesiguran protokol budući da
nema nikakvu kontrolu grešaka ili mehanizme ispravljanja grešaka prilikom prijenosa
podataka. Postoje aplikacije koje podržavaju isključivo UDP protokol i ne podudaraju se s
TCP protokolom. UDP (često se spominje i kao UDP/IP) se uglavnom koristi za
videokonferencijske aplikacije i kompjuterske igrice koje su namijenjene stvarnovremenskim
performansama. U svrhu postizanja boljih performansi, pojedini paketi se mogu ispustiti (bez
ponovnog slanja), te također, na prijemu UDP paketi mogu stići nepravilnim redoslijedom.
UDP protokol tolerira veća kašnjenja te manje viška podataka (data overhead), za razliku od
TCP-a. S obzirom na slanje paketa bez ikakvog redoslijeda i bez ikakve kontrole greške,
samim tim je manja i propusnost. U radu će se govoriti o ranjivosti UDP protokola koja
proizlazi iz navedenih karakteristika.
2
1. UDP datagrami
UDP promet se odvija putem tzv. datagrama. Detalji zaglavlja (Slika 1) se nalaze u prvih 8 B,
a ostatak čini sama poruka. Svaki dio UDP zaglavlja zauzima 2 B:
broj izvorišnog porta
broj destinacijskog porta
veličina datagrama
kontrolna suma
Slika 1 UDP zaglavlje [1]
UDP portovi služe aplikacijama da mogu zadržati vlastite kanale za prijenos podataka.
Mogući brojevi portova su između 0-65535.
UDP veličina datagrama je zbroj ukupnog broja bajtova sadržani u podatkovnom dijelu te u
zaglavlju. Duljina zaglavlja je fiksna. Veličina datagrama varira ovisno od operacijskog
okruženja, maksimalno 65535 B.
Kontrolna suma služi za očuvanje integriteta poruka. Ona predstavlja kodirane podatke
poruke i računa se kod pošiljatelja i kod primatelja. Ukoliko se ove dvije vrijednosti ne
podudaraju, to je pokazatelj da je došlo do oštećenja poruke. Izračunavanje kontrolne sume
kod UDP je opcionalno, za razliku od TCP gdje je obavezno.
2. Primjena
UDP je nespojni protokol. Dakle, prije samog prijenosa podataka, ne zahtijeva uspostavu veze
između dviju točaka interneta. Stoga se UDP koristi u aplikacijama gdje se prvenstveno traži
velika brzina prijenosa, ne nužno i pouzdanost, tj. u aplikacijama koje ne zahtijevaju potvrdu
prijema. Brojne ključne Internet aplikacije koriste UDP: DNS, SNMP, RIP i DHCP. Neki
VPN sustavi, poput OpenVPN-a, koriste UDP, dok pouzdane konekcije i provjeru greške
implementiraju na aplikacijskom sloju.
UDP-om se prenose višemedijski sadržaji. Protokoli za prijenos video i audio sadržaja u
stvarnom vremenu su dizajnirani tako da više toleriraju povremeno izgubljene pakete, nego
velika kašnjenja u slučaju retransmisije paketa, tako da se javlja samo neznatna degradacija u
kvaliteti prijenosa. S obzirom da i UDP i TCP protokol operiraju na istoj mreži, primijećeno
3
je da u zadnje vrijeme, povećana upotreba UDP u stvarnovremenskim aplikacijama koči rad
aplikacija koje koriste TCP.
UDP protokol ne podržava kontrolu toka.
Tehnike UDP napada su: skeniranje portova, UDP spoofing, UDP hijacking,a u nastavku
rada, pobliže su objašnjeni napad preplavljivanjem UDP paketima, te napad pojačavanjem
koji se temelji na UDP-u.
3. Napad preplavljivanjem UDP paketima (UDP Flood Attack)
Slika 2 Napad preplavljivanjem UDP paketima [2]
4
UDP preplavljivanje ili pretrpavanje UDP paketima je vrsta DDoS napada (engl. Distributed
Denial of Service)1 kod kojeg se šalje velik broj UDP paketa prema odabranom serveru s
ciljem da se zatrpa prometom i tako mu se oslabi sposobnost odaziva i procesiranja. Vatrozid
koji štiti ciljani server također može biti „iscrpljen“ od UDP preplavljivanja što rezultira
uskraćivanjem usluga za regularni promet.
Napad UDP preplavljivanjem funkcionira tako što poslužitelj najprije poduzme regularne
korake koje inače provodi kao odgovor na UDP paket poslan na jedan od njegovih portova. U
normalnim uvjetima, kad poslužitelj primi UDP paket na određeni port, slijede dva koraka
prilikom odgovora:
1.Poslužitelj prvo provjerava jesu li pokrenuti neki programi koji trenutno slušaju zahtjeve
na navedenom portu.
2.Ako nijedan program ne prima pakete na tom portu, poslužitelj odgovara paketom
ICMP (ping) kako bi obavijestio pošiljatelja da je odredište nedostupno.
UDP Flood se može promatrati u kontekstu hotelskog recepcionara koji usmjerava pozive.
Prvo, recepcionar prima telefonski poziv na kojem pozivatelj traži povezivanje s određenom
prostorijom. On tada treba pogledati popis svih soba kako bi bio siguran da je gost dostupan u
sobi i spreman preuzeti poziv. Jednom kada recepcionar shvati da gost ne prihvaća pozive, on
mora preuzeti telefon ponovno i reći pozivatelju da gost neće primiti poziv. Ako iznenada sve
telefonske linije svijetle istovremeno sa sličnim zahtjevima onda će brzo postati preplavljene.
Kako svaki poslužitelj prima novi UDP paket, prolazi kroz određene korake postepeno kako
bi obradio zahtjev. Kada se prenesu UDP paketi, svaki paket će sadržavati IP adresu izvornog
uređaja. Tijekom ove vrste DDoS napada, napadač obično neće koristiti vlastitu stvarnu IP
adresu, već će zamijeniti izvornu IP adresu UDP paketa, čime se sprječava da je napadačeva
stvarna lokacija vidljiva i potencijalno zasićena paketima odgovora iz ciljanog poslužitelja
(koji je meta napada).
Resursi „žrtve“ se mogu brzo iscrpiti kada se primi velika „poplava“ UDP paketa, što dovodi
do uskraćivanja usluge normalnog prometa.
1 DDoS (engl. Distributed Denial of Service) su napadi izvršeni od strane većeg broja raspodijeljenih napadača.
Najčešće su to tzv. zombie računala čiji vlasnici nisu upoznati s činjenicom da njihovo računalo generira DoS
napade na neko računalo ili računala na internetu. Na ovaj način je moguće stvarati velike količine prometa na
napadnutim mrežnim segmentima čiji dio jest i napadnuto računalo ili mrežni uređaj. [5]
5
3.1. Direktni napad preplavljivanjem UDP paketima (Direct UDP Attack)
Ciljani poslužitelj se napada velikim brojem nekrivotvorenih UDP paketa. Da prikrije napad,
napadač ne krivotvori stvarnu IP adresu zombie računala. Broj zombie računala korištenih za
izvršavanje napada jednak je rasponu izvorišnih IP adresa za ovaj napad. Napad je osmišljen
da potroši sve raspoložive propusnosti i resurse u mreži sve dok se potpuno ne isprazne i
zatvore. Ovu vrstu DDoS napada nije lako otkriti, jer sliči legitimnom prometu.
3.2. Fragmentacijski napad UDP preplavljivanjem (Fragmentation UDP Attack)
To je još jedan od onih pametno maskiranih DDoS napada koje nije lako otkriti. Sve
aktivnosti generirane ovim napadom, podsjećaju na legitimni promet i sve je u dozvoljenim
granicama. Ova verzija UDP Flood napada šalje veće, ali fragmentirane pakete kako bi
iscrpila više propusnog pojasa, šaljući manje fragmentiranih UDP paketa.
Kada ciljani poslužitelj pokušava sastaviti ove nepovezane i krivotvorene fragmentirane UDP
pakete, to neće uspjeti. Na kraju, svi dostupni resursi iscrpljeni su i poslužitelj se može
reboot-ati.
3.3. Kako oslabiti UDP Flood napad?
Većina operativnih sustava ograničava brzinu odgovora ICMP paketima kako bi poremetila
DDoS napade koji zahtijevaju ICMP odgovor. Jedan od nedostataka ove vrste suzbijanja
napada je da se tijekom napada mogu filtrirati legitimni paketi u tom procesu. Ako UDP
preplavljivanje ima volumen dovoljno velik da zadovolji stanje tablice vatrozida ciljanog
poslužitelja, bilo koje suzbijanje koje se pojavljuje na razini poslužitelja neće biti dostatno.
6
4. Napadi pojačavanja koji se temelje na UDP-u (UDP Amplification Attacks)
Ovi napadi se zovu još i amplifikacijski napadi. Postoje dva kriterija za dobar amplifikacijski
vektor napada:
zahtjev može biti poslan s lažirane izvorišne adrese (putem protokola koji ne zahtijeva
handshakeUDP)
odgovor na ovaj zahtjev je mnogo veći od samog zahtjeva [3]
4.1. Zaraženi sustavi
Određeni protokoli aplikacijskog sloja, koji se temelje na UDP protokolu, smatraju se
potencijalnim vektorima napada. To su:
DNS (Domain Name System),
NTP (Network Time Protocol),
CLDAP (Connection-less Lightweight Directory Access Protocol),
CharGEN (Character Generator Protocol),
SSDP (Simple Service Discovery Protocol),
BitTorrent,
SNMPv2 (Simple Network Management Protocol version 2),
Kad,
RPC (Portmap/Remote Procedure Call),
QOTD (Quote of the Day),
mDNS (Multicast Domain Name System),
NetBIOS (Netwok Basic Input/Output System),
Quake Network Protocol,
Steam Protocol,
RIPv1 (Routing Information Protocol version 1),
LDAP (Leightweight Directory Access Protocol),
TFTP (Trivial File Transfer Protocol).
Najpoznatiji amplifikacijski napadi su: NTP amplifikacija, DNS amplifikacija, Fraggle
napadi.
Već je spomenuto da je UDP nespojni protokol koji ne potvrđuje izvorišne IP adrese. Osim
ako protokol aplikacijskog sloja ne koristi protumjere kao što je inicijacija sjednice u VoIP-u,
napadač može lako falsificirati datagram IP paketa kako bi ubacio proizvoljnu izvorišnu IP
adresu. Kada mnogi UDP paketi imaju izvorišnu IP adresu pretvorenu u žrtvinu IP adresu,
odredišni poslužitelj (ili pojačavač) odgovara žrtvi (umjesto napadaču), stvarajući reflektirani
napad uskraćivanja usluga (DoS). Reflektirani napad izaziva legitimni poslužitelj (treća
strana) da odgovori na žrtvinu IP adresu. Može se usporediti s naručivanjem reklama poštom
na adresu žrtve. [3]
7
Neke naredbe UDP protokolu zahtijevaju odgovore koji su mnogo veći od početnog zahtjeva.
Prije toga, napadači su bili ograničeni linearnim brojem paketa koji su izravno poslani žrtvi da
izvrše DoS napad; sada jedan paket može generirati između 10 i 100 puta veću od originalne
propusnosti. To se naziva napadom pojačavanja, a kada se kombinira s reflektiranim DoS
napadom u velikoj mjeri, koristeći više pojačavača i ciljajući jednu žrtvu, DDoS napadi se
mogu provesti relativno lako.
Potencijalni učinak napada pojačavanja može se mjeriti pomoću BAF-a (engl. Bandwidth
Amplification Factor), koji se može izračunati kao broj UDP korisnih bajtova koje poslužitelj
(pojačavač) šalje da odgovori na zahtjev, u usporedbi s brojem UDP korisnih bajtova
zahtjeva.
Na sljedećoj tablici [4] je prikazana lista poznatih protokola i pripadajućih BAF-ova:
Protokol BAF (Faktor pojačanja propusne širine)
DNS od 28 do 54
NTP 556.9
SNMPv2 6.3
NetBIOS 3.8
SSDP 30.8
CharGEN 358.8
QOTD 140.3
BitTorrent 3.8
Kad 16.3
Quake Network Protocol 63.9
Steam Protocol 5.5
mDNS od 2 do 10
RIPv1 131.24
Portmap (RPCbind) od 7 do 28
LDAP od 46 do 55
CLDAP od 56 do 70
TFTP 60
U studenom 2017, Netlab 360 je izvještava da je CLDAP sada treći najčešći DRDoS napad,
poslije DNS i NTP napada.
4.2. Detekcija i zaštita
Otkrivanje DRDoS napada nije lako zbog njihove upotrebe velikih, pouzdanih poslužitelja
koji pružaju UDP usluge. Mrežni operatori ovih iskoristivih usluga mogu primjenjivati
tradicionalne tehnike ublažavanja DoS-a. Jedan od znakova da napadač koristi uslugu jesu
abnormalno veliki odgovori na određenu IP adresu.
8
Postoji nekoliko stvari koje žrtve DRDoS napada mogu napraviti kako bi otkrile takve
aktivnosti:
1) Detektirati i upozoriti velike UDP pakete na portove većeg reda.
2) Detektirati i upozoriti na sve UDP pakete koji nisu u stanju transakcije.
3) Davatelji usluga upstream-a trebaju održavati ažurirane kontakte i metode s downstream
korisnicima da bi mogli slati upozorenja mrežom.
Općenito, mrežni i poslužiteljski administratori za davatelje internetskih usluga trebaju
prakticirati sljedeće, kako bi izbjegli čvorove koji vode do pojačavanja:
1) Koristiti mrežni tok za otkrivanje krivotvorenih paketa.
2) Koristiti mrežni tok ili neke druge sumirane mrežne podatke za praćenje neobičnih brojeva
zahtjeva prema riskantnim UDP paketima.
3) Koristiti mrežni tok za otkrivanje bilo kakvih anomalija usluga (npr. anomalije u bajtima
po paketu i paketima po sekundi).
4) Redovito ažurirati software i konfiguracije da se poništi ili ograniči zlouporaba.
5) Onemogućiti i ukloniti neželjene servise ili uskratiti pristup lokalnim servisima putem
interneta.
6) Koristiti protokole koji se temelje na UDP-u- npr. QoS (engl. Quality of Service) na
uređajima za preusmjeravanje da bi se omogućilo ograničavanje brzine na razini mreže za
legitimaciju usluga preko interneta.
7) Surađivati s proizvođačima korisničke opreme kako bi se osigurala konfiguracija i
software.
9
Zaključak UDP protokol koriste mnogi aplikacijski protokoli za prijenos paketa. U radu je pokazano
kako napadači lako mogu manipulirati UDP paketima i kakva šteta na mreži može nastati
krivotvorenjem paketa. Statistika pokazuje da u zadnje dvije godine, alarmantan broj
poduzeća je napadnut od strane hakera, kriminalaca i drugih zlonamjernih korisnika. Ne samo
da se uskraćuju usluge korisnicima, nego nastaju i financijske štete ogromnih razmjera.
Najpoznatiji napadi su napadi UDP preplavljivanjem i amplifikacijski UDP napadi i detaljnije
su objašnjeni u radu. Uklanjanje UDP napada je utoliko složenije, jer često nije moguće
zabraniti upotrebu UDP protokola. Također, s obzirom da UDP koriste aplikacije koje ne
zahtijevaju potvrdu o prijenosu, nije moguće efikasno koristiti klasične metode obrane
zasnovane na ograničavanju brzine propuštanja UDP paketa. Bez obzira, navedene su
određene metode detekcije i zaštite od UDP DDOS i UDP DRDOS napada.
10
Bibliografija
[1] »Wikipedia,« 2018. [Mrežno]. Available:
https://en.wikipedia.org/wiki/User_Datagram_Protocol.
[2] »Juniper,« 2017. [Mrežno]. Available:
https://www.juniper.net/documentation/en_US/junos/topics/concept/denial-of-service-
network-udp-flood-attack-understanding.html.
[3] P. Pale i K. Skračić, Bilješke i predavanja u okviru predmeta "Računalna forenzika", Zagreb:
Fakultet elektrotehnike i računarstva, 2018.
[4] »US-CERT,« 2017. [Mrežno]. Available: https://www.us-cert.gov/ncas/alerts/TA14-017A.
[5] »CARNet, CERT,« 2006. [Mrežno]. Available: http://www.cert.hr/sites/default/files/CCERT-
PUBDOC-2006-07-162.pdf.
[6] »Cloudflare,« [Mrežno]. Available: https://www.cloudflare.com/learning/ddos/udp-flood-
ddos-attack/.
[7] »JAVAPIPE,« 2018. [Mrežno]. Available: https://javapipe.com/ddos/blog/ddos-types/.
[8] G. Gledec i M. Mikuc, Bilješke i predavanja u okviru predmeta "Sigurnost u internetu", Zagreb:
Fakultet elektrotehnike i računarstva, 2018.