Võrgupakettide analüsaatorid. Kättesaadavus, hind, süsteeminõuded

Originaal: pakettide hõivamine teie C-programmis libpcapiga
Autor: Pankaj Tanwar
Avaldamise kuupäev: 1. veebruar 2011
Tõlge: A. Panin
Tõlke kuupäev: 11. oktoober 2012

See artikkel annab ülevaate libpcapi teegi põhifunktsioonidest ja näitab pakettide püüdmise programmi loomise näidet.

Kogu andmete liikumine võrkudes toimub pakettide kujul, mis on võrkude andmeühik. Et mõista, millised andmed paketis on, peate mõistma hierarhiat võrguprotokollid võrgumudeli sees. Kui te ei tunne ISO OSI (Open Systems Interconnection) võrgumudelit, soovitan tungivalt tutvuda vastavate dokumentidega. Hea teabeallikas on Wikipedia artikkel.

Mõiste "pakett" võetakse esmakordselt kasutusele võrgu tasemel. Selle taseme peamised protokollid on: IP (Internet Protocol), ICMP (Internet Control Message Protocol), IGMP (Internet Group Management Protocol) ja IPsec (protokollide kogum IP-protokolli kaudu edastatavate andmete kaitse tagamiseks). Transpordikihi protokollid hõlmavad TCP-d (Transmission Control Protocol), mis on keskendunud püsiva ühenduse loomisele; UDP (User Datagram Protocol), mis ei vaja püsiühendust; SCTP (Stream Control Transmission Protocol) ühendab kahe ülaltoodud protokolli omadused. Rakenduskiht sisaldab palju sagedamini kasutatavaid protokolle, nagu HTTP, FTP, IMAP, SMTP ja paljud teised.

Paketthõive viitab võrgu kaudu edastatavate andmete kogumisele. Iga kord, kui võrgukaart saab Etherneti kaadri, kontrollib see paketi sihtkoha MAC-aadressi, et näha, kas see ühtib selle omaga. Kui aadressid ühtivad, genereeritakse katkestustaotlus. Seda katkestust haldab seejärel võrgukaardi draiver; see kopeerib andmed võrgukaardi puhvrist kerneli aadressiruumis olevasse puhvrisse, seejärel kontrollib paketi päises tüübivälja ja edastab paketi vajalikule protokollikäsitlejale olenevalt välja sisust. Andmed läbivad võrgukihtide virna ja jõuavad rakenduse tase, mida töödeldakse kohandatud rakenduse abil.

Kui püüame paketid, saadab draiver vastuvõetud paketi koopia ka paketifiltrisse. Pakettide hõivamiseks kasutame avatud lähtekoodiga teeki lähtekood libpcap.

libpcapi põhitõed

Libpcapi teek on platvormist sõltumatu avatud lähtekoodiga teek (Windowsi versiooni nimetatakse winpcapiks). Tuntud nuusutajad tcpdump ja Wireshark kasutavad seda teeki töötamiseks.

Programmi arendamiseks vajame võrguliidest, mille kaudu paketid püütakse. Saame selle seadme ise määrata või kasutada libpcapi pakutavat funktsiooni: char *pcap_lookupdev(char *errbuf).

See funktsioon tagastab kursori stringile, mis sisaldab esimese pakettide hõivamiseks sobiva võrguliidese nime; vea ilmnemisel tagastatakse NULL (see kehtib ka muude libpcap funktsioonide kohta). Argument errbuf on mõeldud kasutaja puhvriks, kuhu vea ilmnemisel paigutatakse veateade – see on programmide silumisel väga mugav. Selle puhvri suurus peab olema vähemalt PCAP_ERRBUF_SIZE (by Sel hetkel 256) baiti.

Seadmega töötamine

Järgmisena avame valitud võrguseade funktsiooni kasutades pcap_t *pcap_open_live(const char *seade, int snaplen, int promisc, int to_ms, char *errbuf). See tagastab seadme identifikaatori, mis on pcap_t tüüpi muutuja, mida saab kasutada muudes libpcapi funktsioonides. Esimene argument on võrguliides, millega tahame töötada, teine ​​argument maksimaalne suurus puhver andmete hõivamiseks baitides.

Teise parameetri seadmine minimaalsele väärtusele on kasulik, kui peate jäädvustama ainult pakettide päiseid. Etherneti kaadri suurus on 1518 baiti. Väärtusest 65535 piisab mis tahes võrgu paketi hõivamiseks. Promisc argument määrab, kas seade töötab lubamatus režiimis või mitte. (Promiscuous-režiimis genereerib võrgukaart katkestused kõikidele vastuvõetavatele andmetele, mitte ainult neile, mis vastavad MAC-aadressile. Loe lähemalt Vikipeediast).

Argument to_ms annab kernelile teada, mitu millisekundit peab ootama enne teabe kopeerimist kerneli ruumist kasutajaruumi. Väärtuse 0 edastamine paneb andmete lugemise toimingu ootama, kuni kogutakse piisavalt pakette. Kerneli ruumist kasutajaruumi andmete kopeerimise operatsioonide arvu vähendamiseks määrame selle väärtuse sõltuvalt võrguliikluse intensiivsusest.

Andmehõive

Nüüd peame alustama pakettide hõivamist. Kasutame funktsiooni u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h). Siin *p on kursor, mille tagastab pcap_open_live() ; järgmine argument on osuti struct tüüpi muutujale pcap_pkthdr, mis tagastab esimese vastuvõetud paketi.

Funktsioon int pcap_loop(pcap_t *p, int cnt, pcap_handleri tagasihelistus, u_char *kasutaja) kasutatakse pakendite kokkupanemiseks ja töötlemiseks. Tagastab cnt argumendiga määratud pakettide arvu. Tagasihelistamise funktsiooni kasutatakse vastuvõetud pakettide töötlemiseks (peame selle funktsiooni määratlema). Edastamise jaoks Lisainformatsioon Selles funktsioonis kasutame parameetrit *user, mis on osuti u_char tüüpi muutujale (peame tegema oma tüübi teisenduse, sõltuvalt funktsioonile edastatavast nõutavast andmetüübist).

Tagasihelistamisfunktsiooni prototüüp näeb välja selline: void callback_function (u_char *arg, const struct pcap_pkthdr* pkthdr, const u_char* pakett). Esimene argument on *kasutaja argument, mis edastatakse pcap_loop() ; järgmine argument on kursor struktuurile, mis sisaldab teavet vastuvõetud paketi kohta. Struktuuri pcap_pkthdr väljad on toodud allpool (võetud failist pcap.h): struct pcap_pkthdr ( struct timeval ts; /* ajatempel */ bpf_u_int32 caplen; /* olemasoleva osa pikkus */ bpf_u_int32 len ; /* pikkus sellest paketist (juhtmevaba) */ )

Funktsiooni pcap_loop() alternatiiviks on funktsioon pcap_dispatch(pcap_t *p, int cnt, pcap_handleri tagasihelistus, u_char *kasutaja). Ainus erinevus seisneb selles, et see funktsioon tagastab tulemuse pärast pcap_open_live() kutsumisel määratud aja möödumist.

Liikluse filtreerimine

Kuni selle ajani saime kõik võrguliidesele saabunud paketid. Nüüd kasutame pcap funktsiooni, mis võimaldab filtreerida antud porti saabuvat liiklust. Seda funktsiooni saame kasutada ka ainult antud protokolli (nt ARP või FTP) pakettidega töötamiseks. Kõigepealt peame looma filtri kasutades seda funktsiooni: int pcap_compile(pcap_t *p, struct bpf_program *fp, const char *str, int optimeerida, bpf_u_int32 mask);

Esimene argument on kõigi raamatukogu funktsioonide puhul sarnane ja sellest oli juttu varem; teine ​​argument on kursor filtri kompileeritud versioonile. Järgmine on filtri avaldis. See väljend võib olla protokolli nimi, näiteks ARP, IP, TCP, UDP jne. Paljud näiteavaldised leiate pcap-filter ja tcpdump juhenditest, mis tuleks teie süsteemi installida.

Järgmine argument määrab optimeerimise oleku (0 – ära optimeeri, 1 – optimeeri). Järgmisena tuleb võrgumask, millega filter töötab. Funktsioon tagastab vea korral -1 (kui avaldises tuvastatakse viga).

Peale kompileerimist rakendame funktsiooni kasutades filtrit int pcap_setfilter(pcap_t *p, struct bpf_program *fp). Funktsiooni teine ​​argument on liikluse filtreerimise avaldise kompileeritud versioon.

IPv4 teabe vastuvõtmine

Int pcap_lookupnet(const char *seade, bpf_u_int32 *netp, bpf_u_int32 *maskp, char *errbuf)

Seda funktsiooni kasutades saate hankida antud võrguliidesele määratud IPv4 võrguaadressi ja võrgumaski. Võrguaadress kirjutatakse *netp ja võrgumask *mask.

Väike pakettide püüdmise programm

Nüüd kirjutame programmi, mis aitab meil mõista, kuidas pcap töötab. Nimetagem lähtekoodiga faili sniff.c. See on programm veebisaidi tcpdump.org käsiraamatute jaotisest, mille autoriks on Martin Casado. Esmalt lisame vajalikud päisefailid. #kaasa #kaasa #kaasa #kaasa #kaasa #kaasa #kaasa #kaasa

Järgmisena tutvustame vastuvõetud pakettide töötlemiseks tagasihelistamisfunktsiooni. See funktsioon prindib lihtsalt praeguse vastuvõetud pakettide arvu. Kirjutame hiljem teise tagasihelistamisfunktsiooni. See sama funktsioon on nii ilmne, et see ei vaja selgitust. void my_callback(u_char *args, const struct pcap_pkthdr* pkthdr, const u_char* pakett) ( staatiline int count = 1; fprintf(stdout, "%3d, ", count); fflush(stdout); count++; )

Vaatame nüüd funktsiooni main(). Siin kasutame varem analüüsitud funktsioone: int main(int argc,char **argv) ( int i; char *dev; char errbuf; pcap_t* descr; const u_char *pakett; struct pcap_pkthdr hdr; struct ether_header *eptr; / * net/ethernet.h */ struct bpf_program fp /*koostatud filtreerimisavaldis */ bpf_u_int32 maskp Kasutus: %s \"expression\"\n" ,argv); tagasta 0; /* Hankige seadme nimi */ dev = pcap_lookupdev(errbuf); if(dev == NULL) ( fprintf(stderr, "%s \" n", errbuf); exit(1); ) /* Seadme võrguaadressi ja võrgumaski hankimine */ pcap_lookupnet(dev, &netp, &maskp, errbuf); /* seadme avamine promiscuous-režiimis */ descr = pcap_open_live( dev, BUFSIZ, 1,-1, errbuf); if(descr == NULL) ( printf("pcap_open_live(): %s\n", errbuf); exit(1); ) /* nüüd on filtriavaldis kirjutatud; */ if(pcap_compile(descr, &fp, argv, 0, netp) == -1) ( fprintf(stderr, "Viga pcap_compile\n kutsumisel"); väljumine(1); ) /* filtri rakendamine */ if(pcap_setfilter(descr, &fp) == -1) ( fprintf(stderr, "Viga seadistusfiltri\n"); exit(1); ) /* tsüklis kasutatav tagasihelistamisfunktsioon * / pcap_loop(descr, -1, my_callback, NULL); tagasi 0; )

Kompileerige programm allolevate käskude abil ja käivitage administraatorina (vajalik lubamatu režiimi lubamiseks): $ gcc -lpcap sniff.c -o sniffer # ./sniffer ip

Joonis 1 näitab programmi näidisväljundit.

Joonis 1: Programmi väljund

Kuna filtriavaldis on seatud väärtusele ip , täitub teie ekraan peagi vastuvõetavate IP-pakettidega. Saate ip asendada mõne muu avaldisega, näiteks tcp, arp jne. - vaadake näiteid tcpdump man-lehelt.

Veel üks tagasihelistamisfunktsiooni teostus, mis prindib antud filtriavaldise alusel vastuvõetud pakettide sisu (see on juba failis sniff.c): void another_callback(u_char *arg, const struct pcap_pkthdr* pkthdr, const u_char* pakett) ( int i= 0 static int count=0 printf("Packet Count: %d\n", ++counts */ printf("Saadud paketi suurus: %d\n"; päise pikkus */ printf("Payload:\n" /* Ja nüüd andmed */ for(i=0;i). len;i++) ( if(isprint(pakett[i])) /* Kontrollib, kas märk on prinditav */ printf("%c ",packet[i]); /* Trükib märgi */ else printf(" . " ,pakett[i]); /* Kui märk ei ole prinditav */ if((i%16==0 && i!=0) || i==pkthdr->len-1) printf("\n " ) ) )

Funktsiooni pcap_loop() kutset saab muuta funktsioonis main(), kus kutsutakse funktsiooni my_callback() funktsiooni uue variandi kasutamiseks. Kompileerige muudetud programm ja käivitage see sama avaldisega kui argumendiga. Joonisel 2 näidatud väljund sisaldab andmeid IP-pakettidest.


Joonis 2: Väljund, mis näitab pakettide sisu.

Ma arvan, et võime siin peatuda. Testige programmi ise, katsetage pcapiga ja saate aru, kui võimas komponent on parimate (ja meie lemmikute) tcpdump ja Wireshark nuusutajate südames.

Wireshark kasutab võrguliikluse hõivamiseks Windowsi jaoks mõeldud libpcapi või WinPcapi teeke. WinPcapi teek ei toeta traadita ühenduse kasutamist võrgukaardid, mistõttu ei võimalda teil otse jäädvustada Wi-Fi liiklust kasutades Wiresharki ja muud rakendused, nagu Cain & Abel või Elcomsoft Wireless Security Auditor for Windows.

WinPcap ja Wi-Fi liikluspiirangud Wiresharkis

Wi-Fi-pakettide hõivamise piirangud Windowsis on seotud WinPcapi teegiga, mitte Wiresharki programmi endaga. Lõppude lõpuks on Wiresharkil tugi spetsialiseerunud ja üsna kallitele Wi-Fi adapterid, mille draiverid toetavad võrguliikluse jälgimist Windowsi keskkond, mida Wi-Fi-võrkudes nimetatakse sageli ebapromiscuusiks võrguliikluse hõivamiseks.

Sisaldab oma draiverit liikluse hõivamiseks NDIS-tehnoloogia abil, jäädvustades liiklust WiFi-võrgus Windows OS-is ja võimaldades Jäädvustage traadita liiklust Wiresharki abil Windowsis Vista, Windows 7, Windows 8 ja Windows 8.1. Seda draiverit kasutades saate automaatselt pakkuda muid programme Wi-Fi-liikluse analüüsimiseks koos võimalusega hõivata andmeid Windowsi traadita võrkudes.

NDIS-draiver ja WiFi-liidesed Wiresharkis

Selle interaktsiooni lubamiseks installib Acrylic arvutisse oma teegi airpcap.dll, emuleerides algse AirPcapi kaardi teeki. Kui Wireshark laadib vastava süsteemi raamatukogu AirPcap by Acrylic, raamatukogu tagastab installitud AirPcapi seadmete näiliku loendi, iga kirje kohta sisemine kaart Wi-Fi või väline USB Wi-Fi adapter.

Selle meetodi abil saame kasutada meie valitud võrguliikluse analüsaatorit ja vaadata Wiresharkis Wi-Fi liiklust. Topeltklõpsates võrguliidesel, pääsete juurde selle sätetele ja veenduge, et selle võrguliidese jaoks kuvatakse Radiotap päis, mis sisaldab teavet hõivatud pakettide signaali tugevuse kohta.

Klõpsates nuppu "Seaded". traadita võrk» ( "Traadita ühenduse seaded"), saate FCS-i kontrollimise jälgimiseks ja lubamiseks valida lisavalikuid, näiteks Wi-Fi-kanali. FCS on kaadrikontrolli jada, mis võimaldab teil määrata Wi-Fi-pakettide terviklikkuse ja kõrvaldada valesti edastatud paketid.

Wi-Fi liikluse jäädvustamine Wiresharki abil Windowsis

Nii et pärast installimist käivitage Wireshark administraatorina (paremklõpsake Wiresharki otseteel ja valige "Run as Administrator"), seejärel valige loendist kaart, millel on NDIS-võrguliidese tähis. Meie puhul on see sisseehitatud Wi-Fi DELL kaart (Dell Wireless 1702/b/g/n)

Videojuhised akrüül-WiFi kasutamiseks koos Wiresharkiga Windowsis

Oleme koostanud protsessi demonstreeriva video, mis on abiks, kui teil on veel küsimusi või kui soovite näha, kuidas traadita side liiklust salvestatakse Wi-Fi kaardid rakenduses Wireshark for Windows.

Mis on Intercepter-NG

Vaatleme ARP-i toimimise olemust lihtne näide. Arvuti A (IP-aadress 10.0.0.1) ja arvuti B (IP-aadress 10.22.22.2) on ühendatud Etherneti võrgu kaudu. Arvuti A soovib saata andmepaketi arvutile B, ta teab arvuti B IP-aadressi. Kuid Etherneti võrk, millega nad on ühendatud, ei tööta IP-aadressidega. Seetõttu peab arvuti A Etherneti kaudu edastamiseks teadma Etherneti võrgus oleva arvuti B aadressi (Ethernet terminites MAC-aadress). Selle ülesande jaoks kasutatakse ARP-protokolli. Seda protokolli kasutades saadab arvuti A leviedastuspäringu, mis on adresseeritud kõigile samas levidomeenis asuvatele arvutitele. Taotluse olemus: "arvuti IP-aadressiga 10.22.22.2, esitage oma MAC-aadress arvutile MAC-aadressiga (näiteks a0:ea:d1:11:f1:01)." Etherneti võrk edastab selle päringu kõigile samas Etherneti segmendis olevatele seadmetele, sealhulgas arvutile B. Arvuti B vastab arvutile A päringule ja teatab oma MAC-aadressi (nt 00:ea:d1:11:f1:11). saanud arvuti B MAC-aadressi, saab arvuti A talle Etherneti võrgu kaudu mis tahes andmeid edastada.

Et vältida ARP-protokolli kasutamist enne iga andmeedastust, salvestatakse vastuvõetud MAC-aadressid ja neile vastavad IP-aadressid mõnda aega tabelisse. Kui teil on vaja andmeid saata samale IP-le, pole vaja soovitud MAC-i otsimisel seadmeid iga kord küsitleda.

Nagu just nägime, sisaldab ARP päringut ja vastust. Vastusest saadud MAC-aadress kirjutatakse MAC/IP-tabelisse. Kui vastus saabub, ei kontrollita selle autentsust mingil moel. Pealegi ei kontrolli see isegi seda, kas taotlus esitati. Need. saad kohe saata sihtseadmetele (isegi ilma päringuta) ARP vastuse koos võltsitud andmetega ja need andmed jõuavad MAC/IP tabelisse ja neid kasutatakse andmeedastuseks. See on ARP-spoofingu rünnaku olemus, mida mõnikord nimetatakse ARP-söövitamiseks, ARP-vahemälu mürgitamiseks.

ARP-spoofingu rünnaku kirjeldus

Kaks arvutit (sõlme) M ja N Etherneti kohtvõrgus vahetavad sõnumeid. Ründaja X, mis asub samas võrgus, soovib nende sõlmede vahelisi sõnumeid pealt kuulata. Enne ARP-spoofingu rünnaku rakendamist hosti M võrguliidesele sisaldab ARP-tabel IP-d ja MAC-aadress sõlm N. Ka sõlme N võrguliidesel sisaldab ARP tabel sõlme M IP-d ja MAC-i.

ARP-i võltsimise rünnaku ajal saadab sõlm X (ründaja) kaks ARP-vastust (ilma päringuta) – sõlmele M ja sõlmele N. ARP-vastus sõlmele M sisaldab N IP-aadressi ja X MAC-aadressi. ARP vastus sõlmele N sisaldab IP-aadressi M ja MAC-aadressi X.

Kuna arvutid M ja N toetavad spontaanset ARP-d, muudavad nad pärast ARP-vastuse saamist oma ARP-tabeleid ja nüüd sisaldab ARP-tabel M MAC-aadressi X, mis on seotud IP-aadressiga N, ja ARP-tabel N sisaldab MAC-aadressi X, seotud IP-aadressiga M.

Seega on ARP-spoofingu rünnak lõpetatud ja nüüd läbivad kõik paketid (kaadrid) M ja N vahel läbi X. Näiteks kui M tahab saata paketi arvutisse N, siis M vaatab oma ARP tabelist, leiab kirje hosti IP-aadressiga N, valib sealt MAC-aadressi (ja seal on juba sõlme X MAC-aadress) ja saadab paketi edasi. Pakett jõuab liidesesse X, seda analüüsib ja seejärel edastatakse sõlme N.

Võrgupakettanalüsaatorid ehk nuusutajad töötati algselt välja lahenduste vahendina võrguprobleemid. Nad on võimelised võrgu kaudu edastatud pakette pealtkuulama, tõlgendama ja salvestama hilisemaks analüüsiks. Ühest küljest võimaldab see süsteemiadministraatoritel ja tehnilise toe inseneridel jälgida, kuidas andmeid üle võrgu edastatakse, tuvastada ja lahendada tekkivaid probleeme. Selles mõttes on pakettnuusutajad võimas tööriist võrguprobleemide diagnoosimiseks. Teisest küljest, nagu paljud teised algselt administreerimiseks mõeldud võimsad tööriistad, hakati aja jooksul nuusutajaid kasutama hoopis teistel eesmärkidel. Tõepoolest, nuusutaja ründaja käes on üsna ohtlik tööriist ja seda saab kasutada paroolide ja muu konfidentsiaalse teabe hankimiseks. Siiski ei tasu arvata, et nuusutajad on mingi maagiline tööriist, mille kaudu iga häkker saab hõlpsasti vaadata võrgu kaudu edastatavat konfidentsiaalset teavet. Ja enne kui tõestame, et nuusutajate oht pole nii suur, kui sageli esitatakse, mõelgem üksikasjalikumalt nende toimimise põhimõtteid.

Pakettnuusutajate tööpõhimõtted

Edasi käsitleme selles artiklis ainult nende jaoks mõeldud tarkvara nuusutajaid Etherneti võrgud. Sniffer on programm, mis töötab NIC (Network Interface Card) tasemel (linkikiht) ja varjatud viisil peatab kogu liikluse. Kuna nuusutajad töötavad OSI mudeli andmesidekihil, ei pea nad mängima kõrgema kihi protokollide reeglite järgi. Nuusutajad lähevad mööda filtreerimismehhanismidest (aadressid, pordid jne), mida Etherneti draiverid ja TCP/IP-pinn kasutavad andmete tõlgendamiseks. Pakettnuusutajad püüavad juhtmest kinni kõik, mis sealt läbi tuleb. Nuusutajad saavad salvestada kaadreid binaarvormingus ja hiljem need dekrüpteerida, et paljastada sees peidetud kõrgema taseme teave (joonis 1).

Selleks, et nuusutaja jäädvustaks kõik võrguadapterit läbivad paketid, peab võrguadapteri draiver toetama promiscuous režiimi. Just selles võrguadapteri töörežiimis suudab nuusutaja kõiki pakette kinni püüda. See režiim võrguadapteri töö aktiveeritakse automaatselt, kui nuusutaja käivitatakse või määratakse käsitsi vastavate nuusutaja sätetega.

Kogu pealtkuulatud liiklus edastatakse pakettdekoodrile, mis tuvastab ja jagab paketid sobivateks hierarhiatasemeteks. Sõltuvalt konkreetse nuusutaja võimalustest saab pakutavat paketiteavet hiljem edasi analüüsida ja filtreerida.

Nuusutajate kasutamise piirangud

Suurimat ohtu kujutasid nuusutajad neil päevil, mil infot edastati üle võrgu selge tekstina (ilma krüptimiseta) ja kohalikke võrke ehitati kontsentraatorite (jaoturite) baasil. Need ajad on aga igaveseks möödas ja tänapäeval pole konfidentsiaalsele teabele juurdepääsu saamiseks nuusutajate kasutamine sugugi lihtne ülesanne.

Asi on selles, et ehitamisel kohalikud võrgud Jaoturite põhjal on olemas teatud ühine andmeedastusvahend ( võrgukaabel) ja kõik võrgusõlmed vahetavad pakette, konkureerides juurdepääsu pärast sellele meediumile (joonis 2), ning ühe võrgusõlme saadetud pakett edastatakse jaoturi kõikidesse portidesse ja seda paketti kuulavad kõik teised võrgusõlmed, kuid saab ainult sõlm, kellele see on adresseeritud. Veelgi enam, kui ühele võrgusõlmele on installitud pakettide nuusutaja, suudab see kinni püüda kõik antud võrgusegmendiga (jaoturi moodustatud võrk) seotud võrgupaketid.

Lülitid on intelligentsemad seadmed kui levijaoturid ja isoleerivad võrguliiklust. Switch teab iga pordiga ühendatud seadmete aadresse ja edastab pakette ainult vajalike portide vahel. See võimaldab teil teisi porte maha laadida, ilma et peaksite iga paketti neile edastama, nagu seda teeb jaotur. Seega edastatakse teatud võrgusõlme poolt saadetud pakett ainult kommutaatori porti, millega paketi vastuvõtja on ühendatud, ja kõik teised võrgusõlmed ei suuda seda paketti tuvastada (joonis 3).

Seega, kui võrk on ehitatud lüliti baasil, siis on ühte võrguarvutitest paigaldatud nuusutaja võimeline kinni püüdma ainult neid pakette, mida selle arvuti ja teiste võrgusõlmede vahel vahetatakse. Sellest tulenevalt on selleks, et saada pealtkuulamiseks pakette, mida ründajale huvipakkuv arvuti või server teiste võrgusõlmedega vahetab, on vaja just sellesse arvutisse (serverisse) paigaldada nuusutaja, mis tegelikult polegi nii lihtne. Siiski peaksite meeles pidama, et mõned pakettide nuusutajad käivitatakse käsurealt ja neil ei pruugi olla graafilist liidest. Selliseid nuusutajaid saab põhimõtteliselt paigaldada ja käivitada eemalt ning kasutajale märkamatult.

Lisaks peate meeles pidama, et kuigi lülitid isoleerivad võrguliikluse, kõik hallatavad lülitid neil on pordi suunamise või pordi peegeldamise funktsioon. See tähendab, et lülitiporti saab konfigureerida nii, et kõik teistesse kommutaatoriportidesse saabuvad paketid dubleeritakse sellel. Kui antud juhul on sellisesse porti ühendatud paketinuusutaja arvuti, siis suudab see kinni püüda kõik antud võrgusegmendi arvutite vahel vahetatavad paketid. Kuid reeglina on lüliti seadistamise võimalus saadaval ainult võrguadministraatoril. See muidugi ei tähenda, et ta ei võiks olla ründaja, kuid võrguadministraatoril on palju muid võimalusi kohaliku võrgu kõigi kasutajate kontrollimiseks ja on ebatõenäoline, et ta teid nii läbimõeldult jälgib.

Teine põhjus, miks nuusutajad pole enam nii ohtlikud kui kunagi varem, on see, et enamik tundlikke andmeid edastatakse nüüd krüpteeritult. Avatud krüptimata teenused kaovad Internetist kiiresti. Näiteks veebisaite külastades kasutatakse seda üha enam SSL-protokoll(Secure Sockets Layer); selle asemel avage FTP Kasutatakse SFTP-d (Secure FTP) ja muude teenuste puhul, mis vaikimisi krüptimist ei kasuta, kasutatakse üha enam virtuaalseid privaatvõrke (VPN).

Seega peaksid need, kes tunnevad muret pakettide nuusutajate võimaliku pahatahtliku kasutamise pärast, meeles pidama järgmist. Esiteks peavad nuusutajad teie võrgule tõsiseks ohuks asuma võrgus endas. Teiseks muudavad tänapäeva krüpteerimisstandardid tundliku teabe pealtkuulamise äärmiselt keeruliseks. Seetõttu kaotavad pakettide nuusutajad praegu järk-järgult oma tähtsust häkkeritööriistadena, kuid samal ajal on nad endiselt tõhusad ja võimas tööriist võrkude diagnoosimiseks. Pealegi saab nuusutajaid edukalt kasutada mitte ainult võrguprobleemide diagnoosimiseks ja lokaliseerimiseks, vaid ka auditeerimiseks võrgu turvalisus. Eelkõige võimaldab paketianalüsaatorite kasutamine tuvastada volitamata liiklust, avastada ja tuvastada volitamata liiklust tarkvara, tuvastada kasutamata protokollid, et need võrgust eemaldada, genereerida liiklust läbitungimise testimiseks (penetratsioonitest), et kontrollida turvasüsteemi, töötada sissetungimise tuvastamise süsteemidega (Intrusion Tuvastamissüsteem,IDS).

Tarkvarapakettide nuusutajate ülevaade

Kõik tarkvara nuusutajad võib jagada kahte kategooriasse: nuusutajad, mis toetavad käsurealt käivitamist, ja nuusutajad, millel on graafiline liides. Siiski märgime, et on olemas nuusutajad, mis ühendavad mõlemad need võimalused. Lisaks erinevad nuusutajad üksteisest toetatavate protokollide, pealtkuulatud pakettide analüüsi sügavuse, filtrite seadistamise võimaluse ja teiste programmidega ühilduvuse poolest.

Tavaliselt koosneb iga graafilise liidesega nuusutaja aken kolmest piirkonnast. Esimene neist kuvab pealtkuulatud pakettide koondandmed. Tavaliselt kuvatakse sellel alal minimaalselt välju, nimelt: pakettide pealtkuulamise aeg; paketi saatja ja saaja IP-aadressid; paketi saatja ja saaja MAC-aadressid, lähte- ja sihtpordi aadressid; protokolli tüüp (võrgu-, transpordi- või rakenduskiht); mõni kokkuvõtlik teave pealtkuulatud andmete kohta. Teises piirkonnas kuvatakse see statistiline teaveüksiku valitud paketi kohta ja lõpuks kolmandas piirkonnas esitatakse pakett kuueteistkümnendsüsteemis või ASCII-märgi kujul.

Peaaegu kõik paketinuusutajad võimaldavad analüüsida dekodeeritud pakette (sellepärast nimetatakse paketinuusureid ka paketianalüsaatoriteks ehk protokollianalüsaatoriteks). Nuusutaja jaotab pealtkuulatud paketid kihtide ja protokollide vahel. Mõned pakettide nuusutajad on võimelised protokolli ära tundma ja jäädvustatud teavet kuvama. Seda tüüpi teave kuvatakse tavaliselt nuusutaja akna teises piirkonnas. Näiteks suudab iga nuusutaja ära tunda TCP-protokolli ja edasijõudnud nuusutajad saavad määrata, milline rakendus on loodud see liiklus. Enamik protokollianalüsaatoreid tunneb ära üle 500 erineva protokolli ning suudab neid nimepidi kirjeldada ja dekodeerida. Kuidas rohkem informatsiooni suudab dekodeerida ja kuvada nuusutaja ekraanil, seda vähem peate käsitsi dekodeerima.

Üks probleem, millega pakettide nuusutajad võivad kokku puutuda, on suutmatus õigesti tuvastada protokolli, kasutades muud porti kui vaikeport. Näiteks turvalisuse parandamiseks võidakse mõned tuntud rakendused konfigureerida kasutama muid porte peale vaikeportide. Nii et traditsioonilise veebiserveri jaoks reserveeritud pordi 80 asemel saab selle serveri sunniviisiliselt ümber konfigureerida pordiks 8088 või mõnele muule. Mõned paketianalüsaatorid ei suuda selles olukorras protokolli õigesti määrata ja kuvada ainult protokolli kohta käivat teavet madalam tase(TCP või UDP).

On olemas tarkvara nuusutajad, mis on varustatud tarkvara analüütiliste moodulitega, mis on lisatud pistikprogrammidena või sisseehitatud moodulitena, mis võimaldavad teil luua pealtkuulatud liikluse kohta kasuliku analüütilise teabega aruandeid.

Teine enamiku pakettanalüsaatorite tarkvara iseloomulik tunnus on võimalus konfigureerida filtreid enne ja pärast liikluse hõivamist. Filtrid valivad üldisest liiklusest teatud paketid etteantud kriteeriumi järgi, mis võimaldab liikluse analüüsimisel vabaneda ebavajalikust infost.

Võrguliikluse analüüsimise vajadus võib tekkida mitmel põhjusel. Arvutiturbe jälgimine, kohaliku võrgu silumine, väljamineva liikluse jälgimine jagatud Interneti-ühenduse toimimise optimeerimiseks – kõik need ülesanded on sageli päevakorras süsteemiadministraatorid, Ja tavakasutajatele. Nende lahendamiseks on palju utiliite, mida nimetatakse nuusutajateks, nii spetsialiseerunud, et lahendada kitsas ülesandeid, kui ka multifunktsionaalseid "kombaineid", mis pakuvad kasutajale laia valikut tööriistu. See artikkel tutvustab üht viimase grupi esindajat, nimelt ettevõtte toodetud utiliiti CommView. Programm võimaldab teil selgelt näha täielikku pilti arvutit või kohaliku võrgu segmenti läbivast liiklusest; kohandatav häiresüsteem võimaldab hoiatada kahtlaste pakettide olemasolust liikluses, ebanormaalsete aadressidega sõlmede ilmumisest võrku või võrgu koormuse suurenemisest.

CommView pakub võimalust säilitada kõigi IP-ühenduste statistikat, dekodeerida IP-pakette kuni madal tase ja neid analüüsida. Sisseehitatud mitmel parameetril põhinev filtrisüsteem võimaldab seadistada jälgimise eranditult vajalike pakettide jaoks, mis muudab nende analüüsi efektiivsemaks. Programm suudab ära tunda pakette enam kui seitsme tosina kõige tavalisema protokolli (sh 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 jne) ning salvestage need ka failidesse hilisemaks analüüsiks. Paljud muud tööriistad, näiteks võrguadapteri tootja tuvastamine MAC-aadressi järgi, HTML-i rekonstrueerimine ja pakettide kaughõive täiendav utiliit Teatud juhtudel võib abi olla ka CommView Remote Agentist.

Programmiga töötamine

Kõigepealt peate valima võrguliidese, millel liiklust jälgitakse.

CommView toetab praktiliselt igat tüüpi Etherneti adaptereid – 10, 100 ja 1000 Mbps, samuti analoogmodemid, xDSL, Wi-Fi jne. Analüüsides Etherneti adapteri liiklust, suudab CommView mitte ainult sissetulevaid ja väljuvaid, vaid ka ülekandepakette, mis on adresseeritud mis tahes arvutisse kohaliku võrgu segmendis. Väärib märkimist, et kui ülesandeks on jälgida kogu liiklust kohaliku võrgu segmendis, siis on nõutav, et selles olevad arvutid oleksid ühendatud jaoturi, mitte lüliti kaudu. Mõned kaasaegsed mudelid lülititel on pordi peegeldamise funktsioon, mis võimaldab neid konfigureerida ka võrgu jälgimiseks CommView abil. Selle kohta saate rohkem lugeda. Valides õige ühendus, võite alustada pakettide hõivamist. Pildistamise alustamise ja lõpetamise nupud asuvad liidese valikurea lähedal. Kaugjuurdepääsukontrolleriga, VPN-i ja PPPoE-ga töötamiseks peate programmi installimisel installima vastava draiveri.

Programmi peaaken on jagatud mitmeks vaheleheks, mis vastutavad ühe või teise töövaldkonna eest. Esimene neist, "Praegused IP-ühendused", kuvab detailne info arvuti praeguste IP-ühenduste kohta. Siin saab näha kohalikku ja kaug-IP-aadress, edastatud ja vastuvõetud pakettide arv, edastussuund, loodud IP-seansside arv, pordid, hostinimi (kui DNS-tuvastusfunktsioon pole programmi sätetes keelatud) ja pakette vastuvõtva või edastava protsessi nimi selle seansi jaoks. viimane teave pole saadaval ühistranspordipakettide jaoks ega arvutites, kus töötab Windows 9x/ME.

Praeguste IP-ühenduste vahekaart

Kui teete mis tahes ühendusel paremklõpsu, avaneb kontekstimenüü, kust leiate tööriistu, mis hõlbustavad ühenduste analüüsimist. Siin näete ühenduses edastatud andmete hulka, täielik nimekiri kasutatud pordid, üksikasjalik teave selle seansi pakettide vastuvõtmise või edastamise protsessi kohta. CommView võimaldab teil luua MAC- ja IP-aadresside varjunimesid. Näiteks määrates kohtvõrgus olevate masinate tülikate digitaalsete aadresside asemel varjunimed, saate hõlpsasti loetavad ja meeldejäävad arvutinimed ning hõlbustada seeläbi ühenduse analüüsi.

IP-aadressi jaoks varjunime loomiseks peate valima kontekstimenüü järjestikku üksused "Loo pseudonüüm" ja "kasutades kohalikku IP-d" või "kasutades kaug-IP-d". Ilmuvas aknas on IP-aadressi väli juba täidetud ning jääb üle vaid sobiv nimi sisestada. Kui uus sissekanneÜhe klõpsuga loodud IP-nimi parem nupp klõpsates paketil, täidetakse nimeväli automaatselt hostinimega (kui see on saadaval) ja seda saab muuta. Sama kehtib ka MAC-aliastega töötamise kohta.

Samast menüüst saate SmartWhoisi valides saata valitud allika või sihtkoha IP-aadressi SmartWhoisi programmi - iseseisev rakendus Tamosoft, mis kogub teavet mis tahes IP-aadressi või hostinime kohta, nagu võrgunimi, domeen, riik, osariik või provints, linn, ja teeb selle kasutajale kättesaadavaks.

Teine vahekaart, "Paketid", kuvab kõik valitud võrguliidese pealt kinni võetud paketid ja üksikasjalik teave nende kohta.

Paketid Tab

Aken on jagatud kolmeks osaks. Esimene neist kuvab kõigi pealtkuulatud pakettide loendi. Kui valite ühe pakettidest, klõpsates sellel hiirekursoriga, kuvavad ülejäänud aknad selle kohta teavet. See kuvab paketi numbri, protokolli, saatva ja vastuvõtva hosti Maci ja IP-aadressid, kasutatud pordid ja paketi ilmumise aja.

Keskmisel alal kuvatakse paketi sisu – kuueteistkümnendsüsteemis või tekstina. Viimasel juhul asendatakse mitteprinditavad märgid punktidega. Kui ülemises piirkonnas on valitud korraga mitu pakki, kuvatakse keskmises aknas valitud pakkide koguarv, nende kogusuurus ning ajavahemik esimese ja viimase paki vahel.

Alumine aken kuvab dekodeeritud üksikasjalikku teavet valitud paketi kohta.

Klõpsates ühte kolmest akna paremas alanurgas olevast nupust, saate valida dekodeerimisakna asukoha: allosas või joondatud vasakule või paremale. Ülejäänud kaks nuppu võimaldavad teil automaatselt minna uusimale vastu võetud pakett ja salvestage valitud pakett nähtavale loendi alale.

Kontekstimenüü võimaldab kopeerida lõikepuhvrisse MAC-i, IP-aadresse ja terveid pakette, määrata varjunimesid, rakendada vajalike pakettide valimiseks kiirfiltrit ning kasutada ka TCP-seansi rekonstrueerimise ja paketigeneraatori tööriistu.

TCP seansi rekonstrueerimise tööriist võimaldab teil vaadata kahe hosti vahelist vahetusprotsessi TCP kaudu. Seansi sisu arusaadavamaks muutmiseks tuleb valida sobiv “kuvaloogika”. See funktsioon on taastamiseks kõige kasulikum tekstiteave, näiteks HTML või ASCII.

Saadud andmeid saab eksportida teksti-, RTF- või binaarfailina.

Logifailide vahekaart. Siin saate konfigureerida jäädvustatud pakettide faili salvestamise sätteid. CommView salvestab logifailid asukohta oma formaat NCF; Nende vaatamiseks kasutatakse sisseehitatud utiliiti, mille saab käivitada menüüst “Fail”.

Võimalik on lubada kinnipeetud pakettide automaatset salvestamist nende saabumisel, säilitades protokollid HTTP seansid TXT- ja HTML-vormingus, logifailide salvestamine, kustutamine, liitmine ja tükeldamine. Üks asi, mida meeles pidada, on see, et paketti ei salvestata kohe pärast saabumist, nii et kui vaatate logifaili reaalajas, ei näita see tõenäoliselt kõige värskemaid pakette. Selleks, et programm saadaks puhvri kohe faili, peate klõpsama nuppu "Lõpeta jäädvustamine".

Vahekaardil "Reeglid" saate seada tingimusi pakettide pealtkuulamiseks või ignoreerimiseks.

Vajalike pakettide valiku ja analüüsi hõlbustamiseks võite kasutada filtreerimisreegleid. See aitab ka summat oluliselt vähendada süsteemi ressursse, mida kasutab CommView.

Reegli lubamiseks peate valima akna vasakus servas vastava jaotise. Kokku on saadaval seitset tüüpi reegleid: lihtsad - "Protokollid ja suund", "Mac-aadressid", "IP-aadressid", "Pordid", "Tekst", "TCP lipud", "Protsess" ja ka universaalsed reegel "valem"" Iga lihtsa reegli jaoks on võimalik valida üksikud parameetrid, näiteks suuna või protokolli valimine. Universaalne valemireegel on võimas ja paindlik mehhanism filtrite loomiseks Boole'i ​​loogikat kasutades. Üksikasjaliku viite selle süntaksi kohta leiate.

Tab "Hoiatused" aitab teil seadistada teadete seadeid uuritavas võrgusegmendis toimuvate erinevate sündmuste kohta.

Vahekaart Märguanded võimaldab teil luua, redigeerida, kustutada hoiatusreegleid ja vaadata nendele reeglitele vastavaid jooksvaid sündmusi

Hoiatusreegli seadmiseks tuleb klõpsata nupul “Lisa...” ning avanevas aknas valida vajalikud tingimused, mis teavituse käivitavad, ning kasutajale sellest teavitamise viis.

CommView võimaldab teil määratleda järgmist tüüpi sündmusi, mida jälgida:

  • Määratud valemile vastav "Tuvasta pakett". Valemi süntaksit kirjeldatakse üksikasjalikult kasutusjuhendis;
  • "Baiti sekundis." See hoiatus käivitub, kui võrgu määratud koormustase on ületatud;
  • "Paketid sekundis." Käivitub, kui pakettide edastamise sageduse määratud tase on ületatud;
  • "Edasi sekundis." Sama, ainult edastuspakettide jaoks;
  • "Multisaadet sekundis" - sama ka multisaadete pakettide puhul.
  • "Tundmatu MAC-aadress." Seda hoiatust saab kasutada võrku ühendavate uute või volitamata seadmete tuvastamiseks, määrates esmalt teadaolevate aadresside loendi, kasutades suvandit Setup;
  • Tundmatu IP-aadressi hoiatus käivitub, kui pealtkuulatakse tundmatu saatja või saaja IP-aadressiga paketid. Kui määrate eelnevalt teadaolevate aadresside loendi, saab seda hoiatust kasutada tuvastamiseks volitamata ühendused ettevõtte tulemüüri kaudu.

CommView-l on võimas tööriist uuritava liikluse statistika visualiseerimiseks. Statistikaakna avamiseks tuleb valida menüüst “Vaade” samanimeline üksus.

Statistikaaken režiimis "Üldine".

Selles aknas saate vaadata võrguliikluse statistikat: siin näete pakettide arvu sekundis, baite sekundis, jaotust Etherneti protokollid, IP ja alamprotokollid. Diagramme saab kopeerida lõikepuhvrisse, mis on abiks, kui on vaja aruandeid koostada.

Kättesaadavus, hind, süsteeminõuded

Programmi praegune versioon on CommView 5.1. Tamosofti veebisaidilt saate, mis töötab 30 päeva.

Arendaja pakub klientidele kahte litsentsivõimalust:

  • Kodulitsents (kodulitsents), mille väärtus on 2000 rubla, annab õiguse kasutada programmi kodus mitteärilistel alustel, samas kui teie koduvõrgus jälgimiseks saadaolevate hostide arv on piiratud viiega. See litsentsitüüp ei võimalda teil kaugtööd teha kasutades kaugjuhtimispulti Agent.
  • Ettevõttelitsents (ettevõtte litsents, maksumus - 10 000 rubla) annab õiguse programmi äriliseks ja mitteäriliseks kasutamiseks ühel isikul, kes kasutab programmi isiklikult ühes või mitmes masinas. Programmi saab installida ka ühele tööjaam ja seda saavad kasutada mitu inimest, kuid mitte korraga.

Rakendus töötab sees operatsioonisüsteemid Windows 98/Me/NT/2000/XP/2003. Töötamiseks vajate Etherneti võrguadapterit, traadita Etherneti, Token Ring NDIS 3.0 standardi või standardse kaugjuurdepääsu kontrolleri toega.

Plussid:

  • lokaliseeritud liides;
  • suurepärane abisüsteem;
  • erinevat tüüpi võrguadapterite tugi;
  • täiustatud tööriistad pakettide analüüsimiseks ja protokollide tuvastamiseks;
  • statistika visualiseerimine;
  • funktsionaalne hoiatussüsteem.

Miinused:

  • liiga kõrge hind;
  • pealtkuulamise ja hoiatusreeglite eelseadete puudumine;
  • mitte eriti mugav mehhanism paketi valimiseks vahekaardil "Paketid".

Järeldus

Tänu oma suurepärasele funktsionaalsusele ja mugav liides CommView võib muutuda asendamatuks tööriistaks kohalike võrguadministraatorite, Interneti-teenuse pakkujate ja kodukasutajate jaoks. Mul oli hea meel arendaja hoolika lähenemise üle paketi venekeelsele lokaliseerimisele: nii liides kui ka abijuhend on väga hästi läbi mõeldud kõrge tase. Pilti hägustab mõnevõrra programmi kõrge hind, kuid kolmkümmend päeva prooviversioon aitab potentsiaalne ostja otsustada selle utiliidi ostmise otstarbekuse üle.