Oleksii - stock.adobe.com
Darkstat: Einstieg mit dem kostenlosen Netzwerk-Sniffer
Darkstat bietet eine schnelle und einfache Möglichkeit, den Netzwerktransfer zu analysieren, um herauszufinden, welche Station im Netzwerk die meiste Kommunikation erzeugt.
Sniffer-Lösungen gibt es eine ganze Menge und nicht selten sind Netzwerkadministratoren auf ihre Informationen angewiesen. Das Herumschnüffeln im Netzwerk hat stets etwas Verruchtes an sich – derjenige, der die Technik einsetzt, so könnte der Eindruck entstehen, unternimmt etwas nicht ganz Legales.
Streng genommen ist ein Sniffer jedoch nichts weiter als eine Software, die den Datenverkehr zu überprüfen vermag, also ein Netzwerkanalyse-Werkzeug, deren bekanntester Vertreter Wireshark, früherer Name Etherreal ist. Wireshark ist eine mächtige Software, die für verschiedene Plattform verfügbar ist und genügend Funktionen und Schalter für eine mehrwöchige Ausbildung bietet.
In diesem Beitrag möchten wir uns einen ganz kleinen Vertreter der Gattung Sniffer anschauen und zwar Darkstat von Emil Mikulic. Die Besonderheit von Darkstat liegt darin, dass der Paket-Sniffer mit nur geringem Overhead im Hintergrund arbeiten kann, Daten sammelt und auswertet und diese über einen integrierten HTTP-Server darstellt. Da der Webservice auch von anderen Computern im Netzwerk erreichbar ist, können Administratoren ganz einfach das Netzwerk von verschiedenen Messpunkten aus betrachten, ohne dass sie hierfür einen größeren Aufwand betreiben müssten.
Das Tool basiert auf libpcap und ist auf verschiedenen Unix-artigen Betriebssystem lauffähig. Hinsichtlich der Lizenz wird das Projekt seit 2002 unter GPLv2 veröffentlicht. Die Installation auf der weit verbreiteten Debian/Ubuntu-Distribution ist mit wenigen Kommandos erledigt. In einem Terminal gilt es mit sudo apt-get install libpcap-dev eine freie Programmierschnittstelle für das Mitschneiden des Netzwerkverkehrs zu installieren. Nicht nur Darkstat setzt auf der libpcap auf, sondern auch Wireshark, ngrep, Snort oder Captcp. Sollte bereits ein anderer Installationsvorgang auf der Maschine aktiv sein, endet das Kommando mit einer Fehlermeldung, ansonsten schließt die Einrichtung mit Done!. Direkt im Anschluss kann der Administrator mit sudo apt-get install darkstat Darkstat selbst installieren – auch dieser Vorgang endet mit Done!, sofern alles fehlerfrei verläuft. Schon jetzt ließe sich die Software bei Bedarf nutzen. Soll Darkstat automatisch mit dem Betriebssystem starten, gilt es noch die dazugehörige init.cfg zu editieren. Dies geschieht mithilfe des Befehls:
sudo nano /etc/darkstat/init.cfg
Die auskommentierten Einträge für DIR, PORT, BINDIP und LOCAL gilt es zu entfernen und unter INTERFACE die Capture-NIC auszuwählen, die der Administrator über ifconfig bei Bedarf ermitteln kann. In unseren Testinstallationen war es stets ens33. Sofern eine Änderung in der init.cfg vorgenommen wurde, muss das Darkstat-Paket über sudo /etc/init.d/darkstat restart durch den Benutzer neu gestartet werden.
Der obige Ablauf ist unter Fedora weitgehend identisch, anstelle apt kommt yum zum Einsatz:
sudo yum install darkstat
Etwas anders verläuft der Einrichtungsvorgang unter macOS X. Im Terminal-Fenster ist durch den Administrator
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
einzugeben und anschließend mit brew install darkstat die eigentliche Installation durchzuführen. Es existiert im Internet eine ältere Windows-Variante aus dem Jahr 2007 auf Basis von WinPCAP, deren Einsatz mit Blick auf das Alter und dem Hinweis „Ugly Hack“ kaum zu empfehlen ist.
Geöffnet wird die interne Darkstat-Webseite im Browser unter der Adresse http://{IP-Adresse}:{Port-Adresse}. Begrüßt wird der Benutzer durch die grafische Darstellung der Durchsätze der vergangenen Sekunden, Minuten, Stunden und Tage. Im Kopfbereich zeigt das Programm die Gesamtlaufzeit der Software, die Gesamtzahl und den Byte-Umfang der protokollierten Pakete an.
Detaillierter ist das Fenster hosts mit einer tabellarischen Darstellung von IP-Adresse, Hostname, MAC-Adresse, ein- und ausgehenden Bytes und der Information, wann der Host zuletzt entdeckt wurde. Durch einen Klick in der Zeile mit der Tabellenüberschrift erwirkt der Benutzer eine entsprechende Sortierung.
Ein Blick in die Man-Page von Darkstat offenbart eine große Anzahl von Parametern, mit denen der Administrator die Analyse nach seinen Wünschen anpassen könnte. Ausgedruckt liefert das Manual mehr als zehn Seiten, daher wollen wir uns an dieser Stelle auf die wichtigsten Funktionen beschränken.
darkstat [ -i interface ] [ -r file ] [ --snaplen bytes ] [ --pppoe ] [ --syslog ] [ --verbose ] [ --no-daemon ] [ --no-promisc ] [ --no-dns] [ --no-macs ] [ --no-lastseen ] [ -p port ] [ -b bindaddr ] [ --basepath ] [ -f filter ] [ -l network/netmask ] [ --local-only ] [--chroot dir ] [ --user username ] [ --daylog filename ] [ --import filename ] [ --export filename ] [ --pidfile filename ] [ --hosts-maxcount ] [ --hosts-keep count ] [ --ports-max count ] [ --ports-keepcount ] [ --highest-port port ] [ --wait secs ] [ --hexdump ]
Interface: Die Option -i ist die einzig verpflichtende Angabe für Darkstat.
Eingabedatei: Mit Hilfe der Option -r hat der Administrator die Möglichkeit, anstelle einer Live-Analyse auf eine im Vorfeld gespeicherte pcap-Datei zuzugreifen. Besonders hilfreich ist die Funktion in Entwicklungs- oder Benchmark-Umgebungen.
Unterdrücke Promisous-Mode: Wird Darkstat mit dem Schalter --no-promisc gestartet, unterbleibt der Wechsel in die Mitprotokollierungsfunktion. Befand sich die NIC bereits in dem Modus oder wird nachträglich in diese Betriebsform versetzt, hat dieser Schalter von Darkstat hierauf keinen Einfluss.
Deaktiviere Namensauflösung: Über den Schalter --no-dns versetzt der IT-Profi die Software in einen Modus, in der die Namensauflösung per DNS unterbleibt. Auf leistungsschwachen Systemen kann dies zu einer deutlichen Senkung des Speicher- und CPU-Bedarfs führen. Der Schalter --no-macs unterdrückt die Anzeige der MAC-Adresse in der Tabellenansicht, jedoch ohne nennenswerte positive Auswirkung auf die CPU/RAM-Auslastung.
Definiere Port-Nummer: Über den Schalter -p legt der Anwender den Port des integrierten Webservers fest. Der Standardwert ist 667.
Die Adressbindung definieren Administratoren mithilfe des Schalters -b gefolgt von der Adresse. Ohne die Angabe des Schalters reagiert der Webserver auf alle Interfaces.
Logfile-Speicher: Über den Schalter --daylog {Dateiname} können IT-Profis eine tägliche Sicherung der Auswertung veranlassen. Der Ablageort ist relativ zum Verzeichnis, das mit --chroot festgelegt wurde. Der Pfad muss existieren und für den Darkstat-Benutzer beschreibbar sein. Grundsätzlich könnte ein änderbares chroot ein Sicherheitsrisiko darstellen. Im Zweifelsfall sollte der Administrator auf die Speicherung der täglichen Logs verzichten. Wurde kein --daylog definiert, speichert Darkstat keine Logging-Informationen.
Die höchste Port-Nummer, die Darkstat im Zuge des Sniffings ermittelt, definiert der Administrator über den Schalter --highest-port. Übersteigt der erfasste Wert die hier festgelegte Einstellung, ignoriert Darkstat diesen Netzwerkverkehr.
Darkstat gibt Administratoren und IT-Profis einen schnellen und unkomplizierten Überblick über die im Netzwerk verwendeten Protokolle, Quell- und Zielinformationen und Berechnung der gesendeten und empfangenen Datenmenge. Andere Sniffer-Lösungen bieten die Möglichkeit des direkten Zugriffs auf den Datenstrom selbst – diese Möglichkeit gibt es bei Darkstat nicht. Dieser auf den ersten Blick vermeintliche Mangel entpuppt sich bei näherer Betrachtung als Vorteil, denn nur so ist zu erklären, dass es das Tool selbst für fertige NAS-Lösungen, beispielsweise aus dem Hause Synology, zur Installation per Download gibt. Eine schnellere Möglichkeit, Traffic-Sünder auszumachen, dürfte es kaum geben. Aus Gründen der Vollständigkeit empfiehlt sich ein Blick in die Dokumentation von tcpdump. Die offizielle Webseite von Darkstat ist unter https://unix4lyfe.org/darkstat/ zu erreichen.