Tunnelling 2 / 4 (Redirektor a tunel)

Libor Bešenyi  /  23. 01. 2007, 00:00

Prečo vlastne tunelovať a načo sa používajú redirektory?

Verejné a neverejné adresovanie

             minulej časti sme si povedali o tom, ako existuje akási chrbtica Internetu, ktorú tvoria prepojené smerovače. Tie zasa odkazujú do vlastných podsietí a slúžia ako brány podsieťam do globálnej siete. Taktiež sme si povedali, že my vlastne komunikujeme z IP adresy routra nášho poskytovateľa, teda my sme časťou jeho vnútornej hierarchie. V malom sa s tým môžeme stretnúť aj na školách. Server má adresu poskytovateľa a je pripojený do Internetu (teda jeho siete, ktorá je pripojená do Internetu). Ako je to možné, že v učebni sú pripojené ďalšie počítače? Pretože oni ako bránu na Internet používajú práve server, ktorý Internet „vidí“.

            Tým môžeme IP adresy klasifikovať na tzv. verejné a neverejné. Neverejná adresa z hľadiska školskej siete je adresa počítača, ktorá nefiguruje pri prístupe na Internet. Ona len požiada server, ktorý „môže surfovať“, aby sa pozrel na tú a tú stránku, server si zapíše požiadavku tohto počítača (a teda jeho vnútornú adresu), no on sám sa na túto stránku pozrie. Potom ju pošle v rámci vnútornej siete počítaču, ktorý o ňu požiadal.

             Z tohto hľadiska ani školský server nemá prístup priamo na Internet! Naň má prístup router provajdera a teda ani server sa na stránku nepozrie, ale opýta sa routra, ktorý to už môže urobiť. Server v tomto prípade tvorí „bližší“ skok na stránku od počítača v škole až ku cieľu. A teda ani server z hľadiska Internetu nemá verejnú adresu (ak si o ňu nepožiada administrátor). Verejnou adresou vystupuje až router.

             Preto, ak si chceme doma vytvoriť vlastnú serverovú službu a nemám verejnú IP adresu, naša adresa nie je viditeľná svetu (vo väčšine prípadoch)! A ešte horšie je to, že pravdepodobne bude dynamická a tak každou stratou spojenia a opätovného naviazania nového získame novú adresu...

Ako zistiť vôbec lokálnu IP adresu počítača? Poďme do príkazového riadku a napíšme ipconfig /all:

Microsoft Windows XP [Verzia 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:>ipconfig /all


Konfigurácia protokolu IP systému Windows

         Názov hostiteľa. . . . . . . . . . . . . : server

         Primárna prípona názvu DNS . . . . . . . :

         Typ uzla . . . . . . . . . . . . . . . . : Neznámy

         Smerovanie protokolu IP povolené . . . . : Nie

         WINS Proxy Enabled . . . . . . . . . . . : No

         DNS Suffix Search List. . . . . . . . .  : XXX

 
Adaptér siete Ethernet Lokálne pripojenie:

         Stav média . . . . . . . . . . . . . . . : Médium je odpojené

         Popis. . . . . . . .. . . . . . . : Intel(R) PRO/100 VE Network Connection

         Fyzická adresa . . . . . . . . . . . . . : XXX

 
Adaptér siete Ethernet Local Area Connection:

         Prípona DNS špecifická pre pripojenie  . : intrak.tuke.sk

         Popis. . . . . . . . . . . : Realtek RTL8029(AS) PCI Ethernet Adapter

         Fyzická adresa . . . . . . . . . . . . . : XXX

         DHCP zapnuté . . . . . . . . . . . . . . : Áno

         Automatická konfigurácia zapnutá . . . . : Áno

         Adresa IP. . . . . . . . . . . . . . . . : XXX

         Maska podsiete . . . . . . . . . . . . . : XXX

         Predvolená brána . . . . . . . . . . . . : XXX

         Server DHCP. . . . . . . . . . . . . . . : XXX

         DNS Servers. . . . . . . . . . . . . . . : XXX

                                                         XXX

         Prenájom získaný . . . . . . . . . . . . : 8. decembra 2005 23:21:05

         Prenájom uplynie . . . . . . . . . . . . : 9. decembra 2005 11:21:05

 

          
Odtiaľ dokážeme vyčítať informácie o sieťovom pripojení každého adaptéra (z výpisu vidno, že v počítači sú dve sieťové karty, Intel a Realtek. Intel je odpojená a tou druhou je počítač pripojený do LAN siete, z kade čerpá sieťové informácie (DHCP zapnuté). Ďalej sú tam informácie o IP adrese, maske, o bránach apod. Ak sa pripájame cez mobilný telefón, WiFi (apod.) informácie o pripojení tu chýbať nebudú!

           Takže vieme zistiť vlastnú IP. Tá však nemusí byť verejná (s ktorou vystupujeme na Internete). Tak aká je naša adresa vonku? Je to informácia v časti predvolená brána! Pošleme požiadavku na tento počítač (s dvoma pripojeniami, na sieť „vo vnútri“ a na Internet – „vonku“), že chceme ísť von, na stránku. Niekedy tieto obmedzenia vieme obísť práve nejakými tunelmi. Záleží však o to, čo od tunela očakávame. Ak chceme doma praktikovať vlastný webový server, budeme potrebovať statickú IP adresu a nejaké konto na serveri na Internete, na ktorom nastavíme naslúchanie služby a tú forwardujeme „do vnútra“ (podobne ako príklad so skladníkmi).

 

Brány a „redirektory útočníkov“

           Predstavme si obmedzenosť adresného priestoru na Internete. Ak zoberieme do úvahy IP adresy triedy A tak sa jedná o pomerne slušné množstvo počítačov, ale zato obmedzený počet podsietí. Aby sa odstránil tento efekt, vytvárajú sa samostatné siete (LAN, MAN...),  ktoré sa medzi sebou prepájajú a vlastne tie tvoria Internet (viac v predchádzajúcej časti). Takéto siete potom obvykle pristupujú vonku cez jedno špeciálne zariadenie spadajúce do oblasti tzv. brán alebo anglického originálu gateway systémov. Táto brána slúži okrem pripájania aj logicky ku konverzií rôznych typov sietí (vrátane modelov vymykajúcich sa OSI) a vytvára z vonku jednotnú sieť.

           Ako sme si povedali, cez toto zariadenia prechádza celá komunikácia so svetom. Toto riešenie potom umožňuje abstraktnosť LAN a šetrí adresným priestorom pre efekt „classless“. Vnútorné mechanizmy týchto brán obsahujú funkcie, ktoré mapujú celú vnútornú sieť a vytvárajú si jej virtuálny odtlačok (napríklad protokol NAT na smerovačoch, či Unix serveroch). Ak chceme z počítača vo vnútri sietí ísť na nejakú stránku, pošleme požiadavku na bránu. Ta si zapamätá, kto si čo pýtal a „za nás“ vykoná požadovanú operáciu. Keď sa jej vrátia jednotlivé informácie z Internetu, tak ich redistribuje podľa záznamu, ktorý si urobila na začiatku. Okrem spomínaných výhod si čitateľ môže začať vytvárať obraz o tom, že takéto riešenie je ideálne pre centralizáciu ochrany, ale taktiež uchovávanie záznamov o tom, čo sa na Internete robilo. Centralizácia je úžasná, ak sa totiž zabezpečí jediný počítač (brána) tak sa už nemusí rovnako silná ochrana budovať na každom počítači v sieti!


Komunikácia cez bránu
Zväčšiť


Takýto popis isto každému pripomína funkciu firewallu. Áno, tieto zariadenia patria do tejto kategórie! Najčastejšie sa užívateľ stretáva s bránami od provajdera svojho pripojenia. Operačný systém v prípade požiadavky napríklad z prehliadača stránok, posiela informáciu na bránu. Ta je zvyčajne hlavným počítačom. Hneď sa odkaz priradí DNS serveru v rámci podsiete. Ak sa nenájde žiadny relevantný odkaz, posiela sa cez bránu do sveta. Takto sa dá každý krok užívateľa sledovať a zapisovať do log súborov.

 Keďže už vieme, že naše pripojenie na Internet je rovnaké ako napríklad v škole (len namiesto UTP káblu sa využíva telefónna linka, či GSM), tak si musíme zapamätať to, že každý náš krok sa môže zaznamenávať. Internet sa javí ako silne anonymné médium. To však nie je úplne tak. Každý webmaster dokáže sledovať, kedy sa prihlásime na jeho stránku. Čo mu je z IP adresy provajdera? Ak sme urobili niečo nekalé, porovnajú sa prístupy zo záznamov poškodeného so záznamami provajdera. Ten potom dokáže zistiť IP adresu v rámci vnútorného adresovania a tak aj meno a adresu človeka (keďže mu platí za Internetové spojenie) , ktorý spôsobil nejakú škodu! Ak však nič nevystrájame, je úplne jedno o tom, kto si čo zapisuje, veď máme čisté svedomie a paranoja zo „sledovania americkou vládou“ je taká trápna (keď si predstavíme logy miliónov ľudí)!

 Ale ako je možné, že na niektorých hackerov sa nepríde? Ostáva obmedzené množstvo možností. Tak asi najideálnejšie by bolo mať prístup ku bráne provajdera (firemnej, školskej, intráckej...) Tam by sme sledovali zaznamenávanie a mazali, prípadne ich menili. To je však málo pravdepodobné...

 Druhá možnosť vychádza práve z filozofie brán. Keďže brána redistribuje pakety, musí obsahovať reálne adresy tak či tak, pretože aj keby sme zablokovali v pakete informáciu o odosielateľovi, tak by sa strácal význam, pretože odpoveď na náš dotaz by sa nevedela kam vrátiť. A teda nastáva hlúpa situácia, akoby sme sa chceli niekoho opýtať na správnu cestu, keď zablúdime, no súčasne by sme nechceli, aby nám opýtaný človek odpovedal, lebo sa bojíme, že je to masový vrah, ktorý si nás všimne.

 Môžeme z toho vykorčuľovať veľmi elegantne. Na prvý pohľad to vyzerá absurdne, ale geniálne veci sú práve v maličkostiach! Dopasujeme tu ešte jedného človeka, ktorému dôverujeme a pritom nie je pre nás dôležitý (ak by to bol vrah a vykonal svoje remeslo – dôverná osoba by nám nechýbala). Tak jeho pošleme opýtať sa. Ak sa mu nič nestane a vráti sa ku nám, odpoveď odovzdá nám. V podstate plní podobnú úlohu ako brána.

 Teda útočník by potreboval prístup na konto niekoho iného. Tento počítač (server) by mal úplne pod kontrolou a prikazoval by nekalé veci robiť práve tejto otrockej bráne. Nastavil by, aby sa nezaznamenávali nijaké informácie a ak by sa niečo prevalilo, tak všetky oficiálne záznamy by viedli ku tejto fiktívnej bráne.

 Ak je brána mimo lokálnej siete, nič nie je stratené. Tu si však musíme uvedomiť, že naše požiadavky by sa zapisovali. Ten a ten pristupoval ku tomuto PC. Hoci nič neurobíme (ak máme nejakého obetného baránka úplne pod kontrolou), ale stále je tu nebezpečenstvo, ak sa preverovali logy pripojení na tohto otroka v logoch prvajdera. Aby sa práca skomplikovala, útočníci využívajú väčšie množstvo takýchto redirektorov, ktoré vytvárajú reťazec, neraz sa medzi sebou cyklia a tak vytvárajú spleť prístupov, ktorá je takmer nemožná rozlúštiť.


Komunikácia prostredníctvom redirektora
Zväčšiť


Popíšme si, čo sa na obrázku deje. Máme počítač vo vnútro sieti provajdera. Na jeho bránu pošleme správu pre počítač na Internete s adresou 165.56.1.2, aby pingol počítač na Itnernete 98.1.26.243. Keď náš dotaz dôjde do brány, tá, si zapamätá IP v rámci lokálnej siete, z ktorej bol prijatý. Brána v demonštračnom príklade vystupuje vo vnútri siete s IP 192.168.1.1. Vonku jej bola pridelená adresa 74.5.5.190. Takže z tejto adresy sa posiela počítaču 165.56.1.2 príkaz, aby pingol adresu 98.1.26.243. Ten danú adresu pingne a výsledok posiela späť na bránu. Keď do brány dôjde odpoveď z adresy 165.56.1.2, pozrie sa vo svojej tabuľke, kto si pýtal informácie a zistí, že sa jednalo o PC 192.168.1.2 a výstup z pingu tam odošle.

Ak by bolo pingovanie nelegálne a zistil to počítač 98.1.26.243, tak ma záznam z adresy 165.56.1.2. Keď sme na nej dokonale zmazali stopy, tak jediný dôkaz o zlej činnosti odkazuje na majiteľa počítača, ktorý sa stal našou obeťou.

Tunnelling

             Poznáme pojem brány a redirektoru. Pozrime sa, ako to vlastne funguje v praxi. Najčastejšie sa môžeme stretnúť s počítačmi na internátoch, ktoré sú za dobre ochránenými bránami a firewallmi. Bežné sa stáva, že je blokovaný port pre SMTP na odosielanie pošty, ktorý „sídli na čísle“ 25. Je to preto, lebo komunikácia je nebezpečná.  V prípade, že nemáme inú možnosť (SSL ekvivalent na poštovom servery), musíme si nejako pomôcť, aby sme komunikáciu rozbehali. Ale potrebujeme mať vonkajší server pod kontrolou, aby sme ho vedeli nakonfigurovať. Neskôr si to ukážeme s pomocou redirektora.

             Ako by to malo byť teda teoreticky? Firewall na LAN nebude isto blokovať všetky služby. Musíme si teda vybrať nejakú vhodnú službu, cez ktorú prepašujeme komunikáciu so službou zakázanou. Na servery, kde beží SMTP služba presmerujeme jej obsah na nejaký z vyšších portov spojením so službou, ktorú firewall podporuje. Takto budeme komunikovať na legálnej službe a obsah bude „nelegálny“ (to nie je v našom prípade pravda, veď blokovanie SMTP je z hľadiska bezpečnosti LAN a mi využijeme to, čo je podľa administrátorov bezpečné – na obsahu už nezáleží). V kapitole SSH tunnelling sa pozrieme bližšie prakticky na to, ako tunnelling sa dá využiť pomocou SSH (Secure shell), ktorý je bežne povolený na presmerovanie komunikácie.


Komunikácia cez tunel.
Zväčšiť


Ak však chceme pristupovať ku službe z Internetu (vonkajšie IP adresovanie), musíme použiť spomínaný redirektor, ktorý bude v podstate „pašovať“ údaje cez legálnu službu a bude ovládať službu „ilegálnu“ podobne ako pri už spomínanom tunelovaní na LAN. Tento redirektor bude musieť vedieť pracovať so službou, ktorá je voľná a bude musieť vedieť v nej prijímať a odosielať údaje.

Tunelovanie cez redirektor
Zväčšiť


Čo sme teraz vlastne spravili? Predstavme si trojského koňa, ktorý je vlastne klient-server aplikáciou. Nech klientska časť je nainštalovaná na strane obete a vykonáva operáciu prihlásenia sa ku serveru, keď sa PC zapne. Potom na serveri my, ako útočník dokážeme vidieť, že jedná z obeti sa prihlásila a môžeme jej vyslať príkaz, napríklad na zobrazenie nejakej správy na vystrašenie.

V prípade, že obeť je vo vnútri nejakej siete a my chceme spojenie prepašovať na Internet, tak vlastne vytvoríme spomínaný tunel, medzi obeťou a nejakým serverom, na ktorom máme prístup (redirektor). Ten okrem toho, ešte forwarduje aj ďalší port, ktorým komunikuje s „fyzickou“ aplikáciu – naším programom. Takto vlastne plní úlohu sprostredkovateľa, pretože server na Internete vidia obaja – aj obeť aj útočník. Viac o tom sa dozvieme v ďalších častiach.

Neprehliadnite: