V čem se IPv6 liší a na co bychom si při jeho implementaci měli dát pozor

4. prosince 2015

IP protokol představuje nosný protokol internetu. V roce 1981, kdy se zveřejnil doposud používaný IPv4 protokol, se však ještě nevědělo, jaké bude mít uplatnění a nakolik se rozšíří. Již v roce 1994 se proto začalo s vývojem nového protokolu IPv6, který měl světový hlad po adresách uhasit. Nový protokol sebou nepřinesl jenom větší počet adres. Při jeho vývoji se myslelo také na mnoho nových doplňků, které měly fungování internetu posunout na jiný level. I když se dílčí části kolem stále ‚nového‘ protokolu vyvíjí, můžeme říct, že jádro jeho fungování je stabilní. Jeden ze zásadních rozdílů mezi IPv4 a IPv6 představuje způsob jeho tvorby. Při vývoji šlo hlavně o funkcionalitu. U vývoje a implementaci IPv6 se již brala do úvahy navíc i bezpečnost.

IP protokol představuje nosný protokol internetu. V roce 1981, kdy se zveřejnil doposud používaný IPv4 protokol, se však ještě nevědělo, jaké bude mít uplatnění a nakolik se rozšíří. Již v roce 1994 se proto začalo s vývojem nového protokolu IPv6, který měl světový hlad po adresách uhasit. Nový protokol sebou nepřinesl jenom větší počet adres. Při jeho vývoji se myslelo také na mnoho nových doplňků, které měly fungování internetu posunout na jiný level. I když se dílčí části kolem stále ‚nového‘ protokolu vyvíjí, můžeme říct, že jádro jeho fungování je stabilní. Jeden ze zásadních rozdílů mezi IPv4 a IPv6 představuje způsob jeho tvorby. Při vývoji šlo hlavně o funkcionalitu. U vývoje a implementaci IPv6 se již brala do úvahy navíc i bezpečnost.

Implementace nového protokolu se však táhne již několik let a používá se stále více technik, jak jeho implementaci obejít. Otázka IPv6 je však mnohem komplexnější. Protokol není sám o sobě nebezpečný, jde však o jeho implementaci. Zatímco chyby v IPv4 se během let již postupně zalátaly, jeho nástupce obsahuje mnoho bugů, jež je třeba vyřešit. Cílem tohoto článku je popsat základní fungování tohoto protokolu a poukázat na změny, které v oblasti bezpečnosti nový protokol přinesl. /files/csirt/halvicka_small.png Pro začátek je potřebné si uvědomit, že protokol má jinou stavbu a fungování, než na jaké jsme zvyklí u IPv4.

Základní rozdíly mezi IPv4 a IPv6

délka adresy má 128 bitů
Pro porovnání IPv4 adresa má 32 bitů. To byl jeden z důvodů proč se nový protokol uváděl. Počet dostupných IP adres se několika set násobně zvětšil a IPv6 tak nebude mít problém pokrýt potřeby adres při současném stavu, ani při dalším rozvoji internetové infrastruktury.

automatická konfigurace (stavová a bezstavová)
Fungování stavové konfigurace, jak ji známe u IPv4, zajišťuje DHCP. Stavovou konfiguraci u IPv6 představuje protokol DHCPv6 - jde o podobný princip, na jaký jsme u DHCP zvyklí. DHCP server poskytuje zařízením v síti vše, co potřebují k připojení do sítě; jako např. IP adresu, adresu DNS serveru, prefix podsítě, implicitní záznam do směrovací tabulky a podobně. Při bezstavové konfiguraci pak ohlašují všechny potřebné informace směrovače v určitých časových intervalech. Ohlášení směrovače posílá každý směrovač v náhodných časových intervalech do všech sítí, k nimž je připojen.

objevování sousedů
Neighbor discovering neboli objevování sousedů nahrazuje starší ARP (Address resolution protocol), který slouží k vyhledání linkové adresy pro IP adresu sousedního počítače. K němu však přidává funkce směrování a automatickou konfiguraci.

paket
Hlavička IPv6 paketu je jednodušší v porovnání s datagramem v IPv4. Cílem této změny bylo rychlejší zpracování na směrovači. Hlavička paketu má v novém protokolu konstantní délku (40 bajtů) a volitelné položky jsou přesunuty do samostatných hlaviček. Směrovač tak může zpracovat jen IPv6 adresy a následující Hop-by-hop option a ostatní hlavičky by neměl řešit. Každá z rozšiřujících hlaviček má svou položku ‚další hlavička‘ z nichž pak vznikne řetězec.

Model hlavičky u IPv6 v porovnání s IPv4:

.png

V porovnání s datagramem u IPv6 můžeme vidět, že chybí například rozšiřující volby, kontrolní součet a fragmentace. TTL byl nahrazen maximálním počtem hopů (hop limit).

IPsec

Bezpečnostní vylepšení IPv6 přináší hlavně IPsec, což je jeden z nejvýraznějších bezpečnostních prvků, které na úrovni IP najdeme. IPsec je soubor standardů od IETF (Internet Engineering Task Force), které definují bezpečnou komunikaci na úrovni sítí. I když se objevuje již u IPv4, až u IPv6 byl povinný. To se však změnilo a nyní je již jenom silně doporučený.
Pro zvýšení bezpečnosti IPsec využívá především AH (Authentication Header) a ESP (Encapsulating Security Payload). AH má na starosti ověření, zda se adresa a obsah po cestě nezměnili. Když paket dorazí do počítače, můžeme si tak být jisti, že opravdu pochází z dané adresy. Zároveň se zabezpečuje integrita dat, čili je zaručeno, že obsah paketu se po cestě z cílové adresy nezměnil. Druhý doplněk, který však kromě zabezpečení pravosti a integrity dat umožňuje navíc i šifrování, se nazývá ESP. ESP umožňuje plnění stejných funkcí jako AH a přidává ještě něco navíc. Dle RFC 4301 je implementace ESP povinná, zatímco implementace AH pouze dobrovolná. Celý proces bezpečnosti řídí databáze bezpečnostní politiky (Security Policy Database - SPD). Jde o soubor pravidel, který určuje, jak se bude s datagramem dále pracovat. SPD posoudí základní kritéria, jako je cílová a zdrojová IP adresa, port, použitý protokol a podobně. Tyto proměnné pak slouží jako selektory, na základě kterých se rozhodně, co se s datagramem stane. Jde o podobný princip, jaký známe z pravidel na firewallu. Na základě stanovených pravidel pak SPD vyhodnotí, jestli datagram:

a) zahodí
b) akceptuje
c) aplikuje bezpečnostní mechanizmy

Když se rozhodne aplikovat bezpečnostní mechanizmy, vydá bezpečnostní asociaci, která se k danému pravidlu vztahuje. Bezpečnostní asociace (Security Association - SA) se stará o to, jaký bezpečnostní mechanizmus byl použit (AH, nebo ESH), s jakým šifrovacím algoritmem a klíčem platným pro toto spojení, jakou má dobu životnosti a podobně. Postupně se vytvoří databáze bezpečnostních asociací (Security Association Database - SAD), které se na jednotlivé datagramy uplatňují, když to SPD vyžaduje. Jaké bezpečnostní asociace budou použity, je velmi důležité. V malých a stabilních sítích je možná jejich manuální konfigurace. Většinou se však používá dynamické vytváření bezpečnostních asociacích dle protokolu IKEv2.

Podle RFC 4301, který IPsec z velké části definuje, je každý stroj pak dále rozdělen na část bezpečnou a nebezpečnou. Bezpečná část představuje interní rozhraní a naopak nebezpečná část představuje rozhraní, které je připojeno do veřejného Internetu. Kontrola a ověřování datagramu pak samozřejmě probíhá jinak podle toho, zda jde o odchozí nebo příchozí datagramy.

Nejčastější problémy

Operační systémy, automatická konfigurace a tunneling V první řadě je třeba mít na paměti, že i v případě, kdy nemáte ve své síti IPv6 implementováno, dnešní operační systémy mají podporu pro IPv6 ve výchozím nastavení zapnutou. To znamená dvě věci, možnost tunelovat IPv6 přes IPv4 protokol a také automatickou konfiguraci lokálních IPv6 adres. Pokud jde o tunelovací mechanismy, klienti je mohou využít k obcházení stávajících pravidel firewallu, nebo k tomu, aby se vyhnuli detekci různých IDS systémů. Automatická konfigurace pak hraje roli také při zabezpečení serverů v lokální síti. Řekněme, že máte v síti službu, která má být přístupná pouze z určitých IP adres. Pokud však správce nastaví omezení pouze pro IPv4, může se stát, že služba zůstane přes lokální IPv6 adresu nakonfigurovanou automaticky při startu operačního systému dostupná všem uživatelům v síti.

Oznámení směrovače
Pro správce sítí je také důležité znát problematiku oznámení směrovače. Pomocí Oznámení směrovače (Router Advertisement, RA) informují routery ostatní zařízení v síti o své existenci a o tom, že je možné je použít jako výchozí bránu pro komunikaci do Internetu. Dále připojují několik dalších informací, z nichž ta nejdůležitější je prefix používaný v dané síti. Za směrovač se však může prohlásit kterékoliv zařízení v síti a ostatní tak přesvědčit, že je toto zařízení výchozí branou dané sítě. Další možností je přesvědčit ostatní zařízení v síti, že leží v nějaké konkrétní síti. Představme si, že začnu do lokální sítě vysílat stejný prefix, jaký používá společnost Google. Pak mi stačí si na mém počítači nastavit IP adresu, kterou používá třeba služba Gmail a rozběhnout na něm web, který bude přihlašovací stránku Gmail napodobovat. Počítač v lokální síti, který bude chtít komunikovat se servery služby Gmail si z DNS zjistí IP adresu. Protože tato IP adresa bude díky falešně oznamovanému prefixu patřit do stejné sítě, jako IP adresa používaná tímto počítačem, bude počítač komunikovat po lokální síti přímo s počítačem útočníka, vydávajícím se za server Gmail.

Dalším problémem, se kterým se lze v rámci lokálních sítí potkat je Router Advertisiment flooding, kdy může útočník snadno zaplavit vaši síť falešnými oznámeními směrovače. V každém RA paketu může být oznamováno až šestnáct prefixů a rout. Zařízení, která jsou vůči tomuto útoku náchylná si pak začnou přidávat všechny tyto informace do své síťové konfigurace, což vede k jejich pádu, nebo aspoň nedostupnosti po dobu útoku. Zranitelných zařízení je celá řada a kromě klasických operačních systémů mezi ně patří i některé routery, proto je dobré svou síť otestovat na odolnost proti tomuto útoku a předejít tak případným problémům. Jako obrana proti zneužití RA zpráv v síti se v současné době používají především nástroje RA-Guard a technika ND-Snooping.

Extension Headers
Dalším známým problémem IPv6 je zpracování rozšířených hlaviček (Extension Headers). Kvůli zrychlení a zjednodušení routování paketů má základní IPv6 hlavička pevně danu velikost. Směrovače po cestě tak přesně vědí kam sáhnout, aby mohli paket rychle poslat do další destinace. Problém je, že další zajímavé vlastnosti protokolu se využívají v rámci rozšířených hlaviček, které lze libovolně řetězit. Poslední hlavička v řadě pak obsahuje informace o protokolu, nesoucím data (TCP,UDP). Většina zařízení po cestě si vystačí s informacemi z první hlavičky, nicméně problém může nastat ve chvíli, kdy paket dorazí k nějakému sofistikovanějšímu zařízení, které se stará o filtrování paketů vstupujících do naší sítě. Pokud útočník šikovně zřetězí rozšířené hlavičky, může se mu podařit celá škála útoků, od průchodu paketu, který měl být zastaven (a který obsahuje data, která chceme doručit cílovému zařízení za firewallem), až po pád zařízení, které paket zpracovávalo. Pokud tedy budete kupovat nové zařízení, především bezpečnostní, je vždy dobré se informovat na schopnost zařízení správně zpracovávat rozšířené hlavičky.

Problematika bezpečnosti IPv6 je rozsáhlá a netýká se pouze zde naznačených záležitostí. Pro další vzdělávání v této oblasti lze doporučit kurz akademie CZ.NIC Implementace IPv6 a také knihu z edice CZ.NIC IPv6 autora Pavla Satrapy, kterou je možné na uvedených stránkách zakoupit v papírové podobě, případně si ji zdarma stáhnout v elektronickém formátu. Pro otestování provozované sítě na odolnost proti útokům na IPv6 pak doporučujeme využít nástroje SI6 Networks IPv6 Toolkit a THC-IPv6.