Úspešný útok ARP spoofing (poisoning) umožňuje útočníkovi zmeniť smerovanie v sieti, čo účinne umožňuje útok man-in-the-middle.
V počítačových sieťach je **ARP spoofing**, ARP cache poisoning alebo ARP poison routing technika, pomocou ktorej útočník posiela správy protokolu ARP (Address Resolution Protocol) do lokálnej siete. Vo všeobecnosti je cieľom priradiť MAC adresu útočníka k IP adrese iného hostiteľa, napríklad k predvolenej bráne, čo spôsobí, že akákoľvek prevádzka určená pre túto adresu IP sa namiesto toho odošle útočníkovi.

Podvrhnutie adresy cez protokol ARP môže útočníkovi umožniť zachytiť dátové rámce v sieti, modifikovať prevádzku alebo zastaviť celú prevádzku. Často sa útok používa ako začiatok pre ďalšie útoky.

Útok je možné použiť len v sieťach, ktoré používajú ARP, a vyžaduje, aby mal útočník priamy prístup k sieťovému segmentu siete, na ktorý má byť útok vedený, teda aby bol priamo pripojený v sieti, kde sú zariadenia, na ktoré chce útočiť. Z tohto dôvodu by mali administrátori siete na sieťových prepínačoch vypnúť nepoužívané porty.

Zraniteľnosti ARP
-----------------

Protokol ARP (Address Resolution Protocol) je široko používaný komunikačný protokol na prekladanie adries internetovej vrstvy (IP) na adresy linkovej vrstvy (MAC).

Keď sa datagram internetového protokolu (IP) posiela z jedného hostiteľa na druhého v lokálnej sieti, cieľová adresa IP sa musí preložiť na adresu MAC na prenos cez datalinkovú vrstvu (prostredníctvom sieťových prepínačov - switchov). Keď je známa IP adresa iného hostiteľa a je potrebná jeho MAC adresa, v miestnej sieti sa odošle broadcastová správa známa ako požiadavka ARP (ARP request). Cieľový počítač so známou IP adresou v požiadavke ARP potom odpovie ARP odpoveďou (ARP response), ktorá obsahuje adresu MAC pre túto adresu IP.

ARP je bezstavový protokol. Sieťové zariadenia automaticky ukladajú do vyrovnávacej pamäte všetky prijaté odpovede ARP bez ohľadu na to, či si ich sieťové hostiteľské počítače vyžiadali. Dokonca aj záznamy ARP, ktorých platnosť ešte neuplynula, sa prepíšu, keď sa prijme nový paket s ARP odpoveďou. V protokole ARP neexistuje metóda, pomocou ktorej by hostiteľ mohol overiť zariadenie, od ktorého paket pochádza. Toto správanie má svoje legitímne použitie v sieti (pozri ďalej), ale dá sa zneužiť aj ako zraniteľnosť na už spomínaný útok ARP spoofing.

Anatómia útoku
--------------

Základným princípom spoofingu ARP je zneužitie nedostatočného overovania zdroja správ v protokole ARP odoslaním podvrhnutého (spoofed) ARP rámca do siete LAN. Takýto nevyžiadaný rámec sa v odbornej literatúre označuje ako Gratuitous ARP. Útok ARP spoofing možno spustiť z napadnutého hostiteľa v sieti LAN alebo z počítača útočníka, ktorý je pripojený priamo k cieľovej sieti LAN.

Útočník používajúci ARP spoofing sa pri prenose dát v sieti medzi používateľmi zamaskuje za jedno zo zariadení. Ak používatelia na sieti nemajú nainštalované žiadne notifikačné alebo bezpečnostné mechanizmy, nebudú vedieť, že útočník nie je skutočným zariadením v sieti.

Vo všeobecnosti je cieľom útoku priradiť adresu MAC počítača útočníka k IP adrese obete, takže akákoľvek prevádzka určená pre cieľového hostiteľa (obeť) bude odoslaná na počítač útočníka. Útočník sa môže rozhodnúť kontrolovať pakety (špehovanie), pričom môže presmerovať prevádzku na skutočný predvolený cieľ, aby sa vyhol odhaleniu, upraviť údaje pred ich presmerovaním (útok man-in-the-middle) alebo spustiť útok na odmietnutie služby (DoS) tým, že spôsobí zahodenie niektorých alebo všetkých paketov v sieti.

Obrana
------

### Statické položky ARP

Najjednoduchšou formou obrany je použitie statických ARP záznamov pre kritické služby (predvolená brána, servery, tlačiarne), pričom tieto statické záznamy budú dostupné len na čítanie v pamäti ARP hostiteľa. Mapovanie adries IP na adresy MAC v miestnej vyrovnávacej pamäti ARP (ARP cache) sa môže zadávať staticky. Hostitelia nemusia odosielať požiadavky ARP, ak takéto záznamy existujú. Statické záznamy síce poskytujú určitú bezpečnosť proti falšovaniu, ale ich výsledkom sú nároky na údržbu, pretože statické mapovanie adries pre všetky systémy v sieti sa musí najprv vygenerovať a potom distribuovať. To sa vo veľkej sieti veľmi zle škáluje, pretože mapovanie sa musí nastaviť pre každú dvojicu strojov, čo vedie k {\displaystyle n^{2}-n} záznamom ARP, ktoré sa musia konfigurovať, kde n je počet zariadení v sieti. Na každom stroji musí byť záznam ARP pre každý iný stroj v sieti; n-1 záznamov ARP na každom z n strojov.

### Softvér na detekciu a prevenciu

Softvér, ktorý zisťuje podvrhnutie protokolu ARP, sa vo všeobecnosti spolieha na určitú formu overovania alebo krížovej kontroly odpovedí ARP. Neoverené odpovede ARP sú potom blokované. Tieto techniky môžu byť prepojené so serverom DHCP, aby sa overovali dynamické aj statické adresy IP. Táto schopnosť môže byť implementovaná v jednotlivých koncových zariadeniach alebo môže byť integrovaná do ethernetových prepínačov alebo iných sieťových zariadení. Existencia viacerých adries IP priradených k jednej adrese MAC môže naznačovať útok podvrhnutím ARP, hoci existuje legitímne použitie takejto konfigurácie. Pri pasívnejšom prístupe zariadenie počúva odpovede ARP v sieti a pri zmene položky ARP odošle oznámenie prostredníctvom e-mailu.

Softvér **xARP** poskytuje možnú ochranu aj prevenciu pred falšovaním v prostredí systému Windows. **ArpStar** je linuxový modul pre jadro 2.6 a smerovače Linksys, ktorý zahadzuje neplatné ARP pakety, ktoré porušujú mapovanie a obsahuje možnosť vyliečenia. 

Niektoré virtualizované prostredia, ako napríklad KVM, tiež poskytujú bezpečnostné mechanizmy na zabránenie falšovania MAC medzi hosťami bežiacimi na tom istom hostiteľovi.

Okrem toho niektoré ethernetové adaptéry poskytujú funkcie proti spoofingu MAC a VLAN.

**OpenBSD** pasívne sleduje hostiteľov vydávajúcich sa za miestneho hostiteľa a v prípade akéhokoľvek pokusu o prepísanie trvalého záznamu zobrazí upozornenie.

### Zabezpečenie operačného systému

Operačné systémy reagujú rôzne: 

* Linux ignoruje nevyžiadané odpovede, ale na druhej strane používa odpovede na požiadavky z iných počítačov na aktualizáciu svojej vyrovnávacej pamäte

* Solaris prijíma aktualizácie záznamov až po uplynutí časového limitu

* V systéme Microsoft Windows možno správanie vyrovnávacej pamäte ARP konfigurovať prostredníctvom niekoľkých položiek registra v časti HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters, ArpCacheLife, ArpCacheMinReferenceLife, ArpUseEtherSNAP, ArpTRSingleRoute, ArpAlwaysSourceRoute, ArpRetryCount

Oprávnené používanie
--------------------

Techniky, ktoré sa používajú pri podvrhovaní ARP, možno použiť aj na implementáciu redundancie sieťových služieb. V sieti existujú protokoly, ktoré umožňujú fungovanie serverových alebo smerovačových clusterov - tzv. stand-by protokoly. V tomto prípade medzi sebou komunikuje hlavný a záložný server a navzájom sa kontrolujú, či sú funkčné. Ak záložný server zistí, že hlavný server prestal reagovať, odošle do siete nevyžiadanú ARP odpoveď, v ktorej oznámi všetkým zariadeniam, že on prebral úlohu hlavného servera. Takto zabezpečí aby si všetky zariadenia v sieti k IP adrese, ktorú používal hlavný server, nastavili novú MAC adresu a tým pádom presmeruje všetku potrebnú sieťovú prevádzku na seba. Takto môže fungovať aj systém pre záložnú predvolenú bránu v sieti, len v tom prípade nebudeme rozprávať o serveroch ale o smerovačoch. Protokoly na redundanciu predvolenej brány sa označujú ako First Hop Redundancy Protocols (FHRP) a konkrétnymi implementáciami sú napríklad protokoly Hot Standby Routing Protocol (HSRP) od spoločnosti Cisco, prípadne otvorený štandard realizovaný cez protokol Virtual Router Redundancy Protocol (VRRP). 

Vývojári často používajú ARP spoofing na ladenie IP prevádzky medzi dvoma hostiteľmi, keď sa používa prepínač: ak hostiteľ A a hostiteľ B komunikujú cez ethernetový prepínač, ich prevádzka by za normálnych okolností bola neviditeľná pre tretieho monitorujúceho hostiteľa M. Vývojár nakonfiguruje A, aby mal MAC adresu M pre B, a B, aby mal MAC adresu M pre A; a tiež nakonfiguruje M na preposielanie paketov. M teraz môže monitorovať prevádzku presne ako pri útoku man-in-the-middle.

Nástroje
--------

### Obrana

| Meno | OS | GUI | FREE | OCHRANA | Na rozhranie | Aktívne/pasívne | Poznámky |
| --- | --- | --- | --- | --- | --- | --- | --- |
| zANTI | Android | Áno | Áno | Nie | ? | pasívne |  |
| remarp | Linux | Áno | Áno | Nie | Nie | pasívne |  |
| cSploit | Android | Áno | Áno | Nie | Áno | pasívne |  |
| ArpStar | Linux | Nie | Áno | Áno | ? | pasívne |  |
| Agnitum Outpost
Firewall | Windows | Áno | Nie | Áno | Nie | pasívne |  |
| Seconfig XP | Windows
2000/XP/2003
only | Áno | Áno | Áno | Nie | aktivuje ochranu zabudovanú len 
v niektorých verziách systému
Windows. |  |
| Colasoft Capsa | Windows | Áno | Nie | Nie | Áno | žiadna detekcia, iba analýza s manuálnou kontrolou |  |
| ArpGuard | Mac | Áno | Nie | Áno | Áno | aktívne+pasívne |  |
| AntiARP | Windows | Áno | Nie | Áno | Nie | aktívne+pasívne |  |
| NetSec Framework | Linux | Nie | Áno | Nie | Nie | aktívne |  |
| anti-arpspoof | Windows | Áno | Áno | ? | ? | ? |  |
| DefendARP | ? | ? | ? | ? | ? | ? | Nástroj na monitorovanie a obranu tabuľky ARP na báze hostiteľa určený na použitie pri pripojení k verejnej sieti Wi-Fi. DefendARP zisťuje útoky ARP poisoning, opravuje otrávený záznam a identifikuje MAC a IP adresu útočníka. |
| XArp | Windows, Linux | Áno | Áno (+pro
verzia) | Áno | Áno | aktívne+pasívne | Pokročilá detekcia spoofingu ARP, aktívne sondovanie a pasívne kontroly. Dve používateľské rozhrania: normálne zobrazenie s preddefinovanými úrovňami zabezpečenia, profesionálne zobrazenie s konfiguráciou detekčných modulov pre jednotlivé rozhrania a aktívnym overovaním. Windows a Linux, grafické rozhranie. |
| Prelude IDS | ? | ? | ? | ? | ? | ? | Modul modul ArpSpoof, základné kontroly adries. |
| elmoCut | Windows | Áno | Ano | ? | ? | pasívne | EyeCandy ARP spoofer pre Windows |
| NetCutDefender | Windows | ? | ? | ? | ? | ? | Grafické rozhranie pre systém Windows, ktoré dokáže chrániť pred útokmi ARP |
| Winarpwatch | Windows | Nie | Áno | Nie | Nie | pasívne | Uchovávanie mapovaní párov IP-MAC, hlásenie zmien prostredníctvom Syslogu, e-mailu. |
| ArpwatchNG | Linux | Nie | Áno | Nie | Nie | pasívne | Uchovávanie mapovaní párov IP-MAC, hlásenie zmien prostredníctvom Syslogu, e-mailu. |
| Arpwatch | Linux | Nie | Áno | Áno | Áno | pasívne | Uchovávanie mapovaní párov IP-MAC, hlásenie zmien prostredníctvom Syslogu, e-mailu. |
| Antidote | Linux | Nie | Áno | ? | ? | pasívne | monitoruje mapovania, neobvykle veľký počet paketov ARP. |
| Arp\_Antidote | Linux | Nie | Áno | ? | ? | pasívne | Linux Kernel Patch pre 2.4.18 - 2.4.20, sleduje mapovanie, môže definovať akciu, ktorá sa má vykonať, keď. |
| Panda\_Security | Windows | ? | ? | ? | ? | aktívne | Vykonáva základné kontroly adries |
| ArpON | Linux | Nie | Áno | Áno | Áno | aktívne+pasívne | cache poisoning alebo poison routing v statických, dynamických a hybridných sieťach. |
| Arpalert | Linux | Nie | Áno | Áno | Áno | pasívne | Preddefinovaný zoznam povolených adries MAC, upozornenie, ak adresa MAC nie je v zozname. |
| Snort | Windows/Linux | Nie | Áno | Áno | Áno | pasívne | Predprocesor Snort Arpspoof, vykonáva základné kontroly adries |

### Spoofing

Niektoré z nástrojov, ktoré umožňujú vykonanie útokov ARP spoofing:

* Arpspoof (part of the DSniff suite of tools)
* Arpoison
* Subterfuge
* Ettercap
* Seringe
* ARP-FILLUP -V0.1
* arp-sk -v0.0.15
* ARPOc -v1.13
* arpalert -v0.3.2
* arping -v2.04
* arpmitm -v0.2
* Simsang
* zANTI -v2
* elmoCut
* NetSec Framework -v1
* Minary
* NetCut (Má tiež funkciu obrany)
* ARPpySHEAR

Súvisiace články
----------------

* Cache poisoning
* DNS spoofing
* IP address spoofing
* MAC spoofing
* Proxy ARP

Zdroj
-----

*Tento článok je čiastočný alebo úplný preklad článku ARP\_spoofing na anglickej Wikipédii (číslo revízie nebolo určené).*