Vaše síť představuje základní pilíř vašeho podnikání. Je proto klíčové mít přehled o dění v jejím nitru.
Digitální podnikové prostředí prošlo v posledních letech zásadními proměnami. Jednoduché CGI skripty v Perlu se vyvinuly do komplexních clusterových nasazení, která automatizovaně běží na Kubernetes a podobných platformách. Omlouvám se za technický žargon, ale taková je realita moderního IT.
Přesto si uvědomuji, že samotné základy zůstávají nezměněny od 70. let.
Vše, co máme k dispozici, jsou abstrakce nad abstrakcemi. Tyto abstrakce jsou podporovány fyzickými kabely, které tvoří síť. (Dobře, existují i virtuální sítě, ale koncept zůstává stejný.) Pokud chceme být detailní, můžeme síť rozdělit do vrstev dle modelu OSI. Nicméně ve finále vždy jde o TCP/IP protokoly, pingy, směrovače – všechny tyto prvky se podílejí na přenosu datových paketů.
Co je tedy síťový paket?
Ať už si píšeme, streamujeme video, hrajeme hry nebo nakupujeme online, v podstatě jde o výměnu datových paketů mezi dvěma počítači (nebo sítěmi). Paket je nejmenší jednotka informace, která proudí v síti (nebo mezi sítěmi). Existuje přesně definovaný proces vytváření a ověřování síťových paketů, ale to je nad rámec tohoto článku. Pro zájemce doporučuji více informací.
Jednoduše řečeno, každý paket je článkem řetězce, který se přenáší ze zdroje a je ověřen v cíli. Pokud jeden paket dorazí s chybou, proces se zastaví, dokud nebudou přijaty všechny pakety ve správném pořadí. Teprve poté jsou pakety složeny do původních dat, jako je například obrázek.
Nyní, když rozumíme, co je síť, začínáme chápat, co dělá síťový analyzátor. Je to nástroj, který vám umožňuje podrobně analyzovat jednotlivé pakety ve vaší síti.
Ale proč se s tím vůbec obtěžovat? Pojďme si to rozebrat.
Proč potřebujeme analyzovat pakety?
Pakety jsou základními stavebními kameny datového toku v síti, podobně jako atomy jsou základem hmoty. (Ano, vím, že atomy nejsou skutečné základní částice, ale pro naše účely je tato analogie dostačující). Když analyzujeme materiály nebo plyny, nezabýváme se chováním jednotlivého atomu. Proč bychom se tedy měli starat o jeden síťový paket? Co se můžeme dozvědět, co už nevíme?
Je obtížné vysvětlit důležitost analýzy paketů, dokud se vám to nevrátí. Nicméně pokusím se.
Analýza paketů znamená jít do hloubky a získat informace přímo ze zdroje. Obecně je nutné analyzovat síťové pakety, když selže vše ostatní. Zpravidla jde o situace, které se zdají být beznadějné:
- Nevysvětlitelné úniky citlivých dat, i když nedošlo k žádnému zjevnému narušení.
- Diagnostika pomalých aplikací, když se zdá, že vše ostatní je v pořádku.
- Potvrzení, že váš počítač/síť nebyl kompromitován.
- Ověření, zda se útočník neveze na vaší Wi-Fi.
- Zjištění, proč je váš server úzkým hrdlem, i když provoz není vysoký.
Analýza paketů poskytuje konkrétní, nezpochybnitelné důkazy. Znalost analýzy paketů a její využití vám mohou pomoci vyhnout se falešným obviněním z útoku nebo prostě z toho, že jste nekompetentní vývojář či správce sítě.
Pro ilustraci si dovolím citovat komentář z blogového příspěvku, který naleznete zde:
Aplikace, která byla pro moji společnost kriticky důležitá, měla problémy s výkonem a selhávala u zákazníků. Jednalo se o aplikaci pro oceňování akcií, kterou používaly finanční společnosti po celém světě. Pokud jste měli kolem roku 2000 401(k), pravděpodobně jste se na tuto aplikaci spoléhali. Provedl jsem analýzu chování TCP. Zjistil jsem, že problém byl v implementaci TCP dodavatelem operačního systému. Chybou bylo, že když se odesílající zásobník dostal do řízení zahlcení, nikdy se neobnovil. Výsledkem bylo komicky malé okno pro odesílání, někdy jen o velikosti MSS.
Chvíli trvalo, než jsem se domluvil s obchodníky a technickou podporou dodavatele OS. Nechápali problém, mé vysvětlení, ani to, že problém nemohl být v aplikaci. Bylo to jako mluvit do zdi. S každým konferenčním hovorem jsem začínal od začátku. Nakonec jsem se dovolal k vývojáři, s kterým jsem si dokázal promluvit. Ukázalo se, že do zásobníku zavedl rozšíření RFC1323. Druhý den jsem měl opravu a produkt od té chvíle fungoval bezchybně.
Vývojář vysvětlil, že příchozí ACK s datovou částí byly nesprávně považovány za DUPACK, když byl zásobník v kontrole zahlcení.
To by se nikdy nestalo u poloduplexních aplikací, jako je HTTP. Aplikace, kterou jsem řešil, ale posílala data obousměrně na soket po celou dobu.
V té době mě vedení nepodporovalo. Můj manažer na mě dokonce křičel, že „vždy chci řešit problémy pomocí snifferu“. Nikdo kromě mě neviděl implementaci TCP dodavatele OS jako možný zdroj problému. Můj vlastní boj s opravou u dodavatele OS byl obzvláště sladký, získal jsem si respekt a začal jsem se podílet na nejzajímavějších problémech.
Pokud se vám výše uvedený text zdál příliš komplikovaný, tak ve zkratce: tento odborník čelil problémům s výkonem aplikace, z kterých byl viněn. Vedení ho pochopitelně nepodpořilo. Až detailní analýza paketů ukázala, že problém nebyl v aplikaci, ale ve způsobu, jakým operační systém zpracovával síťový protokol!
Oprava spočívala v záplatě od vývojářů operačního systému, nikoliv v úpravě aplikace! 😮
Jak by na tom asi tento člověk byl bez znalostí analýzy paketů? Pravděpodobně by byl bez práce. Pokud vás tento příběh nepřesvědčil o důležitosti analýzy paketů (tzv. packet sniffing), tak už nevím, jak jinak to udělat. 🙂
A teď ta dobrá zpráva: analýza paketů není tak obtížná, jak by se mohlo zdát!
S výkonnými a přitom snadno ovladatelnými nástroji pro sniffing paketů může být získávání informací stejně jednoduché jako čtení popisků. Samozřejmě, potřebujete alespoň základní znalosti o tom, co se v síti děje. Ale nebojte, není to žádná raketová věda, je to jen o zdravém rozumu.
Pokud začnete číst dokumentaci k jednomu z těchto nástrojů, stanete se v brzké době expertem. 😀
Wireshark
Wireshark je projekt s dlouhou historií (začal v roce 1998) a je považován za průmyslový standard v oblasti detailní síťové analýzy. Je působivé, že je to nezisková organizace podporovaná sponzory. Wireshark je open-source projekt (není na GitHubu, ale kód najdete zde). Dokonce má i svou vlastní konferenci!
Mezi mnoha funkcemi Wireshark patří:
- Podpora stovek síťových protokolů.
- Kompatibilita s mnoha formáty souborů (tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (komprimovaný a nekomprimovaný), Sniffer® Pro a NetXray® a další).
- Běží na téměř všech platformách (Linux, Windows, macOS, Solaris, FreeBSD a další).
- Získávání dat v reálném čase z Ethernetu, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring a dalších.
- On-the-fly dekomprese gzip.
- Rozsáhlá podpora dekódování (WPA/WPA2, SNMPv3 a další).
- Pokročilá analýza VoIP.
- Barevné zvýrazňování pro rychlé vizuální skenování.
Doporučuji vám podívat se na tento online kurz, který vás naučí, jak používat Wireshark.
Chcete ovládat Wireshark z příkazové řádky? Vyzkoušejte Termshark.
tcpdump
Pokud jste ze staré školy (tedy hardcore příznivce příkazové řádky), pak je pro vás tcpdump.
Je to jedna z ikonických linuxových utilit (jako například curl). Stále je relevantní a všechny ostatní “lepší” nástroje na ní staví. Nemá grafické uživatelské rozhraní, ale svou funkčností to více než vynahradí.
Jeho instalace ale může být trochu náročnější. Většina moderních linuxových distribucí ho sice má předinstalovaný. Nicméně pokud to není váš případ, budete ho muset zkompilovat ze zdrojového kódu.
Příkazy tcpdump jsou krátké a jednoduché a zaměřují se na konkrétní problém:
- Zobrazení všech dostupných rozhraní.
- Záznam pouze z jednoho rozhraní.
- Uložení zachycených paketů do souboru.
- Záznam pouze paketů s chybou.
…a tak dále.
Pokud jsou vaše požadavky jednoduché a potřebujete provést rychlou kontrolu, tcpdump může být skvělou volbou. (Zvlášť pokud zadáte tcpdump a zjistíte, že už je nainstalovaný!). Prohlédněte si tento článek, kde najdete příklady příkazů tcpdump v praxi.
Tproxy
Tproxy je open-source nástroj příkazové řádky pro TCP proxy v síti. Je napsaný v jazyce Go a je distribuován jako spustitelný soubor, takže je k dispozici pro všechny moderní platformy Linux a macOS.
Obrázek níže ukazuje příklad použití příkazové řádky pro monitorování připojení k databázi MySQL:
Primárním účelem Tproxy je HTTP proxy a kontrola obsahu HTTP požadavků a odpovědí. Lze ho ale použít i pro proxy jiné protokoly, jako je SOCKS nebo TCP. Lze ho použít pro proxy TCP připojení mezi dvěma hostiteli, nebo pro analýzu provozu na živém spojení. Je užitečný pro ladění a testování aplikací, které používají TCP jako transportní protokol a pro vytváření TCP proxy služeb.
Byl vytvořen s cílem poskytnout uživatelsky přívětivé rozhraní příkazové řádky k tcpdump. Uživatelé tak mohou snadno používat TCP proxy a provádět pokročilou síťovou analýzu bez hlubokých znalostí protokolu TCP.
Níže uvedený příklad ukazuje připojení gRPC:
Tproxy funguje jako TCP proxy, díky čemuž se můžete připojovat ke vzdáleným službám a aplikacím, jako byste byli na lokálním počítači. Umožňuje vytvářet vlastní TCP služby na vzdálených hostitelích (reverzní TCP proxy). To přináší výhody v oblasti zabezpečení, řešení problémů a výkonu při práci s aplikacemi, které využívají TCP.
Další použití Tproxy:
- Je užitečný pro ladění a optimalizaci TCP spojení.
- Je také užitečný pro pochopení fungování proxy programů, jako jsou Burp Suite a ZAP.
- Lze jej použít pro proxy TCP připojení mezi dvěma hostiteli, nebo mezi hostitelem a vzdálenou TCP službou, jako je databáze nebo webová služba.
- Monitorujte připojení MySQL a gRPC a zároveň kontrolujte jejich spolehlivost z hlediska rychlosti přenosu a RTT.
Většina uživatelů zjistí, že Tproxy jim zjednodušuje práci a umožňuje jim provádět komplexní síťovou analýzu a analyzovat webové aplikace. Není přitom potřeba měnit samotnou aplikaci nebo síť. Nástroj si můžete stáhnout z GitHubu.
NetworkMiner
NetworkMiner je nástroj pro forenzní analýzu sítí (FNAT). NetworkMiner je jedním z nejlepších analyzátorů paketů, které můžete najít. Jedná se o open-source nástroj, který pasivně analyzuje síť. Poskytuje intuitivní grafické uživatelské rozhraní pro analýzu. Umožňuje zobrazit jednotlivé obrázky a další přenesené soubory.
NetworkMiner nabízí i další užitečné funkce:
- Podpora IPv6.
- Analýza PCAP souborů.
- Extrakce X.509 certifikátů z provozu šifrovaného SSL.
- Pcap-over-IP.
- Pracuje s různými typy provozu, jako je FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3 a další.
- Zjišťování operačního systému.
- Geo IP lokalizace.
- Podpora skriptování z příkazové řádky.
Upozorňuji, že některé funkce jsou dostupné pouze v komerční verzi.
Fiddler
Na rozdíl od jiných pasivních síťových snifferů, Fiddler je jakýsi prostředník mezi vaším zařízením a vnějším světem. Vyžaduje tedy určité nastavení. (Možná proto se jmenuje “Fiddler”?)
Je to bezplatný, vysoce konfigurovatelný nástroj s dlouhou a bohatou historií. Pokud se chcete specializovat na analýzu HTTP/HTTPS provozu, Fiddler je ideální volbou.
S Fiddlerem můžete dělat spoustu věcí, zvlášť pokud máte chuť hrát si na hackera:
- Manipulace se sezeními: můžete zobrazit HTTP hlavičky a data relací, a libovolně je upravovat.
- Testování bezpečnosti: Fiddler umožňuje simulovat útoky typu man-in-the-middle a dešifrovat veškerý HTTPS provoz.
- Testování výkonu: Analyzujte časy načítání stránek (nebo odezvy API) a zjistěte, kde se nachází úzké hrdlo.
Pokud se cítíte ztracení, doporučuji vám prostudovat dokumentaci.
Windump
Pokud vám chybí jednoduchost tcpdump a chcete ho používat ve Windows, je tu pro vás Windump. Po instalaci ho můžete spustit z příkazové řádky zadáním “tcpdump”, stejně jako v Linuxu.
Windump samotný není třeba instalovat. Je to binární soubor, který lze spustit, pokud máte nainstalovanou knihovnu Pcap (npcap se doporučuje, protože winpcap se již nevyvíjí).
BruteShark
BruteShark je výkonný nástroj pro forenzní síťovou analýzu (NFAT). Můžete ho použít pro zpracování a analýzu síťového provozu, jako jsou PCAP soubory. Může provádět záznam přímo ze síťových rozhraní.
Umožňuje rekonstruovat TCP sezení, vytvářet síťové mapy, extrahovat hashe silně zašifrovaných hesel a převádět hashe do formátu Hashcat pro provádění útoků hrubou silou offline.
Hlavním cílem tohoto projektu je pomoci správcům sítí a bezpečnostním expertům při analýze síťového provozu a identifikaci slabých míst.
BruteShark existuje ve dvou verzích: jako aplikace s grafickým uživatelským rozhraním (GUI) pro Windows a jako nástroj CLI pro Linux a Windows. Některé projekty zahrnuté v tomto řešení lze dokonce používat samostatně pro analýzu síťového provozu na počítačích se systémem Windows a Linux.
BruteShark také dokáže provádět různé další operace, například: extrakce DNS dotazů, vyřezávání souborů, extrakce hovorů VoIP (SIP, RTP), vytváření síťových diagramů uživatelů a síťových uzlů, extrahování autentizačních hash pomocí Hashcat (NTLM, HTTP-Digest, CRAM-MD5, Kerberos a další) a získávání a dekódování hesel a uživatelských jmen.
Všechny projekty jsou implementovány prostřednictvím .Net Standard a .Net Core pro multiplatformní a moderní podporu. Toto řešení nabízí třívrstvou architekturu a zahrnuje jeden nebo více projektů na každé vrstvě (PL, BLL a DAL).
Prostřednictvím DAL (Data Access Layer) projekt pomáhá se čtením nezpracovaných souborů PCAP pomocí ovladačů jako WinPcap, libpcap a knihoven obalů jako SharpPcap. BLL (Business Logic Layer) je zodpovědná za analýzu síťových informací (TCP, pakety atd.) a PL využívá průřezový projekt, který odkazuje na obě vrstvy BLL a DAL.
OmniPeek
V případě velkých sítí, kterými každou sekundu protečou obrovské objemy dat, můžou nástroje, které používá většina uživatelů, narazit na své limity. Pokud čelíte této situaci, možná byste měli vyzkoušet OmniPeek.
Jedná se o výkonný nástroj pro analýzu sítí, který vám poskytne funkce pro analýzu na nízké úrovni a komplexní přehledové panely.
Capsa
Pokud vás zajímá pouze platforma Windows, Capsa je dalším solidním kandidátem. Nabízí se ve třech verzích: free (zdarma), standard a enterprise. Každá verze nabízí různé možnosti.
I bezplatná verze podporuje více než 300 protokolů a nabízí užitečné funkce, například výstrahy (které se aktivují při splnění definovaných podmínek). Standardní verze podporuje více než 1000 protokolů a umožňuje analyzovat komunikaci a rekonstruovat toky paketů.
Celkově vzato je to solidní volba pro uživatele Windows.
EtherApe
Pokud hledáte výkonnou vizualizaci dat a open source řešení, EtherApe je skvělá volba. Předpřipravené binární soubory jsou sice k dispozici jen pro pár linuxových distribucí, ale zdrojový kód je dostupný (na SourceForge i GitHubu), takže si ho můžete sami sestavit.
Co dělá EtherApe skvělým?
- Víceuzlové monitorování s barevným odlišením.
- Podpora mnoha formátů paketů, jako jsou ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN a další.
- Záznam dat v reálném čase ze sítě nebo z tcpdump souboru.
- Podpora standardního překladu názvů.
- V nejnovějších verzích bylo GUI přeneseno na GTK3, což vylepšuje uživatelský komfort.
CommView
Pokud používáte výhradně Windows a oceníte prioritní podporu, CommView je dalším doporučením. Jedná se o výkonný analyzátor síťového provozu, který nabízí vestavěné pokročilé funkce, například analýzu VoIP, vzdálené monitorování a další.
Zaujaly mě především možnosti exportovat data do formátů používaných různými open source i proprietárními nástroji (Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump a Wireshark/pcapng), a dokonce i do jednoduchých hexadecimálních výpisů.
Wifi Explorer
Posledním nástrojem na seznamu je Wifi Explorer, který má bezplatnou verzi pro Windows a standardní verzi pro Windows i macOS. Pokud se zabýváte výhradně analýzou WiFi sítí (což je v dnešní době už téměř standard), Wifi Explorer vám usnadní život.
Jedná se o vizuálně atraktivní a funkčně bohatý nástroj, který vám umožní provést důkladnou analýzu sítě.
Čestné uznání: Bylo by nefér nezmínit exkluzivní síťový analyzátor pro macOS – Little Snitch. Obsahuje vestavěný firewall, takže si můžete okamžitě a detailně kontrolovat veškerý síťový provoz. Z dlouhodobého hlediska je to velká výhoda.
Co dál?
Měli byste také prozkoumat software pro monitorování sítí, který vám poskytne lepší přehled o vaší infrastruktuře. Pokud chcete budovat kariéru v oblasti sítí a zabezpečení, podívejte se na online kurzy zde.