IP parçalama saldırısı - IP fragmentation attack

IP parçalama saldırıları bir çeşit bilgisayar güvenlik saldırısı nasıl olduğuna göre internet protokolü (IP) verilerin iletilmesini ve işlenmesini gerektirir. Özellikle, çağırır IP parçalanması, mesajları bölümlemek için kullanılan bir işlem ( servis veri birimi (SDU); tipik olarak bir paket ) bir ağın bir katmanından birden çok küçüğe yükler alt katmanın içine sığabilen protokol veri birimi (PDU). Her ağ bağlantısının maksimum boyutu mesajlar iletilebilir, denir maksimum iletim birimi (MTU). Bağlantı katmanına eklenen SDU artı meta veriler MTU’yu aşarsa, SDU parçalanmalıdır. IP parçalama saldırıları, bu süreci bir saldırı vektörü.

Bir bölümü TCP / IP paketi adresinde bulunan İnternet Protokolüdür (IP) İnternet Katmanı Bu modelin. IP, paketlerin ağ uç noktaları arasında aktarılmasından sorumludur. IP, temel hata toleransı (yaşam süresi, sağlama toplamı), trafik önceliklendirme (hizmet türü) ve daha büyük paketlerin birden çok küçük pakete (kimlik alanı, parça ofseti) bölünmesi için destek sağlayan bazı özellikler içerir. Daha büyük paketlerin parçalanmasına yönelik destek, yönlendiricilerin, orijinal paket destekleyici veri bağlantısı çerçeveleri için çok büyük olduğunda bir paketi daha küçük paketlere ayırmasına izin veren bir protokol sağlar. IP parçalama istismarları (saldırılar), saldırı vektörü olarak IP içindeki parçalanma protokolünü kullanır.

[Kurose 2013] 'e göre, bir IP parçalama saldırısı türünde "saldırgan, hedef ana bilgisayara hiçbirinin ofseti sıfır olmayan küçük parçalardan oluşan bir akış gönderir. Hedef, veri birimlerini yeniden oluşturmaya çalışırken çökebilir. dejenere paketler. "[1] Diğer bir saldırı, hizalı olmayan uzaklıklarla çakışan parçalar göndermeyi içerir; bu, savunmasız işletim sistemlerini ne yapacağını bilmeden oluşturarak bazılarının çökmesine neden olabilir.[1]

İşlem

IPv4'te parçalanma algoritması.

IP paketleri veri bağlantısı çerçevelerinde kapsüllenir ve bu nedenle bağlantı MTU daha büyük IP'yi etkiler paketler ve MTU boyutuna eşit veya bundan daha küçük parçalara ayrılmaya zorlar.

Bu, birkaç yaklaşımla gerçekleştirilebilir:

  • IP'yi ayarlamak için paket boyut, doğrudan bağlı ortama eşit veya bundan daha küçüktür ve paketlerin diğer tüm parçalanmasını yönlendiricilere delege eder, yani yönlendiriciler mevcut paketin yeniden parçalanması gerekip gerekmediğine karar verir. Bu, birçok işi yönlendiricilere aktarır ve ayrıca paketlerin birkaç IP yönlendiricisi tarafından birbiri ardına bölümlere ayrılmasıyla sonuçlanabilir ve bu da çok tuhaf bir parçalanmaya neden olur.
  • Kaynak ve hedef arasındaki tüm bağlantıları önizlemek ve benzersiz bir yol olduğunu varsayarak bu rotadaki en küçük MTU'yu seçmek için. Bu şekilde, parçalamanın gönderen tarafından, seçilen MTU'dan daha küçük bir paket boyutu kullanılarak yapıldığından ve yolda daha fazla parçalanma olmadığından emin oluruz. Bu çözüm adı verilen Yol MTU Keşfi, bir gönderenin uzun bir İnternet paket, IP düzeyinde parçalama gerçekleştirmek için yönlendiricilere güvenmek yerine. Bu daha verimli ve daha ölçeklenebilir. Bu nedenle, mevcut internette önerilen yöntemdir. Bu yaklaşımla ilgili sorun, her paketin bağımsız olarak yönlendirilmesidir; bunlar tipik olarak aynı yolu takip edebilirler, ancak olmayabilir ve bu nedenle parçalanmayı belirlemeye yönelik bir araştırma paketi, sonraki paketler tarafından alınan yollardan farklı bir yolu izleyebilir.

Üç alan IP başlığı parçalama ve yeniden birleştirme uygulamak için kullanılır. "Tanımlama", "Bayraklar" ve "Parça Uzaklığı" alanları.

IPv4 Üstbilgi Biçimi
OfsetlerSekizli0123
SekizliBit012345678910111213141516171819202122232425262728293031
00SürümIHLDSCPECNToplam uzunluk
432KimlikBayraklarParça Ofseti
864Yaşama zamanıProtokolÜstbilgi Sağlama Toplamı
1296Kaynak IP Adresi
16128Hedef IP Adresi
20160Seçenekler (ESK> 5 ise)
24192
28224
32256

Bayraklar:

Paketin parçalanmış bir paketin parçası olup olmadığını söyleyen 3 bitlik bir alan veri çerçevesi ya da değil.
Bit 0: ayrılmış, sıfır olmalıdır (paket, RFC 3514 )
Bit 1: (AF) 0 = Parçalanabilir, 1 = Parçalanma.
Bit 2: (AF) 0 = Son Parça, 1 = Daha Fazla Parça.
Bit0123456789101112131415
Alan0DFMFParça Ofseti

Parça Uzaklığı, parçanın orijinal paket içindeki 8 baytlık birimlerle ölçülen konumunu belirtir.

Buna göre, sonuncusu hariç her parça, 8 baytlık veri katları içermelidir. Fragment Offset'in 8192 (2 ^ 13) birimi tutabileceği açıktır, ancak paket 8192 * 8 = 65.536 bayt veri olamaz çünkü "Toplam Uzunluk" alanı IP başlık, başlık ve veriler dahil toplam boyutu kaydeder. Bir IP başlığı en az 20 bayt uzunluğundadır, bu nedenle "Fragment Offset" için maksimum değer 8189 ile sınırlıdır ve bu, son fragmanda 3 bayta yer bırakır.

Bir IP internet bağlantısız olabileceğinden, bir paket hedefte bir başkasından gelenlerle karıştırılabilir. "Tanımlama alanı", belirli bir içeriğin parçalarını benzersiz şekilde tanımlar. paket.

Kaynak sistem, her birinde "Kimlik" alanını ayarlar. paket herkes için benzersiz bir değere paketler kullanım ömrü boyunca aynı kaynak IP adresini, hedef IP adresini ve "Protokol" değerlerini kullanan paket İnternette. Bu şekilde hedef, hangi parçaların benzersiz bir bölgeye ait olduğunu ayırt edebilir. paket ve son parça alınana kadar hepsini tamponlayın. Son parça, "Daha Fazla Parça" bitini 0'a ayarlar ve bu, alıcı istasyona, tüm parçalar alınmışsa verileri yeniden birleştirmeye başlamasını söyler.

Aşağıdaki gerçek hayattan bir parçalanma örneğidir:

Aşağıdakiler kullanılarak elde edildi Ethereal yakalamak için protokol analizörü ICMP yankı isteği paketler. Bunu simüle etmek için bir terminal açın ve ping ip_dest -n 1 -l 65000 yazın.

Sonuçlar aşağıdaki gibidir:

     No. Zaman Kaynağı Hedef Protokol Bilgisi 1 0.000000 87.247.163.96 66.94.234.13 ICMP Yankı (ping) isteği 2 0.000000 87.247.163.96 66.94.234.13 IP Parçalı IP protokolü (proto = ICMP 0x01, kapalı = 1480) 3 0.002929 87.247.163.96 66.94. 234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 2960) 4 6.111328 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 4440) 5 6.123046 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü ( proto = ICMP 0x01, off = 5920) 6 6.130859 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 7400) 7 6.170898 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 8880) 8 6.214843 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 10360) 9 6.239257 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 11840) 10 6.287109 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 13320) 11 6.302734 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 14800) 12 6.327148 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 16280) 13 6.371093 87.247.163.96 66.94 .234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 17760) 14 6.395507 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 19240) 15 6.434570 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 20720) 16 6.455078 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 22200 ) 17 6.531250 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 23680) 18 6.550781 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 25160) 19 6.575195 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 26640) 20 6.615234 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 28120) 21 6.634765 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokol (proto = ICMP 0x01, off = 29600) 22 6.659179 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 31080) 23 6.682617 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01 , off = 32560) 24 6.699218 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 34040) 25 6.743164 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 35520) 26 6.766601 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 37000) 27 6.783203 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 38480) 28 6.806640 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 39960) 29 6.831054 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (protokol = ICMP 0x01, off = 41440) 30 6.850586 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 42920) 31 6.899414 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 44400) 32 6.915039 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 45880) 33 6.939453 87.247.163.9 6 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 47360) 34 6.958984 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 48840) 35 6.983398 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 50320) 36 7.023437 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 51800) 37 7.046875 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 53280) 38 7.067382 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 54760) 39 7.090820 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 56240) 40 7.130859 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 57720) 41 7.151367 87.247.163.96 66.94. 234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 59200) 42 7.174804 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 60680) 43 7.199218 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü ( proto = ICMP 0x01, off = 62160) 44 7.214843 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, off = 63640) 45 7.258789 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 65120)

İlk paket ayrıntıları:

     No. Zaman Kaynağı Hedef Protokol Bilgisi 1 0.000000 87.247.163.96 66.94.234.13 ICMP Yankı (ping) isteği

Çerçeve 1 (kabloda 1514 bayt, yakalanan 1514 bayt) Ethernet II, Src: OmronTat_00: 00: 00 (00: 00: 0a: 00: 00: 00), Dst: 40: 0f: 20: 00: 0c: 00 ( 40: 0f: 20: 00: 0c: 00) İnternet Protokolü, Src: 87.247.163.96 (87.247.163.96), Dst: 66.94.234.13 (66.94.234.13) İnternet Kontrol Mesajı Protokolü

   Tür: 8 (Yankı (ping) isteği) Kod: 0 Sağlama toplamı: 0x6b7d Tanımlayıcı: 0x0600 Sıra numarası: 0x0200 Veri (1472 bayt)

İkinci paket ayrıntıları:

    No. Zaman Kaynağı Hedef Protokol Bilgisi 2 0.000000 87.247.163.96 66.94.234.13 IP Parçalanmış IP protokolü (proto = ICMP 0x01, kapalı = 1480)

Çerçeve 2 (kabloda 1514 bayt, yakalanan 1514 bayt) Ethernet II, Src: OmronTat_00: 00: 00 (00: 00: 0a: 00: 00: 00), Dst: 40: 0f: 20: 00: 0c: 00 ( 40: 0f: 20: 00: 0c: 00) İnternet Protokolü, Src: 87.247.163.96 (87.247.163.96), Dst: 66.94.234.13 (66.94.234.13) Veri (1480 bayt)

Yalnızca ilk parçanın ICMP başlığını içerdiğini ve kalan tüm parçaların ICMP başlığı olmadan oluşturulduğunu unutmayın.

Burada iki önemli nokta:

  • Ethernet gibi bazı veri bağlantısı protokollerinde, yalnızca ilk parça tam üst katman başlığını içerir, bu da diğer parçaların başları kesilmiş gibi göründüğü anlamına gelir. paketler.
  • Tüm parçalar kendi IP başlıklarını içerdiğinden ağ üzerinden ek yük uygulanır. Ek yük = (parça_sayısı - 1) * (ip_header_len);

İstismarlar

IP parçası çakışıyor
IP parçası çakışıyor istismar etmek aynı IP içinde iki parça bulunduğunda oluşur paket içinde konumlandırmada birbirleriyle örtüştüğünü gösteren ofsetlere sahiptir. paket. Bu, B parçasının A parçasının tamamen üzerine yazıldığı veya B parçasının kısmen A parçasının üzerine yazıldığı anlamına gelebilir. Bazı işletim sistemleri bu şekilde örtüşen parçaları düzgün şekilde işlemez ve istisnalar atabilir veya başka istenmeyen şekillerde davranabilir. örtüşen parçaların alınması üzerine. Bu temeldir gözyaşı saldırısı. Üst üste binen parçalar, Saldırı Tespit Sistemlerini atlamak amacıyla da kullanılabilir. Bu kötüye kullanımda, bir saldırının bir kısmı ek rastgele verilerle birlikte parçalar halinde gönderilir; Gelecekteki fragmanlar, saldırının geri kalanıyla rastgele verilerin üzerine yazabilir. Tamamlandıysa paket IDS'de düzgün şekilde yeniden birleştirilmezse, saldırı tespit edilmez.
IP parçalanma tamponu dolu
IP parçalama arabelleğinden tam yararlanma, korumalı ağda aşırı miktarda tamamlanmamış parçalanmış trafik algılandığında gerçekleşir. Bu, aşırı sayıda tamamlanmamış parçalanmış bölümden kaynaklanıyor olabilir paketler, bireysel için çok sayıda parça paketler veya eksik miktarın bir kombinasyonu paketler ve her birindeki parçaların boyutu / sayısı paket. Bu tür bir trafik, büyük olasılıkla güvenlik önlemlerini atlama girişimidir veya Saldırı Tespit Sistemleri saldırı faaliyetinin kasıtlı olarak parçalanmasıyla.
IP parçası taşması
IP Fragment Overrun istismarı, yeniden birleştirilmiş bir parçalanmış paket beyan edilen IP veri uzunluğunu veya maksimum değeri aşıyor paket uzunluk. Tanım olarak, hiçbir IP paketi 65.535 bayttan büyük olmamalıdır. Bu büyüklükleri işlemeye çalışan sistemler paketler çökebilir ve hizmet reddi girişiminin göstergesi olabilir.
IP parçası çok fazla paket içeriyor
"Çok Fazla Paket" istismarı, aşırı sayıda tamamlanmamış parçalanmış paket ağda tespit edildi. Bu genellikle ya bir hizmet reddi saldırısı ya da güvenlik önlemlerini atlatma girişimidir. "Too Many Packet", "Incomplete Packet" ve "Fragment Too Small" örneklerine Rose Attack verilebilir.[2]
IP parçası eksik paket
Bu istismar, bir paket eksik veriler nedeniyle tam olarak yeniden birleştirilemez. Bu, bir hizmet reddi saldırısını veya paket filtresi güvenlik ilkelerini bozma girişimini gösterebilir.
IP Parçası Çok Küçük
Bir IP parçası çok küçükse bu, parçanın kasıtlı olarak üretildiğini gösterir. 400 bayttan daha küçük olan son parça dışındaki herhangi bir parça çok küçük kabul edilebilir. Küçük parçalar, hizmet reddi saldırılarında veya güvenlik önlemlerini veya algılamayı atlatma girişiminde kullanılabilir.

Kaçınma için parçalanma

Gibi ağ altyapı ekipmanı yönlendiriciler, yük dengeleyiciler, güvenlik duvarları ve IDS parçalanmış paketler için tutarsız görünürlüğe sahip. Örneğin, bir cihaz ilk parçayı titiz bir inceleme ve denetime tabi tutabilir, ancak tüm ek parçaların kontrolsüz geçmesine izin verebilir. Bazı saldırılar, suçlayıcı yük verilerini parçalara yerleştirerek tespit edilmekten kaçınmak için bu gerçeği kullanabilir. İçinde çalışan cihazlar "tam" proxy modu genellikle bu hileye yatkın değildir.

Referanslar

  1. ^ a b Kurose, James F. (2013). Bilgisayar Ağları: Yukarıdan Aşağıya Bir Yaklaşım. Ross, Keith W., 1956- (6. baskı). Boston: Pearson. s. 338. ISBN  9780132856201. OCLC  769141382.
  2. ^ Hollis, Ken. "Gül Parçalanma Saldırısı Açıklaması". Arşivlenen orijinal 2012-02-24 tarihinde. Alındı 2013-11-25.

Dış bağlantılar