Operativ arbeiten im Netzwerk: Sniffing mit Wireshark
Das wichtigste Werkzeug bei der Identifizierung von Netzwerkproblemen sind Sniffer. Der Einsatz dieser Tools will jedoch gelernt sein.
Wireshark gehört zur Kategorie der Programme der so genannten Sniffer – den Schnüffelprogrammen. Mit ihnen haben Administratoren die Möglichkeit, den Netzwerkdatenverkehr zu protokollieren und im Nachgang zu identifizieren. Wireshark ist sicherlich der bekannteste Sniffer und gleichzeitig auch für alle etablierten Betriebssystemplattformen verfügbar. Das Programm eignet sich einerseits dazu, die Funktionalität von Netzwerken genauer zu erlernen und andererseits im Fehlerfall das Problem einzugrenzen. Hierzu ist ein wenig Geschick erforderlich, denn die vielen Features der Software offenbaren sich erst mit der Erfahrung.
Beim Sammeln dieser Erfahrung muss sich der Administrator zunächst einige Gedanken zur rechtlichen Situation machen. Im Grundsatz gilt, dass das Datenschutzrecht verbietet, den Netzwerkverkehr uneingeschränkt und vollständig zu überwachen oder mitzuschneiden. Folglich kann eine eng umrissene und vorübergehende Überwachung aus bestimmtem Grund zulässig sein. Besonders schützenswert sind jedoch persönliche Daten und schon ohne die aktuelle EU-DSGVO schützte das Bundesdatenschutzgesetz (BDSG) die personenbezogenen Daten im § 3 BDSG „Einzelangaben über persönliche oder sachliche Verhältnisse einer bestimmten oder bestimmbaren natürlichen Person“.
Schutzwürdige Daten sind beispielsweise Name, Geburtsdatum, Adresse, Konteninformationen, medizinische Informationen, Informationen über die ethnische Herkunft, die politische oder sexuelle Orientierung. Entscheidend ist dabei, ob eine Person anhand der Daten direkt oder mittelbar zu identifizieren ist. Dient die vom Administrator durchgeführte Netzwerkuntersuchung der Protokollierung derlei Daten, ist der Vorgang in jedem Fall unzulässig.
Sniffer positionieren
Die Installation von Wireshark ist dank der guten verfügbaren Dokumentationen im Internet an sich kein Problem. Etwas komplizierter ist es, den Computer mit der Sniffer-Software korrekt zu positionieren. Technisch betrachtet dürften beinahe alle Netzwerke durch mehrere Switches in Segmente aufgeteilt sein, um möglichst die gewünschten Kommunikationspartner logisch zusammengefasst zu verbinden. Wireshark versetzt in der gängigen Standardeinstellung die Netzwerkkarte in den Promiscuous Mode, so dass der gesamte Netzwerkverkehr, der an dem Netzwerkinterface ankommt, an das Betriebssystem weitergeleitet wird. Jedoch reicht dies in einem geswitchten Netzwerk nicht aus, da der Switch selbst dafür sorgt, dass an jeden Port nur der für die angeschlossenen Geräte gedachte Netzwerkverkehr weitergeleitet wird.
Um den gewünschten Verkehr mitzuschneiden und interpretieren zu können, gibt es bei Wireshark die Möglichkeit des Remote Capture Interface, bei dem ein anderer Computer oder Server seine NIC für die Datensammlung zu Verfügung stellt. Eine andere Möglichkeit, den Netzwerkverkehr von anderen Maschinen umfänglich mitzuschneiden, ist die Verwendung eines Port Mirrors auf dem Switch. Hierbei wird der Verkehr (RX = Eingang, TX = Sendung oder RX/TX für beides) von einem Interface auf einen anderen Anschluss dupliziert. Das Interface, dass die Spiegelung wiedergibt, ist folglich nicht mehr für den selbstständigen Netzwerkverkehr in der Lage.
Ein gut ausgestattetes System für den Sniffer-Einsatz verfügt in der Regel über mindestens zwei Netzwerkkarten. Die eine NIC für die eigenen Kommunikationsbedürfnisse des Systems, die andere Karte für den Sniffing-Vorgang. Insgesamt sollte der Administrator damit rechnen, dass die Protokollierung mit einer gewissen Verlangsamung des Netzwerks einhergeht und eine größere Datenmenge auf dem Wireshark-Rechner ankommt.
Praktischerweise erlaubt Wireshark die Speicherung des Verkehrs, um eine spätere Analyse durchführen zu können. Möchte der IT-Profi anstelle des LANs ein WLAN analysieren, empfiehlt sich dringend der Einsatz von Wireshark unter Linux, da nur hier eine größere Anzahl von WLAN-Karten in den Monitoring-Modus, dem Äquivalent zum Promiscuous Mode, versetzt werden können. Windows-Treiber verfügen üblicherweise nicht über die benötigten Funktionen.
Wireshark verwenden
An sich ist die Verwendung von Wireshark nicht sehr schwierig. Der Administrator startet die Software und wählt im Begrüßungsdialog die gewünschte Netzwerkkarte für den Mitschnitt. Die grafische Darstellung, die ein wenig einer EEK/EEG-Linie ähnelt, symbolisiert dezent, wie viel Netzwerktransfer auf dem Interface aktuell anliegt. Ein Doppelklick auf das Interface und das Wireshark-Fenster beginnt mit der Protokollierung des Datenstroms.
Nach einigen ersten Gehversuchen wird der IT-Profi rasch merken, dass es sinnvoll ist, die gewünschten Informationen mitzuschneiden und unerwünschten Traffic erst gar nicht einzusammeln. Das beschleunigt die Auswertung und verkleinert das Capture-File. Um erst einmal zu erlernen, wie denn überhaupt sinnvolle Daten aussehen, ist das Beherrschen des Anzeigefilters unerlässlich. Während bei der Aufzeichnung selbst die so genannte BPF-Syntax (Berkeley Packet Filter) zum Tragen kommt, nutzt Wireshark bei den Anzeigefiltern ein eigenes Format. In der Praxis haben diese beiden Filter wenig miteinander zu tun.
Die einfachste Anzeigenfiltervariante ist die Beschränkung auf ein einzelnes Protokoll, eine einzelne Anwendung oder eine gezielte Bezeichnung eines Datenfelds selbst. Die meisten dieser Filter verwenden Kleinbuchstaben, jedoch gibt es auch einige VoIP-Filter, die Groß und Kleinbuchstaben nutzen.
Um sich beispielsweise über einen Anzeigefilter den Ethernet-Broadcast-Verkehr in einem Mitschnitt anzuschauen, wählt der Administrator neben der Filter-Eingabeleiste (ähnelt der Browser-Eingabe) das blaue Symbol und wählt den Filter eth.addr == ff:ff:ff:ff:ff:ff. Anschließend wird die Tabellendarstellung auf den Broadcast-Verkehr beschränkt und das zunächst blaue Symbol erscheint nun gelb.
Durch einen Klick auf das Symbol entfernt der Benutzer den Filter wieder. Anhand der vorgegebenen Anzeigefilter lässt sich schon ein wenig die Syntax ableiten.
Anstelle sich durch Menüs und Symbole durchkämpfen zu müssen, kann der IT-Profi auch direkt den gewünschten Filterwert in den Filter der so genannten Toolbar schreiben. Tippt der Administrator beispielsweise dns direkt hinter Filter und drückt die Eingabetaste, so reduziert das Programm die Ansicht auf die Namensauflösung mit DNS. Die Eingabe des Anzeigefilters besitzt zudem eine automatische Vervollständigung. Bei der Eingabe eines Filterbestandteils, beispielsweise tcp.analysis., zeigt Wireshark eine Liste aller dazu passender Anzeigefilter. Ganz einfach kann der IT-Profi sich ähnliche Netzwerkpakete anzeigen lassen, indem er aus der tabellarischen Auflistung eine gewünschte Zeile markiert und im Kontextmenü nach einem Rechtsklick den Befehl als Filter verwenden beziehungsweise Apply as Filter nutzt.
Im Zusammenhang mit Sniffern fällt häufig der Ausdruck Dissektor. Normalerweise identifiziert Wireshark die Pakete im Datenstrom anhand der Standardportnummer. Fehlen die in der Spalte Info üblichen Details für das Protokoll, könnte es sich um eine verborgene Kommunikation über andersartig genutzte Ports handeln. Um solche Tricks zu erkennen, braucht es viel Erfahrung. In Wireshark kann der Administrator mit Decode as ohne viel Aufwand das Programm dazu bringen, die protokollierte Datenmenge nach einem anderen Protokolltyp zu interpretieren.
Für kurze Mitschnitte reicht der Standardaufruf gänzlich aus und schon eine Minute Datenverkehr offenbart sehr viel über das Netzwerk. Für eine längere Protokollierung muss sich der Administrator überlegen, welche Daten speziell von Interesse sind und auch nur diese mitschneiden. Hierzu gibt es die bereits erwähnten Capture Filters. In den Optionen im Menü Capture findet der IT-Profi zudem Möglichkeiten, um das Verhalten beim Mitschneiden zu steuern – wie die Beendigung nach einer bestimmten Datenmenge oder das direkte Speichern in Dateien.
Mitschnitt analysieren
Protokolliert der Administrator den Netzwerkverkehr, um sich ein Bild über die aktuelle Kommunikation zu machen, ist das Menü Statistics von Wireshark besonders interessant. Ganz unten in der Liste der Befehle gibt es die Auswertung IP v4 Statistics mit deren Hilfe per Mausklick ersichtlich ist, welche Netzwerkteilnehmer in welchem Umfang kommunizieren.
Geht es darum, herauszufinden, welche Kommunikationspartner miteinander Daten austauschen, sind die Statistiken Endpoints und Conversations nützlich. Im Abschnitt Ethernet greift die Option Name resolution unten links im Fenster. Wird das Häkchen entfernt, zeigt die Software die MAC-Adresse des Kommunikationspartners direkt an.
In den Registerkarten UDP und TCP erscheint die Schaltfläche Follow Stream – zu Deutsch den Datenstrom nachverfolgen. Klickt der Benutzer mit der rechten Maustaste auf eine der dargestellten Unterhaltungen und wählt die Funktionen Apply as Filter oder Prepare A Filter, wird die Ansicht auf die Kommunikation zwischen diesen beiden Kommunikationspartnern beschränkt. Im Gegensatz zum herkömmlichen Anzeigefilter kann der IT-Profi hier auch noch die Kommunikationsrichtung angeben. Die Einträge A und B stehen hier stellvertretend für die beiden Gesprächspartner.
Anomalien entdecken
Veränderungen im Netzwerkverkehr zu identifizieren ist keine leichte Aufgabe und ohne die vorherige Feststellung, wie denn die Normalität überhaupt aussieht, wird es für den Netzwerkverantwortlichen schwierig. Einen sprunghaften Anstieg von DNS-Anfragen kann der Administrator nur dann identifizieren, sofern er überhaupt weiß, wie hoch denn das übliche Maß von Namensauflösungen ist.
Wie es der sprichwörtliche Teufel jedoch will, kommen Tools wie Wireshark häufig erst dann zum Einsatz, sofern es einen Missstand gibt, den es zu aufzuklären gilt. Praktischerweise lassen sich die Traces, so heißen die Mitschnittdateien, speichern und zu einem späteren Zeitpunkt noch analysieren. Vielleicht war ein IT-Profi so geistesgegenwärtig und hat während der Problemphase einen Mitschnitt erzeugt.
Zur akuten Anwendung hilft nur viel Erfahrung und die versteckte Expert Information-Funktion in Wireshark im Menü Analyze. Die Entwickler der Software haben hier einige typische Fehler wie Checksumme ungültig, Paketreihenfolge ungültig, Fehlercode wie http 404 oder Abweichungen von den üblichen Protokolleigenschaften aufbereitet und in der Liste wird angezeigt, welche von diesen Problemen als Anomalie im Mitschnitt entdeckt wurden. Mit einem Klick landet der Administrator in der Detailansicht zum Paket.
Das erschnüffelte Passwort
Kein Beitrag über einen Sniffer darf ohne das berühmte heimlich mitgeschnittene Passwort enden – wir werden hier keine Ausnahme machen. Fakt ist jedoch, dass moderne Protokolle für die Kommunikation eine Verschlüsselung nutzen, die ohne zusätzliche Aufwände nicht ausgehebelt werden kann.
Selbst einfache HTTP-Verbindungen sind zunehmend unüblich und die HTTPS-Kommunikation ist eher der Standard. Nur wenn alte und bekanntermaßen unsichere Protokolle zum Einsatz kommen, ist es für den einfachen Wireshark-Anwender möglich, im Datenstrom nach password oder login zu fahnden und ein Passwort festzustellen. FTP oder POP3 wären zwei klassische unsichere Vertreter.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+, Xing und Facebook!