Što je ICMP?

Što je ICMP

Što je ICMP?

ICMP (Internet Control Message Protocol) je protokol koji mrežni uređaji (npr. Usmjerivači) koriste za generiranje poruka o pogrešci kada mrežni problemi sprečavaju prolazak IP paketa.

Protokol poruka o internetskoj kontroli jedan je od osnovnih sustava koji omogućuje internet funkcioniranje. Iako možda niste čuli za ICMP, vjerojatno ste čuli za jednu od njegovih značajki: Ping. U ovom ćete vodiču saznati više o ovom bitnom protokolu.

Povijest ICMP-a

ICMP je dio TCP / IP snop protokola. Nalazi se na Internetski sloj i to je standard poruke o pogrešci koji podržava osnovni internetski protokol. Izvornu definiciju ICMP-a napisao je Jon Postel, jedan od osnivača interneta. Prvi standard objavljen je u travnju 1981. u RFC 777. Otada je nekoliko puta ažuriran. Stabilna definicija protokola sadržana je u RFC 792, koji je napisao i Postel, a objavio ga Radna grupa za Internet inženjering u rujnu 1981.

Svrha ICMP-a

Iako se interni sloj niže razine ne treba baviti osiguravanjem veze, ICMP daje malo povratnih informacija o komunikacijama kada stvari krenu po zlu. Dakle, čak i ako koristite UDP, koji ima a bez spajanja komunikacijskog modela, još uvijek je moguće otkriti zašto prijenos nije uspio. Svi uređaji povezani s mrežom mogu obrađivati ​​ICMP poruke, tako da uključuju usmjerivače i uređaje krajnjih točaka. ICMP je prilagođen tako da može raditi s IPv6 jednako temeljito koliko je služio IPv4.

Kako se ovaj protokol nalazi na internetskom sloju, njegove poruke nose IP paketi i tako postoje na višoj razini od operativnih struktura sklopki. Iako se ICMP nalazi unutar IP paketa, on ne postoji unutar paketa koji nose podatke. ICMP paket generira se samo kao odgovor na dolazni paket podataka kad prijenos te ulazne poruke ne uspije. Uvjeti pogreške koji izazivaju ICMP paket često su rezultat podataka sadržanih u IP zaglavlju neuspjelog paketa.

ICMP struktura paketa

Kad usmjerivač ponovno pošalje ICMP paket da bi prijavio pogrešku, ponovno stvara sva polja u izvornom IP zaglavlju paketa o kojem izvještava. Dakle, program za prikupljanje pogrešaka na originalnom računalu slanja mogao je analizirati zaglavlje i točno utvrditi koji od IP paketa koje je poslao nije uspio.

Nakon IP zaglavlja, dolazi tri polja ICMP zaglavlja. Oni sadrže kôd koji kategorizira pogrešku, polje pod-koda koje precizira opis koda pogreške i zatim kontrolni zbroj. Nakon ICMP polja dolaze prvih osam bajtova korisnog opterećenja zaglavlje Prijevozni sloj (TCP ili UDP).

ICMP kodovi poruka

Prvo polje s kodom u ICMP bloku sadrži neke vrlo korisne informacije. Kod je numerički i evo nekoliko zanimljivijih vrijednosti koje polje može imati:

0: odgovor odjeka – koristi se za ping

3: odredište nedostupno

4: ugasi izvor – usmjerivač je preopterećen

5: preusmjeravanje – koristite drugi usmjerivač

8: zahtjev za odjek – koristi se za ping

9: odgovor na oglas s usmjerivačem

10: usmjeravanje poziva

11: Vrijeme je prekoračeno – koristi se za trag

Vrijeme je za život

Jedno od polja zaglavlja IP-a koje je najpoznatije po izazivanju pogreške nastajanja ICMP-a je Vrijeme je za život polje (TTL). Ovo polje sadrži broj koji izražava najveći broj usmjerivača kroz koje paket može proći. Taj se broj smanjuje za jedan, svaki usmjerivač koji obrađuje paket. Ako usmjerivač primi paket s nultom TTL-om, ispusti taj paket i šalje ICMP poruku natrag začetniku tog neuspjelog prijenosa.

U slučaju iscrpljenosti TTL-a, razlog paketa koji nije uspio stići na odredište nema nikakve veze s problemima s usmjerivačem ili pogrešnim podacima u zaglavlju paketa. TTL je konstrukcija koja je stvorena kako bi se spriječilo da paketi prepucavaju internet pakete kada su pogreške tablice usmjerivača rezultirale kružnim stazama. Međutim, nusprodukt ovog polja je vrlo koristan alat za administraciju mreže: traceroute.

Vidi također:  Pregled alatnih tragova SolarWinds

Pratite ICMP

Traceroute je dobro poznati neto administratorski alat koji pokazuje tipičan put od pokretanja računala do određene odredišne ​​IP adrese. Program šalje niz praznih IP paketa. Važna značajka svakog od ovih prijenosa je TTL vrijednost u IP zaglavlju.

Program Traceroute započinje s slanjem paketa van a TTL od 0. To će ispasti prvi usmjerivač koji ga prima, a to je obično mrežni prolaz. Taj usmjerivač šalje ICMP paket. Jedini podaci koje Traceroute želi iz tog odgovora su vrijeme koje je potrebno da se vrati i adresa izvora paketa. To govori Traceroute adresi prvog usmjerivača na putu do odredišta. Program tada šalje paket s TTL od 1. Ovo dolazi kroz gateway koji TTL smanjuje za 1. Ruter koji sljedeći paket primi vidi da je TTL jednak nuli, ispusti paket i šalje natrag ICMP paket. Otkriva se drugi usmjerivač na putu i Traceroute bilježi vrijeme koje mu je trebalo da stigne odgovor. Povećavajući TTL za 1 sa svakim prijenosom, Traceroute na kraju izrađuje kartu svih veza na internetu na zadanu adresu.

Traženje problema

Traceroute je vrlo jednostavan alat koji koristi postojeću administrativnu funkciju i čini je učinkovit i informativan alat iz nje. S Tracerouteom postoji nekoliko slabih točaka.

Mrežni administrator vjerojatno će upotrebljavati uslužni program kako bi vidio zašto je nedavna veza prošla toliko loše – ili polako ili nije uspjelo. Međutim, Traceroute vam ne može reći što se dogodilo u prošlosti. Može vam dati samo povratne informacije o napretku trenutne rute.

Svaki usmjerivač donosi vlastitu odluku o tome tko od svojih susjeda nudi najkraći put do odredišne ​​IP adrese u paketu. Međutim, ta odluka ne može uvijek biti potpuno ista svaki put. Ako usmjerivač postane zagušen ili isključen, susjedni usmjerivači uskoro saznaju za problem i prilagodi tablice usmjeravanja da riješe problem. Te izmijenjene informacije o usmjeravanju stižu na sve usmjerivače na Internetu, ali problem može biti riješen prije nego što svi usmjerivači saznaju za to. Tada se ponovno prilagođena ruta širi širom svijeta.

Opcija s naredbom “-j“Omogućava vam odrediti adrese usmjerivača za koje biste željeli da ih pratiti kao put. Međutim, da biste koristili ovaj objekt, morali biste već znam put kojim je krenuo neispravan prijenos a te podatke možete dobiti samo s izvršenjem Traceroute potpuno istog puta.

Dakle, ako osjetite sporu vezu, naredba Traceroute koju kasnije izdate možda neće otkriti što se dogodilo jer do tog vremena. Problem koji je uzrokovao kašnjenje možda je riješen i put Traceroute možda nije isti put koji koristi spora veza.

Još jedan problem Traceroute-a je što nudi zanimljiv prikaz na putu kojim će vaš prijenos vjerojatno ići do određenog odredišta. Međutim, ne daje vam nikakve alate da učinite bilo što s informacijama koje primite. Stazu nije moguće odrediti, pa ako vidite da jedan od usmjerivača na Internetu daje sporo vrijeme odziva, sve što možete učiniti je znati koji usmjerivač usporava vaše veze. Kako taj usmjerivač ne pripada vašoj tvrtki i ne možete ga ubrzati, stekli ste znanje putem Traceroute-a, ali ne možete na njemu djelovati.

Vidi također: Najbolji alati za Traceroute

ICMP Ping

Ping koristi dva ICMP koda: 8 (zahtjev za odjek) i 0 (odgovor odjek). Kada izdate naredbu Ping u upitu, program Ping šalje ICMP paket koji sadrži kôd 8 u Tip polje. Odgovor će imati: Tip od 0. Program puta predstavlja jaz između slanja paketa zahtjeva za eho i dolaska odgovora. Dakle, možete dobiti “vrijeme povratnog putovanjaPaketa na određeno odredište i natrag.

Paket zahtjeva za eho je neuobičajen po tome što je jedini ICMP paket koji se šalje bez da ga izazove pogreška. Dakle, Ping ne mora oponašati stanje pogreške kako bi vratio ICMP poruku. Ping ima dvije mogućnosti koje vam omogućuju da odredite popis adresa za put kojim bi prijenos trebao proći. Ovi su “-j“, Koji sugerira rutu i”-k“, Koja diktira rutu.

ICMP Ping priključak

Možda se pitate koji port koristi Ping. Odgovor je: nijedan. Ako uslužni program omogućuje “ping” porta, to nije doslovno Ping naredba. Umjesto toga, ovaj uslužni program koristi TCP ili UDP paket za testiranje porta. Zapravo, ova vrsta funkcije naziva se “port skener” ili “port checker.”

Ping ne može koristiti portove jer je to protokol koji postoji na nižoj razini od Transportni sloj, gdje su luke glavna značajka.

Najbliža metoda dostupnom izvješću ICMP Ping porta je poslati UDP paket na određeni ulaz. Ako taj priključak nije aktivan, prijenos će izazvati ICMP poruku od domaćina vrste 3 (odredište nedostupno) podvrsta 3 (odredišna luka nedostupna). Iako je moguće izazvati ICMP poruku o portu, nije moguće koristiti Ping mehanizam za slanje ICMP paketa u taj ulaz u prvom redu kao zahtjev za eho. Ako u Ping naredbi dodijelite broj porta na IP adresu (tj. Ping :), naredba se neće pokrenuti, već će umjesto toga vratiti sintaksičku grešku.

Pathping

Pathping je uslužni program koji jest ugrađen u Windows operativni sustav a dostupan je u svim inačicama od Windows NT. Ovaj je program kombinacija Ping i traceroute, pa iskorištava tri vrste ICMP poruka. To su vrsta zahtjeva za eho i odgovor odgovora (8 i 0) i vrijeme premašenog vremena poruke (11).

Kao i kod Traceroutea i Pinga, moguće je dati popis adresa za predloženi put kao parametar naredbi a uslužni će program pokušati poslati paket na odredište preko tih adresa.

Pathping izrađuje oblikovano izvješće o rezultatima koje pokazuje ruta i vrijeme povratka na svaki usmjerivač. Poslat će ponovljene ping zahtjeve svakom usmjerivaču na putu, a ne samo da se više puta kontaktira na odredište. To je ono što Ping radi ili samo jednom bilježi svaki usmjerivač na putu, što Traceroute i radi.

Pathping nije tako elastičan kao Ping ili Traceroute. Iako je svaki uređaj na internetu sposoban za slanje ICMP poruka, nisu svi uređaji aktivirani ICMP funkcije. Neki vlasnici usmjerivača i poslužitelja namjerno isključuju ICMP funkcije kao zaštitu od hakerskog napada.

Ako srednji usmjerivač neće koristiti ICMP, Ping i dalje prolazi kroz taj usmjerivač kako bi testirao odredište. Ako se Traceroute nađe na usmjerivaču koji neće poslati ICMP pakete, on jednostavno prelazi na sljedeći usmjerivač, predstavljajući liniju zvjezdica za nekomunikativni usmjerivač. U istoj situaciji, Pathping završava svoje ispite na usmjerivaču koji je ICMP onemogućen.

Smrtonosni napad

Glavni razlog zbog kojeg neki vlasnici opreme isključuju ICMP mogućnosti svojih uređaja je taj što hakeri sustav mogu koristiti kao kanal za napad. Napad Smurfa je jedan takav slučaj.

Smurf napad koristi strategiju reflektora. Ne napada meta izravno, nego poziva druga računala i usmjerivače da šalju poruke žrtvi. Napadač izrađuje emitovanu adresu koja se koristi u mreži žrtve, a zatim šalje ICMP zahtjev odjeka (Ping). Svaki će uređaj na mreži poslati eho odgovor na usmjerivač koji je domaćin koji emitira IP adresu.

Ovaj napad djeluje samo na velikim mrežama. Učinkovito izaziva napad distribuiranog uskraćivanja usluge (DDoS) iz mreže, dok se većina napada pokreće putem udaljenih računala putem interneta. Napad napada može se spriječiti isključivanjem ICMP mogućnosti na gateway usmjerivaču ili filtriranjem prihvaćanja zahtjeva koji nose emitiranu IP adresu mreže na paketima koji ulaze u mrežu s udaljene lokacije.

Ping poplava

Poplava Ping-a je DDoS strategija koja svladava ciljno računalo ICMP zahtjevi odjeka. Neke implementacije Pinga djeluju bolje nego druge. Na primjer, napad je učinkovitiji ako se Ping naredba pokrene s tipkom “poplavaMogućnost. Međutim, ova opcija nije dostupna u svim verzijama Pinga – nije valjana opcija na verziji koja je ugrađena u Windows, na primjer. Činjenica da opcija poplave nije univerzalna predstavlja probleme hakerima koji žele usmjeriti udaljena računala zaražena virusom a botnet upravljački program za slanje Ping zahtjeva. Budući da je opcija poplave rijetka, vjerojatno je to većina uređaja na botnetu neće moći pokrenuti napad.

Ova bi strategija napada imala više uspjeha kada bi haker osigurao da su sva zaražena računala pokušala pokrenuti napad imala mogućnost poplave u svojim Ping implementacijama. Jedan način da se to osigura bilo bi testiranje računala prije bilo kakvog napada i kategorizacija grupa koja ima pravi oblik Pinga, ili instalirati Ping s omogućenim poplavom na sva računala koja su zaražena virusom botneta.

Najjednostavnija obrana od poplave Pinga jest isključite ICMP mogućnosti na usmjerivaču. Ako imate web poslužitelj, onda vatrozid web aplikacije trebao bi vas zaštititi od poplava Pinga.

Ping smrti

Ping of Death uključuje slanje predugih paketa zahtjeva za ping. Zahtjev će imati veliku količinu ispunioca na kraju u korisnom teretu. Kako je datagram predug za prijenos, procesor internetskog protokola rastavit će niz na komade koji su veličine pošiljateljeve jedinice za maksimalni prijenos (MTU). Prijemnik će primijetiti da je ovo ekstra dugi paket koji je razbijen i pokušajte za ponovno sastavljanje izvornog, dugog paketa prije nego što ga pošaljete na odredišnu aplikaciju. Ako je duljina paketa veća od bajta od veličine dostupne memorije na prijemnom računalu, pokušaj ponovnog sastavljanja paketa će zaglaviti računalo.

Ping of Death je sada dobro poznata vrsta napada i tako zaštitni zidovi i sustavi za otkrivanje provale mogu ga uočiti i blokirati. Kao i kod svakog hakerskog trika koji postane poznat, njegova učinkovitost više ne prijeti. Dakle, hakeri su u velikoj mjeri odustali od strategije Ping smrti u korist Ping poplava.

ICMP tunel

Usmjerivači gledaju samo zaglavlja ICMP paketa, uključujući TCP / UDP zaglavlje koje bi moglo biti iza ICMP podataka. Tako normalan paket s puno podataka u njemu prošao bi samo onoliko koliko je u njemu imao ICMP odjeljak. To je potencijalno stražnja vrata za posjetitelje da obiđu postupke provjere autentičnosti i naplate javnih mreža. To se naziva ICMP tunel ili Ping tunel.

Tunele kroz gateway i firewall nije moguće samo uz standardni mrežni uslužni program Ping koji većina ljudi ima na svojim računalima. ICMP tunel bi trebao biti programiran. Ovo je također moguća ruta u mrežu za hakera. Nažalost, za mrežne administratore, postoji nekoliko besplatnih paketa ICMP tunela koji se mogu preuzeti s interneta.

Kao i kod prethodne dvije vrste ICMP napada, Ping tuneli mogu biti blokirani vatrozidima web aplikacija, sustavima za otkrivanje upada ili jednostavnim blokiranjem svih ICMP aktivnosti na mrežnom prolazu.

Napad Twinga

Twinge je program hakerskog napada. Pokreće se poplava ICMP-a preplaviti ciljno računalo. Iako se čini da svi Ping zahtjevi koje cilj prima dolaze iz različitih izvora, svi su oni zapravo iz istog izvora, svaki s lažnom IP adresom u zaglavlju. Twinge je vjerojatno samo preimenovan uslužni program Ping s implementiranom opcijom “poplava”. To bi bio vrlo koristan alat za botnet vlasnici da se učitaju na svoja zombi računala kako bi se lansirali Ping poplava napada.

U suštini, poplava Twinga jednaka je poplavi Pinga a rješenja za zaštitu mreže od iste ista su kao i za glavnu kategoriju DDoS napada putem ICMP-a: isključite ICMP, instalirajte vatrozid web aplikacije ili suptilni vatrozid ili instalirajte sustav za otkrivanje provale.

Otkrivanje MTU staze

Jedinica za maksimalni prijenos (MTU) je postavka na mrežnim uređajima koja diktira najveću duljinu IP paketa koji bi uređaj trebao obraditi. Izražava se u okteta, što je osam-bitni bajt. Izvorna preporuka MTU-a za internetski protokol bila je 576 okteta. Međutim, preporučuje se Ethernet standard 1.500 okteta i ovo je postalo standard za sve mrežne i internetske uređaje.

Moguće je podesiti MTU postavke na bilo kojem usmjerivaču. Tako, ako vaši paketi prolaze kroz usmjerivač s nižim MTU-om, svaki će se podijeliti u dva IP paketa. Ovo usporava isporuku vaših transfera jer primatelj mora sastaviti originalni paket prije nego što može napredovati do obrade transportnog sloja a zatim se proslijedi odredišnoj aplikaciji.

Također je moguće u IP zaglavlju odrediti dijeljenje koje se naziva “fragmentacija”Ne bi trebalo izvoditi na paketu. U ovom slučaju, usmjerivač s MTU-om koji je manji od duljine paketa će ispasti paket i nakon toga izvijestiti o ICMP-u. Ova bi poruka pogreške bila ICMP tipa 3 (odredište nedostupno) podvrsta 4 (potrebna je fragmentacija, ali je postavljena zastava “ne fragment”).

Pokušaj otkrivanja Path MTU-a rješava problem fragmentiranih ili ispuštenih paketa. Ako možete pronaći najniži MTU na putu kojim će se kretati vaš prijenos, jednostavno morate postaviti vlastiti MTU na tu veličinu.

Mehanizam otkrivanja provodi se gore opisanim postupcima neuspjeha. IP paket izlazi na odredište s podstavljenim korisnim opterećenjem kako bi dostigao veličinu MTU-a pošiljatelja i oznaku “ne fragmentiraj”Postavljena zastava Ako to uspije, ne biste trebali imati problema s vezama do odredišta na koje ste poslali testni paket. Ako prijenos izazove ICMP pogrešku, jednostavno biste pokušali testirati više puta, svaki put smanjujući dužinu paketa. S tim ćete vremenom poslati paket koji prođe, a duljina tog paketa će vam reći najnižu MTU na putu do vašeg odredišta.

Ping ima mogućnost postavljanja “ne fragmentirajZastava. Međutim, to će biti učinkovito samo ako je Ping paket duži od MTU-a usmjerivača na svom putu. Ping ne podnosi veličinu MTU-a, pa je dvojbeno da će se kratki Ping paket ikad odbaciti.

Linux-based IPutils paket sadrži tracepath, koji će za vas izvesti otkrivanje MTU staze. Na Windows računala, možete provjeriti besplatni uslužni program mturoute.

ICMP svijet

ICMP sustav vrlo je jednostavan mehanizam za izvještavanje o kvarama u prijenosu. Međutim, također je jedan od najmoćnijih skupa alata dostupnih mrežnim administratorima. Dobra vijest je to ICMP je besplatan i automatski dostupan na bilo kojem uređaju povezanom s mrežom. Loša vijest je to ICMP mogu koristiti hakeri da formira napade ili čak provuče veze kroz vatrozidove.

Činjenica da se ICMP može zlonamjerno koristiti potiče mnoge administratore koji sprečavaju rizik da isključe sustav slanja poruka. To je sramota jer onemogućuje puno vrlo korisnih uslužnih programa koji su opisani u ovom vodiču.

Ako imate mrežu, a posebno ako posjedujete usmjerivač koji prolazi internetski promet, razmislite o korištenju zaštitnih zidova i sustava za otkrivanje upada kako biste blokirali ICMP zlouporabu umjesto da potpuno isključite protokol poruka. Istražite postavke i značajke upravljačkog softvera vašeg usmjerivača da biste vidjeli ima li ICMP postupke rješavanja zloupotrebe koji će vam omogućiti da nastavite upravljati ICMP-om na uređaju.

Koristite li ICMP metode za provjeru svojih veza? Imate li program temeljen na ICMP-u GUI koji redovito koristite i koji možete preporučiti drugima? Jeste li isključili ICMP na usmjerivaču da biste zaštitili mrežu? Ostavite poruku u komentari odjeljak ispod i podijelite svoja iskustva.

About the author