Útok fragmentace IP - IP fragmentation attack

Útoky fragmentace IP jsou jakési počítačový bezpečnostní útok na základě toho, jak internetový protokol (IP) vyžaduje přenos a zpracování dat. Konkrétně vyvolává Fragmentace IP, proces používaný k rozdělení zpráv ( servisní datová jednotka (SDU); typicky a balíček ) z jedné vrstvy sítě do několika menších užitečné zatížení které se vejdou do spodní vrstvy datová jednotka protokolu (PDU). Každý síťový odkaz má maximální velikost zprávy které mohou být přenášeny, nazývané maximální přenosová jednotka (MTU). Pokud metadata SDU plus přidaná ve vrstvě odkazu překročí MTU, musí být SDU fragmentována. Útoky fragmentace IP využívají tento proces jako vektor útoku.

Část Sada TCP / IP je internetový protokol (IP), který se nachází na Internetová vrstva tohoto modelu. IP je zodpovědný za přenos paketů mezi koncovými body sítě. IP obsahuje některé funkce, které poskytují základní měřítka odolnosti proti chybám (doba životnosti, kontrolní součet), prioritizaci provozu (typ služby) a podporu fragmentace větších paketů na několik menších paketů (pole ID, offset fragmentu). Podpora fragmentace větších paketů poskytuje protokol umožňující směrovačům fragmentovat paket na menší pakety, když je původní paket příliš velký pro podpůrné rámce datových linek. Využití fragmentace IP (útoky) používá fragmentační protokol v IP jako vektor útoku.

Podle [Kurose 2013], v jednom typu útoku fragmentace IP „útočník pošle cílovému hostiteli proud malých fragmentů, z nichž žádný nemá offset nula. Cíl se může zhroutit, když se pokusí znovu sestavit datagramy z zdegenerované pakety. “[1] Další útok zahrnuje odesílání překrývajících se fragmentů s nevyrovnanými posuny, což může způsobit, že zranitelné operační systémy nebudou vědět, co mají dělat, což způsobí selhání některých.[1]

Proces

Algoritmus fragmentace v IPv4.

Pakety IP jsou zapouzdřeny v rámcích datových linek, a proto odkaz MTU ovlivňuje větší IP balíčky a nutí je rozdělit na kousky stejné nebo menší než velikost MTU.

Toho lze dosáhnout několika přístupy:

  • Chcete-li nastavit IP balíček velikost stejná nebo menší než přímo připojené médium a delegovat veškerou další fragmentaci paketů na směrovače, což znamená, že směrovače rozhodují, zda má být aktuální paket znovu fragmentován. To přenese spoustu práce na směrovače a může to také vést k segmentaci paketů několika IP směrovači jeden po druhém, což má za následek velmi zvláštní fragmentaci.
  • Chcete-li zobrazit náhled všech odkazů mezi zdrojem a cílem a vybrat nejmenší MTU na této trase, za předpokladu, že existuje jedinečná trasa. Tímto způsobem se ujistíme, že fragmentaci provádí odesílatel pomocí velikosti paketu menší než vybraná MTU a na cestě není žádná další fragmentace. Toto řešení, tzv Cesta MTU Discovery, umožňuje odesílateli dlouhou fragmentaci / segmentaci Internet balíček, spíše než se spoléhat na směrovače při provádění fragmentace na úrovni IP. To je efektivnější a škálovatelnější. Jedná se tedy o doporučenou metodu v současném internetu. Problém tohoto přístupu spočívá v tom, že každý paket je směrován samostatně; oni mohou dobře typicky následovat stejnou cestu, ale oni nemusí, a tak paket sondy k určení fragmentace může následovat cestu odlišnou od cest přijatých pozdějšími pakety.

Tři pole v IP hlavička se používají k implementaci fragmentace a opětovného sestavení. Pole „Identifikace“, „Příznaky“ a „Posun fragmentu“.

Formát záhlaví IPv4
OfsetyOktet0123
OktetBit012345678910111213141516171819202122232425262728293031
00VerzeMHPDSCPECNCelková délka
432IdentifikaceVlajkyFragment Offset
864Čas žítProtokolKontrolní součet záhlaví
1296Zdrojová IP adresa
16128Cílová adresa IP
20160Možnosti (pokud IHL> 5)
24192
28224
32256

Vlajky:

3bitové pole, které říká, zda je paket součástí fragmentovaného datový rámec nebo ne.
Bit 0: rezervováno, musí být nula (pokud se paket nedrží RFC 3514 )
Bit 1: (AF) 0 = May Fragment, 1 = Don't Fragment.
Bit 2: (AF) 0 = poslední fragment, 1 = více fragmentů.
Bit0123456789101112131415
Pole0DFMFFragment Offset

Fragment Offset určuje polohu fragmentu v původním paketu, měřeno v 8bajtových jednotkách.

Proto každý fragment kromě posledního musí obsahovat násobek 8 bajtů dat. Je zřejmé, že Fragment Offset pojme 8192 (2 ^ 13) jednotek, ale balíček nemůže mít 8192 * 8 = 65 536 bajtů dat, protože pole "Celková délka" v IP záhlaví zaznamenává celkovou velikost včetně záhlaví a dat. Záhlaví IP je alespoň 20 bajtů dlouhé, takže maximální hodnota pro „Fragment Offset“ je omezena na 8189, což ponechává prostor pro 3 bajty v posledním fragmentu.

Protože IP internet může být bez připojení, fragmenty z jednoho balíček mohou být prokládány s těmi z jiného v cílovém místě. „Identifikační pole“ jednoznačně identifikuje fragmenty konkrétního balíček.

Zdrojový systém nastavuje v každém poli pole „Identifikace“ balíček na jedinečnou hodnotu pro všechny balíčky které používají stejnou zdrojovou IP adresu, cílovou IP adresu a hodnoty "protokolu" po celou dobu životnosti balíček na internetu. Tímto způsobem může cíl rozlišit, které příchozí fragmenty patří k jedinečnému balíček a všechny je ukládejte do vyrovnávací paměti, dokud neobdržíte poslední fragment. Poslední fragment nastavuje bit „Více fragmentů“ na 0 a to říká přijímací stanici, aby začala znovu sestavovat data, pokud byly přijaty všechny fragmenty.

Následuje příklad fragmentace v reálném životě:

S použitím Éterický analyzátor protokolu k zachycení ICMP požadavek na ozvěnu balíčky. Chcete-li to simulovat, otevřete terminál a zadejte příkaz ping ip_dest -n 1 -l 65000.

Výsledky jsou následující:

     Č. Čas Zdroj Informace o cílovém protokolu 1 0,000000 87,247,163,96 66,94,234,13 ICMP Echo (ping) požadavek 2 0,000000 87,247,163,96 66,94,234,13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 1480) 3 0,002929 87,247,163,96 66,94. 234.13 Protokol IP Fragmented IP (proto = ICMP 0x01, off = 2960) 4 6.111328 87.247.163.96 66.94.234.13 Protokol IP Fragmented IP (proto = ICMP 0x01, off = 4440) 5 6.123046 87.247.163.96 66.94.234.13 Protokol IP Fragmented IP ( proto = ICMP 0x01, off = 5920) 6 6.130859 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, off = 7400) 7 6.170898 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, off = 8880) 8 6.214843 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, off = 10360) 9 6.239257 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, off = 11840) 10 6.287109 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, off = 13320) 11 6.302734 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 14800) 12 6.327148 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 16280) 13 6.371093 87.247.163.96 66,94 .234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 17760) 14 6.395507 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 19240) 15 6.434570 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 20720) 16 6.455078 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 22200 ) 17 6.531250 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 23680) 18 6.550781 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 25160) 19 6.575195 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 26640) 20 6.615234 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 28120) 21 6.634765 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 29600) 22 6.659179 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 31080) 23 6.682617 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01 , off = 32560) 24 6.699218 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, off = 34040) 25 6,743164 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 35520) 26 6.766601 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 37000) 27 6.783203 87.247.163.96 66.94.234.13 Fragmentovaný protokol IP IP (proto = ICMP 0x01, vypnuto = 38480) 28 6,806640 87,247,163,96 66,94 234,13 IP Fragmentovaný protokol IP (proto = ICMP 0x01, vypnutý = 39960) 29 6,831054 87,247,163,96 66,94,234,13 IP fragmentovaný protokol IP (proto = ICMP 0x01, vypnuto = 41440) 30 6,850586 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 42920) 31 6.899414 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 44400) 32 6.915039 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 45880) 33 6.939453 87.247.163.9 6 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 47360) 34 6.958984 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 48840) 35 6.983398 87.247.163.96 66.94.234.13 IP Fragmentovaný Protokol IP (proto = ICMP 0x01, vypnuto = 50320) 36 7,023437 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 51800) 37 7.046875 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 53280) 38 7.067382 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, off = 54760) 39 7,090820 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 56240) 40 7.130859 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 57720) 41 7.151367 87.247.163.96 66.94. 234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 59200) 42 7.174804 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 60680) 43 7.199218 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol ( proto = ICMP 0x01, vypnuto = 62160) 44 7.214843 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 63640) 45 7.258789 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnutý = 65120)

Podrobnosti prvního balíčku:

     No.Time Source Destination Protocol Info 1 0,000000 87,247,163,96 66.94.234.13 ICMP Echo (ping) požadavek

Rámec 1 (1514 bajtů na vodiči, 1514 bajtů zachyceno) 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) Internet Protocol, Src: 87.247.163.96 (87.247.163.96), Dst: 66.94.234.13 (66.94.234.13) Internet Control Message Protocol

   Typ: 8 (požadavek na odezvu (ping)) Kód: 0 Kontrolní součet: 0x6b7d Identifikátor: 0x0600 Pořadové číslo: 0x0200 Data (1472 bajtů)

Podrobnosti o druhém paketu:

    Č. Čas Zdroj Informace o cílovém protokolu 2 0,000000 87.247.163.96 66.94.234.13 IP Fragmentovaný IP protokol (proto = ICMP 0x01, vypnuto = 1480)

Rám 2 (1514 bajtů na vodiči, 1514 bajtů zachyceno) 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) Internet Protocol, Src: 87.247.163.96 (87.247.163.96), Dst: 66.94.234.13 (66.94.234.13) Data (1480 bytů)

Všimněte si, že pouze první fragment obsahuje záhlaví ICMP a všechny zbývající fragmenty jsou generovány bez záhlaví ICMP.

Zde jsou dva důležité body:

  • V některých protokolech datových linek, jako je Ethernet, obsahuje pouze první fragment úplnou záhlaví horní vrstvy, což znamená, že ostatní fragmenty vypadají jako sťaté balíčky.
  • Další režie uložená po síti, protože všechny fragmenty obsahují vlastní záhlaví IP. Další režie = (number_of_fragments - 1) * (ip_header_len);

Vykořisťuje

Fragment IP se překrýval
Fragment IP se překrýval využívat nastane, když dva fragmenty obsažené ve stejné IP balíček mít posuny, které naznačují, že se navzájem překrývají při umisťování v rámci balíček. To by mohlo znamenat, že buď fragment A je zcela přepsán fragmentem B, nebo že fragment A je částečně přepsán fragmentem B. Některé operační systémy nesprávně zpracovávají fragmenty, které se tímto způsobem překrývají, a mohou vyvolávat výjimky nebo se chovat jinými nežádoucími způsoby po obdržení překrývajících se fragmentů. To je základ pro slzavý útok. Překrývající se fragmenty lze také použít ve snaze obejít systémy detekce narušení. V tomto zneužití je část útoku odeslána ve fragmentech spolu s dalšími náhodnými daty; budoucí fragmenty mohou přepsat náhodná data zbytkem útoku. Pokud je dokončeno balíček není na IDS správně znovu sestaven, útok bude nezjištěn.
Vyrovnávací paměť fragmentace IP je plná
K úplnému zneužití vyrovnávací paměti fragmentace IP dojde, když je v chráněné síti zjištěno nadměrné množství neúplného fragmentovaného provozu. Může to být způsobeno nadměrným počtem neúplných fragmentů balíčky, velké množství fragmentů pro jednotlivce balíčky nebo kombinace množství neúplných balíčky a velikost / počet fragmentů v každém z nich balíček. Tento typ provozu je s největší pravděpodobností pokusem obejít bezpečnostní opatření nebo Systémy detekce narušení úmyslnou fragmentací útočné aktivity.
Překročení IP fragmentu
Využití IP Fragment Overrun je, když je znovu sestavený fragmentovaný balíček překračuje deklarovanou délku dat IP nebo maximum balíček délka. Podle definice by žádný paket IP neměl být větší než 65 535 bajtů. Systémy, které se snaží tyto velké zpracovat balíčky může havarovat a může svědčit o pokusu o odmítnutí služby.
Fragment IP příliš mnoho paketů
Využití „Příliš mnoho paketů“ je identifikováno nadměrným počtem neúplných fragmentů balíček detekován v síti. Obvykle se jedná buď o útok odmítnutí služby, nebo o pokus obejít bezpečnostní opatření. Příkladem „Too Many Packets“, „Incomplete Packet“ a „Fragment Too Small“ je Rose Attack.[2]
Neúplný paket fragmentu IP
K tomuto zneužití dochází, když a balíček nelze kompletně znovu sestavit kvůli chybějícím datům. To může znamenat útok typu odmítnutí služby nebo pokus porazit zásady zabezpečení filtru paketů.
Fragment IP je příliš malý
Pokud je fragment IP příliš malý, znamená to, že fragment je pravděpodobně záměrně vytvořen. Jakýkoli fragment kromě konečného fragmentu, který má méně než 400 bajtů, lze považovat za příliš malý. Malé fragmenty mohou být použity při odmítnutí služby nebo při pokusu obejít bezpečnostní opatření nebo detekci.

Fragmentace za únik

Zařízení síťové infrastruktury, jako je směrovače, vyvažovače zátěže, firewally a IDS mít nekonzistentní viditelnost do fragmentovaných paketů. Například zařízení může podrobit počáteční fragment přísné kontrole a auditu, ale může umožnit průchod všech dalších fragmentů nekontrolovaným způsobem. Některé útoky mohou tuto skutečnost využít k vyhnutí se detekci umístěním inkriminovaných dat užitečného zatížení do fragmentů. Zařízení pracující v "plný" režim proxy obecně nejsou náchylní k tomuto lsti.

Reference

  1. ^ A b Kurose, James F. (2013). Počítačové sítě: přístup shora dolů. Ross, Keith W., 1956- (6. vydání). Boston: Pearson. str. 338. ISBN  9780132856201. OCLC  769141382.
  2. ^ Hollis, Ken. „Fragmentační útok růže vysvětlen“. Archivovány od originál dne 2012-02-24. Citováno 2013-11-25.

externí odkazy