ICMP tüneli
Bir ICMP tüneli [1], 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 7925 Eylül 2005 tarihinde Wayback Machine sitesinde arşivlendi., 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.[2]
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.[3]
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
Kaynakça
- "Ping Tunnel: For those times when everything else is blocked". 6 Şubat 2005 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Mart 2020.
- http://protocol.korea.ac.kr/publication/Covert%20Channel%20Detection%20in%20the%20ICMP%20Payload%20Using%20Support%20Vector%20Machine.pdf%5Bölü/kırık+bağlantı%5D
- "Arşivlenmiş kopya". 19 Ekim 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Mart 2020.
Dış bağlantılar
- RFC 792, Internet Control Message Protocol
- itun Simple IP over ICMP tunnel
- Hans18 Ağustos 2009 tarihinde Wayback Machine sitesinde arşivlendi. ICMP tunnel for Linux (server and client) and BSD MacOSX (client only)
- ICMP-Shell, a telnet-like protocol using only ICMP
- PingTunnel6 Şubat 2005 tarihinde Wayback Machine sitesinde arşivlendi. 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 code28 Haziran 2012 tarihinde Wayback Machine sitesinde arşivlendi.
- icmptunnel IP over ICMP tunnel by Dhaval Kapil