Analizatori mrežnih paketa. Dostupnost, cijena, zahtjevi sustava

Izvornik: Hvatanje paketa u vašem C programu, s libpcap
Autor: Pankaj Tanwar
Datum objave: 1. veljače 2011
Prijevod: A. Panin
Datum prijevoda: 11. listopada 2012

Ovaj članak daje pregled glavnih funkcija biblioteke libpcap i prikazuje primjer stvaranja programa za hvatanje paketa.

Sva kretanja podataka u mrežama odvijaju se u obliku paketa, koji su jedinica podataka za mreže. Da biste razumjeli koji se podaci nalaze u paketu, morate razumjeti hijerarhiju mrežni protokoli unutar mrežnog modela. Ako niste upoznati s ISO OSI (Open Systems Interconnection) modelom umrežavanja, preporučujem da pregledate relevantnu dokumentaciju. Dobar izvor informacija je članak na Wikipediji.

Pojam "paket" prvi put se uvodi na razini mreže. Glavni protokoli na ovoj razini su: IP (Internet Protocol), ICMP (Internet Control Message Protocol), IGMP (Internet Group Management Protocol) i IPsec (skup protokola za osiguravanje zaštite podataka koji se prenose putem IP protokola). Protokoli prijenosnog sloja uključuju TCP (Transmission Control Protocol), koji je usmjeren na stvaranje trajne veze; UDP (User Datagram Protocol), koji ne zahtijeva stalnu vezu; SCTP (Stream Control Transmission Protocol) kombinira svojstva dva gore navedena protokola. Aplikacijski sloj sadrži mnogo često korištenih protokola kao što su: HTTP, FTP, IMAP, SMTP i mnogi drugi.

Hvatanje paketa odnosi se na prikupljanje podataka koji se prenose preko mreže. Svaki put kad mrežna kartica primi Ethernet okvir, provjerava odredišnu MAC adresu paketa da vidi odgovara li njezinoj. Ako se adrese podudaraju, generira se zahtjev za prekid. Ovaj prekid naknadno obrađuje upravljački program mrežne kartice; on kopira podatke iz međuspremnika mrežne kartice u međuspremnik u adresnom prostoru jezgre, zatim provjerava polje tipa u zaglavlju paketa i prosljeđuje paket potrebnom rukovatelju protokolom ovisno o sadržaju polja. Podaci prolaze kroz hrpu mrežnih slojeva i dosega razina primjene, koji se obrađuje pomoću prilagođene aplikacije.

Kada uhvatimo pakete, upravljački program također šalje kopiju primljenog paketa filtru paketa. Za snimanje paketa koristit ćemo biblioteku otvorenog koda izvorni kod libpcap.

osnove libpcap-a

Biblioteka libpcap je biblioteka otvorenog koda neovisna o platformi (verzija za Windows zove se winpcap). Dobro poznati snifferi tcpdump i Wireshark koriste ovu biblioteku za rad.

Za razvoj našeg programa potrebno nam je mrežno sučelje na kojem će se hvatati paketi. Ovaj uređaj možemo dodijeliti sami ili koristiti funkciju koju nudi libpcap: char *pcap_lookupdev(char *errbuf).

Ova funkcija vraća pokazivač na niz koji sadrži naziv prvog mrežnog sučelja prikladnog za hvatanje paketa; ako se pojavi greška, vraća se NULL (ovo vrijedi i za druge libpcap funkcije). Argument errbuf je namijenjen da bude korisnički međuspremnik u koji će se smjestiti poruka o pogrešci ako se pogreška dogodi - ovo je vrlo zgodno kod otklanjanja pogrešaka programa. Veličina ovog međuspremnika mora biti najmanje PCAP_ERRBUF_SIZE (po ovaj trenutak 256) bajtova.

Rad s uređajem

Zatim otvaramo odabrano mrežni uređaj koristeći funkciju pcap_t *pcap_open_live(const char *uređaj, int snaplen, int promisc, int to_ms, char *errbuf). Vraća identifikator uređaja, predstavljen kao varijabla tipa pcap_t, koja se može koristiti u drugim libpcap funkcijama. Prvi argument je mrežno sučelje s kojim želimo raditi, a drugi je najveća veličina međuspremnik za hvatanje podataka u bajtovima.

Postavljanje drugog parametra na minimalnu vrijednost korisno je kada trebate uhvatiti samo zaglavlja paketa. Veličina Ethernet okvira je 1518 bajtova. Vrijednost 65535 bit će dovoljna za hvatanje bilo kojeg paketa s bilo koje mreže. Argument promisc određuje hoće li uređaj raditi u promiskuitetnom načinu rada ili ne. (U promiskuitetnom načinu rada, mrežna kartica će generirati prekide za sve podatke koje primi, a ne samo one koji odgovaraju MAC adresi. Pročitajte više u Wikipediji).

Argument to_ms govori kernelu koliko milisekundi treba čekati prije kopiranja informacija iz prostora kernela u korisnički prostor. Prosljeđivanje vrijednosti 0 uzrokovat će čekanje operacije čitanja podataka dok se ne prikupi dovoljno paketa. Kako bismo smanjili broj operacija kopiranja podataka iz prostora jezgre u korisnički prostor, postavit ćemo ovu vrijednost ovisno o intenzitetu mrežnog prometa.

Hvatanje podataka

Sada moramo početi hvatati pakete. Iskoristimo funkciju u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h). Ovdje je *p pokazivač koji vraća pcap_open_live() ; sljedeći argument je pokazivač na varijablu tipa struct pcap_pkthdr, koja vraća prvi primljeni paket.

Funkcija int pcap_loop(pcap_t *p, int cnt, pcap_handler povratni poziv, u_char *korisnik) koristi se za sastavljanje paketa i njihovu obradu. Vraća broj paketa specificiranih argumentom cnt. Funkcija povratnog poziva koristi se za obradu primljenih paketa (morat ćemo definirati ovu funkciju). Za prijenos dodatne informacije U ovoj funkciji koristit ćemo *korisnički parametar, koji je pokazivač na varijablu tipa u_char (morat ćemo izvršiti vlastitu konverziju tipa ovisno o traženom tipu podataka proslijeđenom funkciji).

Prototip funkcije povratnog poziva izgleda ovako: void callback_function(u_char *arg, const struct pcap_pkthdr* pkthdr, const u_char* paket). Prvi argument je *korisnički argument proslijeđen pcap_loop() ; sljedeći argument je pokazivač na strukturu koja sadrži informacije o primljenom paketu. Polja strukture struct pcap_pkthdr prikazana su u nastavku (preuzeta iz datoteke pcap.h): struct pcap_pkthdr ( struct timeval ts; /* vremenska oznaka */ bpf_u_int32 caplen; /* duljina prisutnog dijela */ bpf_u_int32 len ; /* duljina ovog paketa (izvan žice) */ )

Alternativa pcap_loop() je funkcija pcap_dispatch(pcap_t *p, int cnt, pcap_handler povratni poziv, u_char *korisnik). Jedina razlika je u tome što ova funkcija vraća rezultat nakon isteka vremena navedenog prilikom pozivanja pcap_open_live().

Filtriranje prometa

Do tada smo primali sve pakete koji dolaze na mrežno sučelje. Sada upotrijebimo funkciju pcap koja vam omogućuje filtriranje prometa koji dolazi na određeni port. Također možemo koristiti ovu funkciju za rad samo s paketima za određeni protokol, kao što je ARP ili FTP. Prvo moramo stvoriti filtar pomoću ovu funkciju: int pcap_compile(pcap_t *p, struct bpf_program *fp, const char *str, int optimize, bpf_u_int32 maska);

Prvi argument je sličan u svim funkcijama knjižnice i o njemu se ranije raspravljalo; drugi argument je pokazivač na prevedenu verziju filtera. Sljedeći je izraz za filter. Ovaj izraz može biti naziv protokola kao što je ARP, IP, TCP, UDP itd. Možete pronaći mnogo primjera izraza u priručnicima za pcap-filter i tcpdump, koji bi trebali biti instalirani na vašem sustavu.

Sljedeći argument postavlja stanje optimizacije (0 - ne optimiziraj, 1 - optimiziraj). Zatim dolazi mrežna maska ​​s kojom filtar radi. Funkcija vraća -1 u slučaju pogreške (ako se otkrije pogreška u izrazu).

Nakon prevođenja, primijenimo filtar pomoću funkcije int pcap_setfilter(pcap_t *p, struct bpf_program *fp). Drugi argument funkcije je prevedena verzija izraza za filtriranje prometa.

Primanje IPv4 informacija

Int pcap_lookupnet(const char *uređaj, bpf_u_int32 *netp, bpf_u_int32 *maskp, char *errbuf)

Pomoću ove funkcije možete dobiti IPv4 mrežnu adresu i mrežnu masku dodijeljenu određenom mrežnom sučelju. Mrežna adresa bit će zapisana u *netp, a mrežna maska ​​u *mask.

Mali program za snimanje paketa

Sada napišimo program koji će nam pomoći razumjeti kako pcap radi. Nazovimo datoteku s izvornim kodom sniff.c. Ovo je program iz odjeljka priručnika tcpdump.org, čiji je autor Martin Casado. Prvo, uključimo potrebne datoteke zaglavlja. #uključi #uključi #uključi #uključi #uključi #uključi #uključi #uključi

Zatim uvodimo funkciju povratnog poziva za obradu primljenih paketa. Ova funkcija će jednostavno ispisati trenutni broj primljenih paketa. Kasnije ćemo napisati drugu funkciju povratnog poziva. Ta ista funkcija je toliko očita da ne zahtijeva nikakvo objašnjenje. void my_callback(u_char *args, const struct pcap_pkthdr* pkthdr, const u_char* paket) (static int count = 1; fprintf(stdout, "%3d, ", count); fflush(stdout); count++; )

Sada pogledajmo funkciju main(). Ovdje koristimo funkcije koje smo ranije analizirali: int main(int argc,char **argv) ( int i; char *dev; char errbuf; pcap_t* descr; const u_char *packet; struct pcap_pkthdr hdr; struct ether_header *eptr; / * net/ethernet.h */ struct bpf_program fp; /* sastavljen izraz za filtriranje */ bpf_u_int32 maskp; /* podmrežna maska ​​*/ ip */ if(argc != 2)( fprintf(stdout, " Upotreba: %s \"izraz\"\n" ,argv); return 0; /* Dohvati naziv uređaja */ dev = pcap_lookupdev(errbuf); if(dev == NULL) ( fprintf(stderr, "%s \ n", errbuf); exit(1); ) /* Dobivanje mrežne adrese i mrežne maske za uređaj */ pcap_lookupnet(dev, &netp, &maskp, errbuf); /* otvaranje uređaja u promiskuitetnom načinu */ descr = pcap_open_live( dev, BUFSIZ, 1,-1, errbuf); if(descr == NULL) ( printf("pcap_open_live(): %s\n", errbuf); exit(1); ) /* sada je zapisan izraz filtera */ if(pcap_compile(descr, &fp, argv, 0, netp) == -1) ( fprintf(stderr, "Greška pri pozivanju pcap_compile\n"); izlaz(1); ) /* primjena filtra */ if(pcap_setfilter(descr, &fp) == -1) ( fprintf(stderr, "Pogreška postavljanja filtra\n"); exit(1); ) /* funkcija povratnog poziva korištena u petlji * / pcap_loop(descr, -1, my_callback, NULL); povratak 0; )

Prevedite program pomoću donjih naredbi i pokrenite ga kao root (potrebno za omogućavanje promiskuitetnog načina): $ gcc -lpcap sniff.c -o sniffer # ./sniffer ip

Slika 1 prikazuje primjer izlaza programa.

Slika 1: Izlaz programa

Budući da je izraz filtera postavljen na ip, vaš će zaslon uskoro biti ispunjen primljenim IP paketima. Možete zamijeniti ip drugim izrazom, na primjer tcp, arp itd. - pogledajte man stranicu tcpdump za primjere.

Još jedna implementacija funkcije povratnog poziva koja ispisuje sadržaj paketa primljenih na temelju zadanog izraza filtera (već je u sniff.c): void another_callback(u_char *arg, const struct pcap_pkthdr* pkthdr, const u_char* paket) ( int i= 0; static int count=0; printf("Broj paketa: %d\n", ++count) printf("Veličina primljenog paketa: %d\n", pkthdr->len); ; Dužina zaglavlja */ printf("Payload:\n"); /* A sada podaci */ for(i=0;i len;i++) ( if(isprint(packet[i])) /* Provjerava da li se znak može ispisati */ printf("%c ",packet[i]); /* Ispisuje znak */ else printf(" . " ,packet[i]); /* Ako se znak ne može ispisati */ if((i%16==0 && i!=0) || i==pkthdr->len-1) printf("\n " ); ) )

Možete promijeniti redak za poziv funkcije pcap_loop() u funkciji main() gdje se poziva funkcija my_callback() za korištenje nove varijante funkcije. Prevedite modificirani program i pokrenite ga s istim izrazom kao argumentom. Izlaz prikazan na slici 2 sadrži podatke iz IP paketa.


Slika 2: Ispis koji prikazuje sadržaj paketa.

Mislim da ovdje možemo stati. Testirajte sami program, eksperimentirajte s pcap-om i shvatit ćete koliko je moćna komponenta u srcu najboljih (i nama najdražih) tcpdump i Wireshark sniffera.

Wireshark koristi libpcap ili WinPcap biblioteke za Windows za snimanje mrežnog prometa. Knjižnica WinPcap ne podržava korištenje bežične veze mrežne kartice, stoga vam izravno ne dopušta snimanje Wi-Fi prometa s koristeći Wireshark i druge aplikacije kao što su Cain & Abel ili Elcomsoft Wireless Security Auditor za Windows.

WinPcap i ograničenja Wi-Fi prometa u Wiresharku

Ograničenja za snimanje Wi-Fi paketa u sustavu Windows odnose se na biblioteku WinPcap, a ne na sam program Wireshark. Uostalom, Wireshark ima podršku za specijalizirane i prilično skupe Wi-Fi adapteri, čiji upravljački programi podržavaju praćenje mrežnog prometa Windows okruženje, što se često naziva promiskuitetnim snimanjem mrežnog prometa na Wi-Fi mrežama.

Sadrži vlastiti upravljački program za snimanje prometa korištenjem NDIS tehnologije, hvatanje prometa na WiFi mreži u Windows OS-u i omogućavanje Snimite bežični promet pomoću Wiresharka u sustavu Windows Vista, Windows 7, Windows 8 i Windows 8.1. Pomoću ovog upravljačkog programa možete automatski omogućiti drugim programima za analizu Wi-Fi prometa mogućnost snimanja podataka na bežičnim mrežama u sustavu Windows.

NDIS upravljački program i WiFi sučelja u Wiresharku

Kako bi omogućio ovu interakciju, Acrylic instalira vlastitu biblioteku na računalo airpcap.dll, oponašajući biblioteku originalne AirPcap kartice. Kada Wireshark učita odgovarajući knjižnica sustava AirPcap by Acrylic, biblioteka vraća lažni popis instaliranih AirPcap uređaja, jedan unos za svaki unutarnja karta Wi-Fi ili vanjski USB Wi-Fi adapter.

Ovom metodom možemo koristiti odabrani analizator mrežnog prometa i pregledati Wi-Fi promet u Wiresharku. Duplim klikom na mrežno sučelje možete pristupiti njegovim postavkama i provjeriti je li zaglavlje Radiotap prikazano za to mrežno sučelje, koje uključuje informacije o jačini signala za snimljene pakete.

Klikom na gumb “Postavke”. bežična mreža» ( “Bežične postavke”), možete odabrati dodatne opcije kao što je Wi-Fi kanal za nadzor i omogućiti FCS provjeru. FCS je sekvenca za provjeru okvira koja vam omogućuje određivanje integriteta Wi-Fi paketa i odbacivanje netočno poslanih paketa.

Snimanje Wi-Fi prometa pomoću Wiresharka u sustavu Windows

Dakle, nakon instalacije pokrenite Wireshark kao administrator (desnom tipkom miša kliknite Wireshark prečac i odaberite “Run as Administrator”), zatim s popisa odaberite karticu koja ima oznaku mrežnog sučelja NDIS. U našem slučaju, ovo je ugrađeni Wi-Fi DELL kartica (Dell Wireless 1702/b/g/n)

Video upute za korištenje Acrylic WiFi s Wiresharkom u sustavu Windows

Pripremili smo video koji prikazuje postupak koji će vam pomoći ako još imate pitanja ili ako želite vidjeti kako se bežični promet hvata pomoću bilo kojeg Wi-Fi kartice u Wiresharku za Windows.

Što je Intercepter-NG

Razmotrimo bit ARP funkcioniranja na jednostavan primjer. Računalo A (IP adresa 10.0.0.1) i Računalo B (IP adresa 10.22.22.2) povezani su Ethernet mrežom. Računalo A želi poslati paket podataka računalu B; ono zna IP adresu računala B. Međutim, Ethernet mreža na koju su spojeni ne radi s IP adresama. Stoga, za prijenos putem Etherneta, računalo A mora znati adresu računala B na Ethernet mreži (MAC adresa u Ethernet terminima). Za ovaj zadatak koristi se ARP protokol. Koristeći ovaj protokol, računalo A šalje zahtjev za emitiranje upućen svim računalima u istoj domeni emitiranja. Suština zahtjeva: “računalo s IP adresom 10.22.22.2, dostavite svoju MAC adresu računalu s MAC adresom (na primjer, a0:ea:d1:11:f1:01).” Ethernet mreža isporučuje ovaj zahtjev svim uređajima na istom Ethernet segmentu, uključujući računalo B. Računalo B odgovara računalu A na zahtjev i prijavljuje njegovu MAC adresu (npr. 00:ea:d1:11:f1:11) Sada, nakon što primio MAC adresu računala B, računalo A mu može prenijeti bilo koji podatak putem Ethernet mreže.

Kako bi se izbjegla potreba za korištenjem ARP protokola prije svakog slanja podataka, primljene MAC adrese i njima pripadajuće IP adrese se neko vrijeme bilježe u tablici. Ako trebate poslati podatke na isti IP, nema potrebe svaki put prozivati ​​uređaje u potrazi za željenim MAC-om.

Kao što smo upravo vidjeli, ARP uključuje zahtjev i odgovor. MAC adresa iz odgovora upisuje se u MAC/IP tablicu. Kada se primi odgovor, ni na koji način se ne provjerava njegova autentičnost. Štoviše, ne provjerava čak ni je li zahtjev poslan. Oni. možete odmah poslati ARP odgovor ciljnim uređajima (čak i bez zahtjeva), s lažiranim podacima, a ti će podaci završiti u MAC/IP tablici i koristiti se za prijenos podataka. Ovo je bit ARP-spoofing napada, koji se ponekad naziva ARP jetkanje, ARP cache poisoning.

Opis ARP-spoofing napada

Dva računala (čvora) M i N na lokalnoj Ethernet mreži razmjenjuju poruke. Napadač X, koji se nalazi na istoj mreži, želi presresti poruke između ovih čvorova. Prije nego što se ARP-spoofing napad primijeni na mrežno sučelje hosta M, ARP tablica sadrži IP i Mac adresačvor N. Također na mrežnom sučelju čvora N, ARP tablica sadrži IP i MAC čvora M.

Tijekom ARP-spoofing napada, čvor X (napadač) šalje dva ARP odgovora (bez zahtjeva) - čvoru M i čvoru N. ARP odgovor čvoru M sadrži IP adresu N i MAC adresu X. ARP odgovor čvoru N sadrži IP adresu M i MAC adresu X.

Budući da računala M i N podržavaju spontani ARP, nakon što prime ARP odgovor, mijenjaju svoje ARP tablice, pa sada ARP tablica M sadrži MAC adresu X vezanu za IP adresu N, a ARP tablica N sadrži MAC adresu X, vezan za IP adresu M.

Dakle, ARP-spoofing napad je završen, i sada svi paketi (okviri) između M i N prolaze kroz X. Na primjer, ako M želi poslati paket na računalo N, tada M gleda u svoju ARP tablicu, pronalazi unos s hostovom IP adresom N, odabire MAC adresu odatle (a već postoji MAC adresa čvora X) i šalje paket. Paket dolazi do sučelja X, ono ga analizira, a zatim prosljeđuje čvoru N.

Analizatori mrežnih paketa ili snifferi izvorno su razvijeni kao sredstvo za rješavanje problema problemi s mrežom. Oni su u stanju presresti, interpretirati i pohraniti pakete koji se prenose preko mreže za naknadnu analizu. S jedne strane, to omogućuje administratorima sustava i inženjerima tehničke podrške da promatraju kako se podaci prenose preko mreže, dijagnosticiraju i rješavaju probleme koji se pojave. U tom smislu, snifferi paketa su moćan alat za dijagnosticiranje mrežnih problema. S druge strane, kao i mnogi drugi moćni alati koji su izvorno bili namijenjeni administraciji, s vremenom su se i njuškali počeli koristiti u sasvim druge svrhe. Doista, njuškalo u rukama napadača prilično je opasan alat i može se koristiti za dobivanje lozinki i drugih povjerljivih informacija. Međutim, ne biste trebali misliti da su snifferi neka vrsta čarobnog alata pomoću kojeg svaki haker može lako vidjeti povjerljive informacije koje se prenose mrežom. I prije nego što dokažemo da opasnost od njuškala nije tako velika kao što se često predstavlja, razmotrimo detaljnije principe njihova funkcioniranja.

Principi rada njuškala paketa

Dalje u ovom članku razmotrit ćemo samo softverske njuškale dizajnirane za Ethernet mreže. Sniffer je program koji radi na razini NIC-a (Network Interface Card) (sloj veze) i na skriven način presreće sav promet. Budući da snifferi rade na sloju podatkovne veze OSI modela, ne moraju se pridržavati pravila protokola višeg sloja. Snifferi zaobilaze mehanizme filtriranja (adrese, portove, itd.) koje Ethernet upravljački programi i TCP/IP stog koriste za tumačenje podataka. Njuškalo paketa hvata iz žice sve što kroz nju dolazi. Njuškali mogu pohraniti okvire u binarnom formatu i kasnije ih dešifrirati kako bi otkrili informacije više razine skrivene unutra (Slika 1).

Kako bi njuškalo uhvatilo sve pakete koji prolaze kroz mrežni adapter, upravljački program mrežnog adaptera mora podržavati promiskuitetni način rada. Upravo u ovom načinu rada mrežnog adaptera njuškalo može presresti sve pakete. Ovaj način rada rad mrežnog adaptera automatski se aktivira kada se pokrene sniffer ili se ručno postavi odgovarajućim postavkama sniffera.

Sav presretnuti promet prosljeđuje se dekoderu paketa, koji identificira i dijeli pakete na odgovarajuće razine hijerarhije. Ovisno o mogućnostima pojedinog sniffera, dostavljene informacije o paketu mogu se naknadno dodatno analizirati i filtrirati.

Ograničenja korištenja njuškala

Njuškali su predstavljali najveću opasnost u ono doba kada su se informacije mrežom prenosile čistim tekstom (bez enkripcije), a lokalne mreže građene na temelju koncentratora (hubova). Međutim, ti su dani zauvijek prošli, a danas korištenje njuškala za pristup povjerljivim informacijama nije nimalo lak zadatak.

Stvar je u tome da pri gradnji lokalne mreže Na temelju čvorišta postoji određeni zajednički medij za prijenos podataka ( mrežni kabel) i svi mrežni čvorovi razmjenjuju pakete, natječući se za pristup ovom mediju (slika 2), a paket koji pošalje jedan mrežni čvor prenosi se na sve portove čvorišta i taj paket slušaju svi ostali mrežni čvorovi, ali je prima samo čvor kojem je upućen. Štoviše, ako je njuškalo paketa instalirano na jednom od mrežnih čvorova, tada može presresti sve mrežne pakete koji se odnose na dani segment mreže (mreža koju čini čvorište).

Prekidači su inteligentniji uređaji od čvorišta za emitiranje i izoliraju mrežni promet. Switch zna adrese uređaja spojenih na svaki port i šalje pakete samo između potrebnih portova. To vam omogućuje da rasteretite druge portove bez potrebe da im prosljeđujete svaki paket, kao što to čini čvorište. Tako se paket koji pošalje određeni mrežni čvor prenosi samo na port preklopnika na koji je spojen primatelj paketa, a svi ostali mrežni čvorovi ne mogu detektirati taj paket (slika 3).

Stoga, ako je mreža izgrađena na temelju preklopnika, tada je sniffer instaliran na jednom od mrežnih računala sposoban presresti samo one pakete koji se razmjenjuju između ovog računala i drugih mrežnih čvorova. Kao rezultat toga, da bi se mogli presresti paketi koje računalo ili poslužitelj od interesa za napadača razmjenjuje s drugim mrežnim čvorovima, potrebno je instalirati sniffer na tom računalu (poslužitelju), što zapravo i nije tako jednostavno. Međutim, trebali biste imati na umu da se neka njuškala paketa pokreću iz naredbenog retka i možda nemaju grafičko sučelje. Takvi se njuškali, u načelu, mogu instalirati i pokrenuti na daljinu i neprimjetno za korisnika.

Osim toga, također morate imati na umu da, iako preklopnici izoliraju mrežni promet, svi upravljane sklopke imati funkciju prosljeđivanja porta ili zrcaljenja porta. To jest, port preklopnika može se konfigurirati na takav način da se svi paketi koji stignu na druge priključnice preklopnika dupliciraju na njemu. Ako je u ovom slučaju računalo s njuškalom paketa spojeno na takav priključak, ono može presresti sve pakete koji se razmjenjuju između računala na danom segmentu mreže. Međutim, u pravilu, mogućnost konfiguriranja prekidača dostupna je samo mrežnom administratoru. To, naravno, ne znači da on ne može biti napadač, ali mrežni administrator ima mnogo drugih načina za kontrolu svih korisnika lokalne mreže, te je malo vjerojatno da će vas nadzirati na tako sofisticiran način.

Još jedan razlog zašto snifferi više nisu tako opasni kao što su nekada bili jest to što se većina osjetljivih podataka sada prenosi šifrirano. Otvorene, nekodirane usluge brzo nestaju s interneta. Na primjer, sve se više koristi prilikom posjećivanja web stranica SSL protokol(Sloj sigurnih utičnica); umjesto otvorite FTP Koristi se SFTP (Secure FTP), a za ostale usluge koje standardno ne koriste enkripciju, sve se više koriste virtualne privatne mreže (VPN).

Dakle, oni koji su zabrinuti zbog mogućnosti zlonamjerne upotrebe njuškala paketa trebali bi imati na umu sljedeće. Prvo, da bi predstavljali ozbiljnu prijetnju vašoj mreži, njuškali se moraju nalaziti unutar same mreže. Drugo, današnji standardi šifriranja izuzetno otežavaju presretanje osjetljivih informacija. Stoga trenutno snifferi paketa postupno gube svoju važnost kao hakerski alati, ali u isto vrijeme ostaju učinkoviti i moćan alat za dijagnosticiranje mreža. Štoviše, snifferi se mogu uspješno koristiti ne samo za dijagnosticiranje i lokaliziranje mrežnih problema, već i za reviziju sigurnost mreže. Konkretno, korištenje analizatora paketa omogućuje otkrivanje neovlaštenog prometa, otkrivanje i identificiranje neovlaštenog softver, identificirati neiskorištene protokole kako bi ih uklonili s mreže, generirati promet za penetracijsko testiranje (penetracijski test) kako bi se provjerio sigurnosni sustav, raditi sa sustavima za otkrivanje upada (Intrusion Sustav detekcije,IDS).

Pregled softverskih njuškala paketa

Sva softverska njuškala mogu se podijeliti u dvije kategorije: njuškala koja podržavaju pokretanje iz naredbenog retka i njuškala koja imaju grafičko sučelje. Međutim, napominjemo da postoje njuškala koja kombiniraju obje ove mogućnosti. Osim toga, snifferi se međusobno razlikuju po protokolima koje podržavaju, dubini analize presretnutih paketa, mogućnostima konfiguracije filtera te mogućnosti kompatibilnosti s drugim programima.

Obično se prozor svakog njuškala s grafičkim sučeljem sastoji od tri područja. Prvi od njih prikazuje sažetak podataka o presretnutim paketima. Tipično, ovo područje prikazuje minimum polja, naime: vrijeme presretanja paketa; IP adrese pošiljatelja i primatelja paketa; MAC adrese pošiljatelja i primatelja paketa, izvorne i odredišne ​​adrese portova; vrsta protokola (mrežni, transportni ili aplikacijski sloj); neke sažete informacije o presretnutim podacima. U drugom području se prikazuje statističke informacije o pojedinom odabranom paketu, a na kraju u trećem području paket se prikazuje u heksadecimalnom ili ASCII obliku.

Gotovo svi snifferi paketa omogućuju analizu dekodiranih paketa (zbog čega se snifferi paketa nazivaju i analizatori paketa ili analizatori protokola). Njuškalo distribuira presretnute pakete po slojevima i protokolima. Neka njuškala paketa mogu prepoznati protokol i prikazati snimljene informacije. Ova vrsta informacija obično se prikazuje u drugom području prozora sniffera. Na primjer, bilo koje njuškalo može prepoznati TCP protokol, a napredno njuškalo može odrediti koja je aplikacija generirala ovaj promet. Većina analizatora protokola prepoznaje više od 500 različitih protokola i može ih opisati i dekodirati imenom. Kako više informacija moći dekodirati i prikazati njuškalo na zaslonu, što manje morate dekodirati ručno.

Jedan problem s kojim se njuškači paketa mogu susresti je nemogućnost ispravne identifikacije protokola koristeći port koji nije zadani port. Na primjer, radi poboljšanja sigurnosti, neke dobro poznate aplikacije mogu se konfigurirati za korištenje priključaka koji nisu zadani. Dakle, umjesto tradicionalnog priključka 80, rezerviranog za web poslužitelj, ovaj se poslužitelj može prisilno rekonfigurirati na priključak 8088 ili bilo koji drugi. Neki analizatori paketa u ovoj situaciji ne mogu točno odrediti protokol i prikazuju samo informacije o protokolu niži nivo(TCP ili UDP).

Postoje softverski njuškali koji dolaze sa softverskim analitičkim modulima kao dodacima ili ugrađenim modulima koji vam omogućuju izradu izvješća s korisnim analitičkim informacijama o presretnutom prometu.

Još jedna karakteristična značajka većine softvera za analizu paketa je mogućnost konfiguriranja filtara prije i nakon snimanja prometa. Filtri odabiru određene pakete iz općeg prometa prema zadanom kriteriju, što vam omogućuje da se riješite nepotrebnih informacija prilikom analize prometa.

Potreba za analizom mrežnog prometa može nastati iz nekoliko razloga. Praćenje računalne sigurnosti, otklanjanje pogrešaka lokalne mreže, praćenje odlaznog prometa radi optimizacije rada zajedničke internetske veze - svi su ti zadaci često na dnevnom redu administratori sustava, I obični korisnici. Za njihovo rješavanje postoje mnogi uslužni programi koji se nazivaju njuškali, kako specijalizirani, usmjereni na rješavanje uskog područja zadataka, tako i višenamjenski "žeteoci", koji korisniku pružaju širok izbor alata. Ovaj članak predstavlja jednog od predstavnika potonje skupine, naime uslužni program CommView koji proizvodi tvrtka. Program vam omogućuje da jasno vidite potpunu sliku prometa koji prolazi kroz računalo ili segment lokalne mreže; prilagodljivi alarmni sustav omogućuje vam da upozorite na prisutnost sumnjivih paketa u prometu, pojavu čvorova s ​​nenormalnim adresama u mreži ili povećanje opterećenja mreže.

CommView pruža mogućnost održavanja statistike o svim IP vezama, dekodiranje IP paketa do niska razina i analizirati ih. Ugrađeni sustav filtriranja na temelju nekoliko parametara omogućuje konfiguriranje praćenja isključivo za potrebne pakete, što čini njihovu analizu učinkovitijom. Program može prepoznati pakete iz više od sedam desetaka najčešćih protokola (uključujući DDNS, DHCP, DIAG, DNS, FTP, HTTP, HTTPS, ICMP, ICQ, IMAP, IPsec, IPv4, IPv6, IPX, LDAP, MS SQL, NCP, NetBIOS, NFS, NLSP, POP3, PPP, PPPoE, SMB, SMTP, SOCKS, SPX, SSH, TCP, TELNET, UDP, WAP, itd.), te ih također spremite u datoteke za naknadnu analizu. Mnogi drugi alati kao što je otkrivanje proizvođača mrežnog adaptera prema MAC adresi, rekonstrukcija HTML-a i daljinsko snimanje paketa pomoću dodatna korisnost CommView Remote Agent također može biti koristan u određenim slučajevima.

Rad s programom

Najprije je potrebno odabrati mrežno sučelje na kojem će se pratiti promet.

CommView podržava gotovo sve vrste Ethernet adaptera - 10, 100 i 1000 Mbps, kao i analogni modemi, xDSL, Wi-Fi, itd. Analizirajući promet Ethernet adaptera, CommView može presresti ne samo dolazne i odlazne, već i tranzitne pakete upućene bilo kojem računalu u segmentu lokalne mreže. Vrijedno je napomenuti da ako je zadatak pratiti sav promet na segmentu lokalne mreže, tada je potrebno da računala u njemu budu povezana preko čvorišta, a ne preko preklopnika. Neki moderni modeli preklopnici imaju funkciju zrcaljenja portova, što im također omogućuje konfiguraciju za nadzor mreže pomoću CommView-a. Možete pročitati više o ovome. Odabirom prava veza, možete početi hvatati pakete. Gumbi za pokretanje i zaustavljanje snimanja nalaze se blizu linije za odabir sučelja. Za rad s daljinskim upravljačem pristupa, VPN-om i PPPoE-om morate instalirati odgovarajući upravljački program prilikom instaliranja programa.

Glavni prozor programa podijeljen je na nekoliko kartica odgovornih za jedno ili drugo područje rada. Prvi od njih, "Trenutne IP veze", prikazuje detaljne informacije o trenutnim IP vezama računala. Ovdje možete vidjeti lokalne i udaljena IP adresa, broj poslanih i primljenih paketa, smjer prijenosa, broj uspostavljenih IP sesija, portove, naziv hosta (ako funkcija prepoznavanja DNS-a nije onemogućena u postavkama programa), te naziv procesa koji prima ili šalje pakete za ovu sesiju. posljednja informacija nije dostupno za tranzitne pakete ili na računalima sa sustavom Windows 9x/ME.

Kartica trenutnih IP veza

Ako desnom tipkom miša kliknete bilo koju vezu, otvorit će se kontekstni izbornik u kojem možete pronaći alate koji olakšavaju analizu veza. Ovdje možete vidjeti količinu podataka prenesenih unutar veze, puni popis korišteni portovi, detaljne informacije o procesu primanja ili slanja paketa za ovu sesiju. CommView vam omogućuje stvaranje aliasa za MAC i IP adrese. Na primjer, određivanjem aliasa umjesto glomaznih digitalnih adresa strojeva na lokalnoj mreži, možete dobiti lako čitljiva i pamtljiva imena računala i tako olakšati analizu veze.

Da biste stvorili alias za IP adresu, trebate odabrati kontekstni izbornik redom stavke "Stvori pseudonim" i "upotrebom lokalnog IP-a" ili "upotrebom udaljenog IP-a". U prozoru koji se pojavi polje za IP adresu već će biti popunjeno, a preostaje samo unijeti odgovarajuće ime. Ako novi unos IP ime kreirano jednim klikom desni gumb kliknite na paket, polje naziva se automatski popunjava nazivom hosta (ako je dostupno) i može se uređivati. Isto vrijedi i za rad s MAC aliasima.

Iz istog izbornika odabirom SmartWhois možete odabranu izvornu ili odredišnu IP adresu poslati SmartWhois programu - samostalna aplikacija Tamosoft, koji prikuplja podatke o bilo kojoj IP adresi ili nazivu hosta, kao što su naziv mreže, domena, država, država ili pokrajina, grad, te ih čini dostupnima korisniku.

Druga kartica, "paketi", prikazuje sve presretnute pakete na odabranom mrežnom sučelju i detaljne informacije o njima.

Tablica paketa

Prozor je podijeljen u tri područja. Prvi od njih prikazuje popis svih presretnutih paketa. Ako odaberete jedan od paketa klikom na njega pokazivačem miša, preostali prozori prikazat će informacije o njemu. Ovo prikazuje broj paketa, protokol, Mac i IP adrese hosta koji šalje i prima, portove koji se koriste i vrijeme kada se paket pojavio.

Srednje područje prikazuje sadržaj paketa - u heksadecimalnom ili tekstualnom obliku. U potonjem slučaju, znakovi koji se ne ispisuju zamjenjuju se točkama. Ako je u gornjem dijelu istovremeno odabrano više paketa, u srednjem prozoru će biti prikazan ukupan broj odabranih paketa, njihova ukupna veličina, kao i vremenski razmak između prvog i posljednjeg paketa.

Donji prozor prikazuje dekodirane detaljne informacije o odabranom paketu.

Klikom na jedan od tri gumba u donjem desnom dijelu prozora možete odabrati mjesto prozora za dekodiranje: pri dnu ili poravnato lijevo ili desno. Druga dva gumba omogućuju vam automatski odlazak na najnovije primljeni paket i spremite odabrani paket u područje vidljivog popisa.

Kontekstni izbornik vam omogućuje kopiranje MAC, IP adresa i cijelih paketa u međuspremnik, dodjeljivanje pseudonima, primjenu brzog filtra za odabir potrebnih paketa, kao i korištenje alata za rekonstrukciju TCP sesije i generator paketa.

Alat za rekonstrukciju TCP sesije omogućuje pregled procesa razmjene između dva računala putem TCP-a. Kako bi sadržaj sesije bio razumljiviji, trebate odabrati odgovarajuću "logiku prikaza". Ova je funkcija najkorisnija za oporavak tekstualne informacije, na primjer HTML ili ASCII.

Rezultirajući podaci mogu se izvesti kao tekstualna, RTF ili binarna datoteka.

Kartica Log Files. Ovdje možete konfigurirati postavke za spremanje snimljenih paketa u datoteku. CommView sprema datoteke dnevnika u vlastiti format NCF; Za njihov pregled koristi se ugrađeni uslužni program koji se može pokrenuti iz izbornika "Datoteka".

Moguće je omogućiti automatsko spremanje presretnutih paketa čim stignu, održavajući protokole HTTP sesije u TXT i HTML formatima, spremanje, brisanje, spajanje i dijeljenje log datoteka. Jedna stvar koju treba imati na umu je da se paket ne sprema odmah po dolasku, pa ako pregledavate datoteku dnevnika u stvarnom vremenu, najvjerojatnije neće prikazati najnovije pakete. Kako bi program odmah poslao međuspremnik u datoteku, morate kliknuti gumb "Završi snimanje".

U kartici "Pravila" možete postaviti uvjete za presretanje ili ignoriranje paketa.

Kako biste olakšali odabir i analizu potrebnih paketa, možete koristiti pravila filtriranja. To će također pomoći da se značajno smanji količina resursi sustava, koristi CommView.

Kako biste omogućili pravilo, trebate odabrati odgovarajući odjeljak na lijevoj strani prozora. Dostupno je ukupno sedam vrsta pravila: jednostavna - “Protokoli i smjer”, “Mac adrese”, “IP adrese”, “Portovi”, “Tekst”, “TCP zastavice”, “Proces”, kao i univerzalna pravilo "Formula" " Za svako od jednostavnih pravila moguće je odabrati pojedinačne parametre, poput odabira smjera ili protokola. Univerzalno pravilo formule snažan je i fleksibilan mehanizam za stvaranje filtara pomoću Booleove logike. Detaljna referenca o njegovoj sintaksi može se pronaći.

Tab "Upozorenja" pomoći će vam konfigurirati postavke za obavijesti o različitim događajima koji se događaju u segmentu mreže koji se proučava.

Kartica Upozorenja omogućuje vam stvaranje, uređivanje, brisanje pravila upozorenja i pregled trenutnih događaja koji odgovaraju tim pravilima

Da biste postavili pravilo upozorenja, potrebno je kliknuti gumb “Dodaj...” i u prozoru koji se otvori odabrati potrebne uvjete koji će pokrenuti obavijest, kao i način obavještavanja korisnika o tome.

CommView vam omogućuje da definirate sljedeće vrste događaja za praćenje:

  • "Otkrij paket" koji odgovara navedenoj formuli. Sintaksa formule je detaljno opisana u korisničkom priručniku;
  • "Bajtova u sekundi." Ovo upozorenje aktivirat će se kada se premaši navedena razina opterećenja mreže;
  • "Paketi u sekundi." Pokreće se kada se premaši navedena razina frekvencije prijenosa paketa;
  • "Broj emitiranja u sekundi." Isto, samo za emitirane pakete;
  • "Multicasts per second" - isto za multicast pakete.
  • "Nepoznata MAC adresa." Ovo se upozorenje može koristiti za otkrivanje nove ili neovlaštene opreme koja se spaja na mrežu tako da se prvo definira popis poznatih adresa pomoću opcije Postavljanje;
  • Upozorenje "Nepoznata IP adresa" aktivirat će se kada se presretnu paketi s nepoznatim IP adresama pošiljatelja ili primatelja. Ako unaprijed navedete popis poznatih adresa, ovo se upozorenje može koristiti za otkrivanje neovlaštene veze kroz korporativni firewall.

CommView ima moćan alat za vizualizaciju statistike prometa koji se proučava. Kako biste otvorili prozor statistike, potrebno je u izborniku “View” odabrati istoimenu stavku.

Prozor statistike u načinu rada "Općenito".

U ovom prozoru možete vidjeti statistiku mrežnog prometa: ovdje možete vidjeti broj paketa u sekundi, bajtova u sekundi, distribuciju Ethernet protokoli, IP i podprotokoli. Grafikoni se mogu kopirati u međuspremnik, što će vam pomoći kada trebate sastaviti izvješća.

Dostupnost, cijena, zahtjevi sustava

Trenutna verzija programa je CommView 5.1. S web stranice Tamosoft možete, koja će funkcionirati 30 dana.

Programer nudi korisnicima dvije opcije licence:

  • Home License (kućna licenca), vrijedna 2000 rubalja, daje pravo korištenja programa kod kuće na nekomercijalnoj osnovi, dok je broj hostova dostupnih za praćenje na vašoj kućnoj mreži ograničen na pet. Ova vam vrsta licence ne dopušta daljinski rad s koristeći Remote Agent.
  • Enterprise licenca (korporativna, cijena - 10 000 rubalja) daje pravo na komercijalnu i nekomercijalnu upotrebu programa od strane jedne osobe koja osobno koristi program na jednom ili više strojeva. Program se može instalirati i na jedan radna stanica i koristiti ga više ljudi, ali ne istovremeno.

Aplikacija radi u operativni sustavi Windows 98/Me/NT/2000/XP/2003. Za rad vam je potreban Ethernet mrežni adapter, bežični Ethernet, Prsten sa znakom s podrškom za standard NDIS 3.0 ili standardni kontroler daljinskog pristupa.

Prednosti:

  • lokalizirano sučelje;
  • odličan sustav pomoći;
  • podrška za različite vrste mrežnih adaptera;
  • napredni alati za analizu paketa i identifikaciju protokola;
  • vizualizacija statistike;
  • funkcionalni sustav upozorenja.

minusi:

  • previsoki trošak;
  • nedostatak unaprijed postavljenih pravila za presretanje i upozoravanje;
  • nije baš zgodan mehanizam za odabir paketa na kartici "Paketi".

Zaključak

Zahvaljujući izvrsnoj funkcionalnosti i prikladno sučelje CommView može postati nezamjenjiv alat za lokalne mrežne administratore, pružatelje internetskih usluga i kućne korisnike. Bio sam zadovoljan pažljivim pristupom programera ruskoj lokalizaciji paketa: i sučelje i vodič za pomoć vrlo su dobro dizajnirani visoka razina. Sliku pomalo zamagljuje visoka cijena programa, ali tridesetodnevnog probna verzijaće pomoći potencijalni kupac odlučiti o preporučljivosti kupnje ovog uslužnog programa.