Internet Control Message Protocol (ICMP) yani İnternet Kontrol Mesajı Protokolü, OSI modelinin ağ katmanında yer alır ve internet protokol paketinin (genellikle TCP/IP olarak anılır) ayrılmaz bir parçasıdır.
ICMP, IANA.org’a göre IP paketinde Protokol Numarası 1 olarak atanmıştır.
Bir hata raporlama ve sorgulama hizmeti olarak tasarlanan ICMP, ağ iletişiminde ana bilgisayardan ana bilgisayara datagram hizmetinde çok önemli bir rol oynar. Ağ IP iletişiminde geri bildirim sistemi olarak görev yapan IP hizmetinin bir parçasıdır ve teslim edilemeyen paketlerin yönlendirici veya ağ geçidi gibi gönderen ana bilgisayara bildirilmesini sağlar.
ICMP Ne İçin Kullanılır?
ICMP’nin ana işlevi hata raporlamadır. İki cihaz internet üzerinden bağlandığında, ICMP, verilerden herhangi biri amaçlanan hedefe ulaşmazsa, ileten cihazla paylaşmak için hatalar oluşturur. Bir veri paketi bir yönlendirici için çok büyükse, yönlendirici paketi bırakır ve verinin kaynağına bir ICMP mesajı gönderir.
ICMP, özellikle ping ve traceroute terminal uygulamaları olmak üzere ağ tanılama için de kullanılır.
Traceroute
Traceroute yardımcı programı, birbiriyle etkileşim halinde olan iki internet cihazı arasındaki fiziksel yönlendirme yolunu görüntüler. Genellikle atlama olarak bilinen bir yönlendiriciden diğerine giden yolu çizer. Ağ sorunlarını teşhis etmek için bir traceroute kullanmak, yöneticilere bir ağ yavaşlamasının kaynağını belirlemede yardımcı olabilir.
Ping
Ping yardımcı programı traceroute’un basitleştirilmiş bir sürümüdür. Yankı istek mesajları olarak da bilinen ping’ler gönderir ve ardından mesajın hedefine ulaşmasının ve kaynağa geri dönmesinin ne kadar sürdüğünü zamanlar. Bunlar yankı yanıt mesajları olarak bilinir. Ping’ler belirli bir cihazın gecikme süresini belirlemek için önemlidir. Ping, traceroute’un aksine, yönlendirme düzeninin görsel haritalarını sunmaz. Ping programı ayrıca hizmet reddi (DoS) saldırılarında da sıklıkla kullanılır.
Yaygın olarak kullanılan İnternet Protokolü sürüm 4 veya IPv4 adres sınıfı ve daha yeni IPv6 adres sınıfı sırasıyla ICMPv4 ve ICMPv6 kullanır.
ICMP Nasıl Çalışır?
IP paketindeki en önemli protokollerden biri ICMP’dir. Öte yandan ICMP, Transmission Control Protocol (TCP) veya User Datagram Protocol (UDP) gibi herhangi bir aktarım katmanı protokolüyle ilişkili değildir. Bağlantısız bir protokoldür, yani bir mesaj göndermeden önce bir cihazın hedef cihazla bağlantı kurmasına gerek yoktur. Bu, bir mesaj iletilmeden önce bir bağlantı kurulmasını gerektiren TCP’nin aksine her iki cihazın da bir TCP el sıkışması yoluyla hazır olduğunu belirler.
ICMP mesajları, ICMP verilerini kapsülleyen bir IP başlığına sahip datagramlar olarak gönderilir. Bir datagram, bir paket gibi, kendi kendine yeten özerk bir veri nesnesidir. Bunu, daha büyük bir mesajın bir bölümünü ağ üzerinden taşıyan bir paket olarak düşünün. IP veri kısmında ICMP içeren IP paketleri ICMP paketleri olarak adlandırılır. ICMP mesajları ayrıca orijinal mesajın tüm IP başlığını da içerir ve son sistemin hangi paketin başarısız olduğunu belirlemesine olanak tanır.
ICMP başlığı IP protokol numarası 1 olarak belirtilir ve IPv4 veya IPv6 paket başlığından sonra görünür.
ICMP Mesaj Biçimi
Type (8 bits) – Tip (8 bit): ICMP mesajını bilmemize yardımcı olur. ICMP Echo Request 8 tip değerine sahiptir.
Code (8 bits) – Kod (8 bit): ICMP mesajı hakkında ek bilgi sağlar.
Checksum (16 bit): ICMP mesajının bütünlüğünü ölçer. Sağlama toplamı, başlık ve mesajın içeriği kullanılarak hesaplanır.
DDoS Saldırılarında ICMP
DDoS saldırıları, hedef sistemi veya bir ağı birden fazla kaynaktan gelen büyük miktarda trafikle doldurur. Bir ağ protokolü olan ICMP, bu tür siber saldırıları kolaylaştırmak için çeşitli şekillerde kullanılabilir. DDoS saldırılarında ICMP’nin kullanıldığı iki yol aşağıdaki şekildedir:
1. ICMP Flood
ICMP flood saldırısında bilgisayar korsanı hedef sisteme ya da ağa çok sayıda ping paketi gönderir. Bunların yanıtını Echo Requests şeklinde alır. Hedefin ağ bant genişliği, işlem gücü ve bellek gibi kaynaklar aşılır ve bu da trafiği işlemesine izin vermez.
2. Smurf Attack
Smurf saldırısı, siber saldırının etkisini büyütmek için ICMP Echo Request işlevinden yararlanmayı içeren özel bir ICMP flood saldırısı türüdür. Smurf saldırısında bilgisayar korsanı, ICMP Echo Requests kaynak IP adresini hedeflenen kişinin IP adresi olarak değiştirir. Bu sahte ICMP Echo Requests daha sonra bir ağın yayın adresine yayınlanır veya ağdaki birden fazla ana bilgisayara yönlendirilir.
ICMP Mesajlarının Türleri
Tür | İsim | Açıklama |
0 | Yankı (Echo) Yanıtı | ICMP Echo Request mesajının alındığını onaylamak için alıcı cihaz tarafından gönderilir. |
3 | Hedefe Erişilemedi(Destnation Unreachable) | Hedefin ulaşılamaz olduğunu belirtmek için bir yönlendirici veya alıcı cihaz tarafından gönderilir. |
4 | Kaynak Kapatmak(Source Quench) | Trafik hızının çok yüksek olduğunu ve yavaşlatılması gerektiğini belirtmek için bir yönlendirici tarafından gönderilir. |
5 | Yeniden Yönlendirme (Redirection Required) | Kaynak cihaza hedefe giden daha iyi bir yol olduğunu bildirmek için bir yönlendirici tarafından gönderilir. |
8 | Yankı isteği (Echo Request) | Hedef cihazla ağ bağlantısını test etmek için kaynak cihaz tarafından gönderilir. |
11 | Zaman Aşımı (Time Exceeded) | Paketin TTL’sini aştığını belirtmek için bir yönlendirici veya hedef cihaz tarafından gönderilir. |
12 | Parametre Problemi (Parameter Problem) | Paketteki bir hatayı belirtmek için bir yönlendirici veya hedef cihaz tarafından gönderilir. |
13 | Tarih Bilgisi İstemi (Timestamp) | Kaynak cihaz tarafından hedef cihazın zaman damgasını istemek için gönderilir. |
14 | Tarih Bilgisi Yanıtı (Timestamp Reply) | Kaynak cihaza zaman damgası sağlamak için alıcı cihaz tarafından gönderilir. |
15 | Bilgi İstemi (Information Request) | Kaynak cihaz tarafından hedef cihaz hakkında bilgi istemek için gönderilir. |
16 | Bilgi Yanıtı (Information Reply) | Kaynak cihaza bilgi sağlamak için alıcı cihaz tarafından gönderilir. |
ICMP ve Ağ Güvenliği
ICMP, alıcı göndericiden gelen paketi başarıyla alamadığında bir hata mesajı alır. Bununla birlikte, ağ yönetimi gibi ICMP mesajları için birçok kullanım durumu mevcuttur. Bununla birlikte, bilgisayar korsanları bunu kolayca istismar edebilir ve kötü niyetli saldırıların kaynağı olabilir.
1. Ping of Death
ICMP mesajları hedef sisteme çeşitli ICMP paketleri gönderdiği için hedef sistemin çökmesine neden olan bir Denial of Service (DoS) başlatır. Bilgisayar korsanları, izin verilen maksimum boyuttan daha büyük pingler gönderir. Bu büyük boyutlu paketler daha küçük parçalara ayrılır. Alıcı bunu yeniden birleştirdiğinde, uzunluk maksimum sınırı aşar, bu da daha sonra bir arabellek taşmasına neden olur ve sistemin donmasına neden olur.
2. Smurf Saldırıları
Smurf saldırıları, bilgisayar korsanları hedeflenen kişiye çok sayıda ICMP yankı yanıtı gönderildiği için sistemi aşırı yükleyen çok sayıda ICMP yankı isteği gönderdiğinde gerçekleşir.
3. Flood Saldırıları
ICMP flood saldırıları, bilgisayar korsanı hedef sisteme çok sayıda ICMP mesajı gönderdiğinde gerçekleşir ve bu da sistemin yanıt vermemesine veya çökmesine neden olur.
ICMP Port Olmadan Nasıl Çalışır?
ICMP, verileri bağımsız bir şekilde datagram olarak gönderen bağlantısız bir protokoldür ve başlığı IPv4 detaylarından sonra görünür. Bununla birlikte, cihazların ICMP verilerini nasıl aldığı veya herhangi bir bağlantıdan nasıl haberdar olduğu sorusunu gündeme getiren bir bağlantı noktası numarasının olmadığını da fark edebilirsiniz.
ICMP protokolü OSI modelinin ağ katmanında çalışmak ve bilgi paylaşmak için yönlendiriciler ve ana bilgisayarlar arasında iletişim kurmak üzere tasarlanmıştır. Port numaraları taşıma katmanının bir parçasıdır ve ICMP ne bir TCP ne de bir UDP protokolüdür. Son olarak, ICMP türü ve kod kombinasyonu, cihazların mesajı belirlemesine ve ağ hakkındaki tüm bilgileri almasına yardımcı olur.
Özetle Internet Control Message Protocol, ağ yönetimi ve teşhisi için güçlü bir araçtır. Hataları tespit etme, veri paketlerini yeniden yönlendirme ve ağları teşhis etme yeteneği, onu ağ yöneticileri için paha biçilmez bir varlık haline getirir. Özelliklerini ve yeteneklerini anlayarak, ICMP’yi verimli ağları korumak için daha etkili bir şekilde kullanabiliriz.
Tüm güçlü araçlarda olduğu gibi ICMP’nin yanlış kullanımı da tehlikeli olabilir. En ufak bir yanlış adımın bile geniş kapsamlı sonuçları olabileceğinden, siber saldırıların bu protokol kullanılarak yapılmamasını sağlamak için dikkatli olunmalıdır.
En Çok Sorulan Sorular
1. Neden bir ICMP paketinin kaynak ve hedef port numaraları yoktur?
ICMP, Internet Control Message Protocol, TCP/IP protokol paketinin bir parçasıdır. ICMP internet katmanı ile ilgilidir, oysa bağlantı noktası numaraları yalnızca bir üst katman olan taşıma katmanında bulunur.
2. ICMP protokolü nedir?
ICMP, Internet Control Message Protocol anlamına gelir. İnternet iletimlerine yönetimsel işlevler sağlamak için tasarlanmıştır. Rolüne örnek olarak, bir bağlantı boyunca iki cihaz arasında iletilen durum kontrolleri ve hata mesajları verilebilir.
4. ICMP hangi katmandır?
ICMP, TCP/IP protokol yığınının bir parçasıdır ve internet katmanında bulunur. Bu aslında yığının ikinci katmanıdır. ICMP bir katman 3 protokolü olarak adlandırılır. Bu numara, Open Systems Interconnection (OSI) protokol yığınındaki ağ katmanından gelir. OSI modelindeki ağ katmanı üçüncü katmandır ve TCP/IP yığınındaki internet katmanına eşittir.
4. ICMP IP üzerinden mi çalışır?
Evet, ICMP mesajları bir kaynak IP adresine gönderir. Tüm IP tabanlı ağ cihazları ICMP mesajları gönderme ve alma yeteneğine sahiptir. Bununla birlikte, ICMP kapatılabilir, bir hata veya başarısız yanıt ortaya çıkarılabilir. Bu yaygın taktik, bir ortamın ICMP ile ilgili siber saldırılara maruz kalmasını sınırlamak için kullanılır.
5. Bilgisayar korsanları ICMP kullanabilir mi?
Evet, bilgisayar korsanları ICMP’yi çeşitli siber saldırılar için kullanabilir. Bu siber saldırıların çoğu, güvenlik duvarınızdaki ICMP trafik hacimlerini ve hedeflerini sınırlandırarak önlenebilir. Bazı durumlarda ICMP’yi devre dışı bırakmak uygun olabilir. Birçok içerik dağıtım ağı bu saldırıları otomatik olarak engelleyebilir.
6. ICMP’nin amacı nedir?
Internet Control Message Protocol (ICMP), sorun raporlama ve ağ tanılama için kullanılır. Veriler beklendiği gibi ulaşmadığında, ICMP hata raporlama prosedürünün bir parçası olarak alıcıdan göndericiye mesajlar gönderir. ICMP, verilerin nasıl aktarıldığı hakkında bilgi sunmak için ping ve traceroute tarafından kullanılan mesajları iletmek için tanılama sürecinde kullanılır.
7. ICMP ping ile eş anlamlı mıdır?
Birbirleriyle bağlantılı olsalar da ICMP ve ping aynı şey değildir. ICMP protokolü, mesajların cihazlar arasında nasıl iletileceğini yönetir. Ping, ICMP protokolü tarafından gönderilen yankı isteklerine ve yanıtlarına verilen addır. Dolayısıyla, bir ping ICMP ile oluşturulurken, ICMP değildir.
8. ICMP ping işleminde kullanılır mı?
Evet, ICMP ping işleminde kullanılır. Bir cihaza ping attığınızda, cihaz ICMP Echo Request adı verilen küçük bir mesaj gönderir. Cihaz çalışıyorsa, ağda erişilebilir olduğunu onaylayan bir ICMP Echo Reply ile yanıt verir.
9. ICMP bir TCP veya UDP protokolü müdür?
ICMP ne TCP ne de UDP’dir. Cihazlar tarafından hata mesajları göndermek ve ağ bağlantısını kontrol etmek için kullanılan ayrı bir protokoldür. TCP ve UDP veri aktarımını ele alırken, ICMP ağ tanılama ve internet üzerindeki cihazlar arasındaki iletişime odaklanır.
10. ICMP protokolü ne için kullanılır?
ICMP protokolü birçok nedenle kullanılır; bunlardan bazıları, iki yönlendirici arasında paketlerin izlediği rotayı izlemeye yardımcı olan tracerouting, iki yönlendirici/cihaz arasındaki ağ bağlantısını test etmek için daha fazla yanıt veren ICMP yankı isteklerini kullanan ping, iki cihaz arasındaki ağın maksimum iletim birimini (MTU) tanımlamak için ICMP mesajlarını kullanan Path MTU discovery’dir.
11. ICMP ve TCP/IP arasındaki fark nedir?
TCP/IP, bilgisayarlar arasındaki iletişim için bir protokol paketidir, ICMP ise TCP/IP paketi içinde ağ koşullarıyla ilgili mesajlar göndermek için kullanılan bir protokoldür. ICMP, paketleri alternatif rotalara yönlendirmek veya hataları bildirmek gibi hata kontrolü ve yönetim sorguları için kullanılır. Ping, bağlantı hızlarını, gecikmeyi ve paket kaybını test etmek için ICMP veri paketleri kullanılarak üretilir.
12. ICMP saldırılarını önlemek için hangi güvenlik önlemleri alınabilir?
ICMP saldırılarını önlemek için güvenlik duvarlarının ve diğer güvenlik önlemlerinin yerinde olması önemlidir. Güvenlik duvarları ICMP paketlerini engellemek ve böylece ağı kötü niyetli faaliyetlerden korumak için kullanılabilir. Ağ güvenlik yazılımını düzenli olarak güncellemek ve ağdaki olağandışı etkinlikleri izlemek de önemlidir.