Uporabniki kabelskih modemov pozor!

K odločitvi, da pripravim tokratni prispevek me je privedlo nenavadno odkritje na mojem usmerjevalniku (ang. router) - neobičajno veliko število ARP zahtev, ki v zelo kratkem času dobesedno poplavljajo moj omrežni vmesnik. Anomalija je najverjetneje posledica neustrezne konfiguracije opreme mojega ponudnika internetnih storitev, lahko pa da gre za, kot pričajo nekateri viri, pričakovano delovanje v kabelskem omrežju. Moj kabelski operater, ki ga neposredno ne bom izpostavljal, namreč dopušča prost pretok ARP zahtev med vsemi priključenimi omrežnimi napravami (beri kabelskimi modemi). Uvodoma spoznajmo kaj je to ARP (Address Resolution Protocol).

ARP

ARP pošilja po omrežju ARP zahteve (ARP requests). ARP zahtevo si lahko poenostavimo kot vprašanje “Je tvoj IP naslov x.x.x.x? Če je odgovor pritrdilen mi pošji MAC naslov”. Ti paketi se oddajajo (broadcast) vsem napravam v omrežju, tudi skozi preklopnik. Vsaka naprava v omrežju posreduje odgovor (svoj MAC, ARP reply), če nosi omenjen IP naslov.
Da bi operacijski sistem zminimiziral število ARP zahtev, hrani tabelo ARP odgovorov (cache). Velika večina naprav to tabelo posodobi, ko prejme ARP odgovor, četudi ni pred tem poslala ARP zahteve. ARP tabela nosi podatek o IP naslovih in pripadajočih MAC naslovih.

Praviloma smemo v lastnem omrežju videti ARP zahteve zgolj tistih naprav, s katerimi smo v stiku preko stikal na istem omrežnem nivoju oz. si z njimi delimo isto podomrežje (ang. subnet). Tipično bomo v manjšem domačem ali službenem omrežju ob pregledovanju pretoka podatkov v omrežju zasledili na trenutke ARP zahteve ostalih omrežnih naprav znotraj tega podomrežja. Napadalci lahko, v kolikor postanejo del tega podomrežja, izkoriščajo ranljivosti v načinu delovanja ARP in tako izvajajo številne napade. Eden izmed napadov je slepljenje ARP (ang. ARP spoofing).

Slepljenje ARP zahtev

Slepljenje ARP vključuje pošiljanje lažnih ARP dogovorov napravi v omrežju. Naprava, ki je tarča tovrstnega napada bo imela posledično neustrezno ARP tabelo in Ethernet bo zaradi tega posredoval okvirje napačni napravi. Proces slepljenja ARP zahtev na napravi tarče imenujemo tudi zastrupljanje njene ARP tabele.

V podrobnosti delovanja slepljenja ARP zahtev oz. zastrupljanja ARP tabel se ne bomo spuščali, saj je tematiko že dodobra razdelal strokovnjak za informacijsko varnost Edi Strosar v članku za revijo Monitor z naslovom ARP - Address Resolution Protocol - napadi in obramba

Morda sem že namignil h kateri obliki napada pripomore dejstvo, da moj kabelski operater dopušča prestrezanje ARP zahtev na mojem usmerjevalniku, ki jih oddajajo priključene omrežne naprave (kabelski modemi ali omrežni vmesniki) ostalih enakovrednih uporabnikov. Spoznali bomo, da ostali uporabniki ravno tako prejemajo naše oddane ARP zahteve. Napadi, kot so slepljenje ARP zahtev niso redkost in so izvedljivi praktično v vsakem Ethernet omrežjih, kjer je uporabljen ARP pri razreševanju IP naslovov. Orodij, ki se uporabljajo v ta namen je mnogo, mi pa si bomo pogledali verjetno enega izmed najpogosteje uporabljenih na operacijskem sistemu Linux: arpspoof. arpspoof je orodje, ki je del paketa dsniff. Paket je na voljo tako za distribucije Ubuntu, Debian kot tudi OpenSuSE (paket za 11.0 bo deloval tudi na zadnji različici 11.3). arpspoof bo, v kolikor bo ARP zahteva nemoteno prispela do tarče, na njej spremenil ARP tabelo tako, da bo ta v svoj medpomnilnik (ang. cache) zapisala naš MAC naslov k IP naslovu, ki ga želimo zaslepiti. Ker je slutiti, da bodo ARP zahteve, poslane z mojega usmerjevalnika dejansko prispele do tarče in s tem priredile njeno ARP tabelo, je čas da preverimo to tudi v praksi.

Preden pa zaidem v podrobnejšo razlago, si je smiselno ogledati infrastrukturo omrežja s katero imamo opraviti. Gre za splošno omreženje, ki je verjamem da dokaj pogosto - morda z rahlim odstopanjem - pri mnogih uporabnikih:


diagram1-copy.jpg

Za nas bodo v nadaljevanju pomembni predvsem isp_gw, gateway in target. Če se vrnem k prvotni niti je prisluškovanje svojemu lastnemu omrežju seveda najbolj smiselno izvajati na prehodu saj bomo s tem zabeležili vso komunikacijo med prehodom našega ISP-ja in našim notranjim omrežjem. Za nadzor nad mrežnim pretokom lahko uporabimo več različnih orodij, ker pa sam uporabljam operacijski sistem Linux, se bom poslužil orodja tcpdump.

Testiranje preusmeritve prometa naključnemu odjemalcu znotraj mojega podomrežja

S preprostim testom sem želel ugotoviti ali je zastrupljanje z ARP paketi v omrežju mojega ponudnika internetnih storitev mogoče. Uporabil bom orodja tcpdump s katerim bom preveril podatkovni promet in arpspoof s katerim bom zastrupil ARP tabelo naključne tarče. Odločil sem se, da celoten postopek nazorno prikažem v video posnetku.



Video: prikaz napada z zastrupljanjem ARP tabele

Kako se obvarovati pred napadi s sleparjenjem ARP zahtev?

Najhitrejši ukrep je določitev statičnega MAC naslova za s strani našega ISP-ja dodeljeni prehod (isp_gw). Tako v oper. sistemu Linux kot Windows, je to mogoče narediti z ukazom arp -s. Na ta način bomo enomogočili, da bi IP naslovu našemu prehodu nekdo vsilil lažen MAC naslov. S tem smo rešili žal le polovico problema, saj bo napadalec še vedno lahko zastrupljal ARP tabelo na prehodu in tako preusmeril promet, ki je namenjen na vaš IP naslov, k sebi. Sedaj je na vrsti ogled pogodbe, ki smo jo podpisali z našim ponudnikom internetnih storitev. V moji pogodbi operater pravi v enemu izmed členov, da bo “v največji meri zagotavljal zaščito omrežja in storitev pred zlorabami”. No, to vsekakor v mojem primeru ne drži. Verjetno ima vsak ISP svojo predstavo o tem, kaj pomeni “največja mera zaščite”.

Viri:
An Introduction to ARP Spoofing (pdf)
Sniffing A Cable Modem Network: Possible or Myth? (pdf)

Comments 2

  1. Daniel wrote:

    Odličen članek! Telemach in ostali operaterji bi lahko malo več časa namenili konfiguriranju, modemov ali pa zaposlili malo bol sposobne ljudi…

    Objavljeno 22 Jan 2011 at 9:49 am
  2. Anonymous wrote:

    Haha, ta problem je prisoten na vseh telemnjah omrežjih po sloveniji že vsaj 5 let, verjetno pa še dlje :) A drži, da v kolikor ne veš, da se v celoti spremlja tvoja uporaba interneta, da te ne boli? …

    Objavljeno 13 Feb 2011 at 10:47 pm

Objavi komentar

Your email is never published nor shared.