ARP (Address Resolution Protocol) je eden izmed osnovnih protokolov v mrežni plasti (network layer) TCP/IP referenčnega modela OSI. Zastrupljanje predpomnilnika ARP (ARP cache poisoning) oziroma prikrivanje ARP (ARP spoofing) je metoda, ki hekerjem omogoča, da v krajevnih omrežjih povzročijo pravo razdejanje.
ARP je odgovoren za preslikavo internetnega naslova (IP) v pripadajoči "strojni" naslov MAC (Media Access Control). Ker ima vsa omrežna strojna oprema unikaten naslov MAC, imajo vsi omrežni gradniki dva identifikacijska naslova: IP in MAC. Prvi trije bajti naslova MAC predstavljajo identifikacijo izdelovalca strojne opreme; tako na primer 00:02:55 označuje IBM Corporation. Krajevni strojni naslov najlaže odkrijemo z ukazom "ipconfig /all" (Windows) in "ifconfig" (Linux). Strojni naslov je sicer nespremenljiv, vendar so na voljo preproste metode, ki omogočajo njegovo spreminjanje ali prikrivanje (t. i. spoof).
Povezovanje strojne opreme v omrežjih temelji na strojnih naslovih, saj komunikacija deluje na fizični in podatkovno-povezovalni plasti referenčnega modela OSI. Preden se računalnik A lahko poveže z računalnikom B, mora internetni naslov slednjega torej najprej povezati (resolve) z njegovim naslovom MAC, to pa opravi protokol ARP. Nasprotno nalogo opravi RARP (Reverse Address Resolution Protocol), ki naslove MAC povezuje z naslovi IP. Slednjega v zadnjem času vse pogosteje zamenjujeta BOOTP (Bootstrap Protocol) in novejši DHCP (Dynamic Host Configuration Protocol).
Vzpostavitev povezave med dvema računalnikoma poteka tako, da računalnik A (npr. 192.168.0.101) razprši paket ARP z zahtevo (ARP-Request): "Kdo ima IP 192.168.0.102? Sporoči na IP 192.168.39.101" na razprševalni (broadcast) naslov MAC FF:FF:FF:FF:FF:FF. Vse zahteve, ki so poslane na razprševalni naslov MAC, dosežejo vse računalnike v omrežju. Računalnik B (npr. 192.168.39.102) odgovori s paketkom (ARP-Reply), ki vsebuje njegov krajevni strojni naslov MAC. Prejeti odgovor nato računalnik A začasno shrani v svoj predpomnilnik ARP (ARP cache).
Vsi sodobni operacijski sistemi vsebujejo program "arp", s katerim lahko preverimo ali spreminjamo trenutno stanje predpomnilnika ARP:
Windows:
> arp -a
Interface: 192.168.1.100 .- 0x10003
Internet Address Physical Address Type
192.168.1.1 00-11-22-AA-BB-CC dynamic
Linux:
$ arp -na
? (192.168.1.1) at 00:11:22:AA:BB:CC [ether] on eth0
Nekateri vnosi v predpomnilnik ARP (včasih imenovan tudi tabela ARP) so definirani kot "dinamični". To preprosto pomeni, da bodo v nekem doglednem času izbrisani iz tabele, za razliko od "statičnih" vnosov, ki so stalni. Čas (TTL - Time To Live), v katerem bo dinamični vnos izbrisan iz tabele, je odvisen od operacijskega sistema. V povprečju je vnos izbrisan v 1-10 minutah, pri nekaterih Ciscovih usmerjevalnikih pa traja TTL približno 4 ure. Predpomnilnik ARP je dinamičen, zato se avtomatično posodablja z novimi vnosi in briše stare.
ARP je po svoje nenavaden protokol oziroma uradno protokol brez stanja (stateless protocol). To pomeni, da če računalnik A neposredno razpršuje paket ARP-Reply, ga bodi vsi računalniki v omrežju sprejeli in ga evidentirali v svoji tabeli ARP. To in dejstvo, da pri vzpostavitvi povezave ne zahteva nikakršne prijave, je hekerjem omogočilo, da so razvili celo serijo uspešnih napadov na ARP.
Spodaj opisani napadi so najenostavneje izvedljivi v Linuxu. Seveda so tudi programi, ki omogočajo zastrupljanje ARP/prikrivanje ARP tudi v Oknih, vendar je treba tam prej namestiti paket WinPcap, saj programom sicer niso dosegljivi nizkonivojski protokoli (t. i. raw sockets).
Napadi in obramba Zastrupljanje krajevne tabele ARP
Za osnovno zastrupljanje tabele ARP ne potrebujemo nobenega posebnega hekerskega orodja. Zadostuje standardni program arp, ki je del vseh operacijskih sistemov. Seveda pa moramo biti povezani v krajevno omrežje. Z net view najprej preverimo navzočnost odjemalcev v omrežju, nato pa s tracert ali ping preizkusimo odzivnost oddaljenega računalnika. S tem hkrati vnesemo odjemalčev par IP/MAC v naš predpomnilnik ARP. V naslednjem koraku zastrupimo krajevno tabelo ARP z neveljavnim statičnim naslovom MAC. Rezultat zastrupljanja tabele ARP je nedosegljivost odjemalca, saj strojni in internetni naslov (IP) v našem predpomnilniku ARP nista enaka naslovom v oddaljenem računalniku. Prvotno stanje vzpostavimo z ukazom arp -d *.
Napadi
Najprej nekaj vzpodbudnega za vse, ki bi jih ob prebiranju, kaj vse je mogoče doseči z napadi ARP, pretirano zaskrbelo: napadi ARP so izvedljivi le v krajevnih (LAN) omrežjih. Protokol ARP namreč ni usmerjevalni (je t. i. non-routable), zato usmerjevalniki paketov ARP privzeto ne posredujejo iz krajevnega omrežja. Če je oddaljeni računalnik zunaj krajevnega omrežja, ARP posreduje strojni naslov mejnega (border) usmerjevalnika. Teoretično so sicer možni tudi napadi ARP prek interneta, vendar mora heker v tem primeru prej vdreti v prehodni usmerjevalnik (gateway router) in ga ustrezno "popraviti".
1 Zastrupljanje tabele ARP (ARP cache poisoning)
Najenostavnejši napad - gre le za razprševanje ponarejenih paketov ARP z namenom prelisičiti odjemalce v omrežju. Napad je trivialen, saj ARP ne zahteva prijave in slepo odgovarja na vse pakete ARP-Request. Zastrupljanje ARP je eden izmed načinov za izvedbo napada s posrednikom ali MITM (man-in-the-middle).
2 Poplavljanje naslova MAC (MAC address flooding)
Variacija na temo zastrupljanja je poplavljanje naslova MAC. Klasično zastrupljanje ARP, le da tarča napada niso odjemalci v omrežju, temveč omrežno stikalo (switch). Stikalo za razliko od razdelilnika (hub) preklaplja oziroma razvršča promet med odjemalci v omrežju. Če stikalo "poplavi" z lažnimi naslovi MAC, napadalec doseže prekoračitev predpomnilnika ARP, to pa povzroči, da stikalo preklopi v način razpršenega delovanja ("broadcast"). To pomeni, da deluje podobno kot razdelilnik in se ves promet posreduje vsem odjemalcem v omrežju; to omogoča vohljanje po omrežnem prometu.
3 Podvajanje MAC (MAC duplication)
Pri podvajanju MAC gre za napad DoS (Denial of Service), pri katerem ponarejeni paketi ARP-Reply vsebujejo podvojeni naslov MAC ene izmed naprav v omrežju. Ker mora imeti vsaka naprava unikaten naslov MAC, to neizogibno povzroči težave. Stikala se na podvojeni strojni naslov različno odzovejo, nekatera preprosto "zmrznejo", druga pa posredujejo omrežni promet na oba naslova. Oboje je pravzaprav tisto, kar bi si morebitni napadalec želel.
4 Prikrivanje MAC (MAC spoofing)
Prikrivanje MAC je metoda, ki se najpogosteje uporablja za (ilegalen) dostop do brezžičnih omrežij. Skoraj vsi brezžični usmerjevalniki namreč omogočajo še dodatno stopnjo zaščite (poleg šifriranja z WEP ali WPA) s tem, da dostop v omrežje dovoljujejo le napravam, ki imajo točno določen strojni naslov MAC. Najprej moramo torej ugotoviti, kateri naslovi MAC so dovoljeni oziroma vpisani v usmerjevalnik. Najbolje bo za to uporabiti program Kismet, ki ga najdemo v internetu. Nato enega izmed pridobljenih naslovov vpišemo na svojo omrežno kartico. Takole:
Windows: Uporabimo program changemac (najdemo ga v internetu) in določimo želeni strojni naslov.
Linux:
# ifconfig eth0 down (onemogočimo delovanje omrežne kartice)
# ifconfig eth0 hw ether AA:BB:CC:11:22:33 (določimo želeni strojni naslov)
# ifconfig eth0 up (znova omogočimo delovanje omrežne kartice)
5 Napad s posrednikom oziroma MITM (Man-in-the-Middle)
Pri napadu s posrednikom ves promet med dvema računalnikoma poteka prek napadalčevega računalnika, ki igra vlogo vmesnega člena ali prestreznika. Zastrupljanje ARP je le eden izmed načinov za izvedbo takega napada. Seveda je tak napad najučinkovitejši, kadar poskušamo prestreči komunikacijo protokolov, ki so prosto berljivi (npr. Telnet, Rlogin, FTP, SMTP, LDAP...). To seveda ne pomeni, da pri uporabi šifrirnega protokola, npr. SSH, Kerberos,... MITM, napad ni mogoč. Vztrajnemu in izkušenemu hekerju zbiranje ter razbijanje šifriranih gesel ne povzroča večjih težav. V pomoč pa so mu tudi programi, kot sta mitm-ssh ali Cain & Abel, ki celoten proces pospešita in poenostavita. Komponente napada s posrednikom sestavljajo: napadalec, odjemalec in usmerjevalnik oziroma oddaljeni računalnik, s katerim ima odjemalec dostop do interneta.
Grafična ponazoritev, kako poteka napad s posrednikom
Najprej preverimo (na Linuxu), ali imamo omogočeno internetno posredovanje (IP forwarding):
# cat /proc/sys/net/ipv4/ip_forward
Če je rezultat vrednost "1", je internetno posredovanje omogočeno. V nasprotnem primeru vnesemo naslednji ukaz:
# echo 1 > /proc/sys/net/ipv4/ip_forward
V Oknih internetno posredovanje omogočimo s preprostim posegom v register, kot je razloženo na Microsoftovih straneh:
support.microsoft.com/?kbid=315236 (Windows XP)
support.microsoft.com/default.aspx?scid=kb;en-us;323339 (Windows 2003 Server)
Uporabimo program arpspoof, ki ga je napisal znani heker Dug Song in je del paketa Dsniff. Uporaba programa je nadvse preprosta. Napadalec mora poznati le dva parametra: odjemalčev in usmerjevalnikov internetni naslov (IP). V naslednjem koraku napadalec "prepriča" odjemalca, da je njegov (napadalčev) naslov v resnici usmerjevalnik, slednjega pa prepriča, da je njegov (napadalčev) naslov odjemalec.
Celoten napad je okleščen na nekaj preprostih ukazov, ki jih izvede napadalec:
# arpspoof -t IP_odjemalca IP_usmerjevalnika &>/dev/null &
# arpspoof -t IP_usmerjevalnika IP_odjemalca &>/dev/null &
# dsniff | less
# killall arpspoof
Takoj po tem lahko z uporabo dsniff vohljamo po vsem omrežnem prometu, ki poteka med odjemalcem in usmerjevalnikom. Preprosto, a še kako deluje...
Celoten proces je podobno enostavno izvedljiv v okenskem okolju, vendar z uporabo programa Cain & Abel:
poženemo program, kliknemo "Configure" in izberemo omrežno kartico,
aktiviramo vohljača (ikona Start/Stop Sniffer) in kliknemo jeziček "Sniffer",
kliknemo ikono "+"; Cain začne prisluškovati omrežju in iskati aktivne naslove,
izberemo jeziček APR (ARP Poisoning & Routing),
znova kliknemo ikono "+" in izberemo naslove, katerih komunikacijo želimo prestrezati,
aktiviramo APR.
Cain privzeto filtrira in prikazuje uporabniška imena ter gesla v berljivih protokolih, kot so FTP, HTTP, POP3, SMTP, Telnet... Vsa trenutno zbrana gesla vidimo z izbiro jezička "Passwords". Šifrirana gesla (NTLM, Kerberos...) lahko razberemo z vgrajenim modulom za razbijanje šifer.
Cain&Abel v akciji
Obramba
Naj še enkrat ponovimo lepšo plat zapisanega: zastrupljanje ARP je izvedljivo le v krajevnih omrežjih, saj se protokol ARP ne usmerja. Seveda ta "ovira" izurjenim hekerjem ne povzroča večjih težav. Dodatna voda na hekerjev mlin je tudi to, da pred napadi ARP ni univerzalne rešitve, saj je to ranljivost v protokolu samem. Ranljivi so torej vsi operacijski sistemi in arhitekture. Izjema je Sun Solaris, v katerega je vgrajen mehanizem, ki preprečuje, da bi se v tabelo ARP shranjevali odgovori ARP (ARP Reply), ki jih sistem ni izrecno zahteval s poizvedbo ARP (ARP Request). Zastrupljanje je tako sicer nekoliko težavnejše, vendar se lahko temu varnostnemu mehanizmu izognemo preprosto tako, da Solarisu pošljemo prirejeni (spoofed) ping. Na srečo je na voljo rešitev pred napadi ARP. Imenuje se statični vnosi ARP (static ARP entries). Vnašanje statičnih naslovov MAC v tabelo ARP je enostavno:
Windows in Linux:
> arp -s 192.168.0.101 AA:BB:CC:11:22:33
Vnose lahko brišemo z naslednjim ukazom:
Windows in Linux:
> arp -d 192.168.0.101
Za popolno varnost je torej priporočljivo narediti skript, ki ob zagonu sistema avtomatično vnese naslove vseh omrežnih členov v tabelo ARP. Seveda je taka obramba pri velikih omrežjih praktično neuporabna. V tem primeru ponuja platforma Linux rešitev, imenovano arpwatch, ki preverja istovetnost para naslovov MAC/IP. V okolju Windows je enakovredno orodje XArp, ki ga dobite v internetu. Razmeroma učinkovito obrambo je razvil tudi Cisco, saj nekatera njihova stikala podpirajo Dynamic ARP Inspection in Port Security, ki sta se izkazala kot uspešna zaščita pred napadi ARP.
INTERNET PROTOKOL NOVE GENERACIJE
Za pohitritev prenosa podatkov prek internetnega omrežja danes prevladujejo različne tehnike, ki poizkušajo povečati predvsem pasovno širino fiksnih ali brezžičnih povezav. Hitrost pa dejansko ni odvisna zgolj od fizičnih zmogljivosti, temveč ima pomembno vlogo tudi ustrezno delo s podatkovnimi paketi oziroma nadzor nad prenosom podatkov. Hitri protokol FAST odpravlja nekatere ključne probleme aktualne infrastrukture in postreže s trikrat hitrejšo izmenjavo.
Komponente tehnike FAST delujejo usklajeno in omogočajo posamično izpopolnjevanje (z izboljšanimi algoritmi).
|
Internet in podporne tehnologije se spoprijemajo oziroma se bodo v bližnji prihodnosti spoprijemale s problemi na vsaj treh frontah. Aktualna struktura imenskega prostora omejuje število končnih internetnih naslovov, saj internet ni bil načrtovan kot univerzalna komunikacijska infrastruktura. S tem, ko postajajo del omrežja poleg računalniških sistemov tudi razna tipala in vse mogoče naprave, je osnovni imenski prostor postal pretesen. Težave odpravlja internetni protokol št. 6 (Internet Protocol version 6, IPv6), kjer so meje postavljene v bilijonih razpoložljivih naslovov na kvadratni meter zemeljskega površja.
Share with your friends: |