6. 4. 2006
Ako integrovať IPv6 do laboratoórnej siete
8:30 |
Zverejnil
Peter Svec |
Upraviť príspevok
1 IP verzie 4
Koncom šesťdesiatych rokov minulého storočia sa v oblasti sieťových technológií začala prejavovať potreba zaviesť komunikačný protokol, ktorý by bol nezávislý na hardvérovej implementácii, centrálnom riadení a rovnocennosti jednotlivých pripojených uzlov. V roku 1969 americká agentúra DARPA vyhlásila projekt na vytvorenie takejto siete. Nová sieť dostala meno ARPANET a stala sa základom budúceho Internetu. K jej vývoju sa pripojilo viacero organizácií. V polovici sedemdesiatych rokov vznikajú základy TCP (Cerf V., Dala Y., Sunshine C., 1974). V roku 1983 bol TCP/IP štandardizovaný a vyhlásený za jediný komunikačný protokol v prostredí ARPANETu. V roku 1990 sieť ARPANET zaniká a vzniká sieť Internet.
Základným komunikačným protokolom siete Internet je protokol IP (Postel J., 1981). V pôvodnom návrhu počíta IP protokol s jedinečnou adresou dlhou štyri bajty. Preto má táto verzia označenie 4. V čase keď sa definoval IP protokol, nikto nepredpokladal obrovský rast siete, vývoj a zlacnenie osobných počítačov a prudký rozvoj telekomunikačných technológií. Rozsah IP adries bol rozdelený do piatich tried, ktoré sa veľmi štedro prideľovali jednotlivým záujemcom o pripojenie k sieti.
Jednotlivé triedy IP adries sú uvedené v tabuľke č. 1.
Tab. 1 Rozdelenie tried IPv4
Začiatkom 90-tych rokov si zodpovední uvedomili, že takého delenie je veľmi neefektívne. Príliš veľa spoločnostiam sa pridelil počet adries, ktoré nevyužívali. S rastom žiadostí o pridelenie adries sa objavil problém ich vyčerpania. Začali sa preto hľadať možnosti ako vyriešiť nedostatok adries.
Pokiaľ sa nenašlo riešenie bolo nutné spomaliť rýchlosť akou sa rozdeľovali adresy. Zrušili sa preto triedy a zaviedlo sa teda beztriedne adresovanie. Zároveň sa zaviedli privátne adresy použiteľné len v intranetoch. Ako privátne adresy sa podľa RFC 1597 (Rekhter Y., Moskowitz B., Karrenberg D., de Groot G., 1994) vyčlenili siete 10.0.0.0/8, 172.16.0.0/12 a 192.168.0.0/24. Všetky ostatné adresy označujeme ako verejné. Privátne adresy spolu s mechanizmom NAT (Network Address Translation) vyriešili problém s nedostatkom IP adries na dostatočne dlhý čas. Princíp NAT spočíva v tom, že za pod jedinú verejnú IP adresu môžeme schovať ľubovoľný počet počítačov s privátnymi adresami.
Komplexné riešenie sa objavilo v roku 1994. Vznikol nový protokol, ktorý riešil nie len problém s nedostatočným počtom adries, ale aj mnohé ďalšie problémy. Nový protokol mal vedieť zabezpečiť skupinovú komunikáciu, bezpečnosť, mobilitu, prioritu dátových tokov a automatickú konfiguráciu.
Aj keď bol definovaný nový protokol, jeho masovému uvedeniu do praxe bráni skutočnosť, že technológia NAT je pre väčšinu organizácií dostačujúca. Preto pokiaľ nenarastie záujem o garantované vysokorýchlostné dátové prenosy a bezpečnosť prenosu bude IPv6 stále trocha v úzadí.
2 IP verzie 6
Výsledkom snaženia mnohých odborníkov je protokol verzie 6. Jednou zo základných vlastností nového protokolu je zmena dĺžky IP adresy na 128 bitov (Huitema C., 1997). Takéto rozšírenie nám dáva možnosť použiť 2128 adries, čo je približne 35 triliónov adries. Toto neuveriteľne veľké číslo je dostatočnou rezervou na veľmi dlhý čas.
Protokol IPv6 disponuje mnohými ďalšími vlastnosťami. Ako príklad si vymenujme tie najdôležitejšie:
Nová IP adresa má aj nový spôsob zápisu. Tvar adresy je rozdelený na osem 16 bitových častí písaných v šestnástkovej sústave. Jednotlivé čísla sú oddelené dvojbodkou. Syntax umožňuje používať aj skrátený zápis (tab. 2), kde
Tab. 2 Formáty zápisu IPv6 adresy
Protokol IPv6 nedelí adresy na triedy, ale definuje prefix, ktorý oddeľuje časť určenú pre označenie siete od časti určenej pre označenie pre jednotlivé pripojené počítače. Prefix sa udáva podobne ako u starých adries za lomkou. Vo všeobecnosti sa IPv6 adresy delia na
Na obr. 1 je zobrazené rozdelenie jednotlivých častí IPv6 adresy. Jednotlivé čísla uvádzajú začiatočný bit poľa. Celková dĺžka poľa je 128 bitov.
Obr. 1 Členenie globálnej adresy
3 Pripojenie k IPv6 sieti
3.1 Získanie IPv6 adresy
Postup prideľovania IPv6 adresy je nasledujúci:
Prvým krokom pripojenia sa k sieti IPv6 je výber poskytovateľa pripojenia. Natívny spôsob pripojenia sa k sieti nie je technicky jednoduchý, tak sa pripojenie k IPv6 sieti rieši tunelovaním IPv6 protokolu v rámci protokolu IPv4. Princíp tunela je zobrazený na obr. 2.
Obr. 2 Tunelovanie IPv6 protokolu
Aby sme sa pripojili k IPv6 sieti, musíme si nájsť poskytovateľa, ktorý nám umožní vytvoriť si k nemu tunel. Takýto poskytovateľ má pomenovanie IPv6 Tunnel Broker. Takýchto „brokerov“ je veľa. Ako príklad spomenieme Freenet6, Huricane Electric, SixXS, XS26, SingNet. Pre naše potreby sme si vybrali ako brokera kanadskú spoločnosť Hexago, ktorá poskytuje pripojenie k sieti Freenet6.
3.2 Registrácia tunela
Registrácia tunela a teda aj získanie IPv6 adresy spočíva v troch krokoch.
Tab. 3 Podporované operačné systémy pre TSP klienta
3.3 Inštalácia tunela
Pre overenie funkčnosti tunela sme nainštalovali TSP klienta na operačné systémy Windows XP SP2 a FreeBSD 6. Inštalácia na oboch systémoch bola bezproblémová a štandardná. V systéme Windows XP sa vytvorili dva sieťové adaptéry (obr. 3), ktoré umožnia vytvorenie tunela. Po spustení klienta (obr. 4) sa virtuálny adaptér pripojil rýchlosťou 10 Mbps a získal IP adresu 2001:5c0:8fff:fffe::44b7. Druhá strana tunela má IP adresu 2001:5c0:8fff:fffe::44b6 a slúži ako predvolená brána. Treba podotknúť, že systém bežiaci na Windows XP bol pripojený do súkromnej bezdrôtovej siete, a to cez viacnásobný NAT.
Obr. 3 Virtuálny adaptér umožňujúci pripojenie k IPv6 sieti
Obr. 4 TSP klient v aktívnom stave
V systéme FreeBSD sme úpravou konfiguračných súborov TSP klienta požiadali o pridelenie prefixu dĺžky /64 pre druhý sieťový adaptér v systéme. Zo systému sa tak stáva IPv6 router, ktorý bude prideľovať svojim klientom pripojeným na jeho vnútorné rozhranie IPv6 adresy a cez tunelované rozhranie bude smerovať komunikáciu do IPv6 siete. Systém s FreeBSD má pridelenú verejnú IP adresu verzie 4 zo sady pridelenej UKF v Nitre. Je teda priamo pripojený do Internetu.
TSP klient sa spúšťa štartovacím skriptom uloženým v /usr/local/etc/rc.d/freenet6.sh. Po spustení sa klient pripojí k brokerovi, autorizuje sa a pridelí IPv6 adresu virtuálnemu adaptéru (gif0) ako aj vnútornému rozhraniu (fxp0). Pridelené adresy sú uvedené na obr. 5.
fxp0: flags=8843 mtu 1500
options=8
inet6 fe80::20d:60ff:feab:31ee%fxp0 prefixlen 64 scopeid 0x1
inet6 2001:5c0:8dfe::1 prefixlen 64
ether 00:0d:60:ab:31:ee
media: Ethernet autoselect (none)
status: no carrier
gif0: flags=8051 mtu 1280
tunnel inet 194.160.210.164 --> 64.86.88.116
inet6 2001:5c0:8fff:fffe::44b9 --> 2001:5c0:8fff:fffe::44b8 prefixlen 128
inet6 fe80::20d:60ff:feab:31ee%gif0 prefixlen 64 scopeid 0x5
Obr. 5 Konfigurácia sieťových zariadení v systéme FreeBSD
3.4 Overenie funkčnosti tunela
Na overenie funkčnosti tunela sme použili štandardné nástroje oboch operačných systémov. Prvým krokom bolo overenie dostupnosti druhej strany tunela. Na systéme Windows XP aj FreeBSD je to príkaz ping6. Priebeh testu je zobrazený na obr. 6.
C:\Documents and Settings\Petko>ping6 2001:5c0:8fff:fffe::44b6 -t
Pinging 2001:5c0:8fff:fffe::44b6
from 2001:5c0:8fff:fffe::44b7 with 32 bytes of data:
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=232ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=211ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=209ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=354ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=386ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=311ms
Ping statistics for 2001:5c0:8fff:fffe::44b6:
Packets: Sent = 6, Received = 6, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 209ms, Maximum = 386ms, Average = 283ms
Obr. 6 Testovanie dostupnosti druhej strany tunela
Tunel bol dostupný z obidvoch systémov. Ďalej bolo treba zistiť, či sa tieto dva systémy v sieti vidia, teda či sú navzájom dostupné. Univerzitný firewall blokuje ping žiadosti na počítače vo vnútornej sieti. Keďže celá naša komunikácia prebieha vo vytvorenom tuneli, táto skutočnosť by nám nemala vadiť. Priebeh testu zobrazuje obr. 7.
C:\Documents and Settings\Petko>ping6 2001:5c0:8fff:fffe::44b9
Pinging 2001:5c0:8fff:fffe::44b9
from 2001:5c0:8fff:fffe::44b7 with 32 bytes of data:
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=340ms
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=372ms
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=315ms
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=340ms
Ping statistics for 2001:5c0:8fff:fffe::44b9:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 315ms, Maximum = 372ms, Average = 341ms
Obr. 7 Testovanie prechodu ping žiadosti IPv4 firewallom
Týmito príkazmi sme si overili, že komunikácia v rámci siete nášho brokera je bezproblémová. Našim cieľom ale nie je komunikovať iba v rámci jednej siete, ale v rámci viacerých sietí. Preto sme sa rozhodli preskúmať cesty k cieľu, ktorý je pripojený v inej IPv6 sieti ako je náš broker. Vybrali sme si brazílsky segment 6bone siete. Cestu sme preskúmali príkazom tracert6. Výsledok testu zobrazuje obr. 8.
C:\Documents and Settings\Petko>tracert6 www.6bone.rnp.br
Tracing route to virgo.6bone.rnp.br [3ffe:2b00:1:101:204:acff:fee6:50b1]
from 2001:5c0:8fff:fffe::44b7 over a maximum of 30 hops:
1 * 129 ms 285 ms 2001:5c0:8fff:fffe::44b6
2 283 ms 190 ms 259 ms 2001:5c0:0:5::114
3 393 ms * 417 ms if-5-0-1.6bb1.MTT-Montreal.ipv6.teleglobe.net
[2001:5a0:300::5]
4 323 ms * 296 ms gin-ad1-6bb1.ipv6.teleglobe.net [2001:5a0:200
::1]
5 267 ms 386 ms 347 ms eth10-0-0.xr1.ams1.gblx.net [2001:7f8:1::a500
:3549:1]
6 491 ms * 448 ms 2001:12f0:1:2011::1
7 548 ms * 570 ms 2001:12f0:1:2011::1
8 471 ms 555 ms * 2001:450:1:1::26
9 568 ms 695 ms 637 ms 2001:12f0:1:2011::2
10 578 ms 629 ms 626 ms 2001:12f0:0:fe::e1
11 695 ms 689 ms * 3ffe:2b00:500:2::1
12 719 ms 850 ms 675 ms 3ffe:2b00:1:101:204:acff:fee6:50b1
Trace complete.
Obr. 8 Testovanie trasy do inej IPv6 siete
3.5 Služby servera
Na FreeBSD sme sa rozhodli spustiť IPv6 služby. Ako prvú službu, ktorú bude server poskytovať je služba siete www. Systém FreeBSD má snáď najlepšie implementované IPv6 služby so všetkých unixových systémov. Ako webový server sme nainštalovali Apache vo verzii 1.3. Výsledok je zobrazený na obr. 9. Stránku sme prezerali v prehliadači Opera 8.51 volaním http://[2001:5c0:8fff:fffe::44b9]
Obr. 9 Webový server Apache dostupný cez sieť IPv6
S inicializáciou TSP klienta sa na serveri spustil démon rtadvd, ktorý umožňuje automatickú konfiguráciu klientov pripojených na vnútorné rozhranie fxp0. Týmto krokom sme pripojili celú učebňu k sieti IPv6.
4 Záver
Podarilo sa nám pripojiť sa k sieti IPv6 prostredníctvom voľne dostupného brokera a spojazdniť na jednom z počítačov služby internetového servera. Naším ďalším cieľom bude požiadať správcu adresného priestoru o pridelenie určitého rozsahu adries, ktoré budú použité pre jednotlivé koncové uzly. Ďalším cieľom bude spustenie väčšieho počtu internetových služieb, napríklad elektronickej pošty, systému DNS, webového servera, FTP servera a ďalších. Najväčším cieľom bude vytvoriť natívne, nie tunelované pripojenie do IPv6 siete.
5 Literatúra
Cerf V., Dala Y., Sunshine C. 1974. Specification of Internet Transmission Control Program. 1974. RFC 675
Deering S., Hinden R. 1998. Internet Protocol, Version 6 (IPv6) Specification. 1998. RFC 2460
Huitema, C. 1997. IPv6: The New Internet Protocol, (Second edition). Prentice Hall, 1997. ISBN 0138505055.
Miller, P.E., Miller M. A. 2000. Implementing IPv6: Supporting the Next Generation Internet Protocols, Faster City: IDG Books Worldwide, ISBN: 0764545892
Postel J. 1981. Internet Protocol. 1981. RFC 791
Rekhter Y., Moskowitz B., Karrenberg D., de Groot G., 1994. Address Allocation for Private Internets. 1994. RFC 1597
Zdroj:
Švec, Peter: Ako integrovať IPv6 do laboratórnej siete.
In: VII. vedecká konferencia doktorandov a mladých vedeckých pracovníkov. - Nitra: UKF, 2006. - ISBN 80-8050-960-3. - S. 747-754.
Koncom šesťdesiatych rokov minulého storočia sa v oblasti sieťových technológií začala prejavovať potreba zaviesť komunikačný protokol, ktorý by bol nezávislý na hardvérovej implementácii, centrálnom riadení a rovnocennosti jednotlivých pripojených uzlov. V roku 1969 americká agentúra DARPA vyhlásila projekt na vytvorenie takejto siete. Nová sieť dostala meno ARPANET a stala sa základom budúceho Internetu. K jej vývoju sa pripojilo viacero organizácií. V polovici sedemdesiatych rokov vznikajú základy TCP (Cerf V., Dala Y., Sunshine C., 1974). V roku 1983 bol TCP/IP štandardizovaný a vyhlásený za jediný komunikačný protokol v prostredí ARPANETu. V roku 1990 sieť ARPANET zaniká a vzniká sieť Internet.
Základným komunikačným protokolom siete Internet je protokol IP (Postel J., 1981). V pôvodnom návrhu počíta IP protokol s jedinečnou adresou dlhou štyri bajty. Preto má táto verzia označenie 4. V čase keď sa definoval IP protokol, nikto nepredpokladal obrovský rast siete, vývoj a zlacnenie osobných počítačov a prudký rozvoj telekomunikačných technológií. Rozsah IP adries bol rozdelený do piatich tried, ktoré sa veľmi štedro prideľovali jednotlivým záujemcom o pripojenie k sieti.
Jednotlivé triedy IP adries sú uvedené v tabuľke č. 1.
Tab. 1 Rozdelenie tried IPv4
Trieda Rozsah Počet sietí Počet počítačov v jednej sieti
A 1.0.0.0/8 – 126.0.0.0/8 126 224-2 = 16 777 214
B 128.0.0.1/16 – 191.0.0.0/16 214 = 16 384 216-2 = 65 534
C 192.0.0.1/24 – 223.0.0.0/24 222 = 4 194 304 28-2 = 254 počítačov
D 224.0.0.1 – 239.255.255.255 – –
E 240.0.0.1 – 254.255.255.255 – –
Začiatkom 90-tych rokov si zodpovední uvedomili, že takého delenie je veľmi neefektívne. Príliš veľa spoločnostiam sa pridelil počet adries, ktoré nevyužívali. S rastom žiadostí o pridelenie adries sa objavil problém ich vyčerpania. Začali sa preto hľadať možnosti ako vyriešiť nedostatok adries.
Pokiaľ sa nenašlo riešenie bolo nutné spomaliť rýchlosť akou sa rozdeľovali adresy. Zrušili sa preto triedy a zaviedlo sa teda beztriedne adresovanie. Zároveň sa zaviedli privátne adresy použiteľné len v intranetoch. Ako privátne adresy sa podľa RFC 1597 (Rekhter Y., Moskowitz B., Karrenberg D., de Groot G., 1994) vyčlenili siete 10.0.0.0/8, 172.16.0.0/12 a 192.168.0.0/24. Všetky ostatné adresy označujeme ako verejné. Privátne adresy spolu s mechanizmom NAT (Network Address Translation) vyriešili problém s nedostatkom IP adries na dostatočne dlhý čas. Princíp NAT spočíva v tom, že za pod jedinú verejnú IP adresu môžeme schovať ľubovoľný počet počítačov s privátnymi adresami.
Komplexné riešenie sa objavilo v roku 1994. Vznikol nový protokol, ktorý riešil nie len problém s nedostatočným počtom adries, ale aj mnohé ďalšie problémy. Nový protokol mal vedieť zabezpečiť skupinovú komunikáciu, bezpečnosť, mobilitu, prioritu dátových tokov a automatickú konfiguráciu.
Aj keď bol definovaný nový protokol, jeho masovému uvedeniu do praxe bráni skutočnosť, že technológia NAT je pre väčšinu organizácií dostačujúca. Preto pokiaľ nenarastie záujem o garantované vysokorýchlostné dátové prenosy a bezpečnosť prenosu bude IPv6 stále trocha v úzadí.
2 IP verzie 6
Výsledkom snaženia mnohých odborníkov je protokol verzie 6. Jednou zo základných vlastností nového protokolu je zmena dĺžky IP adresy na 128 bitov (Huitema C., 1997). Takéto rozšírenie nám dáva možnosť použiť 2128 adries, čo je približne 35 triliónov adries. Toto neuveriteľne veľké číslo je dostatočnou rezervou na veľmi dlhý čas.
Protokol IPv6 disponuje mnohými ďalšími vlastnosťami. Ako príklad si vymenujme tie najdôležitejšie:
- skupinové adresovanie – skupinová komunikácia je dôležitá pri dátových prenosoch ako sú rádiové a televízne vysielanie alebo videokonferencia. Dátový tok sa nevysiela každému účastníkovi zvlášť (unicast) ale celej skupine účastníkov (multicast). IPv6 zavádza ešte jeden spôsob skupinovej adresácie. Je ňou metóda, pri ktorej odpovedá najbližší účastník (anycast).
- bezpečnostné funkcie – priamo v protokole sú definované autorizačné a autentifikačné funkcie
- autokonfigurácia – automatická konfigurácia sieťových nastavení na základe jedinečného 64 bitového EUI sieťového adaptéru.
- definovanie priority prenosu – protokol rozlišuje medzi dátovými tokmi, ktoré musia byť prenášané v reálnom čase, a teda ich spracovanie musí byť uprednostnené pred spracovaním komunikácie nižšej priority
- mobilita – umožňuje jednoduchý presun účastníka medzi rôznymi počítačovými sieťami so zachovaním si adresy, ktorú mal vo svojej domácej sieti
Nová IP adresa má aj nový spôsob zápisu. Tvar adresy je rozdelený na osem 16 bitových častí písaných v šestnástkovej sústave. Jednotlivé čísla sú oddelené dvojbodkou. Syntax umožňuje používať aj skrátený zápis (tab. 2), kde
- sa nemusia písať uvádzacie nuly,
- štyri nuly môžu nahradiť jednou nulou a
- skupina núl sa môže na nahradiť dvojbodkou.
Tab. 2 Formáty zápisu IPv6 adresy
0123:0000:0000:0000:FEDC:BA98:7654:3210
123:0000:0000:0000:FEDC:BA98:7654:3210
123:0:0:0:FEDC:BA98:7654:3210
123::FEDC:BA98:7654:3210
Protokol IPv6 nedelí adresy na triedy, ale definuje prefix, ktorý oddeľuje časť určenú pre označenie siete od časti určenej pre označenie pre jednotlivé pripojené počítače. Prefix sa udáva podobne ako u starých adries za lomkou. Vo všeobecnosti sa IPv6 adresy delia na
- globálne – sú jednoznačné v celom Internete
- lokálne – sú jednoznačné v rámci jednej inštitúcie
- linkové – sú jednoznačné iba v rámci jednej fyzickej siete
Na obr. 1 je zobrazené rozdelenie jednotlivých častí IPv6 adresy. Jednotlivé čísla uvádzajú začiatočný bit poľa. Celková dĺžka poľa je 128 bitov.
Obr. 1 Členenie globálnej adresy
- I je štandardný identifikátor pre globálnu adresu (3 bity), binárne sa rovná 001
- TLA (top level aggregation, 13 bitov) je identifikátor agregačnej inštitúcie najvyššej úrovne (globálny poskytovateľ).
- NLA (next level aggregation, 32 bitov) je identifikátor agregačnej inštitúcie, ktorá je na ďalšej úrovni v poradí (lokálny poskytovateľ)
- NLA a TLA zodpovedajú topológii „verejného“ Internetu, teda siete mimo koncovú pripojenú organizáciu
- SLA (site level aggregation, 16 bitov) je agregačný identifikátor pre jednu lokalitu (pre inštitúciu). Rozdelenie v poli SLA zodpovedá topológii miestnej siete.
- Zvyšok adresy tvorí 64 bitový identifikátor sieťového rozhrania koncového uzla, ktoré môže byť vytvorené napríklad z EUI-64, ktoré je vytvorené z MAC adresy rozhrania.
3 Pripojenie k IPv6 sieti
3.1 Získanie IPv6 adresy
Postup prideľovania IPv6 adresy je nasledujúci:
- Poskytovateľ najvyššej úrovne dostane od registračnej autority pridelený identifikátor (prefix siete), z rozsahu ktorého môže prideľovať identifikátory nižšej úrovne jednotlivým ISP – poskytovateľom služieb Internetu.
- ISP potom v rámci svojho identifikátora prideľujú číselne kombinácie pre svojich klientov.
- Koncový klienti si pridelený prefix (najčastejšie dĺžky /48) rozdelia podľa svojich potrieb.
Prvým krokom pripojenia sa k sieti IPv6 je výber poskytovateľa pripojenia. Natívny spôsob pripojenia sa k sieti nie je technicky jednoduchý, tak sa pripojenie k IPv6 sieti rieši tunelovaním IPv6 protokolu v rámci protokolu IPv4. Princíp tunela je zobrazený na obr. 2.
Obr. 2 Tunelovanie IPv6 protokolu
Aby sme sa pripojili k IPv6 sieti, musíme si nájsť poskytovateľa, ktorý nám umožní vytvoriť si k nemu tunel. Takýto poskytovateľ má pomenovanie IPv6 Tunnel Broker. Takýchto „brokerov“ je veľa. Ako príklad spomenieme Freenet6, Huricane Electric, SixXS, XS26, SingNet. Pre naše potreby sme si vybrali ako brokera kanadskú spoločnosť Hexago, ktorá poskytuje pripojenie k sieti Freenet6.
3.2 Registrácia tunela
Registrácia tunela a teda aj získanie IPv6 adresy spočíva v troch krokoch.
- vyplnenie registračného formulára na adrese http://www.hexago.com
- nainštalovanie TSP klienta (TSP klient je potrebný pre vytvorenie virtuálneho adaptéra siete a pre autorizáciu u brokera). Tabuľka 3 uvádza podporované operačné systémy TSP klienta.
- spustenie TSP klienta
Tab. 3 Podporované operačné systémy pre TSP klienta
3.3 Inštalácia tunela
Pre overenie funkčnosti tunela sme nainštalovali TSP klienta na operačné systémy Windows XP SP2 a FreeBSD 6. Inštalácia na oboch systémoch bola bezproblémová a štandardná. V systéme Windows XP sa vytvorili dva sieťové adaptéry (obr. 3), ktoré umožnia vytvorenie tunela. Po spustení klienta (obr. 4) sa virtuálny adaptér pripojil rýchlosťou 10 Mbps a získal IP adresu 2001:5c0:8fff:fffe::44b7. Druhá strana tunela má IP adresu 2001:5c0:8fff:fffe::44b6 a slúži ako predvolená brána. Treba podotknúť, že systém bežiaci na Windows XP bol pripojený do súkromnej bezdrôtovej siete, a to cez viacnásobný NAT.
Obr. 3 Virtuálny adaptér umožňujúci pripojenie k IPv6 sieti
Obr. 4 TSP klient v aktívnom stave
V systéme FreeBSD sme úpravou konfiguračných súborov TSP klienta požiadali o pridelenie prefixu dĺžky /64 pre druhý sieťový adaptér v systéme. Zo systému sa tak stáva IPv6 router, ktorý bude prideľovať svojim klientom pripojeným na jeho vnútorné rozhranie IPv6 adresy a cez tunelované rozhranie bude smerovať komunikáciu do IPv6 siete. Systém s FreeBSD má pridelenú verejnú IP adresu verzie 4 zo sady pridelenej UKF v Nitre. Je teda priamo pripojený do Internetu.
TSP klient sa spúšťa štartovacím skriptom uloženým v /usr/local/etc/rc.d/freenet6.sh. Po spustení sa klient pripojí k brokerovi, autorizuje sa a pridelí IPv6 adresu virtuálnemu adaptéru (gif0) ako aj vnútornému rozhraniu (fxp0). Pridelené adresy sú uvedené na obr. 5.
fxp0: flags=8843
options=8
inet6 fe80::20d:60ff:feab:31ee%fxp0 prefixlen 64 scopeid 0x1
inet6 2001:5c0:8dfe::1 prefixlen 64
ether 00:0d:60:ab:31:ee
media: Ethernet autoselect (none)
status: no carrier
gif0: flags=8051
tunnel inet 194.160.210.164 --> 64.86.88.116
inet6 2001:5c0:8fff:fffe::44b9 --> 2001:5c0:8fff:fffe::44b8 prefixlen 128
inet6 fe80::20d:60ff:feab:31ee%gif0 prefixlen 64 scopeid 0x5
Obr. 5 Konfigurácia sieťových zariadení v systéme FreeBSD
3.4 Overenie funkčnosti tunela
Na overenie funkčnosti tunela sme použili štandardné nástroje oboch operačných systémov. Prvým krokom bolo overenie dostupnosti druhej strany tunela. Na systéme Windows XP aj FreeBSD je to príkaz ping6. Priebeh testu je zobrazený na obr. 6.
Pinging 2001:5c0:8fff:fffe::44b6
from 2001:5c0:8fff:fffe::44b7 with 32 bytes of data:
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=232ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=211ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=209ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=354ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=386ms
Reply from 2001:5c0:8fff:fffe::44b6: bytes=32 time=311ms
Ping statistics for 2001:5c0:8fff:fffe::44b6:
Packets: Sent = 6, Received = 6, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 209ms, Maximum = 386ms, Average = 283ms
Tunel bol dostupný z obidvoch systémov. Ďalej bolo treba zistiť, či sa tieto dva systémy v sieti vidia, teda či sú navzájom dostupné. Univerzitný firewall blokuje ping žiadosti na počítače vo vnútornej sieti. Keďže celá naša komunikácia prebieha vo vytvorenom tuneli, táto skutočnosť by nám nemala vadiť. Priebeh testu zobrazuje obr. 7.
Pinging 2001:5c0:8fff:fffe::44b9
from 2001:5c0:8fff:fffe::44b7 with 32 bytes of data:
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=340ms
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=372ms
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=315ms
Reply from 2001:5c0:8fff:fffe::44b9: bytes=32 time=340ms
Ping statistics for 2001:5c0:8fff:fffe::44b9:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 315ms, Maximum = 372ms, Average = 341ms
Obr. 7 Testovanie prechodu ping žiadosti IPv4 firewallom
Týmito príkazmi sme si overili, že komunikácia v rámci siete nášho brokera je bezproblémová. Našim cieľom ale nie je komunikovať iba v rámci jednej siete, ale v rámci viacerých sietí. Preto sme sa rozhodli preskúmať cesty k cieľu, ktorý je pripojený v inej IPv6 sieti ako je náš broker. Vybrali sme si brazílsky segment 6bone siete. Cestu sme preskúmali príkazom tracert6. Výsledok testu zobrazuje obr. 8.
Tracing route to virgo.6bone.rnp.br [3ffe:2b00:1:101:204:acff:fee6:50b1]
from 2001:5c0:8fff:fffe::44b7 over a maximum of 30 hops:
1 * 129 ms 285 ms 2001:5c0:8fff:fffe::44b6
2 283 ms 190 ms 259 ms 2001:5c0:0:5::114
3 393 ms * 417 ms if-5-0-1.6bb1.MTT-Montreal.ipv6.teleglobe.net
[2001:5a0:300::5]
4 323 ms * 296 ms gin-ad1-6bb1.ipv6.teleglobe.net [2001:5a0:200
::1]
5 267 ms 386 ms 347 ms eth10-0-0.xr1.ams1.gblx.net [2001:7f8:1::a500
:3549:1]
6 491 ms * 448 ms 2001:12f0:1:2011::1
7 548 ms * 570 ms 2001:12f0:1:2011::1
8 471 ms 555 ms * 2001:450:1:1::26
9 568 ms 695 ms 637 ms 2001:12f0:1:2011::2
10 578 ms 629 ms 626 ms 2001:12f0:0:fe::e1
11 695 ms 689 ms * 3ffe:2b00:500:2::1
12 719 ms 850 ms 675 ms 3ffe:2b00:1:101:204:acff:fee6:50b1
Trace complete.
3.5 Služby servera
Na FreeBSD sme sa rozhodli spustiť IPv6 služby. Ako prvú službu, ktorú bude server poskytovať je služba siete www. Systém FreeBSD má snáď najlepšie implementované IPv6 služby so všetkých unixových systémov. Ako webový server sme nainštalovali Apache vo verzii 1.3. Výsledok je zobrazený na obr. 9. Stránku sme prezerali v prehliadači Opera 8.51 volaním http://[2001:5c0:8fff:fffe::44b9]
Obr. 9 Webový server Apache dostupný cez sieť IPv6
S inicializáciou TSP klienta sa na serveri spustil démon rtadvd, ktorý umožňuje automatickú konfiguráciu klientov pripojených na vnútorné rozhranie fxp0. Týmto krokom sme pripojili celú učebňu k sieti IPv6.
4 Záver
Podarilo sa nám pripojiť sa k sieti IPv6 prostredníctvom voľne dostupného brokera a spojazdniť na jednom z počítačov služby internetového servera. Naším ďalším cieľom bude požiadať správcu adresného priestoru o pridelenie určitého rozsahu adries, ktoré budú použité pre jednotlivé koncové uzly. Ďalším cieľom bude spustenie väčšieho počtu internetových služieb, napríklad elektronickej pošty, systému DNS, webového servera, FTP servera a ďalších. Najväčším cieľom bude vytvoriť natívne, nie tunelované pripojenie do IPv6 siete.
5 Literatúra
Cerf V., Dala Y., Sunshine C. 1974. Specification of Internet Transmission Control Program. 1974. RFC 675
Deering S., Hinden R. 1998. Internet Protocol, Version 6 (IPv6) Specification. 1998. RFC 2460
Huitema, C. 1997. IPv6: The New Internet Protocol, (Second edition). Prentice Hall, 1997. ISBN 0138505055.
Miller, P.E., Miller M. A. 2000. Implementing IPv6: Supporting the Next Generation Internet Protocols, Faster City: IDG Books Worldwide, ISBN: 0764545892
Postel J. 1981. Internet Protocol. 1981. RFC 791
Rekhter Y., Moskowitz B., Karrenberg D., de Groot G., 1994. Address Allocation for Private Internets. 1994. RFC 1597
Zdroj:
Švec, Peter: Ako integrovať IPv6 do laboratórnej siete.
In: VII. vedecká konferencia doktorandov a mladých vedeckých pracovníkov. - Nitra: UKF, 2006. - ISBN 80-8050-960-3. - S. 747-754.
26. 1. 2006
Bezpečnosť webových informačných systémov.
8:30 |
Zverejnil
Peter Svec |
Upraviť príspevok
1 Úvod
Pri analyzovaní úrovne zabezpečenia informačného systému si musíme postaviť otázku, kde sú jeho najcitlivejšie miesta. Je dôležité si uvedomiť, že problém zabezpečenia je komplexný a nesmieme sa zameriavať iba na zabezpečenie jednej časti aplikácie, ale aj na bezpečnosť servera a jeho ďalších služieb a aplikácií.
Musíme si tiež uvedomiť, odkiaľ budú prichádzať útoky na našu aplikáciu. Je všeobecne známe, že najviac útokov prichádza z vlastnej spoločnosti, z vlastnej siete. Druhá veľká skupina útokov sú amatéri, ktorý skúšajú rôzne aplikácie, ktorými sa dá útočiť a treťou najnebezpečnejšou a najmenšou skupinou sú profesionáli, ktorí vedia, čo robia.
Katedra informatiky UKF v Nitre použila pri vývoji svojho informačného systému skriptovací jazyk PHP v kombinácii s webových serverom Apache a databázových serverom MySQL. Za operačný systém servera sme si zvolili unixový systém FreeBSD. Tento článok poukazuje na najzákladnejšie bezpečnostné riziká, ktorým sa treba vyhnúť a neslúži ako návod na prienik do iných informačných systémov.
2 Útok priamo na služby servera
2.1 Pokus o získanie shell prístupu
Najčastejším útokom je pokus o získanie shell prístupu. Útok je ľahké spozorovať, pretože je signalizovaný hádaním prihlasovacích mien a hesiel. Ďalšími metódami ako získať shell prístup, je využitie chyby v nejakej aplikácií (tzv. diera).
Shell prístup umožňuje získať veľké množstvo informácií o serveri a o službách, ktoré server poskytuje, o jeho hardvérovej konfigurácii, o používateľských účtoch. Všetky tieto poznatky sa zbierajú za účelom získania účtu superpoužívateľa (roota). Po nadobudnutí účtu roota získava útočník plnú kontrolu nad systémom. Je len na ňom, ako s túto moc využije. Jediným príkazom môže zmazať všetky údaje v systéme, čo je však celkom zbytočné, pretože väčšina údajov je pravidelne zálohovaná a vymazaním údajov sa útočník zbytočne odhalí a prinúti správcu zvýšiť bezpečnostné opatrenia a odreže si tým cestu. Musíme si uvedomiť, že prienikom na ľubovoľný server vo vnútornej sieti, sa útočník dostáva do pozície dôveryhodného zamestnanca, teda je súčasťou vnútornej siete.
Spôsob ochrany proti uhádnutiu hesla je v disciplíne používateľov. Je dôležité ich naučiť, že musia používať bezpečné heslá. To znamená, že v hesle sa musia vyskytovať kombinácie veľkých a malých písmen, číslic a špeciálnych znakov. Doporučuje sa používať dostatočne dlhé heslá a pravidelne ich meniť. Pri zmene hesla sa nové, sa toto heslo nesmie na staré veľmi podobať. Prvých 8 znakov sa vôbec nesmie zhodovať vôbec.
Spôsob ochrany pri útoku cez dieru aplikácie je zasa v disciplíne správcu systému. Pravidelná aktualizácia aplikácií, aplikovanie bezpečnostných záplat a správna konfigurácia rapídne znižuje riziko napadnutia.
2.2 Útoky na služby bežiace na servery
Služby, ktoré bežia na serveri, môžeme podľa spôsobu prístupu k nim rozdeliť do troch skupín:
Služieb prístupných z Internetu by nemalo byť veľa a mali by sme povoliť len tie, ktoré naozaj potrebujeme. Keďže sa venujeme webovým systémom, tak jednou z povolených služieb musí byť práve webový server. Ďalšími povolenými službami sú shell prístup a emailová komunikácia. Všetky ostatné služby sú z Internetu zakázané korporátnym firewallom.
Povedali sme si, že najviac útokov prichádza z vnútornej siete. Vnútorná sieť nie je chránená korporátnym firewallom. Náš server je preto vystavený priamym útokom. Riešením proti útokom zvnútra je pokladať vnútornú sieť za nedôveryhodnú a správať sa k nej ako k Internetu. To znamená, povoliť prístup len k vybraným službám. Túto funkcionalitu nám zabezpečí firewall na strane servera.
3 Útoky na webový server apache
3.1 Získanie informácií
Prvým krokom je získanie informácii o webovom serveri. Webový server Apache umožňuje volaním stránok /server-info a /server-status získať podrobné informácie o konfigurácií servera. Útočník vie potom oveľa ľahšie identifikovať slabé miesta a zamerať sa práve na ne.
Obr. 1 Zobrazenie informácií o webovom serveri Apache
Obr.2 Zobrazenie stavu webového servera Apache
Spôsob ochrany je jednoduchý. Upravíme konfiguračný súbor Apache servera, tak aby zobrazenie týchto informácií povolil len z lokálneho sieťového rozhrania.
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
SetHandler server-info
Order deny,allow
Deny from all
Allow from 127.0.0.1
3.2 Pokus o odoprenie služieb (DoS útok)
Odoprenie služieb, čiže denial-of-service je útok na počítačový systém alebo počítačovú sieť, ktorý má za následok znemožnenie prístupu k bežným službám. Táto nedostupnosť je vytvorená znížením šírky prenosového pásma siete obete, čo má za následok stratu sieťovej konektivity (schopnosť nadviazať sieťové spojenie). Druhou metódou je preťaženie systému tak, že nebude schopný včas odpovedať na požiadavky používateľov. Obrana systému Apache spočíva v doinštalovaní a konfigurácii modulu dosevasive. Pokiaľ sa v krátkom časovom okamihu zopakujú požiadavky buď na tú istú stránku, alebo z tej istej IP adresy, odmietnu sa na istý čas všetky požiadavky z tohto počítača.
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify root@prometheus.ukf.sk
DOSLogDir "/var/log/dos"
DOSWhiteList 127.0.0.1
4 Útoky na databázový server
Náš informačný systém beží na databázovom systéme MySQL. Korporátny firewall neumožňuje pripojenie k nemu z Internetu. Z lokálnej siete je pripojenie možné. Podobne ako pri pokusoch o získanie shell prístupu, aj útok na databázový systém spočíva v uhádnutí mena a hesla používateľa. Spôsob ochrany je v zamedzení prístupu k databázam z iného počítača ako z lokálneho. Toto treba mať na pamäti pri vytváraní používateľských účtov v MySQL.
5 Útoky na aplikačnú vrstvu
Útok na túto vrstvu je najjednoduchší. Útočník nestojí proti týmu správcov systémov. Nemusí sa prebiť cez sériu firewallov, ktoré mu stoja v ceste. Stačí mu odhaliť chybu, ktorá vznikla nepozornosťou alebo neskúsenosťou programátora, alebo slabinou použitého programovacieho jazyka.
5.1 SQL Injection
SQL injection je možnosť vložiť do aplikácie SQL dotazy, ktoré neočakáva, a ktorých výsledkom je získanie citlivých údajov alebo možnosť autorizovať sa voči aplikácii bez znalosti prihlasovacích údajov.
Bránou pre SQL injection je ľubovoľný html formulár, ktorý odosiela údaje databázovému serveru. S veľmi veľkou pravdepodobnosťou je takouto vstupnou bránou prihlasovací dialóg.
Normálny SQL dotaz vyzerá nasledovne
SELECT * FROM users WHERE name = '" + $userName + "';
SQL umožňuje spájanie dotazov. Po bodkočiarke v dotaze môže nasledovať dotaz ďalší. Do poľa pre zadanie mena sme umiestnili dotaz, ktorý je zobrazený tučne. Tento dotaz spôsobí zmazanie tabuľky používateľov.
SELECT * FROM users WHERE name = 'a'; DROP TABLE users; SELECT * FROM data WHERE name LIKE '%';
To, čo sa do SQL dotazu vloží, je len na tvorivosti útočníka. Ochranou proti takémuto počínaniu útočníka je kontrola vstupov a ošetrenie premenných predtým, ako ich odošleme v rámci dotazu SQL serveru. Nebezpečnými znakmi v dotazoch sú \x00, \n, \r, \, ', " a \x1a. Ochranou proti SQL injection je v jazyku php použitie funkcie mysql_real_escape_string()
Po použití tejto funkcie vyzerá náš dotaz nasledovne
SELECT * FROM users WHERE name = \"".
mysql_real_escape_string($user_name)."\""
5.2 XSS (Cross site scripting)
Cross site scripting je forma útoku na skripty spúšťané na strane webového klienta. Najčastejšou formou je podstrčenie JavaScriptu. Najviac používané sú skripty, ktoré spôsobia presmerovanie na inú webovú stránku alebo vypísanie nejakého chybového hlásenia. Veľmi častým použitím XSS je sociálne inžinierstvo. Táto metóda má za cieľ prinútiť používateľov prezradiť svoje identifikačné údaje bez toho aby o tom vôbec vedeli. Príkladom takéhoto XSS je napríklad takého volanie:
Obr. 3 Ukážka sociálneho inžinierstva
Takýto skript vyprodukuje žiadosť zobrazenú na obrázku. Veľké percento používateľov takémuto hláseniu dôveruje a s radosťou napíše svoje heslo, ktoré sa ako vidíme odošle na server 10.1.1.1, ktorý je pod kontrolou útočníka. Keďže javascript sa spúšťa na strane webového klienta, na jeho správnu funkčnosť je nutná nevedomosť používateľa.
XSS je možné použiť pri aplikáciách typu návštevná kniha, kde má hocikto možnosť vložiť do stránky uvedený kód. Pokiaľ sa takáto aplikácia na stránke nenachádza, tak XSS nie je pre nás hrozbou.
Ak takúto aplikáciu potrebujeme, tak môžeme použiť php funkciu htmlspecialchars(), ktorá skonvertuje špeciálne znaky na ich ekvivalentné HTML entity. Za špeciálne znaky pritom považujeme &, <, >, apostrof a úvodzovky. Nahradením znakov <, > znefunkčníme vložené javascripty.
6 Záver
Pokúsili sme sa poukázať na najzákladnejšie bezpečnostné chyby v návrhu webového informačného systému. Je dôležité si uvedomiť, že základom bezpečného systému je dobre chránený server a jeho služby a správny návrh aplikácie. Je len na programátorovi, ako bude zaobchádzať so vstupnými údajmi od používateľa. Od aplikácie sa očakáva dôsledná kontrola týchto vstupných údajov a ich zmena pred tým ako sa odošlú na spracovanie databázovým systémom.
7 Literatúra
GARDIAN, M. – VYSKOČ, J.: „Malá“ informačná bezpečnosť. Data Security Management, r. VIII, č. 3, 2004, str. 14-17
MCCLURE, S. – SCAMBRAY, J. – KURTZ, G.: Hacking bez tajemství. Brno : Computer Press, 2003, 612 s. ISBN 80-722-6948-8
http://en.wikipedia.org/wiki/Cross_site_scripting
http://en.wikipedia.org/wiki/SQL_Injection
Zdroj:
Švec, Peter - Drlík, Martin: Bezpečnosť webových informačných systémov.
In: SIT 2006 : Sieťové a informačné technológie : zborník zo seminára s medzinárodnou účasťou. - Nitra: SPU, 2006. - ISBN 80-8069-664-0. - S. 115-125.
Pri analyzovaní úrovne zabezpečenia informačného systému si musíme postaviť otázku, kde sú jeho najcitlivejšie miesta. Je dôležité si uvedomiť, že problém zabezpečenia je komplexný a nesmieme sa zameriavať iba na zabezpečenie jednej časti aplikácie, ale aj na bezpečnosť servera a jeho ďalších služieb a aplikácií.
Musíme si tiež uvedomiť, odkiaľ budú prichádzať útoky na našu aplikáciu. Je všeobecne známe, že najviac útokov prichádza z vlastnej spoločnosti, z vlastnej siete. Druhá veľká skupina útokov sú amatéri, ktorý skúšajú rôzne aplikácie, ktorými sa dá útočiť a treťou najnebezpečnejšou a najmenšou skupinou sú profesionáli, ktorí vedia, čo robia.
Katedra informatiky UKF v Nitre použila pri vývoji svojho informačného systému skriptovací jazyk PHP v kombinácii s webových serverom Apache a databázových serverom MySQL. Za operačný systém servera sme si zvolili unixový systém FreeBSD. Tento článok poukazuje na najzákladnejšie bezpečnostné riziká, ktorým sa treba vyhnúť a neslúži ako návod na prienik do iných informačných systémov.
2 Útok priamo na služby servera
2.1 Pokus o získanie shell prístupu
Najčastejším útokom je pokus o získanie shell prístupu. Útok je ľahké spozorovať, pretože je signalizovaný hádaním prihlasovacích mien a hesiel. Ďalšími metódami ako získať shell prístup, je využitie chyby v nejakej aplikácií (tzv. diera).
Shell prístup umožňuje získať veľké množstvo informácií o serveri a o službách, ktoré server poskytuje, o jeho hardvérovej konfigurácii, o používateľských účtoch. Všetky tieto poznatky sa zbierajú za účelom získania účtu superpoužívateľa (roota). Po nadobudnutí účtu roota získava útočník plnú kontrolu nad systémom. Je len na ňom, ako s túto moc využije. Jediným príkazom môže zmazať všetky údaje v systéme, čo je však celkom zbytočné, pretože väčšina údajov je pravidelne zálohovaná a vymazaním údajov sa útočník zbytočne odhalí a prinúti správcu zvýšiť bezpečnostné opatrenia a odreže si tým cestu. Musíme si uvedomiť, že prienikom na ľubovoľný server vo vnútornej sieti, sa útočník dostáva do pozície dôveryhodného zamestnanca, teda je súčasťou vnútornej siete.
Spôsob ochrany proti uhádnutiu hesla je v disciplíne používateľov. Je dôležité ich naučiť, že musia používať bezpečné heslá. To znamená, že v hesle sa musia vyskytovať kombinácie veľkých a malých písmen, číslic a špeciálnych znakov. Doporučuje sa používať dostatočne dlhé heslá a pravidelne ich meniť. Pri zmene hesla sa nové, sa toto heslo nesmie na staré veľmi podobať. Prvých 8 znakov sa vôbec nesmie zhodovať vôbec.
Spôsob ochrany pri útoku cez dieru aplikácie je zasa v disciplíne správcu systému. Pravidelná aktualizácia aplikácií, aplikovanie bezpečnostných záplat a správna konfigurácia rapídne znižuje riziko napadnutia.
2.2 Útoky na služby bežiace na servery
Služby, ktoré bežia na serveri, môžeme podľa spôsobu prístupu k nim rozdeliť do troch skupín:
- služby prístupné z Internetu
- služby prístupné z lokálnej siete
- služby prístupné len priamo zo servera samotného
Služieb prístupných z Internetu by nemalo byť veľa a mali by sme povoliť len tie, ktoré naozaj potrebujeme. Keďže sa venujeme webovým systémom, tak jednou z povolených služieb musí byť práve webový server. Ďalšími povolenými službami sú shell prístup a emailová komunikácia. Všetky ostatné služby sú z Internetu zakázané korporátnym firewallom.
Povedali sme si, že najviac útokov prichádza z vnútornej siete. Vnútorná sieť nie je chránená korporátnym firewallom. Náš server je preto vystavený priamym útokom. Riešením proti útokom zvnútra je pokladať vnútornú sieť za nedôveryhodnú a správať sa k nej ako k Internetu. To znamená, povoliť prístup len k vybraným službám. Túto funkcionalitu nám zabezpečí firewall na strane servera.
3 Útoky na webový server apache
3.1 Získanie informácií
Prvým krokom je získanie informácii o webovom serveri. Webový server Apache umožňuje volaním stránok /server-info a /server-status získať podrobné informácie o konfigurácií servera. Útočník vie potom oveľa ľahšie identifikovať slabé miesta a zamerať sa práve na ne.
Obr. 1 Zobrazenie informácií o webovom serveri Apache
Obr.2 Zobrazenie stavu webového servera Apache
Spôsob ochrany je jednoduchý. Upravíme konfiguračný súbor Apache servera, tak aby zobrazenie týchto informácií povolil len z lokálneho sieťového rozhrania.
Order deny,allow
Deny from all
Allow from 127.0.0.1
Order deny,allow
Deny from all
Allow from 127.0.0.1
3.2 Pokus o odoprenie služieb (DoS útok)
Odoprenie služieb, čiže denial-of-service je útok na počítačový systém alebo počítačovú sieť, ktorý má za následok znemožnenie prístupu k bežným službám. Táto nedostupnosť je vytvorená znížením šírky prenosového pásma siete obete, čo má za následok stratu sieťovej konektivity (schopnosť nadviazať sieťové spojenie). Druhou metódou je preťaženie systému tak, že nebude schopný včas odpovedať na požiadavky používateľov. Obrana systému Apache spočíva v doinštalovaní a konfigurácii modulu dosevasive. Pokiaľ sa v krátkom časovom okamihu zopakujú požiadavky buď na tú istú stránku, alebo z tej istej IP adresy, odmietnu sa na istý čas všetky požiadavky z tohto počítača.
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify root@prometheus.ukf.sk
DOSLogDir "/var/log/dos"
DOSWhiteList 127.0.0.1
4 Útoky na databázový server
Náš informačný systém beží na databázovom systéme MySQL. Korporátny firewall neumožňuje pripojenie k nemu z Internetu. Z lokálnej siete je pripojenie možné. Podobne ako pri pokusoch o získanie shell prístupu, aj útok na databázový systém spočíva v uhádnutí mena a hesla používateľa. Spôsob ochrany je v zamedzení prístupu k databázam z iného počítača ako z lokálneho. Toto treba mať na pamäti pri vytváraní používateľských účtov v MySQL.
5 Útoky na aplikačnú vrstvu
Útok na túto vrstvu je najjednoduchší. Útočník nestojí proti týmu správcov systémov. Nemusí sa prebiť cez sériu firewallov, ktoré mu stoja v ceste. Stačí mu odhaliť chybu, ktorá vznikla nepozornosťou alebo neskúsenosťou programátora, alebo slabinou použitého programovacieho jazyka.
5.1 SQL Injection
SQL injection je možnosť vložiť do aplikácie SQL dotazy, ktoré neočakáva, a ktorých výsledkom je získanie citlivých údajov alebo možnosť autorizovať sa voči aplikácii bez znalosti prihlasovacích údajov.
Bránou pre SQL injection je ľubovoľný html formulár, ktorý odosiela údaje databázovému serveru. S veľmi veľkou pravdepodobnosťou je takouto vstupnou bránou prihlasovací dialóg.
Normálny SQL dotaz vyzerá nasledovne
SELECT * FROM users WHERE name = '" + $userName + "';
SQL umožňuje spájanie dotazov. Po bodkočiarke v dotaze môže nasledovať dotaz ďalší. Do poľa pre zadanie mena sme umiestnili dotaz, ktorý je zobrazený tučne. Tento dotaz spôsobí zmazanie tabuľky používateľov.
SELECT * FROM users WHERE name = 'a'; DROP TABLE users; SELECT * FROM data WHERE name LIKE '%';
To, čo sa do SQL dotazu vloží, je len na tvorivosti útočníka. Ochranou proti takémuto počínaniu útočníka je kontrola vstupov a ošetrenie premenných predtým, ako ich odošleme v rámci dotazu SQL serveru. Nebezpečnými znakmi v dotazoch sú \x00, \n, \r, \, ', " a \x1a. Ochranou proti SQL injection je v jazyku php použitie funkcie mysql_real_escape_string()
Po použití tejto funkcie vyzerá náš dotaz nasledovne
SELECT * FROM users WHERE name = \"".
mysql_real_escape_string($user_name)."\""
5.2 XSS (Cross site scripting)
Cross site scripting je forma útoku na skripty spúšťané na strane webového klienta. Najčastejšou formou je podstrčenie JavaScriptu. Najviac používané sú skripty, ktoré spôsobia presmerovanie na inú webovú stránku alebo vypísanie nejakého chybového hlásenia. Veľmi častým použitím XSS je sociálne inžinierstvo. Táto metóda má za cieľ prinútiť používateľov prezradiť svoje identifikačné údaje bez toho aby o tom vôbec vedeli. Príkladom takéhoto XSS je napríklad takého volanie:
Obr. 3 Ukážka sociálneho inžinierstva
Takýto skript vyprodukuje žiadosť zobrazenú na obrázku. Veľké percento používateľov takémuto hláseniu dôveruje a s radosťou napíše svoje heslo, ktoré sa ako vidíme odošle na server 10.1.1.1, ktorý je pod kontrolou útočníka. Keďže javascript sa spúšťa na strane webového klienta, na jeho správnu funkčnosť je nutná nevedomosť používateľa.
XSS je možné použiť pri aplikáciách typu návštevná kniha, kde má hocikto možnosť vložiť do stránky uvedený kód. Pokiaľ sa takáto aplikácia na stránke nenachádza, tak XSS nie je pre nás hrozbou.
Ak takúto aplikáciu potrebujeme, tak môžeme použiť php funkciu htmlspecialchars(), ktorá skonvertuje špeciálne znaky na ich ekvivalentné HTML entity. Za špeciálne znaky pritom považujeme &, <, >, apostrof a úvodzovky. Nahradením znakov <, > znefunkčníme vložené javascripty.
6 Záver
Pokúsili sme sa poukázať na najzákladnejšie bezpečnostné chyby v návrhu webového informačného systému. Je dôležité si uvedomiť, že základom bezpečného systému je dobre chránený server a jeho služby a správny návrh aplikácie. Je len na programátorovi, ako bude zaobchádzať so vstupnými údajmi od používateľa. Od aplikácie sa očakáva dôsledná kontrola týchto vstupných údajov a ich zmena pred tým ako sa odošlú na spracovanie databázovým systémom.
7 Literatúra
GARDIAN, M. – VYSKOČ, J.: „Malá“ informačná bezpečnosť. Data Security Management, r. VIII, č. 3, 2004, str. 14-17
MCCLURE, S. – SCAMBRAY, J. – KURTZ, G.: Hacking bez tajemství. Brno : Computer Press, 2003, 612 s. ISBN 80-722-6948-8
http://en.wikipedia.org/wiki/Cross_site_scripting
http://en.wikipedia.org/wiki/SQL_Injection
Zdroj:
Švec, Peter - Drlík, Martin: Bezpečnosť webových informačných systémov.
In: SIT 2006 : Sieťové a informačné technológie : zborník zo seminára s medzinárodnou účasťou. - Nitra: SPU, 2006. - ISBN 80-8069-664-0. - S. 115-125.
Prihlásiť na odber:
Príspevky (Atom)