{"id":4771,"date":"2026-08-11T20:58:59","date_gmt":"2026-08-11T18:58:59","guid":{"rendered":"https:\/\/www.sycope.com\/?post_type=dictionary-item&#038;p=4771"},"modified":"2026-08-12T19:01:37","modified_gmt":"2026-08-12T17:01:37","slug":"icmp","status":"publish","type":"dictionary-item","link":"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/icmp","title":{"rendered":"ICMP"},"content":{"rendered":"<p><strong>ICMP (Internet Control Message Protocol)<\/strong> to protok\u00f3\u0142 warstwy sieciowej, kt\u00f3ry przenosi komunikaty o b\u0142\u0119dach i informacje kontrolne dotycz\u0105ce pakiet\u00f3w IP. Inaczej ni\u017c <code>TCP<\/code> i <code>UDP<\/code> nie przesy\u0142a danych aplikacji ani nie nawi\u0105zuje po\u0142\u0105cze\u0144. Jest kana\u0142em sygnalizacyjnym: dzi\u0119ki niemu routery i komputery informuj\u0105 nadawc\u0119, \u017ce pakiet nie dotar\u0142, trasa si\u0119 zmieni\u0142a, up\u0142yn\u0105\u0142 czas \u017cycia pakietu (TTL, Time To Live) albo host jest nieosi\u0105galny. ICMP dla IPv4 opisuje dokument <code>RFC 792<\/code>, a jego komunikaty s\u0105 pakowane w pakiety IP z numerem protoko\u0142u <code>1<\/code>.<\/p>\n<h2>Jak dzia\u0142a ICMP?<\/h2>\n<p>ICMP nie utrzymuje po\u0142\u0105cze\u0144. Gdy urz\u0105dzenie sieciowe \u2014 router, zapora czy host docelowy \u2014 napotka problem z obs\u0142ug\u0105 pakietu IP, tworzy komunikat ICMP i odsy\u0142a go do nadawcy. Tak dzieje si\u0119 na przyk\u0142ad wtedy, gdy router nie zna trasy do sieci docelowej albo gdy pakiet trzeba podzieli\u0107 na mniejsze, ale jest to zabronione.<\/p>\n<p>Taki komunikat zawiera nag\u0142\u00f3wek oraz kawa\u0142ek pakietu, kt\u00f3ry wywo\u0142a\u0142 b\u0142\u0105d (zwykle nag\u0142\u00f3wek IP i kilka pierwszych bajt\u00f3w danych). Dzi\u0119ki temu nadawca wie, kt\u00f3rej konkretnie wysy\u0142ki dotyczy b\u0142\u0105d.<\/p>\n<p>Ka\u017cdy komunikat ICMP zaczyna si\u0119 od trzech p\u00f3l nag\u0142\u00f3wka:<\/p>\n<ul>\n<li><code>Type<\/code> (8 bit\u00f3w) \u2014 og\u00f3lny rodzaj komunikatu, np. Echo Request albo Destination Unreachable.<\/li>\n<li><code>Code<\/code> (8 bit\u00f3w) \u2014 u\u015bci\u015bla typ, np. podaje, dlaczego host jest nieosi\u0105galny.<\/li>\n<li><code>Checksum<\/code> (16 bit\u00f3w) \u2014 suma kontrolna ca\u0142ego komunikatu.<\/li>\n<\/ul>\n<p>Dalej znajduj\u0105 si\u0119 pola zale\u017cne od typu (np. identyfikator i numer kolejny w komunikatach echo) oraz dane.<\/p>\n<h2>Jakie s\u0105 typy i kody ICMP?<\/h2>\n<p>Para <code>Type<\/code> i <code>Code<\/code> jednoznacznie okre\u015bla, co dany komunikat oznacza. Najwa\u017cniejsze typy w IPv4 to:<\/p>\n<ul>\n<li><strong>Type 0 \u2014 Echo Reply<\/strong> i <strong>Type 8 \u2014 Echo Request<\/strong>: para u\u017cywana przez polecenie <code>ping<\/code> do sprawdzania, czy host odpowiada.<\/li>\n<li><strong>Type 3 \u2014 Destination Unreachable<\/strong>: pakietu nie uda\u0142o si\u0119 dostarczy\u0107. Kody podaj\u0105 pow\u00f3d, m.in. Code 0 (sie\u0107 nieosi\u0105galna), Code 1 (host nieosi\u0105galny), Code 2 (protok\u00f3\u0142 nieosi\u0105galny), Code 3 (port nieosi\u0105galny) oraz Code 4 (pakiet trzeba podzieli\u0107, ale ustawiono bit DF, zakazuj\u0105cy dzielenia). Ten ostatni jest kluczowy dla mechanizmu Path MTU Discovery, kt\u00f3ry wykrywa najwi\u0119kszy dopuszczalny rozmiar pakietu na trasie.<\/li>\n<li><strong>Type 5 \u2014 Redirect<\/strong>: router podpowiada hostowi lepsz\u0105 tras\u0119 do celu.<\/li>\n<li><strong>Type 11 \u2014 Time Exceeded<\/strong>: czas \u017cycia pakietu (TTL) spad\u0142 do zera (Code 0) albo up\u0142yn\u0105\u0142 czas sk\u0142adania fragment\u00f3w (Code 1). Na tym komunikacie opiera si\u0119 dzia\u0142anie <code>traceroute<\/code>.<\/li>\n<li><strong>Type 12 \u2014 Parameter Problem<\/strong>: b\u0142\u0105d w nag\u0142\u00f3wku pakietu IP.<\/li>\n<\/ul>\n<p>Historyczny <strong>Type 4 \u2014 Source Quench<\/strong> (pro\u015bba o zwolnienie tempa nadawania) zosta\u0142 wycofany. Pe\u0142ny rejestr typ\u00f3w i kod\u00f3w prowadzi organizacja IANA.<\/p>\n<h2>Do czego s\u0142u\u017cy ICMP w praktyce?<\/h2>\n<p>ICMP stoi za dwoma podstawowymi narz\u0119dziami diagnostycznymi:<\/p>\n<ul>\n<li><strong>ping<\/strong> \u2014 wysy\u0142a Echo Request (Type 8) i czeka na Echo Reply (Type 0). Sprawdza, czy host odpowiada, mierzy czas odpowiedzi (<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/rtt\">RTT<\/a>, Round-Trip Time) i wykrywa zgubione pakiety.<\/li>\n<li><strong>traceroute \/ tracert<\/strong> \u2014 wysy\u0142a pakiety ze stopniowo rosn\u0105cym TTL i odczytuje komunikaty Time Exceeded (Type 11) zwracane przez kolejne routery. W ten spos\u00f3b odtwarza tras\u0119 pakietu do celu. W systemach uniksowych traceroute domy\u015blnie wysy\u0142a sondy UDP, w Windows (tracert) \u2014 pakiety ICMP Echo, ale w obu odpowiedzi po\u015brednich router\u00f3w opieraj\u0105 si\u0119 na ICMP.<\/li>\n<\/ul>\n<p>Poza diagnostyk\u0105 ICMP obs\u0142uguje Path MTU Discovery (wykrywanie najwi\u0119kszego rozmiaru pakietu na trasie) oraz przekazuje routerom i hostom informacje o b\u0142\u0119dach trasowania.<\/p>\n<h2>Czym r\u00f3\u017cni si\u0119 ICMPv6 od ICMP dla IPv4?<\/h2>\n<p>W sieciach IPv6 odpowiednikiem jest <strong>ICMPv6<\/strong>, opisany w <code>RFC 4443<\/code> i przenoszony jako protok\u00f3\u0142 o numerze <code>58<\/code>. Pe\u0142ni te same zadania sygnalizacji b\u0142\u0119d\u00f3w, ale dla samego IPv6 jest du\u017co wa\u017cniejszy \u2014 przejmuje funkcje, kt\u00f3re w IPv4 obs\u0142ugiwa\u0142y osobne protoko\u0142y:<\/p>\n<ul>\n<li><strong>Neighbor Discovery (ND)<\/strong> \u2014 zast\u0119puje protok\u00f3\u0142 ARP; odwzorowuje adresy IPv6 na adresy warstwy \u0142\u0105cza (Neighbor Solicitation \/ Advertisement).<\/li>\n<li><strong>Router Discovery<\/strong> \u2014 komunikaty Router Solicitation \/ Advertisement pozwalaj\u0105 na automatyczne ustawienie adres\u00f3w (SLAAC).<\/li>\n<li><strong>Multicast Listener Discovery (MLD)<\/strong> \u2014 zarz\u0105dzanie grupami multicast.<\/li>\n<\/ul>\n<p>Dlatego zbyt agresywne blokowanie ca\u0142ego ICMPv6 na zaporach mo\u017ce popsu\u0107 podstawowe funkcje sieci IPv6. W IPv4 mo\u017cna filtrowa\u0107 ICMP ostrzej, bo pe\u0142ni tam mniej krytycznych zada\u0144.<\/p>\n<h2>Dlaczego ICMP jest istotny dla bezpiecze\u0144stwa?<\/h2>\n<p>ICMP to protok\u00f3\u0142 pomocniczy, ale jego prostota i obecno\u015b\u0107 niemal w ka\u017cdej sieci czyni\u0105 go atrakcyjnym celem nadu\u017cy\u0107. Dla obro\u0144cy bywa jednocze\u015bnie narz\u0119dziem rozpoznania w r\u0119kach atakuj\u0105cego, kana\u0142em ataku i cennym \u017ar\u00f3d\u0142em danych do monitoringu.<\/p>\n<h3>Rozpoznanie (reconnaissance)<\/h3>\n<p>Atakuj\u0105cy u\u017cywaj\u0105 Echo Request, \u017ceby wykry\u0107 aktywne hosty (tzw. ping sweep). Z komunikat\u00f3w Destination Unreachable i Time Exceeded wnioskuj\u0105 o budowie sieci, regu\u0142ach zapory i obecno\u015bci filtr\u00f3w. To, co odpowie (albo czego brakuje), pokazuje, kt\u00f3re adresy i porty s\u0105 dost\u0119pne.<\/p>\n<h3>Ataki wolumetryczne (DoS\/DDoS)<\/h3>\n<ul>\n<li><strong><a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/icmp-flood-ping-flood\">ICMP flood<\/a> (ping flood)<\/strong> \u2014 zalewanie celu pakietami Echo Request szybciej, ni\u017c jest on w stanie odpowiada\u0107, co wysyca pasmo i obci\u0105\u017ca procesor.<\/li>\n<li><strong>Smurf attack<\/strong> \u2014 wysy\u0142anie Echo Request na adres rozg\u0142oszeniowy sieci z podszytym (spoofed) adresem ofiary. Wszystkie hosty odpowiadaj\u0105 ofierze, co wielokrotnie zwi\u0119ksza ruch (amplifikacja).<\/li>\n<li><strong>Ping of Death<\/strong> \u2014 wysy\u0142anie zniekszta\u0142conych lub nadmiernie podzielonych pakiet\u00f3w ICMP, kt\u00f3re po z\u0142o\u017ceniu przekraczaj\u0105 dopuszczalny rozmiar i wieszaj\u0105 podatny stos sieciowy. Dzi\u015b zagro\u017cenie g\u0142\u00f3wnie historyczne.<\/li>\n<\/ul>\n<h3>Tunelowanie i wykradanie danych<\/h3>\n<p><strong>ICMP tunneling<\/strong> polega na ukrywaniu dowolnych danych w polu danych pakiet\u00f3w Echo Request\/Reply. Poniewa\u017c ICMP bywa przepuszczany przez zapory na potrzeby diagnostyki, taki kana\u0142 s\u0142u\u017cy do ukrytego sterowania zainfekowanymi maszynami (<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/c2-cc-command-and-control\">command and control<\/a>) oraz do wykradania danych w spos\u00f3b trudny do zauwa\u017cenia bez zagl\u0105dania w zawarto\u015b\u0107 pakiet\u00f3w. Typowe sygna\u0142y ostrzegawcze to nietypowo du\u017ce pakiety ICMP, wysoki i sta\u0142y ruch echo do jednego zewn\u0119trznego hosta oraz ICMP kierowany tam, gdzie zwykle nikt nie wysy\u0142a ping.<\/p>\n<h3>Znaczenie dla monitoringu i SOC<\/h3>\n<p>Dla zespo\u0142\u00f3w <a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/soc-security-operations-center\">SOC<\/a> oraz system\u00f3w <a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/ndr-network-detection-and-response\">NDR<\/a> ICMP jest zarazem ruchem do filtrowania i \u017ar\u00f3d\u0142em warto\u015bciowych danych. Typowe praktyki obronne to:<\/p>\n<ul>\n<li>ograniczanie tempa (<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/rate-limiting\">rate limiting<\/a>) komunikat\u00f3w ICMP zamiast ich pe\u0142nego blokowania \u2014 ca\u0142kowita blokada psuje Path MTU Discovery i diagnostyk\u0119;<\/li>\n<li>filtrowanie ICMP na brzegu sieci wed\u0142ug typ\u00f3w (np. wybi\u00f3rcze dopuszczanie Time Exceeded i Fragmentation Needed);<\/li>\n<li>analiza rozmiaru i cz\u0119stotliwo\u015bci danych ICMP pod k\u0105tem tunelowania;<\/li>\n<li>\u0142\u0105czenie nietypowych zdarze\u0144 ICMP (nag\u0142e ping sweepy, skoki liczby Destination Unreachable) z innymi sygna\u0142ami w sieci.<\/li>\n<\/ul>\n<h2>Dowiedz si\u0119 wi\u0119cej<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/bledy-konfiguracji-sieci-jak-ich-uniknac-i-poprawic-konfiguracje-routera\">B\u0142\u0119dy konfiguracji sieci \u2013 jak unika\u0107 network configuration errors i poprawi\u0107 konfiguracj\u0119 routera<\/a> \u2014 ICMP pomaga wykrywa\u0107 skutki b\u0142\u0119dnej konfiguracji sieci, np. brak odpowiedzi na ping i problemy z tras\u0105.<\/li>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/czym-jest-netflow-i-jak-wykorzystuje-sie-go-w-praktyce\">Czym jest NetFlow i jak ten protok\u00f3\u0142 jest wykorzystywany w praktyce?<\/a> \u2014 <a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/netflow\">NetFlow<\/a> uzupe\u0142nia dane ICMP, pokazuj\u0105c szczeg\u00f3\u0142y ruchu, kt\u00f3rego sam ICMP nie opisuje.<\/li>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/arp-spoofing-jak-wykryc-atak-man-in-the-middle-i-zatruwanie-arp-w-sieci-lan\">ARP Spoofing \u2013 jak wykry\u0107 atak Man-in-the-Middle i zatruwanie ARP w sieci LAN<\/a> \u2014 ICMP bywa u\u017cywany do weryfikacji \u0142\u0105czno\u015bci po wykryciu ARP spoofingu i zmian tras ruchu.<\/li>\n<\/ul>\n","protected":false},"featured_media":0,"template":"","class_list":["post-4771","dictionary-item","type-dictionary-item","status-publish","hentry"],"acf":{"tytul":"ICMP","ikona":"","krotki_opis":"Protok\u00f3\u0142 warstwy sieciowej, kt\u00f3ry przenosi komunikaty o b\u0142\u0119dach i informacje kontrolne o pakietach IP; stoi za narz\u0119dziami ping i traceroute."},"_links":{"self":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/dictionary-item\/4771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/dictionary-item"}],"about":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/types\/dictionary-item"}],"wp:attachment":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/media?parent=4771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}