ARP-Spoofing - Fälschen des DNS!

Beim ARP-Spoofing wird dem Absender eine falsche Adresszuordnung übermittelt!

Kaum einer nimmt das Netzwerkprotokoll ARP wahr, da es im Normalfall problemlos im Hintergrund seine Dienste verrichtet - Jedoch sind mit diesem Protokoll erhebliche Gefahren verbunden, deren viele sich oft nicht bewusst sind.

Von Vielen wird das Adress-Resolution-Protokoll (ARP) oft eher ignoriert, obwohl es einen Grundbaustein eines jeden IP-Netzwerks darstellt. Einer der Gründe dafür ist sicherlich, dass es im Hintergrund meist problemlos läuft und kaum der Pflege bedarf.

Dies ist jedoch nur auf den ersten Blick der Fall, denn ARP birgt ein hohes Gefahrenpotenzial, dessen sich viele oft nicht bewusst sind. Seit vielen Jahren gehören Man-in-the-Middle-Attacken, die auf den Missbrauch von ARP zurückzuführen sind, zum festen Repertoire vieler Hacker.

Für die IP-Kommunikation über das Netzwerk ist ARP ein unverzichtbarer Bestandteil, da die eigentliche Adressierung im Netzwerk anhand der MAC-Adressen stattfindet.

Eine MAC-Adresse (Medium Access Control) ist eine auf der Netzwerkkarte festgelegte Kennung, die im Normalfall einzigartig und unveränderbar ist. Die MAC-Adresse hat eine Länge von 48 Bit und wird in der Regel hexadezimal geschrieben.

Die ersten 24 Bit dieser Adresse beinhalten die Herstellerkennung der Netzwerkkarte, die von der IEEE (Institute of Electronic Engineers) vergeben wird.
Zum Beispiel die MAC-Adresse 00-0F-79-XX-XX-XX können Sie somit z.B. als die zugehörige Netzwerkkarte von Dell identifizieren. Eine Liste aller herstellerbezogenen MAC-Adressen finden Sie unter: standards.ieee.org

Vor jedem Datenaustausch im eigenen Netzwerksegment stellt der Versender-Host einen ARP-Request, um die MAC-Adresse des Kommunikationspartners in Erfahrung zu bringen.

Das unterschätzte Risiko
ARP ist ein eher einfaches Protokoll, das keinerlei Sicherungsmechanismen gegen missbräuchliche Benutzung vorsieht. Im Normalfall antwortet auf den ARP-Request der potenzielle Empfänger mit einem an den Versender gerichteten ARP-Reply, das seine MAC- und IP-Adresse enthält.

Das Protokoll stellt keine Möglichkeit bereit, zu verifizieren, ob diese Information stimmt. Aus diesem Grund kann jeder beliebige Host im Netz auf diese Anfrage antworten und seine eigenen Werte als richtig deklarieren.

Auch wenn der "echte" Host zuerst auf den Rundruf antwortet, überschreiben später eintreffende Informationen die alten Einträge im ARP-Cache des Versenders. Das Gleiche geschieht beim Empfang von ARP-Replies, denen kein ARP-Request vorausgeht.

Ein Angreifer muss mit einem Programm wie Ettercap lediglich entsprechende ARP-Replies an seine Opfer versenden, um die Zuordnungen zu seinen Gunsten zu verändern und den Datenstrom auf einen Rechner seiner Wahl umzuleiten.

ARP-Poisoning: Verseuchter ARP-Cache eines Netzwerkrechners. Auffällig ist die stets gleiche MAC-Adresse hinter der IP-Adresse - In Ausführen eingeben: cmd.exe dann arp -a

Das vorgestellte Verfahren wird für eine Reihe verschiedener Angriffsmethoden verwendet, die alle zum Ziel haben, den Datenstrom zwischen kommunizierenden Hosts mitzulesen.

Klassisches ARP-Spoofing

Beim ARP-Spoofing wird dem Absender eine falsche Adresszuordnung übermittelt

Ein Anwendungsbeispiel aus der Praxis ist das Fälschen des DNS.

Der Angreifer bekommt dadurch die Möglichkeit zu kontrollieren, welche Adressen wie aufgelöst werden, da er anstelle des eigentlichen Name-Servers diese Auflösung übernimmt. Dadurch ist er in der Lage, Adressen vertrauenswürdiger Seiten auf eigene Server umzuleiten, um beispielsweise eingegebene Passwörter oder PINs in Erfahrung zu bringen.

DNS-Spoofing wird auch zur Zensur im Internet verwendet

Ein anderes Beispiel ist das Spoofen des DHCP-Servers

Da zusätzlich zur IP-Adresse noch diverse andere Daten wie das Gateway oder die Adresse des Nameservices übertragen werden, ist der Angreifer dadurch in der Lage, die Kommunikationswege des Rechners zu manipulieren, um damit eine Man-in-the-Middle-Attacke einzuleiten.

Man in the Middle
Generell ist darunter zu verstehen, dass die Kommunikation zwischen zwei Verbindungspartnern transparent über einen dritten Host läuft. Transparent heißt in diesem Zusammenhang, dass weder der Absender noch der Empfänger bemerken, dass sie eigentlich nicht direkt miteinander verbunden sind, sondern über einen dritten Host, der ähnlich wie ein Gateway die Informationen weiterleitet.

Realisiert wird das auf verschiedene Weisen, abhängig davon, welche Verbindung betroffen ist. Befinden sich beide Hosts im gleichen Subnetz, versendet der Angreifer seine eigene MAC-Adresse an beide Hosts mit der IP-Adresse des jeweils anderen. Sowohl Rechner A als auch Rechner B verbinden sich mit Rechner C in dem Glauben, miteinander verbunden zu sein.

Der unsichtbare Dritte: Ein Angreifer übernimmt die Vermittlerrolle zwischen zwei Hosts und versetzt sich dadurch in die Lage, jegliche Kommunikation zwischen den beiden mitzulesen und zu beeinflussen.

Verbindungen zu Hosts außerhalb des eigenen Netzwerksegments werden über das Spoofen des entsprechenden Gateways realisiert. Auf diesem Weg können sämtliche Verbindungen in andere Netzwerke manipuliert und mitgelesen werden - Dies betrifft auch verschlüsselte https-Verbindungen. Der Angreifer übermittelt dem Client zu diesem Zweck ein eigenes, gefälschtes Zertifikat und leitet die Verbindung ähnlich eines Proxies weiter an den eigentlichen Server.

Da es sich im Regelfall um ein so genanntes "untrustet Certificate" handelt, geben gängige Browser wie Internet Explorer und Firefox jedoch eine entsprechende Warnmeldung aus. Die Daten werden in diesem Fall vom Man in the Middle transparent für die eigentlichen Verbindungspartner entschlüsselt, mitgelesen und verschlüsselt an den eigentlichen Adressaten weitergeleitet.

Connection Hijacking
Connection Hijacking ist vergleichbar mit einem Man-in-the-Middle-Angriff.

Der Unterschied ist, dass bestehende Verbindungen übernommen werden. Anwendung findet dies in erster Linie bei unverschlüsselten Protokollen wie Telnet, die eine kontinuierliche Verbindung aufbauen. In die Kommunikation von verschlüsselten Verbindungen kann der Angreifer auf diese Weise nicht mehr eingreifen, da er nicht im Besitz der dafür notwendigen Schlüssel ist.

Schutzmaßnahmen
Weist der ARP-Cache mehrere Einträge mit identischen MAC-Adressen auf, ist das ein Indiz, dass diese gespooft wurden. Dies muss jedoch nicht zwingend der Fall sein, da ein Host über mehrere IP-Adressen auf dem gleichen Netzwerk-Device verfügen kann; in der Regel findet das jedoch nur bei Servern Anwendung.

Eine effektive Maßnahme, um den Missbrauch von ARP vorzubeugen, ist die Verwendung von Layer-3-Switches. Das Konzept dieser Switches sieht vor, die Verbindung nicht nur anhand der MAC-Adresse zu identifizieren, sondern auch anhand der IP-Adresse - Häufige Änderungen der MAC/IP-Zuordnung (flip-flop) werden vom Switch bemerkt und gegebenenfalls verhindert. Einziger Haken ist der im Verhältnis zu herkömmlichen Layer-2-Switches hohe Preis.

Eine gute Firewall blockt das ARP-Protokoll auch
Speziell für größere Netzwerke wird eine Umrüstung der Switches deshalb schnell zu einem beachtlichen Kostenfaktor. Managed Layer-2-Switches sind zwar in der Lage, die Veränderung der MAC-Adresse an einem überwachten Port wahrzunehmen, nicht jedoch die veränderte Zuordnung zu IP-Adressen.

Abhilfe schafft auch die richtige Konfiguration der Hosts im Netz, um zumindest die wichtigsten Angriffsziele wie den Gateway, DNS oder Mailserver gegen einen Man-in-the-Middle-Angriff zu sichern.

Konfiguration unter Windows
Alle modernen Windows-Versionen bringen von Hause aus das Kommandozeilen-Programm "arp" mit, über welches der Anwender den ARP-Cache auslesen und beeinflussen kann.

arp -a Zeigt den ARP-Cache an
arp -s Fügt einen statischen Eintrag hinzu
arp -d Löscht einen Eintrag

ipconfig /renew Eine neue DHCP-Lease wird vom DHCP-Server angefordert ( IP wird erneuert)

arp -d * Der ARP-Cache wird geleert.
nbstat -R Der NetBIOS-Cache wird neu geladen
nbtstat -RR Die eigenen NetBIOS-Namen werden gesendet und alle Namen werden neu registriert.
ipconfig /flushdns Der DNS-Cache wird gelöscht.
ipconfig /registerdns Der eigene DNS-Name des Rechners wird neu registriert.

Der Aufruf des Kommandos (netsh interface ip delete arpcache), löscht den kompletten ARP-Cache

Als vorbeugende Schutzmaßnahme ist empfehlenswert, wichtige Einträge wie verwendete Gateways oder Name-Services, die sich im gleichen Netzwerksegment befinden, statisch in den ARP-Cache einzutragen. Mit einer Batch-Datei, die beim Systemstart geladen wird, ist das problemlos zu bewerkstelligen.

Erzeugen eines statischen ARP-Caches

Gehen Sie zum Absichern bestimmter Hosts wie folgt vor
Pingen Sie die Hosts an, die Sie statisch eintragen möchten. Dadurch wird ein Eintrag im ARP-Cache generiert, den Sie wie oben beschrieben auslesen können.

Erstellen Sie eine Datei "arpstart.bat" und öffnen Sie diese mit dem Texteditor.

Fügen Sie die Adressen, wie folgt, in die Datei ein:

als Beispiel
arp -s 192.168.0.11 00-40-c1-5a-71-76
arp -s 192.168.0.12 00-10-21-0c-66-31
arp -s 192.168.0.13 00-30-21-63-42-09

Legen Sie in der Registry im Verzeichnis
HKEY_LOCAL_MACHINE-SOFTWARE-Microsoft-Windows-CurrentVersion-Run, einen neuen Eintrag als Zeichenfolge (REG-SZ) an und verweisen Sie damit auf die erstellte Batch-Datei; zum Beispiel c: arpstart.bat

Damit wird bei jedem Systemstart das Skript geladen und die Einträge fest in den Cache geschrieben.

Untouchable: Ein statischer ARP-Cache hilft, böswillige Veränderungen an der MAC/IP-Zuordnung zu verhindern

ARP-Tuning über die Windows Registry
Praktisch alle modernen Microsoft-Betriebssysteme versenden beim Systemstart einen so genannten Gratuitous ARP-Request mit ihrer eigenen IP-Adresse.

Bekommt das System einen ARP-Reply, der das Vorhandensein der eigenen IP-Adresse im Netz anzeigt, verweigert Windows mit der Fehlermeldung (Microsoft Windows konnte sich nicht an das Netzwerk anmelden, da die IP-Adresse bereits vergeben ist) die Anmeldung im Netzwerk.

Dies funktioniert jedoch nur im homogenen Windows-Netzwerk, da diese Funktion beispielsweise in Linux-Maschinen nicht implementiert ist. Entsprechend überprüft Linux weder beim Systemstart das Vorhandensein anderer Rechner mit derselben IP-Adresse, noch reagiert es auf Anfragen anderer Rechner diesbezüglich.

Gibt es mich? - Diese Frage stellt ein Windows-Host bei der Anmeldung in das Netzwerk - Linux weiß keine Antwort darauf

Schwerwiegende Funktions- oder Performance-Einbußen sind bei der Vergabe von identischen IP-Adressen im gleichen Netzwerksegment vorprogrammiert. Unter bestimmten Umständen ist es jedoch hilfreich, diesen initialen Broadcast zu unterdrücken. Windows ab Version NT 4 sieht dafür einen Registry-Schlüssel vor, der diesen Rundruf beim Systemstart deaktiviert.

Öffnen Sie mit dem Registry-Editor das Register
HKEY_LOCAL_MACHINE-SYSTEM-CurrentControlSet-Services-Tcpip-Parameters

Setzen Sie den Wert des Eintrags ArpRetryCount auf "0".

Sollte dieser Eintrag (wie etwa bei Windows XP) noch nicht vorhanden sein, erstellen Sie diesen als DWORD-Wert und verfahren Sie wie oben.

Öffnen Sie mit dem Registry-Editor das Register
HKEY_LOCAL_MACHINE-SYSTEM-CurrentControlSet-Services-Tcpip-Parameters

Erstellen Sie als REG-DWORD den Eintrag ArpCacheLife und geben Sie im Anschluss die Zeit in Sekunden an, die zukünftig Einträge im Cache gehalten werden sollen.

Tools für Windows
Als präventive Schutzmaßnahme empfiehlt es sich, in jedem Netzwerksegment das Tool XArp im Hintergrund mitlaufen zu lassen. Das Programm protokolliert sämtliche Veränderungen in der Zuordnung zwischen IP-und MAC-Adresse und stellt diese übersichtlich dar.

Mac-Adresse ändern mit: MacMakeup, EtherChange, Change MAC Address

XArp - Advanced ARP Spoofing Detection

Das Risiko, das von ARP (ARP-Spoofing) ausgeht, ist nicht zu unterschätzen. Jedoch reichen oft schon einige kleine Änderungen, um sowohl das Netz sicherer zu machen, als auch solche Attacken aufzuspüren.

Der sicherste, aber auch teuerste Weg ist sicherlich das Verwenden geeigneter Layer-3-Switches.

Das Einrichten eines statischen ARP-Caches, der die wichtigsten Host-Zuordnungen festlegt, reicht jedoch oft schon aus, um zumindest einen Grundschutz vor ARP-Spoofing zu gewährleisten.

Jedoch hat diese Methode auch ihre Grenzen.

Hosts, deren IP-Adresse sich regelmäßig ändert, sind ebenso wenig zur Erfassung geeignet wie Load-balanced- und Fail-over-Systeme, die mit mehr als einer Maschine nach außen hin auftreten.

Auch als Schutz gegen gespoofte DHCP-Server ist diese Art der Vorbeugung wirkungslos, da der Kontakt zu diesem bereits hergestellt ist, bevor der statische ARP-Cache geladen wird.


Überwachung und Datenspeicherung - Die digitale Welt - Cloud-Gefahren - VoIP-Spionage - DNSSEC - Offizieller Trojaner - Smart Home oder Smart Spion!? - Geliebte Spione - Strahlenbelastungen, Mobilfunk, etc. - Lobbyismus, Korruption, Totalitarismus - Polizeigesetze, Urteile, Abgeordnete - BRD, EU - Diktatur - Stasi-DDR 2.0!?