Nettverksanalyse: 12 pakkesniffere for systemer & sikkerhet

Nettverket ditt er selve livsnerven i virksomheten din. Det er derfor avgjørende at du har full oversikt over hva som skjer i dets dypeste kriker og kroker.

Verden av digitale virksomheter har gjennomgått en betydelig utvikling. Det som en gang startet med enkle CGI-skript skrevet i Perl, har nå utviklet seg til komplekse, distribuerte systemer som kjører helautomatisk på Kubernetes og andre orkestreringsplattformer (beklager det tekniske språket, men slik er det bare nå til dags!).

Til tross for all denne utviklingen, er det fascinerende å tenke på at de grunnleggende prinsippene fortsatt er de samme som på 1970-tallet.

Alt vi har er lag på lag med abstraksjoner, som alle er avhengige av fysiske kabler som danner nettverket (selv om vi har virtuelle nettverk også). Vi kan organisere nettverket i lag i henhold til OSI-modellen, men uansett hvordan vi vrir og vender på det, jobber vi alltid med TCP/IP-protokoller, pinger og rutere. Alle disse har ett felles mål: overføring av datapakker.

Hva er egentlig en nettverkspakke?

Uansett hva vi gjør – enten det er chatting, videostrømming, spill, surfing eller netthandel – foregår det i bunn og grunn en utveksling av datapakker mellom to datamaskiner (eller nettverk). En «pakke» er den minste enheten av informasjon som sendes i et nettverk, og det finnes en klar metode for å konstruere og verifisere disse pakkene (detaljer rundt dette går utover denne artikkelens omfang, men for de nysgjerrige, finnes mer informasjon her).

Enkelt sagt, representerer hver pakke et ledd i en kjede. Den sendes fra kilden og valideres ved mottakeren. Hvis en enkelt pakke mangler eller kommer i feil rekkefølge, settes prosessen på vent. Først når alle pakkene er mottatt i riktig rekkefølge, settes de sammen for å danne den opprinnelige informasjonen (for eksempel et bilde).

Nå som vi har en grunnleggende forståelse av hva et nettverk er, blir det lettere å forstå hva en nettverksanalysator gjør. Det er et verktøy som lar deg inspisere individuelle pakker i nettverket ditt.

Men hvorfor skulle man bry seg med dette? La oss se nærmere på det.

Hvorfor trenger vi å analysere pakker?

Pakker er de grunnleggende byggesteinene i nettverksdatatrafikk, akkurat som atomer er grunnlaget for all materie. Men, akkurat som vi sjelden bryr oss om å studere hva et enkelt atom gjør når vi analyserer materialer eller gasser, hvorfor skal vi da bekymre oss om en enkelt nettverkspakke på individnivå? Hva kan vi lære som vi ikke allerede vet?

Det er vanskelig å formidle viktigheten av pakkeanalyse før man selv har opplevd behovet for det, men jeg skal gjøre et forsøk.

Pakkeanalyse innebærer å «skite til hendene» og grave dypt ned i nettverkets rørleggeri for å finne ut hva som foregår. Vanligvis må du ty til pakkeanalyse når alt annet har feilet. Dette inkluderer ofte tilsynelatende håpløse scenarier som:

  • Uforklarlig tap av konfidensiell informasjon, uten åpenbar årsak
  • Diagnostisering av trege applikasjoner, uten at det er noen åpenbare feil
  • Sikre at datamaskinen/nettverket ikke er kompromittert
  • Bekrefte eller avkrefte at en angriper snylter på WiFi-en
  • Finne årsaken til at serveren er en flaskehals, til tross for lav trafikk

Kort sagt, pakkeanalyse er en kilde til konkret bevis. Ved å kunne analysere pakker, kan du unngå å bli urettmessig anklaget for et datainnbrudd, eller bli stemplet som en inkompetent utvikler eller nettverksadministrator.

Jeg vil dele en historie som ble postet her som illustrerer dette godt:

En kritisk applikasjon for firmaet mitt hadde ytelsesproblemer og sviktet i kundesystemer. Det var en aksjekursapplikasjon som ble brukt i finansselskaper over hele verden. Jeg utførte pakkeanalyse, spesielt på TCP-nivå, og fant ut at problemet lå i OS-leverandørens implementasjon av TCP. Feilen var at når sendestabelen gikk inn i overbelastningskontroll, ble den aldri gjenopprettet. Dette førte til et svært lite sendevindu.

Det var en kamp å overbevise OS-leverandøren om at problemet lå i deres TCP-implementering, og ikke i selve applikasjonen. Etter mye frem og tilbake, fikk jeg kontakt med en utvikler som forstod problemet. Det viste seg at han selv hadde implementert RFC1323-utvidelsene i stabelen. Dagen etter hadde jeg en oppdatering til operativsystemet, og problemet var løst.

Utvikleren forklarte at feilen skyldtes at innkommende ACK-er *med nyttelast* ble feilaktig kategorisert som DUPACK-er når stabelen var i overbelastningskontroll.

Dette ville ikke vært et problem med halvdupleksapplikasjoner som HTTP, men applikasjonen jeg jobbet med sendte data toveis til enhver tid.

Jeg hadde lite støtte fra ledelsen på det tidspunktet, men det å finne feilen i operativsystemet ga meg mye respekt og førte til at de mest interessante problemene havnet på mitt bord.

Poenget er at denne personen ble feilaktig anklaget for et ytelsesproblem som lå utenfor hans kontroll. Det var kun gjennom grundig pakkeanalyse at det ble avslørt at problemet lå i operativsystemets håndtering av nettverksprotokollen!

Uten pakkeanalyse, ville denne personen sannsynligvis mistet jobben sin. Hvis dette ikke overbeviser deg om viktigheten av pakkeanalyse, vet jeg ikke hva som vil.

Nå som du vet at pakkeanalyse er en superkraft, er det gode nyheter: Det er ikke vanskelig å lære seg!

Takket være kraftige, men brukervennlige pakkesniffere, kan det være like enkelt å hente informasjon fra pakkeanalyse som å lese et salgsdashboard. Det krever litt mer kunnskap enn bare overfladisk forståelse av nettverk, men det er ikke rakettvitenskap. Det er bare ren logisk tenkning.

Hvis du begynner å lese dokumentasjonen til et av disse verktøyene samtidig som du bruker det på nettverket ditt, blir du snart ekspert.

Wireshark

Wireshark er et gammelt prosjekt (startet i 1998) som er en de facto industristandard for nettverksanalyse. Det er imponerende at det drives av en frivillig organisasjon, støttet av noen generøse sponsorer. Wireshark er åpen kildekode (koden kan finnes her), og har til og med sin egen teknologi konferanse!

Blant Wiresharks mange funksjoner er:

  • Støtte for hundrevis av nettverksprotokoller.
  • Kompatibilitet med mange filformater (tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (komprimert og ukomprimert), Sniffer® Pro og NetXray®, og flere).
  • Kjører på nesten alle plattformer (Linux, Windows, macOS, Solaris, FreeBSD osv.).
  • Live datalesing fra Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring.
  • Gzip-dekomprimering.
  • Støtte for dekryptering av mange protokoller (WPA/WPA2, SNMPv3, osv.)
  • Omfattende VoIP-analyse
  • Fargekoder for raskere visuell skanning

Sjekk ut dette onlinekurset for å lære deg å mestre Wireshark.

Leter du etter Wireshark i terminalen? Prøv Termshark.

tcpdump

Hvis du foretrekker kommandolinjen, er tcpdump noe for deg.

Det er et av de klassiske Linux-verktøyene som fortsatt er like relevant som før. Mange «fancy» verktøy bygger faktisk på det. Det er ikke grafisk, men det er et svært kraftig verktøy.

Installasjonen kan være litt komplisert. Selv om tcpdump er inkludert i de fleste moderne Linux-distribusjoner, må du kanskje bygge det fra kilden hvis det ikke er tilgjengelig.

tcpdump-kommandoer er korte og enkle, og de fokuserer på å løse et spesifikt problem, for eksempel:

  • Vise alle tilgjengelige grensesnitt
  • Fange trafikk fra ett bestemt grensesnitt
  • Lagre fangede pakker i en fil
  • Fange kun feilpakker

Hvis du trenger en rask skanning og har enkle behov, er tcpdump et godt alternativ. Sjekk ut denne artikkelen for eksempler på tcpdump-kommandoer i praksis.

Tproxy

Tproxy er et enkelt kommandolinjeverktøy med åpen kildekode for proxy-tjenester for TCP-tilkoblinger. Tproxy er skrevet i Go og er tilgjengelig for alle moderne Linux- og macOS-plattformer.

Bildet nedenfor viser kommandolinjen for å overvåke Mysql-tilkoblinger:

Hovedformålet er å proxy HTTP-tilkoblinger og inspisere innholdet i HTTP-forespørsler og svar. Det kan også brukes til å proxy andre protokoller, som SOCKS eller TCP. Det kan proxy TCP-forbindelser mellom to verter, eller analysere trafikken på en direkte forbindelse. Tproxy er nyttig for feilsøking og testing av applikasjoner som bruker TCP, og for å bygge TCP-proxy-tjenester.

Tproxy ble utviklet med mål om å tilby et brukervennlig grensesnitt til tcpdump, slik at brukere kan proxy TCP-forbindelser og utføre avansert nettverksanalyse uten å måtte forstå TCP-protokollen i detalj.

Under kommandolinjen viser gRPC-tilkoblinger:

Tproxy fungerer som en TCP-proxy, som lar deg koble til eksterne tjenester og applikasjoner som om du var på den lokale maskinen. Det er også mulig å bygge tilpassede TCP-tjenester på eksterne verter, noe som gir en rekke sikkerhets-, feilsøkings- og ytelsesfordeler når du jobber med applikasjoner som bruker TCP.

Her er noen flere bruksområder for Tproxy:

  • Det er nyttig for feilsøking og optimalisering av TCP-tilkoblinger.
  • Det er også nyttig for å forstå hvordan andre proxy-programmer fungerer.
  • Det kan proxy TCP-forbindelser mellom to verter, eller mellom en vert og en ekstern TCP-tjeneste.
  • Overvåke MySQL-tilkoblinger og gRPC-tilkoblinger, og sjekke tilkoblingens pålitelighet.

Tproxy forenkler arbeidsflyten og lar deg analysere webapplikasjoner uten å måtte endre applikasjonen eller selve nettverket. Verktøyet kan lastes ned fra GitHub.

NetworkMiner

NetworkMiner er et rettsmedisinsk nettverksanalyseverktøy som passivt kan analysere et nettverk. Det har et imponerende grafisk grensesnitt for analyse, som blant annet kan vise bilder og andre filer som er overført.

NetworkMiner har også andre utmerkede funksjoner:

  • IPv6-støtte
  • Parsing av PCAP-filer
  • Utvinne X.509-sertifikater fra SSL-kryptert trafikk
  • Pcap-over-IP
  • Fungerer med flere trafikktyper, som FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3 osv.
  • OS-fingeravtrykk
  • Geo IP-lokalisering
  • Støtte for kommandolinjeskripting

Noen av disse funksjonene er kun tilgjengelige i den kommersielle versjonen.

Fiddler

I motsetning til andre passive nettverkssniffere, er Fiddler noe som sitter mellom enheten din og omverdenen. Det krever litt konfigurering. Fiddler er et tilpassbart (ved hjelp av FiddlerScript) gratisverktøy med lang historie. Hvis målet ditt er å analysere HTTP/HTTPS-trafikk, er Fiddler et godt valg.

Du kan gjøre mye med Fiddler, spesielt hvis du er interessert i sikkerhetstesting:

  • Sesjonsmanipulering: Modifiser HTTP-hoder og sesjonsdata.
  • Sikkerhetstesting: Simuler man-in-the-middle-angrep og dekrypter HTTPS-trafikk.
  • Ytelsestesting: Analyser sideinnlastingstider og se hvilken del av svaret som er flaskehalsen.

Dokumentasjonen er god og anbefales.

WinDump

Hvis du savner enkelheten til tcpdump og ønsker å bruke det i Windows, kan du prøve WinDump. Når det er installert, fungerer det fra kommandolinjen ved å skrive «tcpdump», akkurat som i Linux.

WinDump er en binærfil som kan kjøres direkte, forutsatt at du har installert en Pcap-bibliotekimplementering (npcap anbefales).

BruteShark

BruteShark er et verktøy for rettsmedisinsk nettverksanalyse (NFAT) som kan analysere nettverkstrafikk fra PCAP-filer og direkte fra nettverksgrensesnitt.

Det inkluderer rekonstruksjon av TCP-økter, bygging av nettverkskart, utvinning av hashmeldinger for sterkt krypterte passord, og konvertering av hashmeldinger til Hashcat-format for brute force-angrep offline.

Målet med prosjektet er å hjelpe nettverksadministratorer og sikkerhetsforskere med å analysere nettverkstrafikk og identifisere sårbarheter.

Det finnes to versjoner av BruteShark: en GUI-basert applikasjon for Windows og et CLI-verktøy for Linux og Windows. Noen av prosjektene som er inkludert i løsningen, kan brukes uavhengig for å analysere nettverkstrafikk på Windows- og Linux-maskiner.

BruteShark kan også trekke ut DNS-spørringer, filer, VoIP-anrop (SIP, RTP), bygge nettverksdiagrammer for brukere og noder, utvinne autentiseringshasher (NTLM, HTTP-Digest, CRAM-MD5, Kerberos osv.), og hente og kode passord og brukernavn.

Alle prosjektene er implementert med .Net Standard og .Net Core for tverrplattformstøtte. Løsningen har en trelagsarkitektur og inkluderer prosjekter som PL, BLL og DAL.

DAL (Data Access Layer) leser PCAP-filer ved hjelp av drivere som WinPcap, libpcap og wrapper-biblioteker som SharpPcap. BLL (Business Logic Layer) er ansvarlig for nettverksinformasjonsanalyse (TCP, pakker osv.), og PL bruker et tverrgående prosjekt og refererer til både BLL- og DAL-lag.

OmniPeek

For større nettverk som har store mengder data som strømmer gjennom dem, kan verktøyene som andre bruker komme til kort. Hvis du er i en slik situasjon, kan OmniPeek være verdt å sjekke ut.

Det er et verktøy for ytelse, analyse og undersøkelser, spesielt når du trenger både lavnivåfunksjoner og omfattende dashboards.

Capsa

Hvis du jobber eksklusivt med Windows-plattformen, er Capsa et alternativ. Det finnes tre versjoner: gratis, standard og bedrift, hver med forskjellige funksjoner.

Selv gratisversjonen støtter over 300 protokoller og har interessante funksjoner som varsler. Standardversjonen støtter over 1000 protokoller og lar deg analysere samtaler og rekonstruere pakkestrømmer.

EtherApe

Hvis du er ute etter kraftige visualiseringer og åpen kildekode, er EtherApe et godt alternativ. Selv om forhåndsbygde binærfiler bare er tilgjengelige for noen få Linux-distribusjoner, er kildekoden tilgjengelig, slik at du kan bygge det selv.

Her er noen av de gode funksjonene i EtherApe:

  • Fargekodet overvåking av flere noder.
  • Støtte for mange pakkeformater som ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN osv.
  • Les data direkte fra nettverket eller fra en tcpdump-fil.
  • Støtter standard navneoppløsning.
  • GUI er flyttet til GTK3, noe som gir en bedre opplevelse.

CommView

Hvis du kun bruker Windows og verdsetter prioritert støtte, er CommView anbefalt. Det er en kraftig analysator med avanserte funksjoner som VoIP-analyse og fjernsporing.

CommView kan eksportere data til formater som brukes av flere åpne og proprietære formater, som Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump, Wireshark/pcapng og hex-dumps.

Wifi Explorer

Sist på listen er Wifi Explorer, som har en gratisversjon for Windows og en standardversjon for Windows og macOS. Hvis WiFi-nettverksanalyse er det du trenger, er Wifi Explorer et enkelt og funksjonsrikt verktøy.

En ærefull omtale: Det ville vært galt å ikke nevne Little Snitch, en nettverksanalysator eksklusivt for macOS. Den har en innebygd brannmur, som gir deg kontroll over all trafikk.

Hva skjer nå?

Du bør også utforske disse programmene for nettverksovervåking for bedre innsikt i infrastrukturen. Hvis du ønsker å bygge en karriere innen nettverk og sikkerhet, sjekk ut noen av de beste onlinekursene her.