Du kanske är bekant med begreppet IP-adresser. Varje dator i ett nätverk har minst en. Vid kommunikation mellan nätverk identifierar dessa IP-adresser unikt källan och destinationen för nätverkstrafiken så att den kan levereras och besvaras på ett tillförlitligt sätt. När du kommunicerar med en enhet i samma nätverk använder en dator inte IP-adressen direkt. Istället översätter den den IP-adressen till en MAC-adress. ARP är protokollet för att hantera IP till MAC-översättningar och kommunicera detta runt nätverket.
ARP står för Address Resolution Protocol. Det är ett tillståndslöst protokoll som har sändnings- och begäran-svar-komponenter. ARP används främst i IPv4-nätverk, även om andra nätverkssystem också använder det. IPv6-nätverk implementerar ARP-funktionalitet och viss ytterligare funktionalitet med NDP. Eller Neighbour Discovery Protocol.
MAC-adresser som har identifierats lagras i en ARP-tabell på varje enhet. Varje post i ARP-tabellen löper ut regelbundet. Men kan uppdateras passivt när ARP-trafik sänds till nätverket, vilket minimerar den totala mängden ARP-trafik som behövs.
ARP-sond och svar
Om en dator behöver överföra ett nätverkspaket, tittar den på destinationens IP-adress. Den vet att den måste skicka den till routern för enheter i ett annat nätverk. Detta kan sedan dirigera paketet till rätt nätverk. Om paketet är avsett för en enhet i det lokala nätverket måste datorn känna till rätt MAC-adress för att skicka det till.
Som den första anropsporten kommer datorn att kontrollera sin ARP-tabell. Detta bör ha en lista över alla kända enheter på det lokala nätverket. Om mål-IP- och MAC-adressen finns där kommer den att använda ARP-tabellen för att slutföra och skicka paketet. Om IP-adressen inte har en post i ARP-tabellen måste datorn ta reda på det via en ARP-sond.
Datorn sänder en ARP-sond till nätverket och frågar "vem som har
Notera: ARP-sondens svar är också en sändning. Detta gör att alla andra nätverksenheter kan uppdatera sina ARP-tabeller utan att de behöver göra identiska ARP-sonder. Detta hjälper till att minimera ARP-trafik.
ARP-sond vid anslutning
När en dator ansluter till ett nätverk måste den få en IP-adress. Detta kan specificeras manuellt men tilldelas vanligtvis dynamiskt av en DHCP (Dynamic Host Control Protocol) server. DHCP-servern är vanligtvis en funktion av nätverksroutern men kan köras av en separat enhet. När en ny enhet har en IP-adress, antingen genom manuell konfiguration eller DHCP. Enheten måste snabbt verifiera att ingen annan enhet redan använder den IP-adressen.
För att göra det sänder enheten ett ARP-sondpaket och ber om vilken enhet som helst som använder sin nyligen tilldelade IP-adress för att svara på den. Det förväntade svaret är tystnad. Ingen annan enhet bör reagera, särskilt i ett DHCP-nätverk. Efter korta förseningar kommer enheten att sända samma meddelande igen några gånger. Denna upprepning hjälper i de fall där ett paket kan ha tappats på vägen till eller från en enhet med en motstridig IP-adress. När det inte har kommit några svar på några ARP-sonder kan enheten börja använda sin nya IP-adress. För att göra det måste den skicka en gratis ARP.
Gratis ARP
När en enhet har fastställt att IP-adressen den vill använda inte används, skickar den en gratis ARP. Detta innebär helt enkelt att sända till nätverket "
Gratis ARP-förfrågningar skickas också regelbundet till nätverket precis som påminnelser till alla andra enheter om att datorn fortfarande är ansluten, online och har sin IP-adress.
ARP-spoofing
ARP är ett tillståndslöst protokoll, det finns ingen anslutning och alla meddelanden sänds till nätverket i stort. Alla enheter lyssnar på och cachelagrar ARP-svar i sina ARP-tabeller. Detta leder dock till en sårbarhet i systemet. Förutsatt att en angripare fysiskt kan ansluta till nätverket, kan de köra programvara som med skadlig uppsåt sänder felaktiga gratis ARP-svarspaket. Varje enhet i nätverket kommer att se de skadliga ARP-paketen, implicit lita på dem och uppdatera deras routingtabeller. Dessa nu felaktiga ARP-tabeller kallas för "förgiftade".
Detta kan bara användas för att orsaka nätverksproblem genom att peka trafik i fel riktning. Det finns dock ett värre scenario. Om angriparen förfalskar ARP-paket för routerns IP-adress och pekar dem till sin egen enhet, skulle de ta emot och kunna se all nätverkstrafik. Förutsatt att enheten har en annan nätverksanslutning för att vidarebefordra trafiken, kan det ta en man i mitten (MitM) position. Detta gör att angriparen kan utföra otäcka attacker som HTTPS-strippning, vilket potentiellt tillåter dem att se och ändra all nätverkstrafik.
Notera: Det finns vissa skydd mot MitM-attacker. Angriparen skulle inte kunna duplicera HTTPS-certifikatet för en webbplats. Alla användare som får trafiken avlyssnad bör få webbläsarcertifikatfel.
Det finns dock många viktiga och okrypterade kommunikationer, särskilt på ett internt nätverk. Detta är inte så mycket fallet på ett hemnätverk. Ändå är företagsnätverk byggda på Windows särskilt sårbara för ARP-spoofingattacker.
![](/f/82ef61cd1e23becaf916cc2263966852.png)
Slutsats
ARP står för Address Resolution Protocol. Det används i IPv4-nätverk för att översätta IP-adresser till MAC-adresser som behövs i lokala nätverk. Den består av statslösa förfrågnings- och svarssändningar. Svar, eller brist på sådana, tillåter en enhet att avgöra vilken MAC-adress som är associerad med en IP-adress eller om en IP-adress är oanvänd. Enheter cachelagrar ARP-svar för att uppdatera sina ARP-tabeller.
Enheter kan också regelbundet sända gratis meddelanden om att deras MAC-adress är associerad med deras IP-adress. Avsaknaden av en autentiseringsmekanism tillåter en illvillig användare att sända falska ARP-paket för att förgifta ARP-tabeller och dirigera trafik till sig själva för att utföra trafikanalys eller MitM-attacker.