· 

ARP Spoofing (Poisoning)

1. Einführung

ARP-Spoofing (auch ARP-Poisoning genannt) ist eine Variante des IP-Spoofings. Es stellt eine Möglichkeit zur Durchführung eines Man-in-the-Middle-Angriffs dar, bei der die systembedingten Schwachstellen von Ethernet ausgenutzt werden.
Der Angriff funktioniert allerdings nur, wenn sich der Angreifer in dem lokalen Netzwerk des Targets befindet oder er einen Rechner innerhalb dieses lokalen Netzwerks infiltriert hat.

2. Wie funktioniert der Angriff?

Kerngedanke des ARP-Spoofings ist es, den Datenverkehr innerhalb eines Netzwerks umzuleiten bzw. mitzuschneiden und zu manipulieren. Hierzu täuscht der Angreifer eine ARP-Abfrage vor und fälscht die Zuordnung von IP-Adressen zu den MAC-Adressen (also den Hardwareadressen der Geräte innerhalb des Netzwerks).
Gegeben seien die beiden Hosts A und B, die sich im selben lokalen Netzwerk befinden. Damit ein Angreifer C den Datenverkehr zwischen A und B abhören kann, sendet C eine manipulierte ARP-Nachricht an A. Mit dieser wird versucht, einen Eintrag in der ARP-Tabelle von A zu erzwingen, der für die IP-Adresse von Host B die MAC-Adresse von C enthält. So erhält C zukünftig alle Nachrichten, die eigentlich an B adressiert sind. Auch B erhält von C eine manipulierte ARP-Nachricht mit der MAC-Adresse von C und der IP-Adresse von A, wodurch B seine für A bestimmten Nachrichten an den Angreifer C sendet. C muss nun die von A und B enthaltenen Pakete an den eigentlich intendierten Empfänger weiterleiten, wodurch eine abgehörte Verbindung mit C als Proxy entsteht (Man-in-the-Middle-Angriff).
Wenn sich C erfolgreich innerhalb des lokalen Netzwerks als Proxy zwischen A und B geschaltet hat, kann der Netzwerkverkehr selbstverständlich nicht nur gelesen, sondern auch manipuliert oder verworfen werden. So können Fehlinformationen an die Teilnehmer gesendet oder ihre Kommunikation untereinander vollständig unterbunden werden.
ARP-Spoofing ist mit kostenfreien Programmen wie Ettercap und Wireshark nicht nur in ungeswitchten, sondern auch in geswitchten Netzwerken möglich. Diese Programme stellen die für ARP-Spoofing notwendige Proxy-Funktionalität bereit.

3. Detektion und Prävention

Im Vergleich zur Durchführung ist das Erkennen bzw. Verhindern von ARP-Spoofing schwierig. Dennoch gibt es einige Möglichkeiten einen Angreifer, der einen Man-in-the-Middle-Angriff via ARP-Spoofing durchführt, zu erkennen und den Angriff zu unterbinden.
Eine Möglichkeit bestreht darin, statt des ARP-Protokolls statische Tabellen zur Umsetzung von IP- zu Hardware-Adressen einzusetzen. So verzichtet man auf das ARP-Protokoll und der Angriffsvektor bleibt erfolglos. Allerdings sorgt diese Vorgehensweise für massive Performance-Probleme, da die ARP-Tabellen ständig aktualisiert werden müssen (z. B. weil ein neuer Teilnehmer dem lokalen Netzwerk betritt).
Eine weitere (weitaus sinnvollere und effizientere) Variante ist die Behebung des Problems, dass fast alle Betriebssysteme jeden ARP-Reply akzeptieren und die entsprechenden "Korrekturen" an den ARP-Tabellen vornehmen (unabhängig davon, ob eine Anfrage von dem entsprechenden Host gesendet wurde oder nicht). Dies kann durch den Einsatz einer Software behoben werden, die ARP-Nachrichten im Netzwerk analysiert und potentiell gefälschte Pakete verwirft. Parameter für die Detektion von Angreifern können die MAC-Adresse und Absendezeit sein. Der Systemadministrator kann durch die Anbindung einer solchen Software an ein Intrusion Detection System direkt notifiziert werden, um schnell auf derartige Bedrohungen reagieren zu können.
Im Folgenden soll gezeigt werden, wie auch ein Administrator durch Überprüfung der ARP-Tabellen feststellen kann, ob ein Angreifer im Netzwerk den Datenverkehr mitliest. Sei hierzu a0:de:ad:be:ef:1a die MAC-Adresse des Angreifers. Durch gefälschte ARP-Nachrichten sendet er an alle Teilnehmer des Netzwerks seine MAC-Adresse und leitet so den Netzwerkverkehr auf seinen Rechner um.
Address         HWtype  HWaddress               Flags Mask      Iface
192.168.2.1     ether   a0:de:ad:be:ef:1a       C               eth0
192.168.2.2     ether   a0:de:ad:be:ef:1a       C               eth0
192.168.2.3     ether   a0:de:ad:be:ef:1a       C               eth0
192.168.2.4     ether   a0:de:ad:be:ef:1a       C               eth0
Da die Abbildung von den IP-Adressen auf die MAC-Adressen im Netzwerk bijektiv sein müsste, kann man anhand der Zuweisung von mehreren IP-Adressen zu einer bestimmten MAC-Adresse erkennen, dass sich ein Angreifer im Netzwerk befindet.
Für das folgende Beispiel verberge sich hinter der IP-Adresse 192.168.2.2 der Angreifer. Die IP-Adresse 192.168.2.4 gehöre dem Router bzw. dem Gateway des Netzwerks.
Address         HWtype  HWaddress               Flags Mask      Iface
192.168.2.1     ether   a0:de:ad:be:ef:1a       C               eth0
192.168.2.2     ether   de:52:01:01:4b:3e       C               eth0
192.168.2.3     ether   a0:de:ad:be:ef:1a       C               eth0
192.168.2.4     ether   1b:1c:1d:2d:3e:4a       C               eth0
So kann der Angreifer den Netzwerkverkehr vom und ins Internet abfangen.
Eine weitere Detektionsmöglichkeit besteht in der Verwendung des traceroute- (Linux) bzw. tracert-Befehls (Windows). Mit diesem kann bestimmt werden, welche und wie viele Hops auf dem Weg zu einem bestimmten Ziel (IP-Adresse) genommen werden. Wenn man diesen für das vorangegangene Beispiel durchführt, um zu ermitteln, welchen Weg ein Paket zum Zielrechner mit der IP-Adresse 192.168.2.2 nimmt, könnte man anhand der Ausgabe feststellen, dass das Paket einen "zusätzlichen" Hop über den Rechner mit der IP-Adresse 192.168.2.1 nimmt:
traceroute to 192.168.2.2 (192.168.2.2), 30 hops max, 60 byte packets
1       192.168.2.1 (192.168.2.1)  2.619 ms     2.611 ms        2.603 ms
2       192.168.2.2 (192.168.2.2)  74.876 ms    75.452 ms       76.123 ms
Anhand der erwarteten Hops lassen sich Angreifer, die sich ARP-Spoofing bedienen, innerhalb eines Netzwerks identifizieren.