13
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINARSKI RAD U SKLOPU KOLEGIJA „RAČUNALNA FORENZIKA“ PROTOKOL DHCP Luka Čubelić Zagreb, siječanj 2018.

Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

SEMINARSKI RAD U SKLOPU KOLEGIJA „RAČUNALNA

FORENZIKA“

PROTOKOL DHCP

Luka Čubelić

Zagreb, siječanj 2018.

Page 2: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

Sadržaj

Uvod ...................................................................................................................................... 1

1. Pregled protokola DHCP ............................................................................................... 2

2. Faze protokola DHCP .................................................................................................... 3

2.1. Otkrivanje poslužitelja ........................................................................................... 4

2.2. Ponuda najma IP adrese ......................................................................................... 5

2.3. Traženje najma IP adrese ....................................................................................... 6

2.4. Potvrda najma IP adrese ........................................................................................ 7

2.5. Posebne okolnosti .................................................................................................. 8

3. Sigurnost protokola DHCP ............................................................................................ 9

3.1. Zloćudni DHCP poslužitelj ................................................................................... 9

3.2. Zloćudni klijent ..................................................................................................... 9

Zaključak ............................................................................................................................. 10

Literatura ............................................................................................................................. 11

Page 3: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

1

Uvod

Kako bi korisnik uspostavio vezu s nekom internetskom mrežom i mogao slobodno slati i

primati podatke preko iste, potrebno je dodijeliti mu IP (Internet Protocol) adresu. Adresu je

moguće dodijeliti statički ili dinamički. Statičko dodjeljivanje IP adrese podrazumijeva da

će svaki uređaj pri bilo kojem korištenju iste mreže upotrebljavati istu IP adresu, dok

dinamičko dodjeljivanje podrazumijeva da će svaki uređaj pri svakom uspostavljanju veze

dobiti novu IP adresu. Iako postoje slučajevi kada je statičko dodjeljivanje korisnije, unutar

mreža koje uglavnom ne koriste napredni korisnici (npr. besplatne pristupne točke unutar

raznih institucija, kućna mreža) u većini slučajeva koristi se dinamičko dodjeljivanje.

Svrha ovog seminarskog rada je upoznavanje čitatelja s najčešće korištenim protokolom

dinamičkog dodjeljivanja IP adresa, DHCP protokolom.

Page 4: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

2

1. Pregled protokola DHCP

DHCP (engl. Dynamic Host Configuration Protocol) mrežni je protokol aplikacijskog sloja.

Koristi se u trenutcima kada novi uređaj (kojem još nije dodijeljena IP adresa) pokušava

uspostaviti vezu s mrežom. IP adresa koja je dodijeljena uređaju vrijedi određeni vremenski

period, nakon kojega uređaj ponovno mora zatražiti IP adresu.

DHCP funkcionira prema modelu „klijent-poslužitelj“. Uređaj koji pokušava uspostaviti

vezu s mrežom ponaša se kao klijent, dok poslove DHCP poslužitelja može obavljati

usmjernik ili se (u većim mrežama) u tu svrhu mogu koristiti dodatni uređaji. DHCP

poslužitelj raspolaže s određenim brojem IP adresa te jednu od njih može dodijeliti uređaju

koji ju zatraži. Osim same IP adrese, uređaju se šalju i neki dodatni parametri, npr. zadani

pristupnik (engl. default gateway), DNS poslužitelji, vremenski poslužitelji itd.

U većim mrežama uz DHCP poslužitelj koriste se i agenti prijenosa (engl. relay agents) koji

prenose poruke između klijenata i DHCP poslužitelja.

Ovisno o implementaciji, DHCP poslužitelj može dodijeljivati IP adrese na tri različita

načina:

1. Dinamičko dodjeljivanje

Poslužitelj svakom klijentu dodjeljuje neku od slobodnih IP adresa na

određeni vremenski period. U slučaju da se dodijeljena adresa ne obnovi

(pomoću koncepata koji će biti opisani u daljnjem tijeku ovog rada) ona

postaje slobodna za dodjelu bilo kojem drugom klijentu [1].

2. Automatsko dodjeljivanje

Klijent i dodijeljena mu IP adresa pamte se u internoj tablici poslužitelja kako

bi istom klijentu pri budućim pokušajima spajanja bila dodijeljena ista IP

adresa [1].

3. Ručno dodjeljivanje

Prije puštanja u rad samog DHCP poslužitelja u internoj se tablici zapisuju

parovi MAC i IP adresa za svaki uređaj te DHCP poslužitelj dodjeljuje IP

adrese samo uređajima koji su navedeni u tablici. U slučaju zahtjeva od

uređaja koje nema u tablici, poslužitelj može ili ne mora, ovisno o svojim

internim postavkama, tim uređajima dodijeliti neke slobodne IP adrese putem

dinamičkog ili automatskog dodjeljivanja [1].

Page 5: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

3

2. Faze protokola DHCP

Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

informacija, točnije dva njegova priključka (engl. port), priključak broj 67 koji koristi

poslužitelj i priključak broj 68 koji koristi klijent [5].

Protokol DHCP ima 4 faze [1]:

1. Otkrivanje poslužitelja (engl. server discovery)

2. Ponuda najma IP adrese (engl. IP lease offer)

3. Traženje najma IP adrese (engl. IP lease request)

4. Potvrda najma IP adrese (engl. IP lease acknowledgement)

U svakoj fazi klijent ili šalje poruku poslužitelju ili prima poruku od poslužitelja. Sve su

poruke istog formata, koji je prikazan u tablici 2.1. Svaki red u tablici prikazuje 4 okteta,

osim ako nije drugačije navedeno unutar samog reda. Naslovi polja prikazani su podebljano.

OP HTYPE HLEN HOPS

Šifra operacije Tip veze Duljina adrese ur. Broj skokova

XID

Nasumična 4 okteta (jednaka za sve operacije jednog procesa)

SECS FLAGS

Broj sekundi od početka DHCP procesa 0x8000 ili 0x0000

CIADDR

IP adresa klijenta (ako je već poznata)

YIADDR

IP adresa koju poslužitelj nudi klijentu

SIADDR

IP adresa poslužitelja

GIADDR

IP adresa agenta prijenosa

CHADDR

Hardverska adresa klijentskog uređaja (16 okteta)

Čarobni kolačić (engl. Magic cookie)

Uvijek 0x63825363 za DHCP operacije

DHCP opcije

Proizvoljan broj redova sa opcijama (broj okteta je višekratnik broja 4)

0xFF000000 (oznaka za kraj)

Tablica 2.1 Format DHCP poruka

Page 6: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

4

Vrijednost polja „OP“ je 1 ako se radi o zahtjevu, a 2 ako se radi o odgovoru. Vrijednost

polja „XID“ nasumično se kreira na klijentu prije početka prve operacije te ona ostaje ista

za sve operacije unutar jednog procesa. Vrijednost polja FLAGS može biti 0x8000 ili

0x0000 ovisno o svojstvima klijenta, o čemu neće biti riječi u ovom radu.

2.1. Otkrivanje poslužitelja

Klijent šalje DHCPDISCOVER poruku na adresu 255.255.255.255 ili neku drugu specifičnu

adresu za slanje poruke svim uređajima u mreži (engl. broadcast). U tablici 2.2 može se

vidjeti primjer tipične DHCPDISCOVER poruke.

Tablica 2.2 Primjer DHCPDISCOVER poruke

U DHCPDISCOVER poruci polja s adresom koju nudi poslužitelj, adresom poslužitelja i

adresom agenta prijenosa uvijek imaju vrijednost nula. Polje s adresom klijenta nije nula

samo kada klijent već ima dodijeljenu IP adresu i traži produženje valjanosti iste. U primjeru

iz tablice 2.2 klijent, koji nema dodijeljenu IP adresu traži istu, sa sljedećim opcijama [4]:

0x35010100 – opcija 53 (heksadekadski 35) – vrsta operacije, duljina 1, vrsta

operacije 1 – DHCPDISCOVER, ostatak je punjenje nulama do višekratnika broja 4

(koje u se daljnjem tekstu više neće navoditi)

0x3204C0A80162 – opcija 50 (heksadekadski 32) – traži se IP adresa, duljina 4, IP

adresa: 192.168.1.98

0x3703010306 – opcija 55 (heksadekadski 37) – lista parametara zahtjeva, duljina 3:

OP HTYPE HLEN HOPS

0x01 0x01 0x06 0x00

XID

0x9330EF4A

SECS FLAGS

0x00 0x8000

CIADDR

0x00000000

YIADDR

0x00000000

SIADDR

0x00000000

GIADDR

0x00000000

CHADDR

0x1E226A9B

0x24540000

0x00000000

0x00000000

Čarobni kolačić (engl. Magic cookie)

0x63825363

DHCP opcije

0x35010100

0x3204C0A8

0x01620000

0x37040103

0x06000000

0xFF000000

Page 7: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

5

o parametar 1 – traži se maska podmreže

o parametar 3 – traži se adresa poslužitelja

o parametar 6 – traži se DNS poslužitelj

0xFF – opcija 255 – kraj

2.2. Ponuda najma IP adrese

Nakon što klijent pošalje DHCPDISCOVER broadcast poruku tu poruku prime neki DHCP

poslužitelji. DHCP poslužitelj koji primi poruku rezervira IP adresu za za taj uređaj te šalje

DHCPPOFFER poruku. DHCPPOFFER poruku se može slati ili jednom uređaju (u slučaju

kada uređaj već ima IP adresu koju želi produžiti) ili kao broadcast poruku. U tablici 2.3

može se vidjeti primjer tipične DHCPOFFER poruke.

Tablica 2.3 Primjer DHCPOFFER poruke

U DHCPOFFER poruci popunjena su polja YIADRR (sa prijedlogom IP adrese za klijenta,

192.168.1.98) i SIADDR (sa IP adresom DHCP poslužitelja koji šalje prijedlog,

192.168.1.1). Poruka je poslana sa sljedećim opcijama [4]:

OP HTYPE HLEN HOPS

0x02 0x01 0x06 0x00

XID

0x9330EF4A

SECS FLAGS

0x00 0x8000

CIADDR

0x00000000

YIADDR

0xC0A80162

SIADDR

0xC0A80101

GIADDR

0x00000000

CHADDR

0x1E226A9B

0x24540000

0x00000000

0x00000000

Čarobni kolačić (engl. Magic cookie)

0x63825363

DHCP opcije

0x35010200

0x0104FFFF

0xFF000000

0x0304C0A8

0x01010000

0x33040001

0x51800000

0x3604C0A8

0x01010000

0x060C0907

0x0A0F0907

0x0A100907

0x0A120000

0xFF000000

Page 8: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

6

0x35010200 – opcija 53 (heksadekadski 35) – vrsta operacije, duljina 1, vrsta

operacije 2 – DHCPOFFER

0x0104FFFFFF00 – opcija 1 – maska podmreže, duljina 4, 255.255.255.0

0x0304C0A80101 – opcija 3 – adresa poslužitelja, duljina 4, 192.168.1.1

0x330400015180 – opcija 51 – vrijeme najma adrese, 86400 sekundi/1 dan – u

formatu 32-bitnog pozitivnog cijelog broja (engl. unsigned integer)

0x3604C0A80101 – opcija 54 – DHCP server, duljina 4, 192.168.1.1

0x060C09070A0F09070A1009070x0A12 – opcija 6 – DNS serveri, duljina 12:

o 9.7.10.15

o 9.7.10.16

o 9.7.10.18

0xFF – opcija 255 – kraj

2.3. Traženje najma IP adrese

Nakon što primi ponudu, klijent na nju odgovara, ponovno sa broadcast porukom (osim u

slučaju obnavljanja IP adrese). Ta poruka zove se DHCPREQUEST. Klijent je mogao

primiti više DHCPOFFER poruka od različitih poslužitelja, ali može prihvatiti samo jednu

ponudu te će u ovoj poruci biti jasno označeno čiju ponudu prihvaća. Kada ostali poslužitelji

prime ovu poruku oni će IP adresu koju su rezervirali za klijenta ponovno vratiti u skupinu

dostupnih IP adresa. U tablici 2.4 može se vidjeti primjer tipične DHCPREQUEST poruke.

Tablica 2.4 Primjer DHCPREQUEST poruke

OP HTYPE HLEN HOPS

0x01 0x01 0x06 0x00

XID

0x9330EF4A

SECS FLAGS

0x00 0x8000

CIADDR

0x00000000

YIADDR

0x00000000

SIADDR

0xC0A80101

GIADDR

0x00000000

CHADDR

0x1E226A9B

0x24540000

0x00000000

0x00000000

Čarobni kolačić (engl. Magic cookie)

0x63825363

DHCP opcije

0x35010300

0x3204C0A8

0x01620000

0x3604C0A8

0x01010000

0xFF000000

Page 9: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

7

U ovoj poruci sadržane su sljedeće opcije [4]:

0x35010200 – opcija 53 (heksadekadski 35) – vrsta operacije, duljina 1, vrsta

operacije 3 – DHCPREQUEST

0x3204C0A80162 – opcija 50 – zatražena IP adresa, 192.168.1.98.

0x3604C0A80101 – opcija 54 – DHCP poslužitelj čije se ponuda prihvaća,

192.168.1.1

0xFF – opcija 255 – kraj

2.4. Potvrda najma IP adrese

Nakon što je DHCP poslužitelj dobio potvrdu da klijent prihvaća baš njegovu ponudu, on će

mu broadcast porukom DHCPACK priopćiti da je proces uspješno završen. U toj će poruci

također biti ponovljene sve opcije koje je klijent zatražio. U tablici 2.5 može se vidjeti tipičan

primjer DHCPACK poruke.

Tablica 2.5 Primjer DHCPACK poruke

OP HTYPE HLEN HOPS

0x02 0x01 0x06 0x00

XID

0x9330EF4A

SECS FLAGS

0x00 0x8000

CIADDR

0x00000000

YIADDR

0xC0A80162

SIADDR

0xC0A80101

GIADDR

0x00000000

CHADDR

0x1E226A9B

0x24540000

0x00000000

0x00000000

Čarobni kolačić (engl. Magic cookie)

0x63825363

DHCP opcije

0x35010500

0x0104FFFF

0xFF000000

0x0304C0A8

0x01010000

0x33040001

0x51800000

0x3604C0A8

0x01010000

0x060C0907

0x0A0F0907

0x0A100907

0x0A120000

0xFF000000

Page 10: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

8

DHCPACK poruka sadrži sve opcije kao i DHCPOFFER poruka, osim što je vrsta operacije

DHCPACK (kôd 5) umjesto DHCPOFFER (kôd 2).

Nakon što klijent dobije DHCPACK poruku njegova je zadaća ispravno konfigurirati sve

svoje postavke kako bi bio spreman koristiti navedenu IP adresu.

2.5. Posebne okolnosti

Protokol DHCP može završiti i neuspješno, zbog raznih okolnosti. Ako klijent otkrije da se

IP adresa koju mu nudi DHCP poslužitelj već koristi, šalje mu DHCPDECLINE poruku,

koja upućuje na neki problem u konfiguraciji DHCP poslužitelja. U slučaju da klijent ode iz

dijela mreže za koji je zadužen DHCP poslužitelj ili je u međuvremenu neki drugi klijent

prihvatio istu IP adresu, DHCP poslužitelj će poslati DHCPNAK poruku. U slučaju da klijent

sa sigurnošću zna da mu IP adresa više neće trebati, može DHCP poslužitelju poslati

DHCPRELEASE poruku. Međutim, budući da većina uređaja ne može sa sigurnošću znati

kad će se isključiti iz mreže, slanje DHCPRELEASE poruke nije obvezan dio protokola [3].

Page 11: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

9

3. Sigurnost protokola DHCP

Osnovni protokol DHCP nema nikakve mehanizme autentikacije te stoga nije otporan na

napade. Napade možemo svesti u 2 osnovne kategorije:

3.1. Zloćudni DHCP poslužitelj

Budući da klijent nema načina za ustanoviti autentičnost DHCP poslužitelja napadač može

u mrežu uključiti svoj DHCP poslužitelj. On može klijentu dojaviti neispravne podatke te

mu tako onemogućiti pristup mreži (engl. denial of service) ili natjerati klijenta da koristi

napadačev DNS poslužitelj, kojim napadač može preusmjeriti promet na sebe te prisluškivati

klijenta (engl. man-in-the-middle) [2].

3.2. Zloćudni klijent

DCHP poslužitelj također nema načina za ustanoviti autentičnost klijenta pa tako napadač

može (ako posjeduje određene vjerodajnice) neovlašteno pristupiti IP adresama koje

pripadaju nekom drugom klijentu. Napadač također može u kratkim vremenskim intervalima

nebrojeno mnogo puta zatražiti IP adresu te tako iscrpiti sve adrese koje DHCP poslužitelj

ima na raspolaganju [2].

Zbog svih ovih sigurnosnih rizika protokol DHCP i danas je u razvoju te se konstantno

pokušavaju naći novi načini za poboljšanje njegove sigurnosti.

Page 12: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

10

Zaključak

Protokol DHCP je, unatoč svojoj starosti i manama, nešto bez čega moderne mreže vrlo

teško funkcioniraju. Uz pravilnu konfiguraciju omogućuje dodjeljivanje i kontrolu nad

velikim brojem IP adresa u kratkom vremenu zbog svoje iznimne jednostavnosti (samo četiri

koraka). Najveća njegova mana je nedostatak autentikacije, zbog koga ga je moguće

iskorištavati u zloćudne svrhe. Na uklanjanju ovih opasnosti još uvijek se radi.

Page 13: Protokol DHCP - LSSnevena.lss.hr/recordings/fer/predmeti/racfor/2018/... · 3 2. Faze protokola DHCP Protokol DHCP koristi protokol UDP (engl. User Datagram Protocol) za prijenos

11

Literatura

[1] NEPOZNATI AUTOR, Dynamic Host Configuration Protocol.

https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol, 20.1.2018.

[2] TIMOTHY STAPKO, Practical Embedded Security. Burlington, SAD: Elsevier Inc.,

2008.

[3] GRUPA AUTORA, RFC 2131 Dynamic Host Configuration Protocol,

https://www.ietf.org/rfc/rfc2131.txt, ožujak 1997.

[4] GRUPA AUTORA, RFC 2132 DHCP Options and BOOTP Vendor Extensions,

http://www.networksorcery.com/enp/rfc/rfc2132.txt, ožujak 1997.

[5] GRUPA AUTORA, RFC 1700 Assigned Numbers, https://tools.ietf.org/html/rfc1700,

listopad 1994.