ICMP tüneli

Bir ICMP tüneli , ICMP yankı istekleri ve yanıt paketlerini kullanarak iki uzak bilgisayar (istemci ve vekil) arasında gizli bir bağlantı kurar. Bu tekniğin bir örneği ping istekleri ve yanıtları üzerinden tüm TCP trafiğini tünellemektir.

Teknik detaylar 
ICMP tüneli uzaktaki bir bilgisayara gönderilen bir yankı paketinin içerisine rastgele veri enjekte ederek çalışır. Uzaktaki bilgisayar başka bir ICMP paketine cevap enjekte edip geri göndererek aynı şekilde yanıt verir. İstemci tüm iletişiminde  ICMP yankı istek paketlerini kullanarak gerçekleştirirken vekil (proxy) yankı yanıt paketlerini kullanır.

Teoride, vekilin yankı istek paketlerini kullanması mümkündür (bu uygulamayı çok daha kolay hale getirir) ancak bu paketlerin istemciye iletilmesi gerekmez çünkü istemci çevrilmiş bir adresin (NAT) arkasında olabilir. Bu çift yönlü veri akışı sıradan bir seri hat ile soyutlanabilir.

ICMP paketlerinin yapısını tanımlayan RFC 792, herhangi bir tip 0 (yankı yanıtı) veya 8 (yankı mesajı) ICMP paketleri için rastgele bir veri uzunluğuna izin verdiği için ICMP tünellemesi mümkündür.

Kullanımları 
ICMP tüneli, gerçek trafiğin gizlenmesi yoluyla güvenlik duvarı kurallarını atlamak için kullanılabilir. ICMP tünelleme yazılımının uygulanmasına bağlı olarak bu tip bağlantılar, iki bilgisayar arasında şifreli bir iletişim kanalı olarak da sınıflandırılabilir. Uygun derin paket inceleme veya iz kayıtlarının incelemesi olmadan ağ yöneticileri kendi ağları üzerinde bu tip trafiği tespit edemeyecektir.

Hafifletme 
Bu tür tünellemeyi önlemenin bir yolu, insanların genellikle önemsemediği bazı ağ işlevlerini kaybetme pahasına ICMP trafiğini engellemektir (örneğin, bir eşin çevrimdışı olduğunu neredeyse hemen belirlemek yerine onlarca saniye sürebilmesi gibi). Bu tür saldırıyı azaltmanın başka bir yöntemi, güvenlik duvarlarından yalnızca sabit boyutlu ICMP paketlerine izin vermektir. Bu işlem bu tür davranışları engelleyebilir veya ortadan kaldırabilir.

ICMP tünelleri bazen LAN ile dış dünya arasındaki trafiği engelleyen güvenlik duvarlarını atlatmak için kullanılır. Kullanıcının kullanım için ödeme yapmasını gerektiren ticari wifi hizmetleri veya kullanıcının ilk önce bir web portalında oturum açmasını gerektiren bir kütüphane örnek verilebilir. Ağ yöneticisi yalnızca TCP ve UDP gibi normal taşıma protokollerini engellemenin yeterli olduğunu hatalı şekilde varsayar ve ICMP gibi çekirdek protokolleri engellemezse, sonrasında ağ erişimi için yetki olmamasına rağmen İnternet'e erişmek için bir ICMP tünelinin kullanılması bazen mümkün olur. Kullanıcıların ICMP paketlerini (belki IEEE 802.1X kullanarak diğer tüm paket türleri) harici eşlerle değiştirmesine izin vermeyen şifreleme kuralları ve her bir kullanıcı kuralları yetkilendirmeden önce bu problemi çözer.

Ayrıca bakınız 

 ICMPv6 
 Smurf attack

Kaynakça

Dış bağlantılar 

 RFC 792, Internet Control Message Protocol 
 itun  Simple IP over ICMP tunnel 
 Hans ICMP tunnel for Linux (server and client) and BSD MacOSX (client only) 
 ICMP-Shell , a telnet-like protocol using only ICMP 
 PingTunnel Tunnel TCP over ICMP 
 ICMP Crafting  by Stuart Thomas 
 Using the ICMP tunneling tool Ping Tunnel  
 Project Loki  Article on ping tunneling in Phrack 
 ICMP tunnel with C# source code 
 icmptunnel  IP over ICMP tunnel by Dhaval Kapil

Tünel protokolleri