SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR U OKVIRU PREDMETA RAČUNALNA FORENZIKA INTERNETSKI PROTOKOL I NJEGOVE RANJIVOSTI Branko Sirotković Zagreb, siječanj 2018.
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
SEMINAR U OKVIRU PREDMETA RAČUNALNA FORENZIKA
INTERNETSKI PROTOKOL
I NJEGOVE RANJIVOSTI
Branko Sirotković
Zagreb, siječanj 2018.
Sadržaj
Uvod ...................................................................................................................................... 1
1. Internet protokol IPv4 .................................................................................................... 3
1.1. Struktura IP paketa ................................................................................................ 3
2. IP Adresiranje ................................................................................................................ 5
2.1. Lažiranje IP adrese ................................................................................................ 6
2.1.1. Denial of Service napad (DoS) ...................................................................... 6
2.1.2. Smurf napad ................................................................................................... 7
3. IP Fragmentiranje .......................................................................................................... 8
3.1. Ranjivosti koje proizlaze iz fragmentiranja ........................................................... 8
3.1.1. Teardrop napad .............................................................................................. 9
3.1.2. IP fragmentation buffer full ........................................................................... 9
Zaključak ............................................................................................................................. 10
Literatura ............................................................................................................................. 11
1
Uvod
Prilikom razvoja dva različita projekta 1970-ih godina organizacije ISO (hrv.
Međunarodna organizacija za standardizaciju) te CCITT (engl. Consultative Committee for
International Telephony and Telegraphy) razvili su dva podosta slična dokumenta koja
opisuju njihov model protokola za umrežavanje. Niti petnaest godina kasnije te dvije
organizacije su se udružile kako bi definirale prvu verziju onog što danas znamo pod
nazivom „OSI referentni model“.
OSI model (eng. Open Systems Interconnection Model) je konceptualni model koji opisuje
i standardizira komunikaciju među uređajima raznih tehnologija neovisno o njihovoj
sklopovskoj i programskoj izvedbi. Njegova svrha bila je postići interoperabilnost između
svakojakih uređaja standardiziranim protokolima.
Glavna karakteristika OSI modela je slojevitost. Model je podijeljen na sedam slojeva od
kojih se svaki sloj oslanja na onoga neposredno ispod sebe, odnosno, pruža funkcionalnosti
sloju neposredno iznad sebe. Iz navedene slojevitosti i proizlazi mogućnost
interoperabilnosti raznih uređaja.
Tema ovog seminara je Internetski protokol, protokol na mrežnom sloju OSI modela. OSI
model protokole na mrežnom sloju opisuje kao one koji pružaju mogućnost prijenosa
paketa uz adresiranje, usmjeravanje i prosljeđivanje istih.
Internetski protokol uz ostale poznate protokole poput TCP-a i UDP-a čini globalnu mrežu:
Internet. Zbog svoje specifičnosti i veličine Internet je dobio i svoj osobni OSI model,
TCP/IP model. TCP/IP model je prikladniji za opis protokolnih slojeva u internetu, ali u
osnovi se poklapa sa OSI modelom. Usporedba modela i sličnosti slojeva su navedeni u
Tablica 1.
2
OSI model TCP/IP model
7. Aplikacijski sloj
4. Aplikacijski sloj 6. Prezentacijski sloj
5. Sloj sesije
4. Transportni sloj 3. Transportni sloj
3. Mrežni sloj 2. Mrežni sloj
2. Sloj podatkovne veze
1. Sloj podatkovne veze
1. Fizički sloj
Tablica 1. – Usporedba OSI modela i TCP/IP modela
3
1. Internet protokol IPv4
Pri samom početku ovoga rada valja napomenuti da je pisan za četvrtu verziju Internet
protokola poznatu pod skraćenicom IPv4. IPv4 danas spada pod zastarjele protokole s
obzirom na to da se IPv6 koristi već neko vrijeme te donosi bitna poboljšanja, unatoč tome
podaci preneseni IPv4 protokolom i dalje čine većinu podataka koji se prenosi Internetom i
to otprilike 75% po istraživanjima koje je proveo Google krajem 2017. godine.
Glavne uloge Internet protokola u TCP/IP modelu su:
-Enkapsulacija podataka protokola višeg sloja, točnije, protokoli na višim slojevima
će se oslanjati na IP protokol za prijenos podataka.
-Definira shemu adresiranja u Internetu.
-Definira proces fragmentacije čime se postiže mogućnost slanja jednog IP paketa u
više fragmenata što doprinosi efikasnosti i potencijalu samog protokola.
Neke od karakteristika IP protokola su da ne ovisi o protokolu nižeg sloja, pruža nespojnu i
nepouzdanu uslugu prijenosa podataka što znači da nam ne daje nikakvu potvrdu ni
garanciju da će uspješno prenijeti podatke. Također, nema mehanizme kontrole toka.
1.1. Struktura IP paketa
Svi podatci koji se prenose internet protokolom preko mreže prenose se u obliku
takozvanih IP paketa. Svaki IP paket sastoji se od zaglavlja i podataka. Veličina zaglavlja
se kreće između 20 i 32 bajta (u ovisnosti koristi li se posljednjih neobaveznih 12 bajtova
koji služe za opcije). Veličina podataka je definirana maksimalnom vrijednošću koja se
može zapisati u zaglavlju pod poljem „ukupna duljina“ za koju je rezervirano 16 bitova, to
jest, maksimalna veličina podataka je 65535 bajtova od kojih oduzmemo veličinu
zaglavlja. Detaljnija struktura zaglavlja te polja od kojih se sastoji mogu se vidjeti na
sljedećoj slici (Slika 1).
4
Slika 1. – Struktura IP paketa u protokolu IPv4
Prilikom razmatranja potencijalnih ranjivosti IP protokola ključna će biti sljedeća polja:
izvorišna IP adresa, odredišna IP adresa te flags i fragment offset.
5
2. IP Adresiranje
U svrhu adresiranja, po načelima protokola, svakom uređaju koji se spaja na Internet
dodjeljuje se IP adresa. Za početak bitno je razlikovati statičke IP adrese koje su trajno
dodijeljene i služe kao identifikatori poslužitelji na mreži te dinamičke IP adrese koje su
dodijeljene privremeno, tijekom pružanja usluge (npr. kada se računalom spojimo na
Internet preko ADSL-a).
Svaka IP adresa je određena s 32 bita (Slika 2).
Slika 2. – Primjer IPv4 adrese.
Svaka IP adresa se dijeli na dva dijela. Identifikator mreže što je prvih nekoliko bitova dok
je ostatak identifikator računala na toj mreži, primjer je vidljiv na slici 3.
Slika 3. – Podjela IP adrese na dva identifikatora.
Valja napomenuti da postoji veliki broj rezerviranih adresa koje se ne mogu dodijeliti
krajnjem računalu u javnoj mreži jer imaju posebno svrhu. Poput adresa 255.255.255.255
koja služi za opće razašiljanje te cijeli raspon adresa 192.168/16 koje služe za
referenciranje adresa u privatnoj mreži.
6
2.1. Lažiranje IP adrese
Lažiranje IP adrese (engl. IP Spoofing) počiva na mogućnosti da uz pomoć računalnih
programa izmijenimo izvorišnu IP adresu u zaglavlju IP paketa. Samim time računalo koje
primi taj paket je zavarano jer ima krivu informaciju tko mu je poslao taj paket (Slika 4).
Zlouporabe ove mogućnosti su velike, no ova tehnika se koristi samo u slučajevima kada
nas odgovor napadnutog računala ili ne zanima ili imamo alternativnu metodu
prisluškivanja njegovog odgovora. Razlog tome je što će napadnuto računalo pokušati
odgovoriti na lažnu IP adresu, a ne zapravo na adresu napadača.
Slika 4. – Primjer napada pomoću IP Spoofing-a.
2.1.1. Denial of Service napad (DoS)
DoS napad je napad kojim preopteretimo jedno računalo velikom količinom IP paketa koje
šaljemo prema njemu kako bi prestalo biti funkcionalno. Svrha korištenja lažiranja IP
adrese u DoS napadu je skrivanje napadačeve IP adrese te stvaranje IP paketa s
raznoraznim IP adresama kako žrtva ne bi bila u mogućnosti prepoznati koji su legitimni
IP paketi, a koji su samo dio napadačevog arsenala.
7
2.1.2. Smurf napad
Još jedan zanimljiv način iskorištavanja lažiranja IP adrese jest da stvaramo lažne pakete
kojima ćemo za izvorišnu adresu staviti IP adresu žrtve te velike količine tih paketa slati
raznoraznim računalima koja će onda odgovarajući na te pakete zagušiti računalo žrtvu.
Ovakav napad se često zove i reflektirajući DoS napad.
Slika 5. – Shematski prikaz Smurf napada.
8
3. IP Fragmentiranje
Teoretski IP paket može biti velik i do 64kB, no sloj ispod mrežnog sloja u TCP/IP modelu
kojeg će Internet protokol koristiti za prijenos podataka ne može slati toliko velike pakete.
U tom slučaju originalni IP paket ćemo rastaviti na fragmente te ih slati zasebno.
Maksimalna veličina fragmenta ovisi o MTU (engl. Maximum Transmission Unit) koji je
najčešće identičan veličini okvira koji se može slati na podatkovnom sloju.
Kako bi se fragmentiranje omogućilo u zaglavlju IP paketa postoje polja koja služe za
ispravno sastavljanje svih fragmenata na odredištu u originalni IP paket. Ta polja su
zastavice (engl. flags) (Slika 6.)
Slika 6. – Zastavice za fragmentiranje.
Svaki fragment osim posljednjeg će imati zastavicu MF („još fragmenata“) postavljenu na
1 kako bi naznačio da postoji još fragmenata nakon trenutnog. Također, svi IP paketi koji
se nisu rastavljali na fragmente će imati zastavicu DF („nema fragmentiranja“) na 1.
Na zastavice se nadovezuje i polje „Fragment offset“ sa slike 1. U njemu je zapisana
vrijednost pomaka u bajtovima trenutnog fragmenta u odnosu na početak.
Iako fragmentacija pruža veliki potencijal pri prijenosu većih IP paketa, idejno je
nepoželjna jer ako se izgubi ili krivo prenese jedan fragment cijeli IP paket propada, a uz
to propusnost opada jer se veliki dio prometa troši na zaglavlje svakog fragmenta.
3.1. Ranjivosti koje proizlaze iz fragmentiranja
Po uzoru na napade koji proizlaze iz adresiranja i ovi se temelje na postavljanju podataka u
zaglavlju IP paketa na neistinite vrijednosti. Zlouporabom ovih metoda može se dovesti do
9
pada sustava žrtve napada te zaobilaženje detekcije napada jer se zloćudni kod koji bi se
inače prepoznao uspijeva prikriti pomoću neispravnih fragmenata.
3.1.1. Teardrop napad
U svojoj suštini još jedan DoS napad. Funkcionira na metodi upisivanja lažnih vrijednosti
u polje „fragment offset“ kako bi se fragmenti preklapali prilikom rekonstrukcije
originalnog paketa. Računala koja su imala operacijske sustave poput Windowsa 95,
Windowsa NT te Linuxa prije verzije 2.1.63 su se ili gasili ili ne bi mogli dalje obrađivati
promet na mrežnom sloju.
3.1.2. IP fragmentation buffer full
Ovaj napad temelji se na slanju velikog broja fragmenata kojima je zastavica MF („more
fragments“) postavljena na istinitu vrijednost. Kako primajuće računalo mora sve
fragmente čuvati u priručnoj memoriji dok u potpunosti ne složi originalni IP paket, ako
mu šaljemo fragmente bez namjere da mu pošaljemo zadnji fragment njegova memorija će
se prepuniti. To je još jedan od načina za izazvati kvar na napadnutom računalu.
Sličan ovom napadu je i „IP fragment overrun“. On podrazumijeva da će eventualno doći
zadnji fragment, ali IP paket koji će se pokušati sastaviti će biti veći od maksimalne
veličine od 65535 bajtova što može prouzrokovati kvar na određenim operacijskim
sustavima.
10
Zaključak
Internet protokol u svojim funkcionalnostima je ostavio dovoljno nepredviđenih slučajeva
da osobe s dovoljno znanja i alata to mogu zloupotrijebiti. Na nama je samima da naše
aplikacije i uređaje zaštitimo s adekvatnim mjerama što na višim slojevima TCP/IP modela
što korištenjem odgovarajućih sigurnosnih protokola poput IPsec.
Korištenje novijeg protokola (IPv6) bi se što prije trebalo primijeniti u praksi jer novi
protokol sa sobom donosi i nova rješenja na postojeće ranjivosti protokola IPv4. IPv6
pruža end-to-end šifriranje podataka te puno veći adresni prostor što otežava značajan dio
trenutno korištenih metoda zlouporabe Internet protokola.
11
Literatura
[1] THE TCP/IP GUIDE, Charles M. Kozierok 2005.
http://www.tcpipguide.com/free/t_IPFunctions.htm
[2] WHAT IS IP ADDRESS SPOOFING, siječanj 2018
https://www.incapsula.com/ddos/ip-spoofing.html
[3] UNDERSTANDING TEARDROP ATTACKS, ožujak 2017
https://www.juniper.net/documentation/en_US/junos/topics/concept/denial-of-
service-os-teardrop-attack-understanding.html
[4] WHY IPV6 MATTERS FOR YOUR SECURITY, siječanj 2018
https://www.sophos.com/en-us/security-news-trends/security-trends/why-switch-to-
ipv6.aspx
[5] IP FRAGMENTATION BUFFER FULL, siječanj 2018
https://tools.cisco.com/security/center/viewIpsSignature.x?signatureId=1200&signat
ureSubId=0&soft_1
.
.
.