Proč není NAT totéž co firewall

Petr Krčmář 13. 6. 2007

Že překlad adres (NAT) zvyšuje míru bezpečnosti uživatele, je jasné a zřejmé. Mnoho neznalých uživatelů má ale pocit, že pokud nemají veřejnou IP adresu, jsou naprosto chráněni před jakýmkoliv útokem. Falešný pocit bezpečí tak může paradoxně situaci zhoršit. Proč samotný NAT nestačí? Jaká jsou rizika?

Co je to NAT?

NAT je zkratkou pro Network Address Translation, což bychom mohli přeložit jako překlad síťových adres. Jedná se o funkci routerů, která umožňuje překládat adresy z vnitřního adresního rozsahu do veřejného a naopak. V důsledku se tak vnitřní adresy nedostanou nikdy do internetu.

NAT vznikl jako důsledek omezeného a poměrně nízkého počtu veřejných IP adres. Protože každý uživatel dnešního internetu nemůže mít adresu z vnějšího rozsahu, byl vymyšlen princip, který dovoluje poskytovateli připojení za jednu adresu „skrýt” celou vnitřní síť, nehledě na její rozsah.

Princip NATu je poměrně jednoduchý:

  1. klient vyšle požadavek na bránu vnitřní sítě
  2. router pakety zachytí, změní jejich IP adresu na svou vnější
  3. router pakety označí tak, že je odešle z náhodného TCP portu
  4. router si do tabulky zapíše, který port zvolil a který klient k němu patří
  5. při přijetí odpovědi provede router reverzní akci a pakety vrátí klientovi

Je zřejmé, že pro klienta je celý proces naprosto transparentní a komunikaci nijak neovlivňuje (až na některé výjimky, těmi se ale nebudeme zabývat). Servery „na druhé straně” také o ničem neví a bez potíží odpovídají samotnému překladači.

Nevýhodou NATu je „jen” to, že není možné se zvenčí přímo spojit s počítačem uvnitř zaNATované sítě. Bez dalších úprav tedy nemáme možnost například provozovat vlastní server. To samozřejmě většině klientů vůbec nevadí a naopak oceňují bezpečnostní stránku věci.

NAT

Přelez, přeskoč a podlez NAT

Hlavním problémem IPv4 sítích je malý adresní prostor, který nedovoluje každému počítači přidělit jeho vlastní veřejnou IP adresu. To přináší problém v případě, že chcete propojit dva počítače, které jsou za překladačem adres (NAT). I tady ovšem existuje snadné řešení.

NAT má totiž z principu jakýsi pasivní vliv na bezpečnost sítě. Sekundárním důsledkem NATu je překrytí veškeré vnitřní komunikace se světem. Případný útočník tak

  • nezná strukturu sítě
  • nemůže se spojit s konkrétním počítačem
  • může jen odpovídat na výzvy zevnitř

Uživatelé mohou mít falešný pocit bezpečí a často se domnívají, že je NAT dokáže ochránit před útokem a nepotřebují už firewall. Bohužel stejný názor mají často i poskytovatelé připojení a někteří výrobci hardware. Nezřídka si totiž můžeme přečíst, že ADSL router obsahuje funkce firewallu a ochrany uživatele. Po připojení ovšem bohužel zjistíme, že nabízí jen NAT.

Ukážeme si, že samotný NAT není všemocný a ve skutečnosti je možné na síť zaútočit. Samozřejmě budeme předpokládat naprostou absenci firewallu, což ovšem není tak utopická situace, jak by se mohlo zdát.

Mýtus 1: Nikdo nezná mou vnitřní IP

Vnitřní IP adresa vašeho počítače se přes NAT za normálních okolností nedostane a router ji ani nijak nedeleguje. Existuje ovšem způsob, jak zjistit alespoň některé informace.

Jednak můžeme (v případě dalších pokusů) adresy tipovat. To není často složité, většinou jsou používány adresy z několika málo rozsahů jako 192.168.* a podobně. Pokud bychom potřebovali, mohli bychom proto adresu uhodnout.

Sofistikovanější „řešení” ovšem nabízejí některé protokoly a aplikace. Poměrně běžné aplikace jako ICQ a někteří P2P klienti totiž šíří informace o IP adrese vašeho počítače. Není tedy problém zjistit, jakou adresu má uživatel v rámci vnitřní sítě.

Útočník může také do jednoho z počítačů v síti propašovat svůj kód například přes děravou aplikaci. Tento kód pak může síť skenovat a posílat do internetu informace o tom, jak síť vypadá.

Možná přemýšlíte, k čemu je někomu vnitřní IP adresa počítače, na který se stejně nedokáže připojit. On to ale dokáže, jak si ukážeme později.

Mýtus 2: NAT brání útokům na síť

Protože přímé spojení do sítě není možné (to mimochodem není pravda – počkejte si na další mýtus), uživatelé mají pocit, že není možno na síť jako takovou útočit. Opak je však pravdou.

Existuje celá řada útoků, které dokáží ohrozit samotnou komunikaci se sítí a NAT na ně nemá nejmenší vliv. Jedná se o útoky typu DoS, které mohou zablokovat připojení sítě k internetu. Některé z nich si představíme.

LAND attack

Útok, při kterém je na otevřený port napadeného počítače odeslán upravený SYN paket, který vyzývá k zahájení komunikace. Jako odesílatel i příjemce tohoto paketu je vyplněn počítač oběti.

Napadený počítač začne na paket odpovídat sám sobě a v případě většího množství podobných paketů je možno oběť naprosto zahltit a znemožnit jí další přenášení regulérních paketů.

Smurf attack

Během tohoto útoku je na broadcast adresu sítě odesíláno velké množství ICMP (ping) paketů s falešnou adresou odesílatele. Pokud není takový paket blokován firewallem, dojde k jeho distribuci do vnitřní sítě. Všechny počítače začnou automaticky odpovídat a dojde k zahlcení výstupního routeru.

Ping flood

V tomto případě jde o klasické zahlcení počítače velkým množstvím ICMP (ping) paketů. Předpokládá se, že útočník má větší šířku pásma než oběť. Bez další ochrany začne oběť navíc automaticky odesílat reakce na tyto pakety a zahltí tak i pásmo směrem ven.

Mýtus 3: nikdo se na mě nepřipojí

Přichází to nejzajímavější. Toto je obecně nejrozšířenější mýtus, který ovšem dává uživatelům největší pocit bezpečí. Princip NATu totiž pasivně uživatele před neznámými pakety z venčí ochrání. Při popisu principu jsme si řekli, že si NATující router do tabulky ukládá informace o spojení a podle ní pak zpětně překládá přicházející pakety.

Pokud tedy pošleme na router nový paket, který nepatří k žádnému spojení, NAT netuší, kam jej směrovat, a tak jej automaticky zahodí. Toto je tedy ona pasivní ochrana, ale NAT není konstruován k tomu, aby před podobným chováním chránil, je to jen důsledek jeho principu.

Z toho důvodu není obecně u NATu počítáno se všemi možnostmi a útočník má možnost, jak NAT obejít. V podstatě mu k tomu bude stačit znát jen vnitřní IP adresu počítače, se kterým se chceme spojit. Jak ji zjistit, jsme si už řekli.

Střílíme přes NAT

K další „magii” budeme potřebovat přísadu nazvanou source routing. To je technika, která umožňuje předem zvolit, kudy budou putovat naše pakety. Můžeme si tak předem najít cestu k NATujícímu počítači a do hlavičky našich paketů ji vyplnit. Nejedná se o nic tajemného, source routing popisuje RFC 791 a jedná se o standardní vlastnost IP.

Nyní k samotnému prostřelení NATu: vytvoříme pakety, ve kterých jako cílovou adresu vyplníme vnitřní adresu některého ze strojů v síti. Jako bránu nastavíme NATující router. Ten je schopen nám udělat cestu dovnitř. Pomocí source routingu si sami zvolíme cestu.

Pak pakety vyšleme. Ty pak podle naší zvolené cesty doputují až k NATu, který je přijme jako brána. Protože je cílem cesty počítač, který router zná, doručí pakety až k němu.

Samozřejmě předpokládáme, že na NATu není zároveň i firewall. Ten by samozřejmě poznal, že se jedná o podvod už jen tím, že na vnější zařízení dorazily pakety určené pro vnitřní síť. Tohle ovšem NAT nezajímá (jak jsme si řekli, není to bezpečnostní mechanismus) a měl by pakety normálně doručit. Existuje samozřejmě řada faktorů ovlivňujících výsledek, zde nám jde ovšem jen o to, ukázat koncept a principiální „děravost” samotného NATu.

Samozřejmě source routing je velmi nebezpečná metoda, kterou firewally obecně blokují, protože je s ní možno provádět řadu různých podvodů. Pokud ovšem nemáme žádný filtr a spoléháme se na NAT, útočníkovi nic nestojí v cestě.

NAT není firewall

Ukázali jsme si, že samotný NAT neochrání síť a není to ani jeho účelem. To, že schovává počítače za sebou, je jen vedlejším efektem jeho primární funkce. NAT nemá sloužit jako ochrana ani jako paketový filtr.

Pochopitelně zde naznačeným útokům je možno velmi jednoduše zabránit několika elementárními pravidly na firewallu. Stačí nám jednoduše filtrovat vnější provoz a přímým útokům se dokážeme vyhnout. Samotný NAT na to však nestačí.

Anketa

Používáte firewall?

Našli jste v článku chybu?
Měšec.cz: Investiční pasti. Děláte to, co ostatní, ale proděláváte

Investiční pasti. Děláte to, co ostatní, ale proděláváte

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Podnikatel.cz: Češi to dělat nechtějí, nahradí je Ukrajinci

Češi to dělat nechtějí, nahradí je Ukrajinci

DigiZone.cz: Jetelín končí. Prima ho vyřadila

Jetelín končí. Prima ho vyřadila

Podnikatel.cz: Týká se vás EET? Chtějte od berňáku posudek

Týká se vás EET? Chtějte od berňáku posudek

DigiZone.cz: Další rána pro piráty: 6 měsíců

Další rána pro piráty: 6 měsíců

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí karta

Do ostravské MHD bez jízdenky. Stačí karta

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Podnikatel.cz: Novela zákoníku práce. Řeší homeworking

Novela zákoníku práce. Řeší homeworking

Root.cz: Xiaomi má vlastní notebook podobný Macu

Xiaomi má vlastní notebook podobný Macu

Podnikatel.cz: Kauza z Vinohrad pokračuje. Policie se omlouvá

Kauza z Vinohrad pokračuje. Policie se omlouvá

Lupa.cz: Nechcete datacentrum? Jsou na prodej

Nechcete datacentrum? Jsou na prodej

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

Podnikatel.cz: OSA zdražuje poplatky. Zaplatíte o polovinu víc

OSA zdražuje poplatky. Zaplatíte o polovinu víc

120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

DigiZone.cz: ČTÚ zveřejnil aktualizovaný D-Book

ČTÚ zveřejnil aktualizovaný D-Book

Podnikatel.cz: Youtuber? Za 15 tisíc dělat nebude

Youtuber? Za 15 tisíc dělat nebude

Vitalia.cz: Za její cukrovkou stojí rodiče

Za její cukrovkou stojí rodiče

Podnikatel.cz: Oznamte skutečné sídlo firmy, jinak zaplatíte

Oznamte skutečné sídlo firmy, jinak zaplatíte

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte