12 Nätverkspaketanalysatorer för Sysadmin och säkerhetsanalytiker

By rik

Vikten av nätverksanalys

Ditt nätverk utgör grunden för din verksamhet. Därför är det viktigt att ha fullständig insyn i vad som sker djupt inne i det.

Den digitala affärsvärlden har genomgått en anmärkningsvärd utveckling. Från enkla CGI-skript i Perl har vi nu avancerade, klustrade system som körs automatiserat på Kubernetes och andra orkestreringsplattformar. Det är en komplex verklighet, men det är så det ser ut idag.

Trots all teknisk utveckling, är grunderna desamma som under 1970-talet. Vi har abstraktioner ovanpå abstraktioner, som alla vilar på fysiska kablar som skapar nätverket (självklart finns det även virtuella nätverk). Vi kan dela upp nätverket i lager enligt OSI-modellen, men i grunden handlar det alltid om TCP/IP-protokoll, ping, routrar, alla med det gemensamma målet att överföra datapaket.

Vad är ett nätverkspaket?

Oavsett vad vi gör online – chattar, streamar video, spelar eller shoppar – handlar det om att utbyta datapaket mellan datorer i ett nätverk. Ett paket är den minsta informationsenheten som rör sig i ett nätverk. Det finns väldefinierade metoder för att skapa och verifiera nätverkspaket, men det går utanför ramen för den här artikeln. Om du är intresserad kan du läsa mer här.

Ett paket fungerar som en länk i kedjan. Det skickas korrekt från källan och verifieras vid destinationen. Om ett paket saknas eller kommer i fel ordning, avbryts processen tills alla paket har mottagits korrekt. Först då sätts de ihop för att bilda den ursprungliga datan, som exempelvis en bild.

Nu när vi förstår vad ett nätverkspaket är, kan vi gå vidare till vad en nätverksanalysator gör: den ger oss möjlighet att undersöka enskilda paket i vårt nätverk.

Varför behöver vi analysera paket?

Nätverkspaket är de grundläggande byggstenarna i nätverkstrafik, likt atomer är grunden för all materia. När vi analyserar material eller gaser, fokuserar vi sällan på enskilda atomer. Varför skulle vi då bekymra oss om ett enskilt nätverkspaket? Vad kan vi lära oss som vi inte redan vet?

Det är inte alltid lätt att se värdet i paketanalys, förrän man själv har upplevt problem som kräver det. Men låt mig försöka förklara.

Paketanalys innebär att man gräver djupt i nätverkets infrastruktur för att hitta rotorsaken till problem. Det är ofta den sista utvägen när inget annat fungerar. Typiska scenarier där paketanalys är nödvändig inkluderar:

  • Oförklarlig förlust av känslig data
  • Diagnostisering av långsamma applikationer utan uppenbara orsaker
  • Kontroll av datorns och nätverkets säkerhet
  • Verifiering av att ingen utomstående snyltar på ditt WiFi, piggybacking.
  • Identifiering av varför en server flaskar trots låg trafikbelastning

Paketanalys kan tillhandahålla konkret bevis. Om du behärskar paketanalys och har korrekta data, kan du skydda dig mot falska anklagelser om hacking eller inkompetens som utvecklare eller nätverksadministratör.

Här är ett verkligt exempel som jag hittade här:

En affärskritisk applikation drabbades av prestandaproblem hos kunderna. Applikationen användes för att visa aktiekurser i finansiella företag över hela världen. En djupgående analys av TCP-beteendet visade att problemet låg i OS-leverantörens implementering av TCP. När sändningsstacken gick in i överbelastningskontroll återhämtade den sig aldrig, vilket resulterade i ett väldigt litet sändningsfönster.

Trots att utvecklaren i fråga hade svårt att övertyga OS-leverantörens support, kom han så småningom i kontakt med en person som förstod problemet. Felet berodde på att inkommande ACK med ny last felkategoriserades som DUPACK när stacken var i överbelastningskontroll. Problemet uppstod endast med applikationer som skickade data i båda riktningarna över socket, vilket inte är fallet för HTTP.

Utan stöd från sin chef lyckades utvecklaren till slut hitta och fixa problemet genom att få fram en patch från OS-leverantören. Detta exempel understryker vikten av paketanalys.

Om du inte orkade läsa hela historien, så handlade det om att en utvecklare löste ett problem som felaktigt tillskrevs hans applikation. Paketanalysen avslöjade istället att felet låg i operativsystemets hantering av nätverksprotokollet.

Utan paketanalys hade den här personen troligen förlorat sitt jobb. Det här borde vara ett starkt bevis på vikten av paketanalys (eller packet sniffing).

Men oroa dig inte, det är inte så svårt som det låter. Med hjälp av kraftfulla och användarvänliga paketanalysverktyg, kan du lika enkelt tolka analysresultat som att läsa en försäljningsrapport. Du behöver en grundläggande förståelse för hur ett nätverk fungerar, men det finns ingen raketvetenskap involverad.

Om du börjar använda ett av dessa verktyg och läser dokumentationen kommer du snart att vara en expert. 😀

Nätverksanalysverktyg

Wireshark

Wireshark är ett väletablerat projekt som startade 1998, och betraktas som branschstandard för att gräva djupt i nätverk. Det är imponerande att det är en organisation med frivilliga, som stöds av några generösa sponsorer. Wireshark är öppen källkod (koden finns här) och har till och med sin egen konferens.

Wireshark har bland annat följande funktioner:

  • Stöd för hundratals nätverksprotokoll.
  • Kompatibel med flera filformat (tcpdump, Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® med flera).
  • Körs på nästan alla plattformar (Linux, Windows, macOS, Solaris, FreeBSD med mera).
  • Live data fångas från Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, med mera.
  • Gzip-dekompression i realtid.
  • Stöd för dekryptering av flera protokoll (WPA/WPA2, SNMPv3, osv.).
  • Omfattande VoIP-analys.
  • Färgkodning för enklare visuell analys.

Du kan hitta bra onlinekurser om du vill lära dig mer om Wireshark.

Om du föredrar att använda Wireshark från terminalen kan du prova Termshark.

tcpdump

Om du gillar kommandoraden, så är tcpdump något för dig.

Det är ett klassiskt Linux-verktyg (som curl), som är lika relevant idag som förr. Många andra mer ”avancerade” verktyg bygger faktiskt på tcpdump. Det saknar ett grafiskt gränssnitt, men det kompenserar med sin funktionalitet.

Att installera tcpdump kan vara lite krångligt. Det ingår i de flesta moderna Linux-distributioner, men om din distribution saknar det, kan du behöva bygga det från källkod.

Tcpdump-kommandon är korta och enkla, och kan användas för specifika ändamål:

  • Visa alla tillgängliga nätverksgränssnitt
  • Fånga trafik från ett specifikt gränssnitt
  • Spara fångade paket i en fil
  • Fånga endast felaktiga paket
  • …och så vidare.

Om dina behov är enkla, och du snabbt vill göra en nätverksanalys, är tcpdump ett bra val. Det är möjligt att du upptäcker att det redan är installerat på ditt system. Du kan hitta exempel på tcpdump-kommandon på nätet.

Tproxy

Tproxy är ett enkelt kommandoradsverktyg som kan användas för att proxyserver TCP-anslutningar över nätverket. Det är skrivet i Go och är tillgängligt för alla moderna Linux- och macOS-plattformar.

Bilden nedan visar kommandot för att övervaka Mysql-anslutningar:

Tproxy används främst för att proxyserver HTTP-anslutningar och inspektera HTTP-förfrågningar och svar, men det kan även användas med SOCKS eller TCP. Det kan användas för att proxyserver TCP-anslutningar mellan två värdar, eller för att analysera trafik i realtid. Det är ett bra verktyg för att felsöka och testa applikationer som använder TCP, och för att bygga TCP-proxytjänster.

Målet med Tproxy var att erbjuda ett användarvänligt gränssnitt till tcpdump, så att användare kan proxyserver TCP-anslutningar och göra avancerad nätverksanalys utan att behöva ha djupgående kunskap om TCP-protokollet.

Här är kommandot för att visa gRPC-anslutningar:

Tproxy fungerar som en TCP-proxy, vilket innebär att du kan ansluta till fjärrtjänster och applikationer som om de befann sig på din lokala maskin. Det möjliggör byggandet av anpassade TCP-tjänster på fjärrvärdar och bidrar till förbättringar inom säkerhet, felsökning och prestanda när du arbetar med applikationer som använder TCP.

Andra användningsområden för Tproxy är:

  • Felsökning och optimering av TCP-anslutningar
  • Förstå hur andra proxyprogram fungerar, som Burp Suite och ZAP.
  • Proxyservera TCP-anslutningar mellan två värdar eller mellan en värd och en fjärrtjänst, som en databas eller webbtjänst.
  • Övervaka MySQL-anslutningar och gRPC-anslutningar, och kontrollera anslutningens tillförlitlighet i form av retansmissionshastighet och RTT.

Tproxy förenklar arbetsflödet och låter dig utföra avancerad nätverksanalys och analysera webbapplikationer utan att behöva ändra applikationen eller själva nätverket. Verktyget kan laddas ner från GitHub.

NetworkMiner

NetworkMiner marknadsför sig som ett verktyg för rättsmedicinsk nätverksanalys och är en av de bästa paketanalysatorerna. Det är ett verktyg med öppen källkod som analyserar ett nätverk passivt, och har ett imponerande grafiskt gränssnitt som kan visa bilder och andra filer som överförts via nätverket.

NetworkMiner har även andra funktioner, såsom:

  • Stöd för IPv6.
  • Analys av PCAP-filer.
  • Extrahering av X.509-certifikat från SSL-krypterad trafik.
  • Pcap-over-IP.
  • Stöd för flera protokoll som FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3 med flera.
  • OS-fingeravtryck.
  • Geografisk IP-lokalisering.
  • Stöd för kommandoradsskript.

Observera att vissa funktioner endast är tillgängliga i den kommersiella versionen.

Fiddler

Till skillnad från passiva nätverkssniffers fungerar Fiddler som en proxy mellan din enhet och omvärlden, vilket kräver en del konfigurering. Det är ett gratisverktyg som kan anpassas med FiddlerScript. Fiddler har en lång och framstående historia och är det perfekta verktyget om du vill sniffa HTTP/HTTPS-trafik.

Med Fiddler kan du göra mycket, särskilt om du vill granska nätverkstrafik mer noggrant:

  • Sessionsmanipulation: Öppna och modifiera HTTP-headers och sessionsdata.
  • Säkerhetstestning: Simulera man-in-the-middle-attacker och dekryptera all HTTPS-trafik.
  • Prestandatestning: Analysera sidladdningstider eller API-svar och identifiera flaskhalsar.

Om du behöver hjälp finns bra dokumentation.

WinDump

Om du gillar enkelheten med tcpdump, och vill använda den i Windows, finns WinDump. När WinDump är installerat kan du använda det från kommandoraden genom att skriva ”tcpdump”, på samma sätt som på ett Linux-system.

Observera att det inte finns något att installera i sig. WinDump är en binär fil som kan köras direkt, förutsatt att du har ett Pcap-bibliotek installerat (npcap rekommenderas eftersom winpcap inte längre utvecklas).

BruteShark

BruteShark är ett verktyg för nätverksforensisk analys. Du kan använda det för att bearbeta och inspektera nätverkstrafik från PCAP-filer eller från nätverksgränssnitt i realtid.

Verktyget rekonstruerar TCP-sessioner, bygger nätverkskartor, extraherar hash av krypterade lösenord och konverterar dessa till Hashcat-format för offline-brute force-attacker.

Huvudsyftet med BruteShark är att hjälpa nätverksadministratörer och säkerhetsforskare att analysera nätverkstrafik och hitta säkerhetsproblem.

Det finns två versioner av BruteShark: en GUI-baserad applikation för Windows och ett CLI-verktyg för Linux och Windows. Delar av verktyget kan användas separat för att analysera nätverkstrafik på Windows- och Linux-maskiner.

BruteShark kan utföra diverse operationer, som att extrahera DNS-förfrågningar, filer, VoIP-samtal (SIP, RTP), bygga nätverksdiagram för användare och nätverksnoder, extrahera autentiseringshashar med Hashcat (NTLM, HTTP-Digest, CRAM-MD5, Kerberos, med mera) samt hämta och koda lösenord och användarnamn.

Alla projekt är implementerade med .Net Standard och .Net Core, för plattformsoberoende stöd. Lösningen har en arkitektur i tre lager, med projekt som inkluderar PL, BLL och DAL i varje lager.

DAL (Data Access Layer) läser PCAP-råfiler med hjälp av drivrutiner som WinPcap, libpcap och wrapper-bibliotek som SharpPcap. BLL (Business Logic Layer) analyserar nätverksinformation (TCP, paket osv.) och PL använder ett tvärgående projekt och hänvisar till både BLL- och DAL-lager.

OmniPeek

För större nätverk som hanterar stora mängder data varje sekund, kan de flesta verktyg visa sig otillräckliga. Om du har samma problem kan OmniPeek vara värt att undersöka.

Detta är ett verktyg för prestanda-, analys- och kriminalteknisk undersökning av nätverk. Det ger dig både lågnivåfunktioner och omfattande instrumentpaneler.

Capsa

Om du främst arbetar med Windows-plattformen kan Capsa vara ett intressant alternativ. Det finns i tre versioner: gratis, standard och enterprise, alla med olika funktioner.

Även gratisversionen stöder över 300 protokoll och har intressanta funktioner som varningar (som utlöses när vissa villkor är uppfyllda). Standardversionen har stöd för över 1000 protokoll och ger möjlighet att analysera konversationer och rekonstruera paketströmmar.

Sammantaget ett bra alternativ för Windows-användare.

EtherApe

Om du letar efter kraftfulla visualiseringar och öppen källkod, är EtherApe ett utmärkt val. Binärer är endast tillgängliga för vissa Linux-distributioner, men källkoden finns på både SourceForge och GitHub, så du kan bygga den själv.

Det som gör EtherApe bra är:

  • Flerkanalig, färgkodad övervakning.
  • Stöd för flera paketformat, som ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN med flera.
  • Läser data i realtid från gränssnittet eller från en tcpdump-fil.
  • Stöd för vanlig namnupplösning.
  • GUI:t har uppdaterats med GTK3, vilket ger en trevligare användarupplevelse.

CommView

Om du uteslutande använder Windows och värdesätter prioriterad support, är CommView ett bra val. Det är en kraftfull nätverkstrafikanalysator med inbyggda avancerade funktioner som VoIP-analys och fjärrövervakning.

Jag imponerades särskilt av möjligheten att exportera data till format som används av flera öppna och proprietära verktyg, som Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump och Wireshark/pcapng samt vanliga hex-dumpar.

WiFi Explorer

Sist på listan finns WiFi Explorer, som finns i en gratisversion för Windows och en standardversion för Windows och macOS. Om du bara behöver analysera WiFi-nätverk, gör Wifi Explorer jobbet enkelt.

Det är ett vackert designat verktyg med många funktioner som låter dig gå direkt till kärnan av nätverket.

Hederligt omnämnande: Jag vill passa på att nämna en macOS-exklusiv nätverksanalysator som jag stötte på – Little Snitch. Den har en inbyggd brandvägg, vilket innebär att du kan kontrollera all trafik. Det kan verka besvärligt, men är en stor fördel i längden.

Vad händer härnäst?

Du bör också undersöka nätverksövervakningsprogram för bättre insyn i infrastrukturen. Om du funderar på att starta en karriär inom nätverk och säkerhet, bör du ta en titt på några av de bästa onlinekurserna här.