python_arp_spoof_detector_image

Programmierung

Python ARP Spoof Detector

Das Nutzen von öffentlichen Netzwerken, wie z.B. WLAN im Hotel/Restaurant/Zug etc, bringt Risiken mit sich. Eines dieser Risiken ist das sogenannte "ARP-Spoofing". Was ARP-Spoofing ist, wie genau es funktioniert und wo man sonst noch ARP-Spoofing Angriffe antrifft, wird an einer anderen Stelle behandelt werden. Wichtig ist fürs Erste wie man sich gegen ARP-Spoofing schützen kann bzw. wie man diesen Angriff schnell genug erkennt um Gegenmaßnahmen einzuleiten.

Eine dieser Maßnahmen wird in folgender Python Datei erläutert:

python_arp_spoof_detector.py ~ 1KB

Das Nutzen dieser Datei in einem Netzwerk, das nicht Ihnen gehört, kann strafrechtlich relevant sein. Die Inhalte dienen lediglich zum Erlernen der Programmiersprache "Python" und zum Absichern des eigenen Netzwerkes.


Kurze Erklärung


python_arp_spoof_detector_code0

Hier wird die Funktion "sniff" aus dem scapy.all-Modul importiert. Diese Funktion ermöglicht das Abhören von Netzwerkpaketen.


python_arp_spoof_detector_code1

Hier wird ein leeres Dictionary "IP_MAC_Map" erstellt, das zur Speicherung der Zuordnung von IP-Adressen zu MAC-Adressen verwendet wird.


python_arp_spoof_detector_code2

Dies ist die Definition der Funktion "processPacket", die als Parameter ein einzelnes Netzwerkpaket erhält und es verarbeitet. Desweiteren werden hier die Quell-IP und Quell-MAC, aus dem erhaltenem Paket, zu den jeweiligen Variablen zugewiesen.


python_arp_spoof_detector_code3

Hier wird überprüft, ob die Quell-MAC-Adresse bereits im Dictionary "IP_MAC_Map" vorhanden ist. Falls die MAC-Adresse vorhanden ist, wird überprüft, ob die zugeordnete IP-Adresse in "IP_MAC_Map" mit der aktuellen Quell-IP-Adresse übereinstimmt. Wenn nicht, wird ein potenzieller ARP-Spoofing-Angriff vermutet.


python_arp_spoof_detector_code4

Dieser Block wird verwendet, um eine Ausnahme abzufangen, falls es ein Problem beim Zugriff auf den Wert in "IP_MAC_Map" gibt.


python_arp_spoof_detector_code5

Hier wird die Warnungsnachricht erstellt, die besagt, dass der Rechner mit der alten IP-Adresse "old_IP" vortäuschen könnte, der Rechner mit der aktuellen Quell-IP-Adresse "source_IP" zu sein. Die Funktion gibt die Warnung zurück.


python_arp_spoof_detector_code6

Wenn die Quell-MAC-Adresse bereits im Dictionary "IP_MAC_Map" vorhanden ist und die zugeordnete IP-Adresse übereinstimmt, wird die Zuordnung aktualisiert oder hinzugefügt.


python_arp_spoof_detector_code7

Hier wird die "sniff" Funktion aufgerufen, um den Netzwerkverkehr abzuhören. Es werden nur ARP-Pakete mit dem Filter "arp" erfasst. Der Parameter "count=0" bedeutet, dass der Vorgang nicht nach einer bestimmten Anzahl von Paketen gestoppt wird. "store=0" gibt an, dass die Pakete nicht im Speicher gespeichert werden, um Speicherplatz zu sparen. "prn=processPacket" gibt die Funktion an, die jedes gefangene Paket verarbeiten wird.


Gesamter Code:

python_arp_spoof_detector