Transformujte svůj Wireshark Workflow s Brim na Linuxu

Analýza síťového provozu je s aplikací Wireshark v podstatě standardem. Nicméně, s narůstajícím objemem zachycených paketů, Wireshark bohužel začíná zaostávat. Nástroj Brim přichází s řešením, které může zásadně změnit váš pracovní postup s Wiresharkem.

Wireshark je skvělý, ale…

Wireshark je vynikající open-source nástroj, který používají jak amatéři, tak profesionálové po celém světě k řešení problémů se sítěmi. Dokáže zachytávat datové pakety putující sítí. S tímto zachyceným provozem pak Wireshark umožňuje filtrovat a prohledávat data, sledovat komunikaci mezi zařízeními a mnoho dalšího.

Přestože je Wireshark velmi užitečný, má jeden zásadní problém. Soubory se zachycenými síťovými daty (tzv. trasování sítě nebo zachycení paketů) mohou být velmi rozsáhlé, a to velmi rychle. Obzvláště to platí v případech, kdy se pokoušíte řešit komplikovaný nebo sporadický problém, nebo když pracujete s velkou a vytíženou sítí.

S narůstající velikostí zachycení paketů (neboli PCAP souborů) se Wireshark stává pomalejším. Už pouhé otevření a načtení velmi velkého trasování (cokoli nad 1 GB) může trvat tak dlouho, že se může zdát, že program zamrzl a přestal reagovat.

Práce s takto velkými soubory je frustrující. Při každém vyhledávání nebo změně filtru musíte dlouho čekat, než se změny promítnou do dat a zobrazí na obrazovce. Každé takové zpoždění narušuje vaši koncentraci a zpomaluje vaši práci.

Brim přináší řešení těchto problémů. Funguje jako interaktivní předzpracovatel a front-end pro Wireshark. Pokud chcete analyzovat data na detailní úrovni, kterou Wireshark nabízí, Brim vám data okamžitě otevře a zaměří se přesně na ty pakety, které potřebujete.

Pokud často zachytáváte síťový provoz a analyzujete pakety, Brim může zcela změnit váš pracovní postup.

Instalace Brim

Brim je poměrně nový software, takže zatím není dostupný v softwarových repozitářích linuxových distribucí. Na stránce ke stažení Brim však najdete balíčky DEB a RPM, takže instalace na Ubuntu nebo Fedoru je snadná.

Pro jiné distribuce můžete stáhnout zdrojový kód z GitHubu a aplikaci si sestavit sami.

Brim používá zq, nástroj příkazové řádky pro práci s logy Zeek, takže si budete muset stáhnout i ZIP archiv obsahující binární soubory zq.

Instalace Brim na Ubuntu

Pro instalaci na Ubuntu budete muset stáhnout DEB balíček a ZIP archiv zq pro Linux. Po rozkliknutí staženého DEB souboru se otevře Centrum softwaru Ubuntu. Licence Brim je mylně označena jako „Proprietární“ – ve skutečnosti využívá 3-Clause BSD licenci.

Klikněte na tlačítko „Instalovat“.

Po dokončení instalace rozklikněte soubor zq ZIP a spusťte Správce archivu. Soubor ZIP bude obsahovat jeden adresář. Přetáhněte tento adresář ze Správce archivu do umístění ve vašem počítači, například do adresáře „Stažené“.

Dále vytvoříme umístění pro binární soubory zq pomocí následujícího příkazu:

sudo mkdir /opt/zeek

Binární soubory z extrahovaného adresáře překopírujeme do právě vytvořeného umístění. V následujícím příkazu nahraďte cestu a název extrahovaného adresáře na vašem počítači:

sudo cp Downloads/zq-v0.20.0.linux-amd64/* /opt/Zeek

Nyní je potřeba přidat toto umístění do systémové proměnné PATH, takže upravíme soubor BASHRC:

sudo gedit .bashrc

Otevře se editor gedit. Přejděte na konec souboru a vložte následující řádek:

export PATH=$PATH:/opt/zeek

Uložte změny a zavřete editor.

Instalace Brim na Fedoru

Pro instalaci Brim na Fedoru stáhněte RPM balíček (místo DEB) a postupujte stejnými kroky, jako při instalaci na Ubuntu.

Zajímavé je, že při otevření RPM souboru na Fedoře je správně identifikován jako open-source software, nikoli proprietární.

Spuštění Brim

Klikněte na „Zobrazit aplikace“ v doku nebo stiskněte Super+A. Do vyhledávacího pole napište „brim“ a klikněte na ikonu aplikace Brim.

Brim se spustí a zobrazí se hlavní okno. Kliknutím na „Vybrat soubory“ otevřete průzkumníka souborů, nebo přetáhněte PCAP soubor do ohraničené oblasti.

Brim používá systém záložek, takže můžete mít otevřeno více souborů současně. Novou záložku otevřete kliknutím na znaménko plus (+) v horní části a poté vyberte další PCAP soubor.

Základy práce s Brim

Brim načte a indexuje vybraný soubor. Indexování je jedním z důvodů, proč je Brim tak rychlý. Hlavní okno zobrazuje histogram objemu paketů v čase a seznam síťových „toků“.

PCAP soubor obsahuje časově uspořádaný proud síťových paketů pro různé síťové komunikace. Datové pakety pro různé spojení se prolínají, protože některá spojení probíhají současně. Pakety pro každou síťovou „konverzaci“ se tedy střídají s pakety z jiných konverzací.

Zatímco Wireshark zobrazuje síťový stream paket po paketu, Brim používá koncept „toků“. Tok je celá síťová výměna (nebo konverzace) mezi dvěma zařízeními. Každý typ toku je kategorizován, barevně označen a popsán svým typem. Uvidíte toky s označením „dns“, „ssh“, „https“, „ssl“ a mnoho dalších.

Posouváním zobrazení shrnutí toků doleva nebo doprava zobrazíte další sloupce. Můžete také upravit časové období, pro zobrazení podmnožiny informací. Zde je několik způsobů zobrazení dat:

  • Kliknutím na sloupec v histogramu přiblížíte síťovou aktivitu v daném časovém úseku.
  • Kliknutím a tažením myší označíte oblast histogramu a přiblížíte ji. Brim poté zobrazí data z vybrané části.
  • Můžete zadat přesné časové období v polích „Datum“ a „Čas“.

Brim může zobrazovat dva boční panely: jeden vlevo a jeden vpravo. Tyto panely lze skrýt nebo nechat zobrazené. Levý panel zobrazuje historii hledání a seznam otevřených PCAP souborů, tzv. „prostorů“. Stisknutím kláves Ctrl+[ zapnete nebo vypnete levý panel.

Pravý panel obsahuje detailní informace o vybraném toku. Stisknutím Ctrl+] zapnete nebo vypnete pravý panel.

Kliknutím na „Conn“ v seznamu „UID Correlation“ otevřete schéma spojení pro vybraný tok.

V hlavním okně můžete také vybrat tok a poté kliknout na ikonu Wireshark. Tím se spustí Wireshark a zobrazí se pakety pro vybraný tok.

Wireshark se otevře a zobrazí relevantní pakety.

Filtrování v Brim

Vyhledávání a filtrování v Brim je flexibilní a komplexní, ale nemusíte se učit nový filtrační jazyk, pokud nechcete. Syntakticky správný filtr můžete vytvořit kliknutím na pole v okně shrnutí a následným výběrem možností z kontextového menu.

Například, na obrázku níže, jsme klikli pravým tlačítkem na pole „dns“. Následně jsme z kontextového menu vybrali „Filtr = Hodnota“.

Poté se stane následující:

  • Do vyhledávacího pole se přidá text _path = „dns“.
  • Filtr se aplikuje na PCAP soubor a zobrazí se pouze DNS toky (Domain Name Service).
  • Text filtru se také přidá do historie hledání v levém panelu.

Stejnou technikou můžeme přidat do vyhledávání další podmínky. Klikneme pravým tlačítkem na pole IP adresy (např. „192.168.1.26“) ve sloupci „Id.orig_h“ a z kontextového menu vybereme „Filtr = Hodnota“.

Tím se přidá další podmínka, která se spojí s předchozí pomocí logické spojky AND. Zobrazí se pouze DNS toky, které pocházejí ze zadané IP adresy (192.168.1.26).

Nový filtrační výraz se přidá do historie hledání v levém panelu. Mezi jednotlivými hledáními můžete přepínat kliknutím na položky v historii.

Cílová IP adresa většiny filtrovaných dat je 81.139.56.100. Pro zobrazení DNS toků, které nebyly odeslány na tuto adresu, klikněte pravým tlačítkem na „81.139.56.100“ ve sloupci „Id_resp_h“ a zvolte z kontextového menu „Filtr != Hodnota“.

Výsledkem je jediný DNS tok, který pocházel z IP 192.168.1.26 a nebyl odeslán na IP 81.139.56.100. To vše jsme dokázali najít bez nutnosti zadávat jediný znak do filtru.

Připínání filtračních klauzulí

Když klikneme pravým tlačítkem na tok „HTTP“ a vybereme „Filtr = Hodnota“, v okně shrnutí se zobrazí pouze HTTP toky. Poté můžeme kliknout na ikonu špendlíku u filtru HTTP.

Filtrační klauzule HTTP se tímto „připne“ na místo. Jakékoli další filtry nebo hledané výrazy, které použijeme, se budou vztahovat jen k výsledkům filtrovaným již připnutou klauzulí HTTP.

Pokud do vyhledávacího pole napíšeme „GET“, hledání se omezí na HTTP toky, které již byly filtrovány. Připnout můžete libovolný počet filtračních klauzulí.

Pro vyhledání POST paketů v HTTP tocích, stačí vymazat vyhledávací panel, napsat „POST“ a stisknout Enter.

Posunutím do strany zobrazíte ID vzdáleného hostitele.

Všechny hledané a filtrované výrazy se přidávají do seznamu „Historie“. Pokud chcete filtr znovu použít, stačí na něj kliknout.

Můžete také vyhledávat vzdáleného hostitele podle názvu.

Úprava hledaných výrazů

Pokud chcete vyhledat něco, co nevidíte mezi toky, můžete kliknout na libovolný tok a upravit text ve vyhledávacím poli.

Například, víme, že v PCAP souboru musí být alespoň jeden SSH tok, protože jsme použili rsync pro odeslání souborů na jiný počítač, ale tok není vidět.

Klikneme tedy pravým tlačítkem na jiný tok, z kontextového menu vybereme „Filtr = Hodnota“ a poté v panelu úprav změníme „dns“ na „ssh“.

Stisknutím klávesy Enter vyhledáme SSH toky a zjistíme, že je tam skutečně jen jeden.

Stisknutím Ctrl+] otevřeme pravý panel, který zobrazuje detaily o toku. Pokud byl během toku přenesen soubor, zobrazí se jeho hash (MD5, SHA1 a SHA256).

Klikněte pravým tlačítkem na hash a z kontextového menu vyberte možnost „VirusTotal Lookup“. Otevře se prohlížeč se stránkou VirusTotal a hash se předá ke kontrole.

VirusTotal ukládá hashe známého malwaru a dalších škodlivých souborů. Pokud si nejste jisti, zda je soubor bezpečný, je to jednoduchý způsob, jak to ověřit, i když již k souboru nemáte přímý přístup.

Pokud je soubor neškodný, zobrazí se obrazovka podobná té na obrázku níže.

Perfektní doplněk k Wiresharku

Brim zrychluje a usnadňuje práci s Wiresharkem, zejména pokud pracujete s velmi velkými soubory zachycených paketů. Určitě ho vyzkoušejte!