Wireshark: So schreiben Sie Filter für Netzwerk-Traffic
Wireshark ist eines der beliebtesten Tool von Security-Profis. Mit den richtigen Filtern finden Sie Informationen wesentlich schneller.
Wireshark ist ein leistungsstarkes, kostenloses Tool, mit dem sich Netzwerkpakete untersuchen lassen. IT-Profis können damit den Netzwerk-Traffic inspizieren. Das dient sowohl der Lösung von Problemen als auch der Bewertung der Sicherheit. Im ersten Teil dieser Artikelserie habe ich Wireshark vorgestellt.
In diesem Beitrag tauchen wir tiefer in die Materie ein und sehen uns die fortschrittlichen Funktionen des Analyse-Tools an. Wir zeigen Ihnen, wie Sie mittels Filtern für den Traffic die Anzahl der Pakete verkleinern können, die auf dem Bildschirm angezeigt werden. Weiterhin besprechen wir die Best Practices beim Schreiben von Wireshark-Filtern für den Netzwerk-Traffic.
Warum den Traffic überhaupt filtern?
Wenn Sie in der Vergangenheit Wireshark oder ein anderes Analyse-Tool für Netzwerk-Traffic genutzt haben, dann kennen Sie die Antwort auf diese Frage bereits. Sammeln Sie Pakete im Netzwerk, kann das zu einer Unmenge an Informationen führen.
Das gilt vor allen Dingen dann, wenn man Pakete über einen längeren Zeitraum erfasst. Es ist kein Problem, binnen weniger Minuten tausende an Paketen zu erfassen. Ohne Traffic-Filter wird das durchforsten der Daten zur sprichwörtlichen Nadel im Heuhaufen. Die Traffic-Filter ersetzen im Grunde genommen die Suche. So wird die Menge an Daten limitiert, die auf dem Bildschirm ausgegeben wird. Der Anwender tut sich nun leichter, die gewünschten Informationen zu finden.
Filter auf Erfassungen von Netzwerkpaketen anwenden
Einen Filter auf die erfassten Pakete anzuwenden, ist eigentlich sehr einfach. Tippen Sie unter Wireshark dazu lediglich den gewünschten Ausdruck (Expression) in das Textfeld Filter und klicken dann auf Apply. So lassen Sie den Filter gegen die derzeit aktive Erfassung laufen. Wireshark wird nun alle Pakete verstecken, die nicht zur Expression des Filters passen.
Das klingt sehr einfach, oder? Die Kunst beim Schreiben von Filtern für Wireshark liegt aber darin, den richtigen Ausdruck zu schreiben, um die Anforderungen der Analyse zu erfüllen. Bevor Sie sich an das Schreiben eines Filters machen, sollten Sie sich die offensichtliche Frage stellen: „Welchen Traffic möchte ich sehen?“
Die anfängliche Antwort auf diese Frage ist möglicherweise ein einfacher Satz wie zum Beispiel: „Sämtlichen Web-Traffic vom Applikations-Server.“. Diese Beschreibung müssen Sie nun in einen technischen Ausdruck umwandeln, der die Charakteristiken der Pakete beschreibt. Die technische Spezifikation hört sich möglicherweise so an:
„Alle TCP-Pakete mit dem Ziel-Port 80 und einer Quelladresse von 172.16.1.32.“.
Sobald diese technische Spezifikation entwickelt ist, muss man Sie sie noch in Wiresharks Filtersprache übersetzen. Für das Beispiel oben lautet der korrekte Filter für Wireshark:
tcp.dstport == 80 and ip.src == 172.16.1.32
Sieht man sich dieses Beispiel im Detail an, besteht es im Grunde genommen aus zwei Teilen, die mit einem and verknüpft sind. Der erste Teil gibt an, dass der Ziel-Port 80 sein muss. Gleichzeitig muss die Quelladresse des Pakets 172.16.1.32 entsprechen.
Um die Auswahl des gesammelten Traffics durch den Filter noch weiter einzuschränken, können Sie so viele Bedingungen wie Sie wollen aneinander reihen. Es sind Klammern möglich und auch logische Operatoren wie zum Beispiel and, or, xor und not sind denkbar, um bestimmte Gruppen zu bilden.
Wireshark: Traffic-Filter für das Netzwerk und Schreiben von Ausdrücken für Wireshark
Das Erstellen von maßgeschneiderten Ausdrücken kann ein bisschen kompliziert sein. Zumindest gilt dies dann, wenn Sie einige der Feinheiten der Sprache nicht kennen. Es gibt im Grunde genommen zwei Optionen für das Erstellen von Befehlen:
- Schreiben Sie den Ausdruck aus dem Gedächtnis hin. Das schaffen Sie eines Tages mit genügend Übung.
- Benutzen Sie den Expression Builder von Wireshark.
Um den Expression Builder zu verwenden, klicken Sie einfach auf das Wort Expression in der für die Filter zuständigen Symbolleiste. Hier klicken Sie sich Ihren Ausdruck zusammen. Das nachfolgende Bild zeigt ein Beispiel.
Per Mausklick zum Filter mit dem Wireshark Expression Builder
Wireshark verwendet farbige Textfelder, um zu verifizieren, dass Sie einen gültigen Filter erstellt haben. Ist ein Ausdruck grün hinterlegt, dann ist er gültig. Wurde beim Ausdruck ein Fehler gemacht, ändert sich die Hintergrundfarbe in Rot und der Anwender weiß, dass es irgendwo ein Problem gibt.
Nachdem Sie einen gültigen Filter kreiert haben, klicken Sie einfach auf die Schaltfläche Apply. So lassen Sie den Filter gegen die momentane Paketerfassung laufen. Ein Beispiel eines erfolgreich angewendeten Filters könnte so aussehen:
Beispiel für eine erfolgreich gefilterte Paketerfassung
Wichtiger Hinweis: Dieser Artikel behandelt, wie man Wireshark-Filter für die Anzeige schreibt. Solche Anzeigefilter limitieren die Anzahl der Informationen, die auf dem Bildschirm sichtbar sind. Wireshark nimmt allerdings weiterhin alle Pakete auf und filtert bei der Erfassung nichts.
Das Schreiben von Filtern für die Erfassung beschränkt die Daten, die aus dem Netzwerk aufgenommen werden. Für diese Zwecke verwendet Wireshark die Standardfilter libpcap. Sie sind identisch mit denen, die auch tcpdump einsetzt. Letzteres ist ein Open-Source-Tool, mit dem Sniffing von Netzwerk-Traffic möglich ist.
Weitere Informationen zu speziellen Filtern für Wireshark finden Sie im Handbuch der Software.
Security-Analysen mit Wireshark-Filtern
Wireshark ist der beste Freund von Security-Profis. Mit Filtern kann man damit einige interessante Informationen aus dem Netzwerk-Traffic ziehen. Nachfolgend finden Sie einige Beispiele:
- Überwachen Sie das Netzwerk hinsichtlich Einsatz unsicherer Protokolle wie beispielsweise Telnet. Der folgende Filter wird sämtlichen Traffic identifizieren, der auf TCP Port 23 abläuft. Dort spielt sich potenzielle Kommunikation im Klartext ab: tcp.dstport == 23
- Die Isolation von Traffic eines möglicherweise kompromittierten Systems. Sie könnten zum Beispiel den folgenden Filter verwenden, um sämtlichen Traffic von 192.168.2.101 zu überwachen: ip.src == 192.168.2.101
- Untersuchen Sie DoS-Angriffe (Denial of Service). Zeigt Ihr Webserver Anzeichen eines DoS-Angriffs, lässt sich Wireshark verwenden, um die relevanten Pakete zu erfassen und zu analysieren. So können Sie an einer Verteidigungsstrategie gegen diese Bedrohung arbeiten. Der folgende Filter erfasst sämtlichen Web-Traffic, der Richtung Server mit der IP-Adresse 192.168.3.134 geht:ip.dst == 192.168.3.134 and tcp.dstport == 80
Das sind nur einige einfache Beispiele, wie man Wireshark als Security-Tool für Analysen einsetzen kann. Da Sie die Möglichkeit von maßgeschneiderten Filtern haben, können Sie alle möglichen Kombinationen an Parametern zu Rate ziehen.
Nun kennen Sie die Grundlagen, wie man Filter bei Wireshark erstellt. Jetzt können Sie anfangen, dieses leistungsfähige Tool etwas umfangreicher zu nutzen. Versuchen Sie es selbst. Erfassen Sie Netzwerk-Traffic und suchen Sie dann mit Filtern die sprichwörtliche Nadel im Heuhaufen. Wenn Sie diese Tests in einem Produktivnetz testen, sollten Sie die Datenschutzanforderungen beim Sicherheits-Monitoring beachten.
Über den Autor:
Mike Chapple, Ph.D., CISA, CISSP, ist IT-Sicherheitsmanager an der University of Notre Dame. Zuvor hat er bei der National Security Agency (NSA) und der U.S. Air Force im Bereich Informationssicherheit geforscht. Chapple schreibt regelmäßig Artikel für SearchSecurity, wo er als ständiger Experte für Compliance, Frameworks und Standards tätig ist. Außerdem ist er technischer Redakteur für das Magazin Information Security und Autor mehrere Bücher über Informationssicherheit, darunter „CISSP Study Guide“ und „Information Security Illuminated“.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+ und Facebook!