U bent misschien bekend met het concept van IP-adressen. Elke computer in een netwerk heeft er minstens één. Bij communicatie tussen netwerken identificeren deze IP-adressen op unieke wijze de bron en bestemming van het netwerkverkeer, zodat het betrouwbaar kan worden afgeleverd en beantwoord. Bij communicatie met een apparaat op hetzelfde netwerk maakt een computer niet rechtstreeks gebruik van het IP-adres. In plaats daarvan vertaalt het dat IP-adres naar een MAC-adres. ARP is het protocol om IP-naar-MAC-vertalingen te beheren en over het netwerk te communiceren.
ARP staat voor Address Resolution Protocol. Het is een stateloos protocol dat broadcast- en request-response-componenten heeft. ARP wordt voornamelijk gebruikt in IPv4-netwerken, hoewel andere netwerksystemen het ook gebruiken. IPv6-netwerken implementeren ARP-functionaliteit en enkele aanvullende functionaliteit met NDP. Of het Neighbour Discovery-protocol.
MAC-adressen die zijn geïdentificeerd, worden opgeslagen in een ARP-tabel op elk apparaat. Elke vermelding in de ARP-tabel verloopt regelmatig. Maar kan passief worden bijgewerkt als ARP-verkeer naar het netwerk wordt uitgezonden, waardoor de totale benodigde hoeveelheid ARP-verkeer wordt geminimaliseerd.
ARP-sonde en respons
Als een computer een netwerkpakket moet verzenden, kijkt deze naar het IP-adres van de bestemming. Het weet dat het het naar de router moet sturen voor apparaten in een ander netwerk. Dit kan het pakket vervolgens naar het juiste netwerk sturen. Als het pakket bedoeld is voor een apparaat op het lokale netwerk, moet de computer het juiste MAC-adres weten om het naar toe te sturen.
Als eerste aanloophaven controleert de computer zijn ARP-tabel. Dit zou een lijst moeten hebben van alle bekende apparaten op het lokale netwerk. Als het doel-IP- en MAC-adres aanwezig zijn, zal het de ARP-tabel gebruiken om het pakket te voltooien en te verzenden. Als het IP-adres geen vermelding heeft in de ARP-tabel, moet de computer erachter komen via een ARP-sonde.
De computer zendt een ARP-sonde uit naar het netwerk met de vraag "wie heeft?"
Opmerking: De reactie van de ARP-sonde is ook een uitzending. Hierdoor kunnen alle andere netwerkapparaten hun ARP-tabellen bijwerken zonder dat ze identieke ARP-sondes hoeven te maken. Dit helpt om ARP-verkeer te minimaliseren.
ARP-sonde bij verbinding
Wanneer een computer verbinding maakt met een netwerk, moet deze een IP-adres krijgen. Dit kan handmatig worden opgegeven, maar wordt doorgaans dynamisch toegewezen door een DHCP (Dynamisch hostbesturingsprotocol) server. De DHCP-server is over het algemeen een functie van de netwerkrouter, maar kan door een afzonderlijk apparaat worden beheerd. Zodra een nieuw apparaat een IP-adres heeft, hetzij door handmatige configuratie of door DHCP. Het apparaat moet snel verifiëren dat geen ander apparaat dat IP-adres al gebruikt.
Om dit te doen, zendt het apparaat een ARP-probepakket uit, waarbij wordt gevraagd of elk apparaat dat het nieuw toegewezen IP-adres gebruikt, erop kan reageren. De verwachte reactie is stilte. Geen enkel ander apparaat mag reageren, vooral niet in een DHCP-netwerk. Na korte vertragingen zendt het apparaat hetzelfde bericht nog een paar keer uit. Deze herhaling helpt in gevallen waarin een pakket mogelijk is gevallen op weg naar of van een apparaat met een conflicterend IP-adres. Zodra er geen reacties zijn op een paar ARP-sondes, kan het apparaat zijn nieuwe IP-adres gaan gebruiken. Om dit te doen, moet het een gratis ARP sturen.
Gratis ARP
Zodra een apparaat heeft vastgesteld dat het IP-adres dat het wil gebruiken niet wordt gebruikt, stuurt het een gratis ARP. Dit houdt simpelweg in dat er naar het netwerk wordt uitgezonden "
Er worden ook regelmatig gratis ARP-verzoeken naar het netwerk gestuurd, net als herinnering aan alle andere apparaten dat de computer nog steeds verbonden is, online is en zijn IP-adres heeft.
ARP-spoofing
ARP is een staatloos protocol, er is geen verbinding en alle berichten worden uitgezonden naar het netwerk als geheel. Alle apparaten luisteren naar en cachen ARP-antwoorden in hun ARP-tabellen. Dit leidt echter tot een kwetsbaarheid in het systeem. Ervan uitgaande dat een aanvaller fysiek verbinding kan maken met het netwerk, kunnen ze software uitvoeren die kwaadwillig onjuiste gratis ARP-responspakketten uitzendt. Elk apparaat op het netwerk ziet de kwaadaardige ARP-pakketten, vertrouwt ze impliciet en werkt hun routeringstabellen bij. Deze nu incorrecte ARP-tabellen worden "vergiftigd" genoemd.
Dit kan gewoon worden gebruikt om netwerkproblemen te veroorzaken door verkeer in de verkeerde richting te wijzen. Er is echter een slechter scenario. Als de aanvaller ARP-pakketten voor het IP-adres van de router vervalst en deze naar hun eigen apparaat verwijst, zouden ze al het netwerkverkeer ontvangen en kunnen zien. Ervan uitgaande dat het apparaat een andere netwerkverbinding heeft om het verkeer door te sturen, kan er een Man in the Middle (MitM) positie. Hierdoor kan de aanvaller vervelende aanvallen uitvoeren, zoals HTTPS-stripping, waardoor ze mogelijk al het netwerkverkeer kunnen zien en wijzigen.
Opmerking: Er zijn enkele beveiligingen tegen MitM-aanvallen. De aanvaller zou het HTTPS-certificaat van een website niet kunnen dupliceren. Elke gebruiker die het verkeer onderschept, zou browsercertificaatfouten moeten krijgen.
Er zijn echter veel essentiële en niet-versleutelde communicatie, vooral op een intern netwerk. Dit is niet zozeer het geval op een thuisnetwerk. Toch zijn bedrijfsnetwerken die op Windows zijn gebouwd bijzonder kwetsbaar voor ARP-spoofing-aanvallen.
Conclusie
ARP staat voor Address Resolution Protocol. Het wordt gebruikt in IPv4-netwerken om IP-adressen te vertalen naar MAC-adressen, zoals nodig is in lokale netwerken. Het bestaat uit stateless request en response broadcasts. Antwoorden, of het ontbreken daarvan, stellen een apparaat in staat om te bepalen welk MAC-adres is gekoppeld aan een IP-adres of dat een IP-adres ongebruikt is. Apparaten cachen ARP-antwoorden om hun ARP-tabellen bij te werken.
Apparaten kunnen ook regelmatig gratis aankondigingen uitzenden dat hun MAC-adres is gekoppeld aan hun IP-adres. Door het ontbreken van een authenticatiemechanisme kan een kwaadwillende gebruiker valse ARP-pakketten uitzenden om ARP-tabellen te vergiftigen en verkeer naar zichzelf te leiden om verkeersanalyse of MitM-aanvallen uit te voeren.