Analiza mrežnog prometa jest postupak kojim se mrežni paketi (eng. network packet) presreću te podvrgavaju analizi. Presretanje paketa podrazumijeva čitanje paketa od strane aplikacije kojoj paket nije originalno namijenjen.

alt

Slika 1. Pozicija sniffera unutar mreže

Uhvaćeni se paket nakon hvatanja primitka i lokalnog zapisivanja prosljeđuje na odredište, tj. mrežni promet se samo snima bez izmjene ili blokiranja komunikacije.

alt

Slika 2. Izgled nedekodiranog paketa

Programska rješenja za analizu mrežnog prometa nazivaju se analizatori paketa ili češće snifferi. Takvi alati su u mogućnosti prikazati paket bez informacijskih omotača (eng. header), tj. sposobni su dekodirati informacije specifične za protokol danog paketa te ih prikazati u čitljivom obliku. Snifferi mogu promet snimati na dva načina – pasivnim osluškivanjem višeodredišnih poruka (npr. bežični mrežni promet) ili presretanjem prometa.

Pojedini alati posjeduju i dodatne mogućnosti kao što su:

  • automatska detekcija pogreške u prijenosu,
  • otkrivanje uzroka takve greške,
  • prikaz podataka u grafičkom obliku (vremenski grafovi propusnosti, količine prometa i sl.),
  • generiranje ispitnih paketa – ispravnih ili neispravnih (u svrhu provjere ispravnosti prijenosa ili sposobnosti oporavka od pogreške).

Alati mogu biti programska ili sklopovska rješenja.

Sklopovska rješenja su obično uske namjene, ugrađuju se u telekomunikacijsku opremu te su sposobna vrlo brzo analizirati promet protokola nad kojim su izgrađeni. Također, oslobađaju korisnika od potrebe da sam generira neispravan mrežni promet u svrhu ispitivanja (budući da automatski i kontinuirano zapisuju isti).

Programska rješenja, s druge strane, obično su šire namjene te su sposobna analizirati mnogo više protokola. Koriste se u instancama kada se želi otkriti uzrok određene anomalije.

Neki od primjera korištenja sniffera jesu:

  • detekcija mrežnih pogreški,
  • detekcija pokušaja upada na sustav,
  • izolacija sustava sa mrežnim kvarom,
  • nadzor podataka u prijenosu mrežom,
  • prikupljanje statistike mrežnog prometa i sl.

Najčešća je primjena takvih alata ipak otkrivanje pogreški i problema u komunikaciji, i upravo je u tu svrhu prilagođen alat koji će detaljnije biti opisan u nastavku.

Wireshark

Wireshark jest besplatni alat (izdan pod GPL licencom) otvorenog koda za analizu mrežnog prometa. Trenutna inačica alata jest 1.6.1 izdana 18.6.2011. Alat je dostupan za operacijske sustave Windows  (XP, Vista, 7) te Linux/BSD. Od Linux distribucija, alat je dostupan za dvije inačice (Debian i RedHat) u obliku paketa (link: package manager), dok se za ostale može dobaviti u otvorenom kodu te prevesti u izvršne datoteke (link: binaries).

Korisnički programi u pravilu (link: user/kernel space) ne mogu pristupati memoriji rezerviranoj za jezgru operacijskog sustava. Budući da je mrežni stog (link: network stack) dio jezgre, program koji želi očitati informacije o mrežnom prometu mora to učiniti preko programskog sučelja (eng. application programing interface – API). Wireshark u pozadini koristi pcap API kako bi snimio pakete koji prolaze kroz sustav. 

pcapjest programsko sučelje koje definira standardne metode za snimanje mrežnih paketa. Mrežni paketi jesu jedinice mrežne komunikacije (svaka se poruka lomi na pakete koji se tada šalju kroz mrežu). Na Windows operacijskim sustavima pcap API implementiran je u WinPcap biblioteci (eng. library), dok se na Linux operacijskim sustavima u tu svrhu koristi libpcap sučelje.

Snimanje mrežnog prometa

Prvi korak u hvatanju prometa jest izbor mrežnog sučelja čiji promet će se snimati. Alat automatski prepoznaje i nudi dostupna mrežna sučelja. Nakon odabira mrežnog sučelja, (jednog ili više) započinje snimanje.

alt

Slika 3. Prikaz mogućnosti snimanja

Prije snimanja moguće je odabrati razne opcije snimanja (prikazane na slici 1). Alat nakon postavljanja počinje snimati promet (po prethodno odabranim postavkama). Budući da je teško izdvojiti korisne informacije iz male količine prometa, preporučljivo je alat pokrenuti  i ostaviti pokrenutog u pozadini dok ne prikupi dovoljno informacija za analizu (ovisno o namjeni, može biti od nekoliko kB do nekoliko GB podataka).

alt

Slika 4. Prikaz snimljenih paketa

Prikaz snimljenih paketa (i detalja o paketima) ne može dati uvid u krupnu sliku mrežnog prometa. Takav prikaz može poslužiti tek ukoliko korisnik sumnja u određeni problem, pa isti želi detaljno provjeriti. Međutim, ukoliko korisnik nema ideju o problemu, mora početi od sumarnog pregleda, što je upravo jedna od najkorisnijih mogućnosti alata – sumiranje mrežnog prometa. Alat je u mogućnosti dati sumarni pregled prema velikom broju parametara. Neki od popularnijih su:

  • filtriranje prometa po odredišnoj točki,
  • sumarna količina prometa sa određenom komunikacijskom točkom,
  • grafički prikaz količine i raspodjele prometa po protokolu,
  • hijerarhijski prikaz protokola (po slojevima) te njihove korištenosti,
  • prosječno vrijeme odaziva određenog servisa (LDAP, RADIUS ...).

Alat također može prikazati statističke podatke specifične za pojedini protokol. Tako, primjerice, za HTTP protokol alat može izračunati opterećenje po pojedinoj IP adresi, dok za TCP protokol može prikazati graf vremena obilaska (link: eng. round trip time graph).

alt

Slika 5. Grafički prikaz sumiranog prometa.

Wireshark također nudi opcije analize sumarnog prometa. Mogućnosti analize alata su:

  • praćenje toka prometa određenog protokola između dvije točke (upiti i odgovori između određena dva čvora),
  • dekodiranje određenog mrežnog paketa u obliku željenog protokola (ukoliko korisnik sumnja da je protokol paketa krivo ili lažno predstavljen),
  • prikaz samo određenog protokola te informacija specifičnih za taj protokol te
  • prikaz „stručnih podataka“, tj. sumarni prikaz podataka o konkretnim greškama i upozorenjima po protokolima (slika 4.).

alt

Slika 6. Prikaz „stručnih podataka“

Alat je u mogućnosti analizirati i protokole telefonije, tj. protokole koji ne spadaju u domenu računalnih mreža. U tom slučaju, alat je nužno postaviti u takvu ne-računalnu mrežu (kako bi snimao promet), ili mu je potrebno dostaviti zapis prometa koji je snimila treća strana.

Wireshark je vrlo moćan alat za analizu mrežnog prometa, te je ovim člankom obrađen samo dio njegovih mogućnosti. Za više informacija i detaljnije upute, korisniku se preporuča posjet službenim stranicama.

Alati komandne linije

U ovu kategoriju spadaju mnogi manji alati koje je moguće pokrenuti na standardnoj Linux/BSD komandnoj liniji (npr. bash). Tu spadaju tcpdump, ngrep, snoop, ettercap i sl. alati. Primarna prednost takvih alata je u mogućnosti integracije sa spomenutom komandnom linijom, te u specijaliziranoj namjeni. Primjerice, ukoliko korisnik ima potrebu snimiti sve TCP pakete određenog sadržaja sa određenog računala te ih skladištiti na treće računalo, kombinacija spomenutih alata će mu znatno pomoći u realizaciji. Drugim riječima, ukoliko je korisniku potreban velik stupanj prilagodljivosti i mogućnost integracije sa operativnim sustavom, tada su manji i specijalizirani alati u prednosti nad Wiresharkom, zbog većeg stupnja programibilnosti i konfigurabilnosti.

Osim takvih manjih specijaliziranih alata, postoje i drugi alati slični Wiresharku (npr. Microsoft Network Monitor), međutim kako ne posjeduju prednosti u odnosu na Wireshark (dapače, često su i lošije kvalitete) te ujedno nisu besplatni, u ovom tekstu nisu obrađeni.

Idi na vrh