Netzanalyse-Software Wireshark

Funktionalität

Wireshark ist ein weitverbreitetes Programm zur Analyse von aufgezeichnetem Datenverkehr (Traces) in Rechnernetzen. Die Open Source Software ermöglicht einen detaillierten Einblick in viele Protokolle und eignet sich auch zur Fehlersuche. Wireshark bietet unter anderem die folgenden Funktionen:

Das Programm ist für Windows, Linux, MacOS und viele weitere Betriebssysteme frei verfügbar.

Auf der Homepage von Wireshark wird die Verwendung detailliert erläutert und dokumentiert:

Aufzeichnen

Die Software Wireshark kann Datenverkehr auf Netzadaptern eines Rechners aufzeichnen. Dazu wird die Kommunikation über eine Packet Capture (PCAP) Programmierschnittstelle mitgeschnitten, verarbeitet und ggf. auch gespeichert. Bei einem Rechner mit Ethernet Netzadapter werden dann alle vom Rechner versendeten bzw. empfangenen Ethernet Rahmen aufgezeichnet. Wireshark kann dabei parallel zu Anwendungen verwendet werden, deren Kommunikation analysiert werden soll.

Beispielsweise können mit Wireshark die ICMP Nachrichten aufgezeichnet werden, die von der Anwendung ping gesendet und empfangen werden:

EdgeRouter

Benutzeroberfläche

Der Startbildschirm der Wireshark Anwendung unter Windows ist in der folgenden Abbildung illustriert:

EdgeRouter

Es ist beim Start der Anwendung möglich, unter den verschiedenen Netzadaptern des Rechners denjenigen auszuwählen, auf der die gesendeten und empfangenen Rahmen (Frames) aufgezeichnet werden sollen. Wireshark zeichnet dann alle Rahmen auf, die auf diesem Netzadapter gesendet bzw. empfangen wurden, d.h. den kompletten Datenverkehr des Rechners über diesen Netzadapter. Für die Aufzeichnung gelten jedoch einige Einschränkungen:

Bei der Verwendung von Wireshark ist es wichtig, dass der richtige Adapter ausgewählt wird, d.h. zum Beispiel der Netzadapter für die Ethernet-Netzwerkkarte bei Anbindung an ein Ethernet LAN. Eine Auswahl anderer vorhandener Netzadapter liefert ggf. nicht das erwartete Ergebnis.

Es ist möglich, den Netzadapter nach Programmstart zu ändern, wenn keine Aufzeichnung läuft. Die Aufzeichnung kann u.a. durch die Icons unterhalb der Menüleiste gestartet bzw. gestoppt werden.

EdgeRouter

Während einer laufenden Aufzeichnung wird der komplette Datenverkehr des Rechners mitgeschnitten und gespeichert. Bei einer lang laufenden Aufzeichnung kann die Datenmenge erheblich ansteigen und die Liste der aufgezeichneten Rahmen wird unübersichtlich. Es kann daher sinnvoll sein, die Aufzeichnung nach Abschluss eines Experiments zu stoppen und anschließend für die nächste Messung neu zu starten.

Aufgezeichneter Datenverkehr wird in Wireshark in verschiedenen Darstellungen angezeigt.

EdgeRouter

Standardmäßig sind in Wireshark drei verschiedene Ansichten verfügbar:

Das Fenster mit den Paketbytes (Hex Window) kann zum Beispiel mit der Maus auch verkleinert werden, um mehr Platz für die Darstellung von Paketdetails zu haben.

Im dargestellten Screenshot wird eine abgespeicherte Verkehrsaufzeichnung analysiert. Für einen ARP Rahmen werden im Beispiel die Datenfelder in Ethernet und ARP dargestellt.

Im Header Window werden, sofern möglich, die im Rahmen enthaltenen Protokolle dekodiert. Dabei wird die niedrigste Protokollschicht (Schicht 1 und 2) oben im Fenster dargestellt. Bei Aufzeichnung von Ethernet-Datenverkehr ist das oberste dekodierbare Protokoll "Ethernet II". Es folgen ggf. weitere im Rahmen enthaltene Protokolle höherer Schichten, wie z.B. ARP.

Im Header Window von Wireshark wird der erkannte Protokollstapel also von oben nach unten beginnend mit der niedrigsten Schicht visualisiert.

Diese Darstellung wird auch in einem weiteren Beispiel verdeutlicht, in dem eine über Ethernet und IPv4 übertragene ICMP Nachricht analysiert wird:

EdgeRouter

Wenn weitere Details zu bestimmten Protokollen verfügbar sind, wird dies im Header Window durch das Symbol > angezeigt. Durch Mausklick kann die entsprechende Ansicht dann erweitert werden. Im Beispiel ist z.B. die Information zur Aufzeichnung von "Frame 3" in der ersten Zeile ausgeblendet.

In eckigen Klammern [ ] werden ggf. von Wireshark ermittelte Zusatzinformationen ausgegeben, die nicht aufgezeichnet wurden, sondern durch nachträgliche Analyse des Datenverkehrs ermittelt wurden.

Die Ethernet Frame Check Sequence (FCS) am Rahmenende wird durch Wireshark nicht aufgezeichnet und wird daher auch nicht dargestellt. Angaben in Wireshark über die Menge aufgezeichneter Bytes von Ethernet Rahmen beinhalten daher nicht die 4 byte lange Ethernet FCS.

Wireshark Display Filter

Die Anwendung Wireshark bietet eine Vielzahl an Möglichkeiten, mit Filtern Teilmengen aus dem aufgezeichneten Datenverkehr zu selektieren. Das wichtigste Hilfsmittel hierfür sind Display Filter. Wenn ein Display Filter verwendet wird, stellt Wireshark aus allen insgesamt aufgezeichneten Rahmen nur diejenigen dar, die auf einen durch den Benutzer vorgegebenen Filterausdruck passen.

Display Filter können in der Bedienoberfläche unterhalb der Menüleiste eingegeben werden, sowohl während einer laufenden Aufzeichnung als auch nach dem Abstoppen. Gültige Filterausdrücke werden mit einem grünen Hintergrund visualisiert. Bei Syntax-Fehlern hat das Eingabefeld dagegen einen roten Hintergrund. Dies wird nachfolgend für einen Filter veranschaulicht, der nur TCP Segmente anzeigt:

EdgeRouter

Wireshark-Filter werden erst angewendet, wenn dies vom Benutzer explizit gefordert wird, z.B. durch Drücken der Eingabe-Taste (Return-Taste). Dies gilt auch nach Änderungen von Filter-Ausdrücken.

In der Praxis ist zur Vermeidung von Verwirrung wichtig, dass der unterhalb der Menüzeile angezeigte Display-Filter auch tatsächlich angewendet wird. Es bietet sich daher an, nach Änderungen von Filter-Ausdrücken immer die Eingabe-Taste (Return) zu betätigen.

Während einer Analyse von aufgezeichnetem Datenverkehr ist es ggf. sinnvoll, Display Filter einzusetzen, um die relevanten Teile einer Aufzeichnung zu selektieren. Weitere Informationen zu Display Filtern können unter anderem auf den folgenden Web-Seiten gefunden werden:

Wireshark verwendet eine eigene Sprache zur Erstellung von Filterausdrücken. In Display Filtern kann man auf alle Datenfelder in den von Wireshark unterstützen Protokollen zugreifen. Neben einfachen Wertevergleichen sind auch sehr komplexe Ausdrücke möglich.

Nachfolgend sind einige nützliche Datenfelder in verschiedenen Protokollen aufgelistet. Eine vollständige Liste aller unterstützen Protokolle und die Definition der jeweiligen Attribute findet sich in der Dokumentation von Wireshark.

Ethernet Erklärung IPv4 Erklärung Protokolle Erklärung
eth.src Quelladresse ip.src Quelladresse arp ARP
eth.dst Zieladresse ip.dst Zieladress e icmp ICMP
eth.addr Quelle oder Ziel ip.addr Quelle oder Ziel tcp TCP
eth.type EtherType ip.len Paket-Länge udp UDP

Jedes Datenfeld kann selbst als Filterausdruck verwendet werden. Wenn ein Filterausdruck nur ein Attribut enthält, d.h. keinen Vergleich, dann werden nur Rahmen bzw. Pakete angezeigt, in denen dieses Datenfeld bzw. das entsprechende Protokoll vorhanden ist.

Beispiele:

Display Filter können verschiedene Vergleichsoperatoren einsetzen, die sowohl in C-ähnlichem Syntax wie auch als englische Abkürzung eingegeben werden können:

Vergleich Alternative Operator
== eq Gleich
!= ne Ungleich
> gt Größer
< lt Kleiner
>= ge Größer-gleich
<= le Kleiner-gleich

Diese Liste ist nicht vollständig, es gibt beispielsweise noch weitere Operatoren für Zeichenketten oder Bitvergleiche. Ausdrücke können auch durch Klammern () zusammengefasst werden. In der Praxis sind insbesondere die Operatoren für Gleichheit (== oder eq) bzw. für Ungleichheit (!= oder ne) wichtig. Beispiele:

Werte können unter anderem als Dezimalzahl oder als Hexadezimalzahl (z.B. 0x0800) angegeben werden.

Ethernet MAC Adressen können sowohl mit Bindestrich als auch mit Doppelpunkt angegeben werden; beides hat die gleiche Bedeutung. Hexadezimalziffern können groß oder klein geschrieben werden.

Beispiele:

IP Adressen können nicht nur als einzelne Adresse spezifiziert werden, sondern es kann auch ein gesamtes Sub-Netz in Classless Inter Domain Routing (CIDR) Notation angegeben werden.

Beispiele:

Filterausdrücke können durch logische Ausdrücke kombiniert werden. Auch für die Verkettung gibt es sowohl eine C-ähnliche Schreibweise wie auch entsprechende englische Begriffe:

Logik Alternative Operator
&& and Und
|| or Oder
! not Nicht
^^ xor Exklusiv-Oder

Beispiele:

Einige in Filter verfügbare Attribute stehen für mehrere Datenfelder. Zum Beispiel vergleicht eth.addr mit der Quell-MAC-Adresse oder mit der Ziel-MAC-Adresse. In gleicher Weise vergleicht ip.addr die Quell-IP-Adresse oder die Ziel-IP-Adresse in IPv4. Filter auf diese Attribute entsprechen daher einer logischen Oder-Verknüpfung.

Beispiele:

Neben Display Filtern ist es in Wireshark auch möglich, schon während der Aufzeichnung Verkehr mit einem Capture Filter herauszufiltern, womit die für die Aufzeichnung zu speichernde Datenmenge reduziert werden kann. Der Syntax der Filterausdrücke kann sich von Display Filtern unterscheiden. So lange keine langen Aufzeichnungen durchgeführt werden, ist es in der Regel ausreichend, Display Filter zu verwenden.

Weitere Links