Revolutionieren Sie Ihre Netzwerkanalyse mit Brim
Wireshark hat sich als führendes Werkzeug für die Analyse des Netzwerkverkehrs etabliert. Allerdings kann die Performance bei der Verarbeitung großer Mengen von Datenpaketen deutlich abnehmen. Brim adressiert dieses Problem und wird Ihren Wireshark-Workflow grundlegend verändern.
Wireshark ist unentbehrlich, aber…
Wireshark ist eine herausragende Open-Source-Anwendung, die von Netzwerkexperten und -enthusiasten weltweit zur Fehlerbehebung eingesetzt wird. Es zeichnet Datenpakete auf, die in Ihrem Netzwerk übertragen werden. Die Software bietet anschließend vielfältige Analysemöglichkeiten, darunter das Filtern und Durchsuchen von Daten, die Verfolgung von Verbindungen und vieles mehr.
Trotz seiner Stärken hat Wireshark Schwierigkeiten, wenn es um große Netzwerkmitschnittdateien (auch bekannt als Traces oder PCAPs) geht. Insbesondere bei komplexen, sporadischen oder umfangreichen Netzwerken können solche Dateien schnell sehr groß werden.
Je größer die PCAP-Datei, desto langsamer arbeitet Wireshark. Allein das Öffnen und Laden einer großen Trace-Datei (ab 1 GB) kann so lange dauern, dass man den Eindruck gewinnen könnte, Wireshark sei abgestürzt.
Die Arbeit mit derartigen Dateigrößen ist ein echtes Problem. Jede Suche oder Filteränderung erfordert Wartezeiten, bis die Auswirkungen auf die Daten angewendet und auf dem Bildschirm dargestellt werden. Diese Verzögerungen beeinträchtigen Ihre Konzentration und behindern Ihren Arbeitsfortschritt.
Brim ist die Lösung für diese Herausforderungen. Es fungiert als interaktiver Präprozessor und Frontend für Wireshark. Benötigen Sie die detaillierte Paketansicht, die Wireshark bietet, öffnet Brim diese sofort für die relevanten Pakete.
Wenn Sie häufig Netzwerkmitschnitte analysieren, wird Brim Ihre Arbeitsweise revolutionieren.
Installation von Brim
Brim ist eine relativ neue Anwendung und daher noch nicht in den Software-Repositories der meisten Linux-Distributionen enthalten. Auf der Brim-Download-Seite finden Sie jedoch DEB- und RPM-Paketdateien, wodurch die Installation unter Ubuntu oder Fedora unkompliziert ist.
Für andere Distributionen steht der Quellcode auf GitHub zur Verfügung, sodass Sie die Anwendung selbst kompilieren können.
Brim verwendet zq, ein Befehlszeilenwerkzeug für Zeek-Logs. Daher müssen Sie auch eine ZIP-Datei mit den zq-Binärdateien herunterladen.
Brim unter Ubuntu installieren
Für Ubuntu benötigen Sie die DEB-Paketdatei und die zq Linux-ZIP-Datei. Ein Doppelklick auf die DEB-Datei öffnet die Ubuntu Software-Anwendung. Die Brim-Lizenz wird fälschlicherweise als proprietär angezeigt, obwohl sie unter der BSD 3-Klausel-Lizenz steht.
Klicken Sie auf „Installieren“.
Nach der Installation doppelklicken Sie auf die zq-ZIP-Datei, um den Archivmanager zu starten. Die ZIP-Datei enthält ein Verzeichnis, das Sie per Drag-and-Drop beispielsweise in Ihr Download-Verzeichnis ziehen können.
Um ein Verzeichnis für die zq-Binärdateien zu erstellen, geben Sie Folgendes ein:
sudo mkdir /opt/zeek
Kopieren Sie die Binärdateien aus dem extrahierten Verzeichnis in das neu erstellte Verzeichnis. Ersetzen Sie den Pfad und den Namen des extrahierten Verzeichnisses in Ihrem System:
sudo cp Downloads/zq-v0.20.0.linux-amd64/* /opt/Zeek
Fügen Sie diesen Speicherort zum Pfad hinzu, indem Sie die BASHRC-Datei bearbeiten:
sudo gedit .bashrc
Fügen Sie am Ende der Datei die folgende Zeile hinzu:
export PATH=$PATH:/opt/zeek
Speichern Sie die Änderungen und schließen Sie den Editor.
Brim unter Fedora installieren
Um Brim auf Fedora zu installieren, laden Sie die RPM-Paketdatei herunter (anstatt der DEB-Datei) und folgen Sie den gleichen Schritten wie bei der Ubuntu-Installation. Die RPM-Datei wird in Fedora korrekt als Open-Source-Lizenz erkannt.
Brim starten
Klicken Sie im Dock auf „Anwendungen anzeigen“ oder drücken Sie Super+A. Geben Sie „brim“ in das Suchfeld ein und klicken Sie auf das Brim-Symbol.
Brim startet und zeigt sein Hauptfenster an. Sie können auf „Dateien auswählen“ klicken, um den Dateibrowser zu öffnen oder eine PCAP-Datei per Drag-and-Drop in den roten Bereich ziehen.
Brim verwendet eine Registerkartenansicht, so dass Sie mehrere Tabs gleichzeitig geöffnet haben können. Um einen neuen Tab zu öffnen, klicken Sie auf das Pluszeichen (+) und wählen eine andere PCAP-Datei aus.
Grundlagen von Brim
Brim lädt die ausgewählte Datei und erstellt einen Index, was die Geschwindigkeit der Analyse erhöht. Das Hauptfenster zeigt ein Histogramm der Paketvolumina im Zeitverlauf und eine Liste der Netzwerk-Flows.
Eine PCAP-Datei enthält einen zeitlich sortierten Strom von Datenpaketen verschiedener Netzwerkverbindungen. Diese Pakete sind vermischt, da einige Verbindungen gleichzeitig aktiv sind. Die Pakete jeder Netzwerk“konversation“ werden mit denen anderer Konversationen vermischt.
Während Wireshark den Datenstrom Paket für Paket anzeigt, verwendet Brim das Konzept der „Flows“. Ein Flow ist ein kompletter Netzwerkaustausch (oder eine Konversation) zwischen zwei Geräten. Jeder Flow-Typ ist kategorisiert, farbcodiert und mit dem entsprechenden Flow-Typ beschriftet. Häufige Flow-Typen sind beispielsweise „dns“, „ssh“, „https“ und „ssl“.
Durch horizontales Scrollen werden weitere Spalten angezeigt. Sie können den angezeigten Zeitraum auch anpassen. Daten können wie folgt angezeigt werden:
- Klicken Sie auf einen Balken im Histogramm, um die zugehörige Netzwerkaktivität zu vergrößern.
- Klicken und ziehen Sie, um einen Bereich im Histogramm hervorzuheben und hineinzuzoomen. Brim zeigt dann die Daten dieses Ausschnitts.
- Sie können auch exakte Zeiträume in den Feldern „Datum“ und „Uhrzeit“ definieren.
Brim zeigt zwei Seitenbereiche an: einen auf der linken und einen auf der rechten Seite. Diese können ein- oder ausgeblendet werden. Der linke Bereich zeigt den Suchverlauf und eine Liste der offenen PCAPs (Spaces). Drücken Sie Strg+[ um die linke Seite ein- oder auszublenden.
Der rechte Bereich enthält detaillierte Informationen über den ausgewählten Flow. Drücken Sie Strg+] um den rechten Bereich ein- oder auszublenden.
Klicken Sie in der „UID-Korrelation“ auf „Conn“, um ein Verbindungsdiagramm für den ausgewählten Flow zu öffnen.
Sie können einen Flow markieren und dann auf das Wireshark-Symbol klicken, um Wireshark mit den Paketen dieses Flows zu starten.
Wireshark öffnet sich und zeigt die entsprechenden Pakete an.
Filtern in Brim
Das Suchen und Filtern in Brim ist flexibel und umfassend. Sie müssen keine neue Filtersprache lernen, um syntaktisch korrekte Filter zu erstellen, da Sie über das Kontextmenü Felder auswählen können.
Wenn Sie beispielsweise mit der rechten Maustaste auf ein „dns“-Feld klicken, können Sie „Filter = Wert“ aus dem Kontextmenü wählen.
Dies führt zu folgenden Aktionen:
- Der Suchleiste wird der Text
_path = "dns"
hinzugefügt. - Dieser Filter wird angewendet, sodass nur DNS-Flows angezeigt werden.
- Der Filtertext wird dem Suchverlauf im linken Bereich hinzugefügt.
Mit der gleichen Technik können Sie der Suchanfrage weitere Klauseln hinzufügen. Wenn Sie mit der rechten Maustaste auf das IP-Adressfeld (z. B. „192.168.1.26“) in der Spalte „Id.orig_h“ klicken und „Filter = Wert“ wählen, wird diese zusätzliche Klausel als UND-Klausel hinzugefügt. Die Anzeige ist nun auf DNS-Flows gefiltert, die von dieser IP-Adresse stammen (192.168.1.26).
Der neue Filter wird dem Suchverlauf im linken Bereich hinzugefügt. Sie können zwischen Suchen wechseln, indem Sie auf die Einträge in der Suchverlaufsliste klicken.
Die Ziel-IP-Adresse für die meisten gefilterten Daten ist „81.139.56.100“. Um die DNS-Flows anzuzeigen, die an andere IP-Adressen gesendet wurden, klicken Sie mit der rechten Maustaste auf „81.139.56.100“ in der Spalte „Id_resp_h“ und wählen im Kontextmenü „Filter != Value“.
Es wird nun nur noch der DNS-Flow angezeigt, der nicht an „81.139.56.100“ gesendet wurde.
Filterklauseln fixieren
Klicken Sie mit der rechten Maustaste auf einen „HTTP“-Flow und wählen Sie „Filter = Value“ aus dem Kontextmenü, um nur HTTP-Flows anzuzeigen. Sie können dann das Pin-Symbol neben der HTTP-Filterklausel klicken.
Die HTTP-Klausel ist nun fixiert und alle anderen Filter werden mit der vorangestellten HTTP-Klausel ausgeführt. Wenn Sie „GET“ in die Suchleiste eingeben, wird die Suche auf Flows beschränkt, die bereits durch die fixierte Klausel gefiltert wurden. Sie können beliebig viele Filterklauseln anheften.
Um nach POST-Paketen in den HTTP-Flows zu suchen, löschen Sie den Suchbegriff und geben „POST“ ein.
Durch horizontales Scrollen wird die ID des Remote-Hosts angezeigt.
Alle Such- und Filterbegriffe werden dem Verlauf hinzugefügt. Um einen Filter erneut anzuwenden, klicken Sie einfach darauf.
Sie können auch anhand des Namens nach einem Remote-Host suchen.
Suchbegriffe bearbeiten
Wenn Sie nach etwas suchen, aber keinen entsprechenden Flow sehen, können Sie einen beliebigen Flow auswählen und den Eintrag in der Suchleiste bearbeiten. Wenn Sie zum Beispiel wissen, dass in einer PCAP-Datei ein SSH-Flow sein müsste, weil Sie rsync verwendet haben, aber dieser nicht angezeigt wird, können Sie das Problem wie folgt angehen:
Klicken Sie mit der rechten Maustaste auf einen anderen Flow, wählen „Filter = Value“ und ändern dann die Suchleiste von „dns“ zu „ssh“.
Nach dem Drücken der Eingabetaste wird der SSH-Flow gefunden.
Durch Drücken von Strg+] wird der rechte Bereich geöffnet, in dem die Details für den Flow angezeigt werden. Wenn während eines Flows eine Datei übertragen wurde, werden die MD5-, SHA1– und SHA256-Hashes angezeigt.
Klicken Sie mit der rechten Maustaste auf einen Hash und wählen Sie „VirusTotal Lookup“, um die VirusTotal-Website aufzurufen, die den Hash auf bekannte Malware überprüft.
Wenn die Datei gutartig ist, sehen Sie den folgenden Bildschirm.
Die perfekte Ergänzung zu Wireshark
Brim macht die Arbeit mit Wireshark schneller und einfacher, insbesondere bei der Analyse sehr großer Paketerfassungsdateien. Probieren Sie es aus!