Мрежни анализатори на пакети. Достапност, цена, системски барања

Оригинал: Снимање пакети во вашата програма C, со libpcap
Автор: Панкај Танвар
Датум на објавување: 1 февруари 2011 г
Превод: А. Панин
Датум на превод: 11 октомври 2012 година

Оваа статија дава преглед на главните функции на библиотеката libpcap и демонстрира пример за создавање програма за снимање на пакети.

Целото движење на податоци во мрежите се случува во форма на пакети, кои се единица на податоци за мрежите. За да разберете кои податоци се во пакетот, треба да ја разберете хиерархијата мрежни протоколиво рамките на мрежниот модел. Доколку не сте запознаени со моделот за мрежно поврзување ISO OSI (Open Systems Interconnection), силно препорачувам да ја прегледате соодветната документација. Добар извор на информации е статијата на Википедија.

Терминот „пакет“ првпат се воведува на ниво на мрежа. Главните протоколи на ова ниво се: IP (Internet Protocol), ICMP (Internet Control Message Protocol), IGMP (Internet Group Management Protocol) и IPsec (збир на протоколи за обезбедување на заштита на податоците кои се пренесуваат преку IP протокол). Протоколите на транспортниот слој вклучуваат TCP (Transmission Control Protocol), кој е фокусиран на создавање постојана врска; UDP (User Datagram Protocol), кој не бара постојана врска; SCTP (Stream Control Transmission Protocol) ги комбинира својствата на двата протоколи погоре. Апликацискиот слој содржи многу најчесто користени протоколи, како што се: HTTP, FTP, IMAP, SMTP и многу други.

Зафаќањето пакети се однесува на собирање податоци пренесени преку мрежа. Секогаш кога мрежната картичка добива Ethernet рамка, ја проверува одредишната MAC адреса на пакетот за да види дали се совпаѓа со нејзината. Ако адресите се совпаѓаат, се генерира барање за прекин. Овој прекин последователно се справува од двигателот на мрежната картичка; ги копира податоците од баферот на мрежната картичка во тампон во просторот за адреси на јадрото, потоа го проверува полето за тип во заглавието на пакетот и го пренесува пакетот на потребниот управувач за протокол во зависност од содржината на полето. Податоците го минуваат купот мрежните слоеви и допираат ниво на апликација, кој се обработува со помош на прилагодена апликација.

Кога фаќаме пакети, возачот испраќа копија од примениот пакет и до филтерот за пакети. За снимање на пакети ќе ја користиме библиотеката со отворен код изворниот код libpcap.

libpcap основите

Библиотеката libpcap е библиотека со отворен код независна од платформата (верзијата на Windows се нарекува winpcap). Добро познатите sniffers tcpdump и Wireshark ја користат оваа библиотека за да работат.

За да ја развиеме нашата програма, потребен ни е мрежен интерфејс на кој ќе бидат заробени пакетите. Можеме сами да го доделиме овој уред или да ја користиме функцијата обезбедена од libpcap: char *pcap_lookupdev(char *errbuf).

Оваа функција враќа покажувач на низа што го содржи името на првиот мрежен интерфејс погоден за фаќање пакети; ако се појави грешка, се враќа NULL (ова важи и за други функции на libpcap). Аргументот errbuf е наменет да биде кориснички тампон во кој ќе биде поставена порака за грешка ако се појави грешка - ова е многу погодно кога се дебагираат програмите. Големината на овој бафер мора да биде најмалку PCAP_ERRBUF_SIZE (од во моментот 256) бајти.

Работа со уредот

Следно го отвораме избраното мрежен уредкористејќи ја функцијата pcap_t *pcap_open_live(const char *уред, int snaplen, int promisc, int to_ms, char *errbuf). Го враќа идентификаторот на уредот, претставен како променлива од типот pcap_t, која може да се користи во други функции libpcap. Првиот аргумент е мрежниот интерфејс со кој сакаме да работиме, вториот е максимална големинабафер за фаќање податоци во бајти.

Поставувањето на вториот параметар на минимална вредност е корисно кога треба да снимате само заглавија на пакети. Големината на рамката за етернет е 1518 бајти. Вредноста 65535 ќе биде доволна за снимање на кој било пакет од која било мрежа. Аргументот промиск одредува дали уредот ќе работи во промискуитетен режим или не. (Во промискуитетен режим, мрежната картичка ќе генерира прекини за сите податоци што ги прима, не само за оние што одговараат на MAC адресата. Прочитајте повеќе на Википедија).

Аргументот to_ms му кажува на кернелот колку милисекунди да чека пред да ги копира информациите од просторот на јадрото во корисничкиот простор. Донесувањето вредност од 0 ќе предизвика операцијата за читање податоци да чека додека не се соберат доволно пакети. За да го намалиме бројот на операции за копирање податоци од просторот на јадрото до корисничкиот простор, ќе ја поставиме оваа вредност во зависност од интензитетот на мрежниот сообраќај.

Снимање податоци

Сега треба да почнеме да фаќаме пакети. Ајде да ја користиме функцијата u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h). Овде *p е покажувач вратен од pcap_open_live() ; следниот аргумент е покажувач на променлива од типот struct pcap_pkthdr, која го враќа првиот примен пакет.

Функција int pcap_loop (pcap_t *p, int cnt, pcap_handler повратен повик, u_char * корисник)се користи за склопување на пакувања и нивна обработка. Го враќа бројот на пакети наведен со аргументот cnt. Функцијата за повратен повик се користи за обработка на примени пакети (ќе треба да ја дефинираме оваа функција). За трансфер дополнителни информацииВо оваа функција ќе го користиме параметарот *user, кој е покажувач на променлива од типот u_char (ќе треба да направиме сопствена конверзија на типот во зависност од потребниот тип на податок предаден на функцијата).

Прототипот на функцијата за повратен повик изгледа вака: неважечка_функција повратен повик (u_char *arg, const struct pcap_pkthdr* pkthdr, const u_char* пакет). Првиот аргумент е *корисничкиот аргумент предаден на pcap_loop() ; следниот аргумент е покажувач на структура која содржи информации за примениот пакет. Полињата на структурата struct pcap_pkthdr се претставени подолу (преземено од датотеката pcap.h): struct pcap_pkthdr ( struct timeval ts; /* time stamp */ bpf_u_int32 caplen; /* должина на присутен дел */ bpf_u_int32 len ; /* должина од овој пакет (исклучена жица) */ )

Алтернатива на pcap_loop() е функцијата pcap_dispatch(pcap_t *p, int cnt, pcap_handler повратен повик, u_char * корисник). Единствената разлика е во тоа што оваа функција го враќа резултатот откако ќе истече времето одредено при повикувањето на pcap_open_live().

Филтрирање на сообраќајот

До ова време, ги добивавме сите пакети кои доаѓаа до мрежниот интерфејс. Сега да ја користиме функцијата pcap, која ви овозможува да го филтрирате сообраќајот што доаѓа до дадена порта. Ние исто така можеме да ја користиме оваа функција за да работиме само со пакети за даден протокол, како што се ARP или FTP. Прво треба да создадеме филтер користејќи оваа функција: int pcap_compile(pcap_t *p, struct bpf_program *fp, const char *str, int optimize, bpf_u_int32 маска);

Првиот аргумент е сличен во сите библиотечни функции и беше дискутиран претходно; вториот аргумент е покажувач на компајлираната верзија на филтерот. Следниот е изразот за филтерот. Овој израз може да биде име на протокол како ARP, IP, TCP, UDP итн. Можете да најдете многу примери на изрази во прирачниците pcap-filter и tcpdump, кои треба да се инсталираат на вашиот систем.

Следниот аргумент ја поставува состојбата на оптимизација (0 - не оптимизирај, 1 - оптимизирај). Следува мрежната маска со која работи филтерот. Функцијата враќа -1 во случај на грешка (ако се открие грешка во изразот).

По компајлирањето, ајде да го примениме филтерот користејќи ја функцијата int pcap_setfilter(pcap_t *p, struct bpf_program *fp). Вториот аргумент на функцијата е компајлирана верзија на изразот за филтрирање сообраќај.

Примање информации за IPv4

Int pcap_lookupnet(const char *уред, bpf_u_int32 *netp, bpf_u_int32 *maskp, char *errbuf)

Користејќи ја оваа функција, можете да ја добиете мрежната адреса IPv4 и мрежната маска доделени на даден мрежен интерфејс. Адресата на мрежата ќе биде напишана на *netp, а мрежната маска на *mask.

Мала програма за фаќање пакети

Сега ајде да напишеме програма која ќе ни помогне да разбереме како работи pcap. Ајде да ја повикаме датотеката со изворниот код sniff.c. Ова е програма од делот за прирачници на tcpdump.org, чиј автор е Мартин Касадо. Прво, да ги вклучиме потребните датотеки за заглавие. #вклучи #вклучи #вклучи #вклучи #вклучи #вклучи #вклучи

#вклучи

Сега да ја погледнеме функцијата main(). Овде ги користиме функциите што ги анализиравме претходно: 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 /*составен израз за филтрирање */ bpf_u_int32 maskp */ bpf_u_int32 netp */ if(argc != 2) Употреба: %s \"израз\"\n" ,argv); врати 0; /* Земете го името на уредот */ dev = pcap_lookupdev(errbuf); if(dev == NULL) ( fprintf(stderr, "%s \ n", errbuf); излез (1); ) /* Добивање мрежна адреса и мрежна маска за уредот */ pcap_lookupnet(dev, &netp, &maskp, errbuf); /* отворање на уредот во промискуитетен режим */ descr = pcap_open_live( dev, BUFSIZ, 1,-1, errbuf if(descr == NULL) (printf("pcap_open_live(): %s\n", errbuf); exit(1); ) /* сега изразот на филтерот е напишан); */ if(pcap_compile(descr, &fp, argv, 0, netp) == -1) ( fprintf(stderr, "Грешка при повикување pcap_compile\n");

излез (1);

) /* примена на филтер */ if(pcap_setfilter(descr, &fp) == -1) ( fprintf(stderr, "Грешка при поставување филтер\n"); излез (1); ) /* функција за повратен повик што се користи во циклус * / pcap_loop (decr, -1, my_callback, NULL);

врати 0; )

Компилирајте ја програмата користејќи ги командите подолу и стартувајте како root (потребно е за да се овозможи промискуитетен режим): $ gcc -lpcap sniff.c -o sniffer # ./sniffer ip

Слика 1 покажува пример за излез од програмата. len;i++) ( if(isprint(packet[i])) /* Проверува дали знакот може да се печати */ printf("%c ",packet[i]); /* Печати знак */ else printf(" . " ,packet[i]); /* Ако знакот не може да се печати */ if((i%16==0 && i!=0) || i==pkthdr->len-1) printf("\n ");))

Може да ја смените линијата за повикување на функцијата pcap_loop() во функцијата main() каде што се повикува функцијата my_callback() за да се користи новата варијанта на функцијата. Компајлирајте ја изменетата програма и стартувајте ја со истиот израз како аргумент. Излезот прикажан на слика 2 содржи податоци од IP пакети.


Слика 2: Излез што ја прикажува содржината на пакетите.

Мислам дека можеме да застанеме тука. Тестирајте ја програмата сами, експериментирајте со pcap и ќе разберете колку моќна е компонентата во срцето на најдобрите (и нашите омилени) tcpdump и Wireshark sniffers.

Wireshark ги користи библиотеките libpcap или WinPcap за Windows за снимање на мрежниот сообраќај. Библиотеката WinPcap не поддржува употреба на безжична мрежа мрежни картички, затоа не ви дозволува директно да снимате сообраќај преку Wi-Fi од користејќи Wiresharkи други апликации како што се Cain & Abel или Elcomsoft Wireless Security Auditor за Windows.

Ограничувања на сообраќајот на WinPcap и Wi-Fi во Wireshark

Ограничувањата за снимање на Wi-Fi пакети во Windows се поврзани со библиотеката WinPcap, а не со самата програма Wireshark. Впрочем, Wireshark има поддршка за специјализирани и прилично скапи Wi-Fi адаптери, чии драјвери поддржуваат следење на мрежниот сообраќај во Windows околина, што често се нарекува промискуитетно снимање на мрежен сообраќај на Wi-Fi мрежите.

Содржи сопствен двигател за снимање сообраќај користејќи NDIS технологија, снимање сообраќај на WiFi мрежа во Windows OS и дозволува Снимајте безжичен сообраќај користејќи Wireshark на Windows Vista, Windows 7, Windows 8 и Windows 8.1. Користејќи го овој драјвер, можете автоматски да обезбедите други програми за анализа на сообраќајот на Wi-Fi со можност за снимање податоци на безжични мрежи под Windows.

NDIS драјвер и WiFi интерфејси во Wireshark

За да ја овозможи оваа интеракција, Acrylic инсталира своја сопствена библиотека на компјутерот airpcap.dll, емулирајќи ја библиотеката на оригиналната картичка AirPcap. Кога Wireshark ќе го вчита соодветниот системска библиотека AirPcap by Acrylic, библиотеката враќа лажна листа на инсталирани уреди AirPcap, по еден запис за секој внатрешна карта Wi-Fi или надворешен USB Wi-Fi адаптер.

Со овој метод можеме да го користиме нашиот избран мрежен анализатор на сообраќај и да го прегледаме сообраќајот на Wi-Fi во Wireshark. Со двоен клик на мрежен интерфејс, можете да пристапите до неговите поставки и да потврдите дека заглавието Radiotap е прикажано за тој мрежен интерфејс, кој вклучува информации за јачината на сигналот за снимените пакети.

Со кликнување на копчето „Поставки“. безжична мрежа» ( „Безжични поставки“), можете да изберете дополнителни опции како што е каналот за Wi-Fi за следење и да овозможите проверка на FCS. FCS е секвенца за проверка на рамки која ви овозможува да го одредите интегритетот на Wi-Fi пакетите и да ги отфрлите неправилно пренесените пакети.

Снимање Wi-Fi сообраќај со помош на Wireshark на Windows

Значи, по инсталацијата, стартувајте го Wireshark како администратор (кликнете со десното копче на кратенката Wireshark и изберете „Стартувај како администратор“), а потоа изберете од списокот картичката што ја има ознаката за мрежен интерфејс NDIS. Во нашиот случај, ова е вграден Wi-Fi DELL картичка (Dell Wireless 1702/b/g/n)

Видео инструкции за користење акрилна WiFi со Wireshark на Windows

Подготвивме видео во кое го демонстрираме процесот што ќе ви помогне ако сè уште имате прашања или ако сакате да видите како безжичниот сообраќај е снимен со користење на кој било Wi-Fi картичкиво Wireshark за Windows.

Што е Intercepter-NG

Ајде да ја разгледаме суштината на функционирањето на ARP едноставен пример. Компјутерот А (IP адреса 10.0.0.1) и компјутерот Б (IP адреса 10.22.22.2) се поврзани со етернет мрежа. Компјутерот А сака да испрати пакет со податоци до компјутерот Б, тој ја знае IP адресата на компјутерот Б. Сепак, етернет мрежата на која се поврзани не работи со IP адреси. Затоа, за да пренесува преку етернет, компјутерот А треба да ја знае адресата на компјутерот Б на етернет мрежата (MAC адреса во термини на етернет). За оваа задача се користи протоколот ARP. Користејќи го овој протокол, компјутерот А испраќа барање за емитување адресирано до сите компјутери во истиот домен за емитување. Суштината на барањето: „компјутер со IP адреса 10.22.22.2, дајте ја вашата MAC адреса на компјутерот со MAC адреса (на пример, a0:ea:d1:11:f1:01). Етернет мрежата го доставува ова барање до сите уреди на истиот етернет сегмент, вклучувајќи го и компјутерот Б. Компјутерот Б одговара на компјутерот А на барањето и ја известува неговата MAC адреса (на пр. 00:ea:d1:11:f1:11) Сега, имајќи ја доби MAC адресата на компјутерот Б, компјутерот А може да пренесе какви било податоци до него преку етернет мрежата.

За да се избегне потребата од користење на ARP протоколот пред секое испраќање податоци, примените MAC адреси и нивните соодветни IP адреси се запишуваат во табелата некое време. Ако треба да испраќате податоци на истата IP адреса, тогаш нема потреба да ги анкетирате уредите секој пат во потрага по саканиот MAC.

Како што штотуку видовме, ARP вклучува барање и одговор. MAC адресата од одговорот се запишува на табелата MAC/IP. Кога ќе се добие одговор, тој на ниту еден начин не се проверува за автентичност. Згора на тоа, не се ни проверува дали е поднесено барањето. Оние. можете веднаш да испратите ARP одговор до целните уреди (дури и без барање), со лажни податоци, и овие податоци ќе завршат во табелата MAC/IP и ќе се користат за пренос на податоци. Ова е суштината на нападот на ARP-измамување, кој понекогаш се нарекува ARP офорт, труење на кешот ARP.

Опис на ARP-измамниот напад

Два компјутера (јазли) M и N на локалната мрежа на Ethernet разменуваат пораки. Напаѓачот X, кој се наоѓа на истата мрежа, сака да пресретнува пораки помеѓу овие јазли. Пред да се примени нападот за измама на ARP на мрежниот интерфејс на домаќинот M, табелата ARP содржи IP и MAC адресајазол N. Исто така, на мрежниот интерфејс на јазолот N, табелата ARP ги содржи IP и MAC на јазолот M.

За време на напад на измама со ARP, јазолот X (напаѓачот) испраќа два ARP одговори (без барање) - до јазолот M и јазолот N. Одговорот ARP на јазолот M ја содржи IP адресата на N и MAC адресата на X. Одговорот на ARP на јазолот N ги содржи IP адресата M и MAC адресата X.

Бидејќи компјутерите M и N поддржуваат спонтан ARP, откако ќе добијат ARP одговор, тие ги менуваат своите ARP табели, и сега ARP табелата M ја содржи MAC адресата X врзана за IP адресата N, а табелата ARP N ја содржи MAC адресата X. врзани за IP адресата М.

Така, ARP-spoofing нападот е завршен и сега сите пакети (рамки) помеѓу M и N поминуваат низ X. На пример, ако M сака да испрати пакет на компјутерот N, тогаш M гледа во неговата ARP табела, наоѓа запис со IP адресата N на домаќинот, од таму ја избира MAC адресата (а веќе ја има MAC адресата на јазолот X) и го пренесува пакетот. Пакетот пристигнува до интерфејсот X, се анализира со него и потоа се препраќа до јазолот N.

Мрежни анализатори на пакети, или трагачи, првично беа развиени како средство за решавање проблеми со мрежата. Тие се способни да пресретнуваат, интерпретираат и складираат пакети пренесени преку мрежата за последователна анализа. Од една страна, ова им овозможува на системските администратори и инженерите за техничка поддршка да набљудуваат како податоците се пренесуваат преку мрежата, да ги дијагностицираат и поправат проблемите што се појавуваат. Во оваа смисла, трагачите на пакети се моќна алатка за дијагностицирање на мрежните проблеми. Од друга страна, како и многу други моќни алатки кои првично беа наменети за администрација, со текот на времето, трагачите почнаа да се користат за сосема различни цели. Навистина, трагачот во рацете на напаѓачот е прилично опасна алатка и може да се користи за добивање лозинки и други доверливи информации. Сепак, не треба да мислите дека трагачите се некаква магична алатка преку која секој хакер може лесно да ги прегледа доверливите информации пренесени преку мрежата. А пред да докажеме дека опасноста од кодошите не е толку голема како што често се прикажува, да ги разгледаме подетално принципите на нивното функционирање.

Работни принципи на трагачи на пакети

Понатаму во оваа статија ќе ги разгледаме само софтверските трагачи наменети за Етернет мрежи. Sniffer е програма која работи на ниво NIC (Network Interface Card) (слој на врска) и на скриен начинго пресретнува целиот сообраќај. Бидејќи трагачите работат на слојот за податочна врска на моделот OSI, тие не мора да играат според правилата на протоколи на повисоко ниво. Sniffers ги заобиколуваат механизмите за филтрирање (адреси, порти, итн.) што ги користат драјверите за етернет и оџакот TCP/IP за интерпретација на податоците. Сниферите на пакети доловуваат од жицата сè што доаѓа низ неа. Sniffers може да складираат рамки во бинарен формат и подоцна да ги дешифрираат за да откријат информации од повисоко ниво скриени внатре (Слика 1).

За да може трагачот да ги фати сите пакети што минуваат низ мрежниот адаптер, двигателот на мрежниот адаптер мора да поддржува промискуитетен режим. Токму во овој режим на работа на мрежниот адаптер, трагачот може да ги пресретне сите пакети. Овој режимРаботата на мрежниот адаптер автоматски се активира кога трагачот се стартува или се поставува рачно од соодветните поставки за трагач.

Целиот пресретнат сообраќај се пренесува до декодер за пакети, кој ги идентификува и ги дели пакетите на соодветните нивоа на хиерархија. Во зависност од можностите на одреден трагач, дадените информации за пакетот може дополнително да се анализираат и филтрираат.

Ограничувања на користење на трагачи

Sniffers претставуваа најголема опасност во тие денови кога информациите се пренесуваа преку мрежата во јасен текст (без шифрирање), а локалните мрежи беа изградени врз основа на концентратори (хабови). Сепак, тие денови поминаа засекогаш, а во денешно време користењето на трагачи за да се добие пристап до доверливи информации во никој случај не е лесна задача.

Поентата е дека при градењето локални мрежиВрз основа на хабовите, постои одреден заеднички медиум за пренос на податоци ( мрежен кабел) и сите мрежни јазли разменуваат пакети, натпреварувајќи се за пристап до овој медиум (сл. 2), а пакетот испратен од еден мрежен јазол се пренесува до сите порти на хабот и овој пакет се слуша од сите други мрежни јазли, но е примен само од јазолот до кој е адресиран. Освен тоа, ако трагачот на пакети е инсталиран на еден од мрежните јазли, тогаш тој може да ги пресретне сите мрежни пакети поврзани со даден мрежен сегмент (мрежата формирана од хабот).

Прекинувачите се поинтелигентни уреди од хабовите за емитување и го изолираат мрежниот сообраќај. Прекинувачот ги знае адресите на уредите поврзани со секоја порта и пренесува пакети само помеѓу потребните порти. Ова ви овозможува да претоварувате други порти без да мора да го препраќате секој пакет до нив, како што тоа го прави хабот. Така, пакетот испратен од одреден мрежен јазол се пренесува само до прекинувачот порт на кој е поврзан примачот на пакетот, а сите други мрежни јазли не се во можност да го детектираат овој пакет (сл. 3).

Затоа, ако мрежата е изградена врз основа на прекинувач, тогаш трагачот инсталиран на еден од мрежните компјутери е способен да ги пресретнува само оние пакети што се разменуваат помеѓу овој компјутер и другите мрежни јазли. Како резултат на тоа, за да може да се пресретнат пакетите што компјутерот или серверот од интерес за напаѓачот ги разменува со други мрежни јазли, неопходно е да се инсталира трагач на овој конкретен компјутер (сервер), што всушност не е толку едноставно. Сепак, треба да имате на ум дека некои трагачи на пакети се стартуваат од командната линија и можеби немаат графички интерфејс. Таквите трагачи, во принцип, можат да се инсталираат и стартуваат од далечина и незабележано од корисникот.

Дополнително, мора да имате на ум и дека иако прекинувачите го изолираат мрежниот сообраќај, сите управувани прекинувачиимаат функционалност за пренасочување или пресликување на порти. Односно, портата на прекинувачот може да се конфигурира на таков начин што сите пакети што пристигнуваат на други порти на прекинувачот се дуплираат на неа. Ако во овој случај компјутер со трагач на пакети е поврзан на таква порта, тогаш тој може да ги пресретне сите пакети што се разменуваат помеѓу компјутерите на даден мрежен сегмент. Сепак, по правило, можноста за конфигурирање на прекинувачот е достапна само за мрежниот администратор. Ова, се разбира, не значи дека тој не може да биде напаѓач, но мрежниот администратор има многу други начини да ги контролира сите корисници на локалната мрежа и тешко дека ќе ве следи на толку софистициран начин.

Друга причина зошто трагачите повеќе не се толку опасни како некогаш е тоа што повеќето чувствителни податоци сега се пренесуваат шифрирани. Отворените, нешифрирани услуги брзо исчезнуваат од Интернет. На пример, при посета на веб-локации, се повеќе се користи SSL протокол(Secure Sockets Layer); наместо да отворете FTPСе користи SFTP (Secure FTP), а за други услуги кои стандардно не користат шифрирање, се повеќе се користат виртуелни приватни мрежи (VPN).

Значи, оние кои се загрижени за можноста за злонамерна употреба на трагачи на пакети треба да го имаат на ум следново. Прво, за да претставуваат сериозна закана за вашата мрежа, трагачите мора да се наоѓаат во самата мрежа. Второ, денешните стандарди за шифрирање го отежнуваат пресретнувањето на чувствителни информации. Затоа, во моментов, трагачите на пакети постепено ја губат својата важност како хакерски алатки, но во исто време тие остануваат ефективни и моќна алатказа дијагностицирање на мрежи. Покрај тоа, трагачите можат успешно да се користат не само за дијагностицирање и локализирање проблеми со мрежата, туку и за ревизија мрежна безбедност. Конкретно, употребата на анализатори на пакети ви овозможува да откриете неовластен сообраќај, да откриете и идентификувате неовластени софтвер, идентификувајте ги неискористените протоколи за да ги отстраните од мрежата, генерирате сообраќај за тестирање на пенетрација (тест на пенетрација) со цел да го проверите безбедносниот систем, работа со системи за откривање на упад (Intrusion Систем за откривање, IDS).

Преглед на трагачи на софтверски пакети

Сите софтверски трагачи може да се поделат во две категории: трагачи кои поддржуваат стартување од командната линија и трагачи кои имаат графички интерфејс. Сепак, забележуваме дека има трагачи кои ги комбинираат двете од овие способности. Покрај тоа, sniffers се разликуваат едни од други по протоколите што ги поддржуваат, длабочината на анализата на пресретнати пакети, способноста за конфигурирање на филтри и можноста за компатибилност со други програми.

Вообичаено, прозорецот на кој било трагач со графички интерфејс се состои од три области. Првиот од нив ги прикажува збирните податоци на пресретнати пакети. Вообичаено, оваа област прикажува минимум полиња, имено: време на пресретнување на пакети; IP адреси на испраќачот и примачот на пакетите; MAC адреси на испраќачот и примачот на пакетот, адресите на изворната и одредишната порта; тип на протокол (мрежен, транспортен или апликативен слој); некои збирни информации за прислушуваните податоци. Во втората област се прикажува статистички информацииза поединечниот избран пакет, и на крајот во третата област пакетот е претставен во хексадецимална или ASCII форма.

Речиси сите трагачи на пакети ви дозволуваат да анализирате декодирани пакети (затоа и трагачите на пакети се нарекуваат и анализатори на пакети, или анализатори на протокол). Трагачот дистрибуира пресретнати пакети низ слоеви и протоколи. Некои трагачи на пакети се способни да го препознаат протоколот и да ги прикажат заробените информации. Овој тип на информации обично се прикажува во втората област на прозорецот за трагачи. На пример, секој трагач може да го препознае протоколот TCP, а напредните трагачи можат да одредат која апликација е генерирана овој сообраќај. Повеќето протоколи анализатори препознаваат преку 500 различни протоколи и можат да ги опишат и декодираат по име. Како повеќе информацииспособни да го декодираат и прикажат трагачот на екранот, толку помалку треба да декодирате рачно.

Еден проблем со кој може да се сретнат трагачите на пакети е неможноста правилно да се идентификува протокол користејќи порта различна од стандардната порта. На пример, за да се подобри безбедноста, некои добро познати апликации може да се конфигурираат да користат порти различни од стандардните порти. Значи, наместо традиционалната порта 80, резервирана за веб-сервер, овој сервер може насилно да се реконфигурира на портата 8088 или која било друга. Некои анализатори на пакети во оваа ситуација не можат правилно да го одредат протоколот и да прикажуваат само информации за протоколот пониско ниво(TCP или UDP).

Постојат софтверски трагачи кои доаѓаат со софтверски аналитички модули прикачени како приклучоци или вградени модули кои ви дозволуваат да креирате извештаи со корисни аналитички информации за пресретнатиот сообраќај.

Друга карактеристика на повеќето софтвери за анализатор на пакети е способноста да се конфигурираат филтри пред и по снимањето на сообраќајот. Филтри избираат одредени пакети од општиот сообраќај според даден критериум, што ви овозможува да се ослободите од непотребните информации кога го анализирате сообраќајот.

Потребата да се анализира мрежниот сообраќај може да се појави поради неколку причини. Следење на безбедноста на компјутерот, дебагирање на локалната мрежа, следење на појдовниот сообраќај за оптимизирање на работата на споделена интернет конекција - сите овие задачи често се на дневен ред системски администратори, И обични корисници. За нивно решавање, постојат многу алатки наречени трагачи, и двете специјализирани, насочени кон решавање на тесна област на задачи, и мултифункционални „жетвари“, обезбедувајќи му на корисникот широк избор на алатки. Оваа статија претставува еден од претставниците на последната група, имено алатката CommView произведена од компанијата. Програмата ви овозможува јасно да ја видите целосната слика на сообраќајот што минува низ сегмент од компјутер или локална мрежа; приспособлив алармен систем ви овозможува да предупредувате за присуство на сомнителни пакети во сообраќајот, појава на јазли со ненормални адреси во мрежата или зголемување на оптоварувањето на мрежата.

CommView обезбедува можност за одржување на статистика за сите IP конекции, декодирање на IP пакети до ниско нивои анализирајте ги. Вградениот систем за филтри базиран на неколку параметри ви овозможува да го конфигурирате следењето исклучиво за потребните пакети, што ја прави нивната анализа поефикасна. Програмата може да препознае пакети од повеќе од седум дузини најчести протоколи (вклучувајќи 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 итн.), а исто така зачувајте ги во датотеки за последователна анализа. Многу други алатки како што се откривање на производителот на мрежен адаптер по MAC адреса, реконструкција на HTML и далечинско снимање пакети со користење дополнителна алатка CommView Remote Agent исто така може да биде корисен во одредени случаи.

Работа со програмата

Прво, треба да го изберете мрежниот интерфејс на кој ќе се следи сообраќајот.

CommView поддржува практично секаков тип на етернет адаптер - 10, 100 и 1000 Mbps, како и аналогни модеми, xDSL, Wi-Fi, итн. Со анализа на сообраќајот на Ethernet адаптерот, CommView може да пресретне не само дојдовни и појдовни, туку и транзитни пакети адресирани до кој било компјутер на сегментот на локалната мрежа. Вреди да се напомене дека ако задачата е да се следи целиот сообраќај на сегмент на локална мрежа, тогаш потребно е компјутерите во него да се поврзат преку центар, а не преку прекинувач. Некои модерни моделипрекинувачите имаат функција за пресликување на портите, што им овозможува да се конфигурираат и за следење на мрежата користејќи CommView. Можете да прочитате повеќе за ова. Со избирање вистинската врска, можете да започнете да фаќате пакети. Копчињата за почеток и стоп за снимање се наоѓаат во близина на линијата за избор на интерфејс. За да работите со контролер за далечински пристап, VPN и PPPoE, мора да го инсталирате соодветниот драјвер при инсталирање на програмата.

Главниот прозорец на програмата е поделен на неколку јазичиња одговорни за една или друга област на работа. Првиот од нив, „Тековни IP врски“, прикажува детални информацииза тековните IP конекции на компјутерот. Овде можете да ги видите локалните и далечинска IP адреса, бројот на пренесените и примените пакети, насоката на пренос, бројот на воспоставените IP сесии, портите, името на домаќинот (ако функцијата за препознавање DNS не е оневозможена во поставките на програмата) и името на процесот што прима или пренесува пакети за оваа седница. Најнови информациине е достапно за транзитни пакети или на компјутери со Windows 9x/ME.

Таб за тековни IP врски

Ако кликнете со десното копче на која било врска, ќе се отвори контекстно мени каде што можете да најдете алатки кои го олеснуваат анализирањето на врските. Овде можете да ја видите количината на податоци пренесени во врската, целосна листакористени пристаништа, детални информации за процесот на примање или пренос на пакети за оваа сесија. CommView ви овозможува да креирате псевдоними за MAC и IP адреси. На пример, со наведување псевдоними наместо гломазни дигитални адреси на машини на локална мрежа, можете да добиете лесно читливи и незаборавни имиња на компјутери и на тој начин да ја олесните анализата на поврзувањето.

За да креирате псевдоним за IP адреса, треба да изберете контекстното менипоследователно, ставките „Креирај псевдоним“ и „користење локална IP“ или „користење далечинска IP“. Во прозорецот што се појавува, полето за IP адреса веќе ќе биде пополнето, а останува само да внесете соодветно име. Ако нов влезИмето на IP создадено со клик десното копчекликнете на пакетот, полето за име автоматски се пополнува со името на домаќинот (ако е достапно) и може да се уредува. Истото важи и за работа со MAC псевдоними.

Од истото мени, со избирање на SmartWhois, можете да ја испратите избраната IP адреса на изворот или одредиштето до програмата SmartWhois - самостојна апликација Tamosoft, кој собира информации за која било IP адреса или име на домаќин, како што се име на мрежа, домен, земја, држава или провинција, град и ги прави достапни на корисникот.

Второ јазиче, „Пакети“, ги прикажува сите пресретнати пакети на избраниот мрежен интерфејс и детални информации за нив.

Таб Пакети

Прозорецот е поделен на три области. Првиот од нив прикажува листа на сите пресретнати пакети. Ако изберете еден од пакетите со кликнување на него со покажувачот на глувчето, останатите прозорци ќе покажат информации за него. Ова го прикажува бројот на пакетот, протоколот, Mac и IP адресите на домаќинот што испраќа и прима, користените порти и времето кога се појавил пакетот.

Средната област ја прикажува содржината на пакетот - во хексадецимален или текст. Во вториот случај, знаците што не се печатат се заменуваат со точки. Доколку се изберат неколку пакети истовремено во горната област, средниот прозорец ќе го прикаже вкупниот број на избрани пакети, нивната вкупна големина, како и временскиот интервал помеѓу првиот и последниот пакет.

Долниот прозорец прикажува дешифрирани детални информации за избраниот пакет.

Со кликнување на едно од трите копчиња во долниот десен дел од прозорецот, можете да ја изберете локацијата на прозорецот за декодирање: на дното или порамнет лево или десно. Другите две копчиња ви дозволуваат автоматски да скокате на најновото примен пакети зачувајте го избраниот пакет во областа на видливата листа.

Контексното мени ви овозможува да копирате MAC, IP адреси и цели пакети на таблата со исечоци, да доделувате псевдоними, да примените брз филтер за да ги изберете потребните пакети, а исто така да ги користите алатките „Реконструкција на сесијата TCP“ и „Генератор на пакети“.

Алатката за реконструкција на сесијата TCP ви овозможува да го видите процесот на размена помеѓу два домаќини преку TCP. За да ја направите содржината на сесијата поразбирлива, треба да ја изберете соодветната „логика на екранот“. Оваа функција е најкорисна за обновување текстуални информации, на пример HTML или ASCII.

Добиените податоци може да се извезат како текст, RTF или бинарна датотека.

Картичка со датотеки за евиденција. Овде можете да ги конфигурирате поставките за зачувување на заробените пакети во датотека. CommView ги зачувува датотеките за евиденција во сопствен формат NCF; За да ги видите, се користи вградена алатка, која може да се стартува од менито „Датотека“.

Можно е да се овозможи автоматско зачувување на пресретнати пакети како што пристигнуваат, одржувајќи протоколи HTTP сесииво TXT и HTML формати, зачувување, бришење, спојување и разделување на лог датотеки. Едно нешто што треба да се има на ум е дека пакетот не се зачувува веднаш по пристигнувањето, па ако ја прегледате датотеката за евиденција во реално време, најверојатно нема да ги прикаже најновите пакети. За да може програмата веднаш да го испрати баферот во датотека, треба да кликнете на копчето „Заврши снимање“.

Во табот „Правила“можете да поставите услови за пресретнување или игнорирање на пакети.

За да го олесните изборот и анализата на потребните пакети, можете да користите правила за филтрирање. Ова исто така ќе помогне значително да се намали количината системски ресурси, користен од CommView.

За да овозможите правило, треба да го изберете соодветниот дел од левата страна на прозорецот. Достапни се вкупно седум типа правила: едноставни - „Протоколи и насока“, „Mac адреси“, „IP адреси“, „Порти“, „Текст“, „ТЦП знаменца“, „Процес“, како и универзалните правило „Формула““ За секое од едноставните правила, можно е да се изберат поединечни параметри, како што е изборот на насока или протокол. Универзалното правило за формула е моќен и флексибилен механизам за создавање филтри со помош на Буловата логика. Може да се најде детална референца за неговата синтакса.

Таб „Предупредувања“ќе ви помогне да ги конфигурирате поставките за известувања за различни настани што се случуваат во мрежниот сегмент што се проучува.

Картичката „Предупредувања“ ви овозможува да креирате, уредувате, бришете правила за предупредување и да гледате тековни настани што одговараат на овие правила

За да поставите правило за предупредување, треба да кликнете на копчето „Додај...“ и во прозорецот што се отвора да ги изберете потребните услови што ќе активираат известување, како и начинот за известување на корисникот за ова.

CommView ви овозможува да ги дефинирате следниве видови настани за следење:

  • „Откријте пакет“ што одговара на наведената формула. Синтаксата на формулата е детално опишана во упатството за употреба;
  • „Бајти во секунда“. Ова предупредување ќе се активира кога ќе се надмине одреденото ниво на оптоварување на мрежата;
  • „Пакети во секунда“. Се активира кога е надминато одреденото ниво на фреквенција на пренос на пакети;
  • „Емитувања во секунда“. Истото, само за емитуваните пакети;
  • "Multicasts во секунда" - истото за мултикаст пакети.
  • „Непозната MAC адреса“. Ова предупредување може да се користи за откривање нова или неовластена опрема што се поврзува на мрежата со прво дефинирање на список на познати адреси користејќи ја опцијата Setup;
  • Предупредувањето „Непозната IP адреса“ ќе се активира кога ќе се пресретнат пакети со непознати IP адреси на испраќачот или примачот. Ако претходно наведете список на познати адреси, ова предупредување може да се користи за откривање неовластени врскипреку корпоративниот заштитен ѕид.

CommView има моќна алатка за визуелизација на статистиката на сообраќајот што се проучува. За да го отворите прозорецот за статистика, треба да ја изберете ставката со исто име од менито „Преглед“.

Прозорец за статистика во режим „Општо“.

Во овој прозорец можете да ја видите статистиката на мрежниот сообраќај: тука можете да го видите бројот на пакети во секунда, бајти во секунда, дистрибуција Етернет протоколи, IP и потпротоколи. Табелите може да се копираат на таблата со исечоци, што ќе ви помогне кога треба да составувате извештаи.

Достапност, цена, системски барања

Тековната верзија на програмата е CommView 5.1. Од веб-страницата на Тамософт можете, која ќе функционира 30 дена.

Инвеститорот им нуди на клиентите две опции за лиценца:

  • Домашна лиценца (домашна лиценца), вредна 2.000 рубли, дава право да ја користите програмата дома на некомерцијална основа, додека бројот на домаќини достапни за следење на вашата домашна мрежа е ограничен на пет. Овој тип лиценца не ви дозволува да работите со далечина користејќи ДалечинскиАгент.
  • Лиценцата за претпријатие (корпоративна, цена - 10.000 рубли) обезбедува право на комерцијална и некомерцијална употреба на програмата од едно лице кое лично ја користи програмата на една или неколку машини. Програмата може да се инсталира и на една работна станицаи да се користи од неколку луѓе, но не истовремено.

Апликацијата работи во оперативни системи Windows 98/Me/NT/2000/XP/2003. За да работите, потребен ви е мрежен адаптер за етернет, безжичен етернет, Токен прстенсо поддршка за стандардот NDIS 3.0 или стандарден контролер за далечински пристап.

Добрите страни:

  • локализиран интерфејс;
  • одличен систем за помош;
  • поддршка за различни типови мрежни адаптери;
  • напредни алатки за анализа на пакети и идентификација на протоколи;
  • визуелизација на статистика;
  • функционален систем за предупредување.

Конс:

  • премногу висока цена;
  • недостаток на претходно поставени правила за следење и предупредување;
  • не е многу удобен механизам за избор на пакет во табулаторот „Пакети“.

Заклучок

Благодарение на неговата одлична функционалност и удобен интерфејс CommView може да стане неопходна алатка за локални мрежни администратори, даватели на интернет услуги и домашни корисници. Бев задоволен од внимателниот пристап на развивачот кон руската локализација на пакетот: и интерфејсот и водичот за помош се многу добро дизајнирани високо ниво. Сликата е донекаде заматена од високата цена на програмата, но триесетдневната пробна верзијаќе помогне потенцијален купувачодлучува за препорачливоста за купување на оваа алатка.