Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia Tuesday TopDrive KupDnes Navrcholu Bomba NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Směrovací hlavička v IPv6 a její problémy

Žhavým tématem ve světě IPv6 jsou dnes problémy rozšiřující hlavičky směrování. Přestože se ví poměrně dlouho o jejích bezpečnostních rizicích, rozpoutala se o nich v současnosti živá debata, místy až hysterie. Kdo by odolal a nepřidal se...

Všechno rozpoutal příspěvek IPv6 Routing Header Security, který pánové Philippe Biondi a Arnaud Ebalard přednesli na konferenci CanSecWest 2007. Kromě starých známých potíží typu dosahování běžně nedosažitelných strojů v něm upozornili na zajímavý DoS útok, který Geoff Huston trefně pojmenoval IPv6 ping pong.

Směrovací hlavička

Začněme stručným představením, co je inkriminovaná hlavička zač a jak funguje. Jedná se o rozšiřující hlavičku Routing Header (RH), kterou k datagramu může přibalit jeho odesilatel. Umožňuje stanovit určité body (resp. jejich IPv6 adresy), jimiž má datagram během své cesty sítí projít. Existuje ve dvou typech. Současná debata se točí kolem staršího typu 0. Kromě něj existuje ještě typ 2, používaný v mobilním IPv6. Ten však může obsahovat jen jedinou adresu, což podstatně omezuje možnosti zneužití.

Směrovací hlavička typu 0 v sobě má seznam adres a počítadlo určující, kolik z nich je ještě třeba projít. Během cesty sítí se jednotlivé adresy postupně přesouvají mezi směrovací hlavičkou a položkou adresa příjemce ve standardní hlavičce datagramu. Nejlépe vše osvětlí následující obrázek, kdy odesilatel O posílá datagram cíli C a požaduje, aby postupně prošel body X, Y a Z.

Schéma směrová hlavička

Odesilatel vloží do datagramu jako adresáta první průchozí bod (X), adresy zbývajících dvou průchozích bodů a vlastního cíle pak uloží do hlavičky směrování. Zároveň v ní uvede, že zbývá projít 3 adresy. Když datagram dorazí do bodu s adresou X, dojde ke změně hlaviček. Jeho adresa si vymění místo s adresou následujícího průchozího bodu a sníží se počet adres, jimiž má ještě projít.

Analogická změna se provede kdykoli, kdy datagram dorazí aktuálnímu adresátovi a počítadlo ve směrovací hlavičce je nenulové. Teprve když nezbývá už žádná další průchozí adresa, bude datagram IP vrstvou přijat a odevzdán k dalšímu zpracování. Příjemce se zároveň ze směrovací hlavičky dozví, kterými body datagram prošel.

Jednou z motivací k jejímu vzniku byla snaha o lepší možnosti pro testy směrování. Standardní ping umožňuje testovat jen vzájemnou dosažitelnost mezi zdrojovým počítačem a zadaným cílem. Při použití směrovací hlavičky můžete ověřit konektivitu mezi libovolnými body, a to navíc obousměrně.

Její problémy

Některá rizika směrovací hlavičky jsou poměrně zjevná a na jejich existenci je upozorňováno řadu let (viz Pekka Savola a jeho text). Patří sem především schopnost procházet firewally, NATy a dalšími body, které jinak mohou bránit v přístupu ke koncovým počítačům. Lze poslat datagram neveřejně adresovanému počítači za NATem jednoduše tak, že uvedete adresu NATu jako průchozí bod. Také firewall datagram propustí, pokud bude jako na průchozí bod směřovat na některý z veřejně přístupných strojů v chráněné síti.

Možnost pro zneužití otevírají některé nároky RFC 2460 definujícího formát IPv6 datagramu. Mimo jiné se v něm požaduje, aby směrovací hlavičky podporovaly „IPv6 uzly“ (tedy nejen směrovače, ale i koncové stroje). DoS útokům pak hraje do noty, že IPv6 uzly musí akceptovat a snažit se zpracovat rozšiřující hlavičky v libovolném pořadí a množství. Útočník tedy může do datagramu vložit několik směrovacích hlaviček a doslova jej napěchovat spoustou průchozích adres.

Biondi s Ebalardem ve svém příspěvku předvedli, jak datagram se směrovacími hlavičkami střídajícími dvojici průchozích adres A, B, A, B, A, B… je po lince (či linkách) mezi nimi předáván sem a tam a setrvá na ní báječně dlouho, než se dopracuje na konec seznamu. Když se posílá setrvalý proud takových datagramů, dochází na této trase vlastně k jeho znásobení (předchozí datagramy ještě poletují za strany na stranu a přicházejí další a další), takže je útočník schopen vytvořit výrazně větší datový tok, než je kapacita jeho připojení.

A možné řešení

Dlužno poznamenat, že rozšiřující směrovací hlavička v IPv6 nepředstavuje zásadně nový mechanismus. IPv4 umožňuje do hlavičky přidat volbu Source Routing s podobným účinkem, i když omezenější a v detailech odlišnou. Jak to, že nezpůsobuje problémy i ve starším protokolu? Především proto, že je většinou zakázána.

Nabízí se použít stejný přístup i pro IPv6 a tuto vlastnost, označovanou za „vítězství zbytečných funkcí nad zdravým rozumem“, jednoduše zakázat. U směrovačů Cisco poslouží jednoduchý příkaz

UX konference
       

no ipv6 source-route

Pro Linux lze použít ip6tables s volbou -m rt --rt-type 0 a vyhovující pakety zahazovat. Merike Kaeo uvádí ve své prezentaci Problems with Route Header Type 0 konkrétní příkazy i doporučení pro FreeBSD a OpenBSD.

Dění kolem směrovací hlavičky je bouří ve sklenici vody. Je ale dobře, že vypukla dřív, než by případné zneužití způsobilo vážnější problémy.

Anketa

Považujete "IPv6 ping pong" útok za nebezpečný?

       

Pavel Satrapa

Autor dělá nepořádek v příslovích, protože sítě nejen dělá, ale i učí a dokonce také řídí. Vede katedru informačních technologií na Technické univerzitě v Liberci. Píše knihy.

Školení Twitteru s Danem Dočekalem

DW - Školení PPC
  • Jak komunikovat na Twitteru.
  • Jak začlenit Twitter do marketingového mixu vaší firmy.
  • Jak využít Twitter jako zdroj informací pro rozhodování.
  • Nabízíme i školení Facebooku a Google+.

Detailní informace o školení Twitteru »

Přehled názorů

V linuxu netřeba řešit firewallem
Majkls 24. 5. 2007 10:34
Nový
└ 
Re: V linuxu netřeba řešit firewallem
anonymní uživatel 25. 5. 2007 17:55
Nový
 
└ 
Re: V linuxu netřeba řešit firewallem
Majkls 26. 5. 2007 11:26
Nový
jojo
Zdenda 24. 5. 2007 10:43
Nový
FW
J 24. 5. 2007 13:02
Nový
RH0 a Solaris
Vladimir Kotal 24. 5. 2007 15:10
Nový
IPV6=nebezpecna zbytecnost
sik 25. 5. 2007 04:50
Nový
└ 
Re: IPV6=nebezpecna zbytecnost
Majkls 25. 5. 2007 08:13
Nový
 
├ 
Re: IPV6=nebezpecna zbytecnost
xXx 25. 5. 2007 08:38
Nový
 
├ 
Re: IPV6=nebezpecna zbytecnost
Zdenda 25. 5. 2007 10:13
Nový
 
│
└ 
Re: IPV6=nebezpecna zbytecnost
petr_p 25. 5. 2007 11:36
Nový
 
│
 
└ 
Re: IPV6=nebezpecna zbytecnost
Zdenda 25. 5. 2007 12:21
Nový
 
│
 
 
├ 
Re: IPV6=nebezpecna zbytecnost
Majkls 26. 5. 2007 11:29
Nový
 
│
 
 
│
└ 
Re: IPV6=nebezpecna zbytecnost
Dan Lukes 10. 6. 2007 20:19
Nový
 
│
 
 
└ 
Re: IPV6=nebezpecna zbytecnost
petr_p 27. 5. 2007 23:21
Nový
 
└ 
Re: IPV6=nebezpecna zbytecnost
petr_p 25. 5. 2007 11:42
Nový
 
 
└ 
Re: IPV6=nebezpecna zbytecnost
Zdenda 25. 5. 2007 14:44
Nový
source routing
Zdenda 25. 5. 2007 10:03
Nový
└ 
Re: source routing
Tyfus 25. 5. 2007 13:49
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem