V minulom článku sme sa venovali opisu útokov v rámci lokálnej siete (LAN). Na nasledujúcich riadkoch sa budeme zaoberať veľmi obsiahlou témou a to sieťovými rizikami a útokmi v rámci WAN a internetu. Článok vás oboznámi s potrebnou teóriou útokov a bezpečnostných opatrení súvisiacimi s hrozbami, ktoré pochádzajú z internetu.
Upozorňujem všetkých čitateľov, že článok slúži výhradne na študijné účely a autor nenesie žiadnu zodpovednosť za škody, alebo právne problémy, ktoré vám môžu vzniknúť jeho aplikovaním na reálnych sieťach. Využitie ďalej zmienených útokov môže byť ilegálne, či porušovať etické princípy, preto ich využívajte len na študijné a testovacie účely, výhradne na vašich testovacích sieťach. Všetky tu uvedené postupy vykonávate na vlastné riziko.
Vzhľadom na to, že tematika sieťových rizík v rámci WAN je veľmi rozsiahla, článok sme rozdelili na dve časti. Prvá časť sa zaoberá popisom útočníkov a motívov, ktoré ich k útokom vedú a niektorými základnými bezpečnostnými riešeniami.
V súčasnosti, keď sú k internetu pripojené všetky spoločnosti, či už malé, stredné alebo veľké a drvivá väčšina používateľov, musí prevádzkovateľ siete a všetkých služieb poskytovaných cez internet so sieťovými útokmi rátať vopred. Každý sa však podľa zamerania a dôležitosti dát, či dostupnosti svojich služieb môže chrániť inak.
V rámci internetu môže byť útočníkom v podstate ktokoľvek. Avšak nie je útočník ako útočník alebo hacker ako hacker. Ďalej uvedený rozbor je len veľmi stručný pre základne ozrejmenie potencionálnych zdrojov útokov.
V súčasnosti sú za väčšinu útokov zodpovedné automatické roboty (boty). Tie majú za úlohu systematicky útočiť zväčša na náhodné systémy podľa zadania svojich autorov. Najčastejšie hľadajú známe zraniteľnosti a snažia sa ich zneužiť. Pokúsia sa o automatický prienik, získanie dát, či o prípravu pôdy pre prípadný iný užšie zameraný útok. Avšak pri prieniku nevyvíjajú extra úsilie, pokiaľ sa im to nepodarí automaticky, zväčša sa potencionálnej obeti viac nevenujú. Obete sú teda náhodné alebo generované podľa istého systému, ale nikdy nejde o nič špecifické (o konkrétnu spoločnosť, či o konkrétny počítač). Do tejto skupiny môžeme zaradiť sieťové červy, ktorým sme sa podrobnejšie venovali v tomto článku. Obdobou sú aj rôzni boti vyhľadávajúci zraniteľnosti vo webových aplikáciách, po ich nájdení sa pokúsia vložiť do takejto aplikácie škodlivý skript, iframe a pod. Za týmito automatizovanými botmi zväčša stojí mnoho bežných infikovaných počítačov, ktorých majitelia o takejto činnosti nemajú tušenie. Aj váš počítač sa môže pri zanedbávaní bezpečnostných opatrení ľahko stať súčasťou botnetu.
Ďalšiu skupinku tvoria tkzv. script kiddies, útočníci, ktorí nemajú príliš veľké skúsenosti, postupujú podľa návodov na internete a pokúšajú sa o prieniky preto, aby sa zviditeľnili. Zameriavajú sa hlavne na významnejšie a jasne viditeľnejšie ciele. Ich útoky nie sú zväčša dobre premyslené, zvyčajne nenapáchajú veľkú škodu...
Ďalšia skupina by sa dala rozdeliť na viac podskupín. Tvoria ju útočníci, ktorí majú dostatočné vedomosti v danej oblasti a skúsenosti, ale zneužívajú ich, či už za účelom vlastného zisku alebo si ich niekto na túto aktivitu najme. Aj oni sa však niekedy môžu snažiť upútať už „vyššiu“ komunitu, v ktorej sa nachádzajú. V poslednej dobe sú častejšie aj ideologické výzvy pre hacking, a tak pôsobia a vznikajú skupiny, ktoré sa snažia rôznymi útokmi presadiť svoje ideologické názory.
Najväčší problém tvorí kategória útočníkov, profesionálov, ktorí pracujú len na objednávku. Pripravujú útok na špecifický objekt čiže ide o priemyselnú špionáž. Tohto útoku sa môžu obávať spoločnosti napr. kvôli konkurencii alebo ľudia, ktorí sú pre niekoho niečím špecifickým zaujímaví. Tieto útoky sú najprofesionálnejšie a najnebezpečnejšie. V súčasnosti sa vyskytujú pri veľkých spoločnostiach pomerne často.
Extra skupinu tvoria etickí hackeri, ktorí sa len snažia poukázať na istú zraniteľnosť, niekedy je to aj verejne, čo vzbudzuje isté diskusie o morálnosti, avšak to nie je predmetom tohto článku. Za „dobrých hackerov“ možno považovať aj bezpečnostných odborníkov. Tí vykonávajú rôzne penetračné testy zväčša priamo na objednávku spoločnosti, ktorá má záujem o zabezpečenie. Najvyššiu mieru bezpečnosti totiž možno dosiahnuť ak myslíte ako útočník a snažíte sa postupovať ako on, kontrolujete slabé miesta z jeho pohľadu...
Kvalitné zabezpečenie z pohľadu IT je komplikované a samozrejme aj finančne náročné. Preto si je dobré položiť otázku nakoľko je daný objekt pre útočníkov zaujímavý. Rátať možno vždy s automatizovanými útokmi, avšak tie nepredstavujú veľké riziko. Ďalej je potrebné uvedomiť si cenu dát v danej spoločnosti alebo v danej sieti a ich zaujímavosť pre útočníka. Malé spoločnosti sa zvyčajne nemusia obávať priemyselnej špionáže, pokiaľ nepodnikajú v obzvlášť zaujímavej oblasti alebo v silne konkurenčnom prostredí. Samozrejme sú tu isté výnimky pokiaľ spoločnosť pracuje s citlivými údajmi alebo zabezpečuje dôležité služby. Omnoho pravdepodobnejšie sú však hrozby útokov od lokálnej konkurencie, či lokálnych neprajníkov. Pri nich sa však nedá predpokladať vysoká profesionálnosť. Náklady na profesionálny útok by totiž mohli prevýšiť samotný zisk, ktorý z neho plynie. Stredné a väčšie spoločnosti však s priemyselnou špionážou v súčasnosti musia počítať. Podobne aj tu platí, že riziko útoku vzrastá podľa oblasti pôsobenia, práce s citlivými osobnými informáciami, v silne konkurenčnom prostredí a pod. V týchto prípadoch už náklady zisk neprevýšia, ba naopak prípadný zisk môže znamenať pre konkurenciu veľmi veľa. Tak isto môže byť cieľom útoku cielené poškodenie dobrého mena spoločnosti. Samozrejme profesionálne útoky sa nevyhýbajú aj štátnym inštitúciám. Tu je motívom útokov zväčša záujem zahraničia, spravodajských služieb, ale napríklad aj rôznych súkromných špionážnych zložiek. Vylúčené nie sú ani prieniky za účelom zosmiešnenia alebo prezentovania vnútropolitických názorov. Profesionálnym útokom sa nevyhnú ani osoby ktoré vlastnia zaujímavé, dôležité, či ľahko zneužiteľné informácie. Príkladov z praxe je veľa vo všetkých oblastiach. Ukážkou istého druhu priemyselnej špionáže "vo veľkom" boli útoky na Google a ďalšie veľké spoločnosti. Tieto útoky sa však nevyhli ani aktivisti za ľudské práva v krajinách, kde sú v rozpore s ich vnútroštátnymi záujmami.
Voči prienikom sa vo všeobecnosti používa mnoho zabezpečovacích riešení. Medzi ne patrí v prvom rade firewall. Účinným opatrením je aj NAT. Väčšie siete sa nezaobídu bez IDS alebo IPS systémov. Pre výskumníkov a sieťových expertov sú podstatné aj honeypoty. Tieto prvky si podrobnejšie popíšeme.
Firewall je základný bezpečnostný prvok, ktorý filtruje a oddeľuje všetku komunikáciu medzi privátnou sieťou a WAN resp. internetom. Filtrovať v určitej miere môže aj komunikáciu v rámci LAN medzi jednotlivými stanicami. Na základe pravidiel a použitých technológií vyhodnocuje všetky pakety a určitú neželanú, či nebezpečnú prevádzku blokuje. Firewall sa zvyčajne umiestňuje na hranicu siete, ktorú ma chrániť. Všetky aktivity navyše môže logovať a administrátor ich tak neskôr ľahko vyhodnotí. V rámci jednej siete môže fungovať niekoľko firewallov, umožnia tak oddelenie viacerých segmentov s rôznym stupňom bezpečnosti. Firewall musí byť pre správnu funkčnosť správne nekonfigurovaný a to vždy podľa konkrétnych potrieb a požiadavok chráneného objektu.
Firewall pozostáva z niekoľkých častí, ktoré môžu pracovať aj samostatne v iných implementáciách napr. na smerovači. V súčasnosti však väčšina firiem, či ľudí ktorí stoja o uspokojivú bezpečnosť siete siahne po komplexnom, plnohodnotnom firewalle.
Základnou časťou je paketový filter. Paketový filter analyzuje použitý protokol i jeho špecifiká a porovnáva ho s pravidlami. Na základe tejto kontroly sa rozhodne, či komunikáciu povolí alebo zakáže. Filter nezasahuje do samotného obsahu paketu, ani jeho dátovú časť nijak neanalyzuje. Nevie teda posúdiť samotný obsah a filtrovať ho. Spolieha sa iba na záhlavie paketu. Filtrácia môže prebiehať na rôznych vrstvách - linkovej (tejto problematike sme sa venovali minule a prebieha zvyčajne na prepínači), sieťovej kontroluje záhlavie IP paketu, transportnej – analyzuje záhlavia TCP segmentov a UDP datagramov, teda čiastočne môže filtrovať aj aplikačné protokoly na základe portov. Opiera sa pri tom o pravidlá, ktoré definuje administrátor. Pri analýze IP protokolu vychádza z IP záhlavia a analyzuje jeho jednotlivé časti. Umožňuje napr. zablokovať komunikáciu z určitej IP adresy, zablokovať source routing, IP spoofing a pod.
Istým problémom môže byť fragmentácia paketov, ktoré presiahnu MTU (maximálnu veľkosť paketu danú linkovou vrstvou), zvyčajne však firewall počká na všetky fragmenty, vyhodnotí ich ako celok a potom odošle cieľovej stanici. Filtrácia sa často uplatňuje aj pri ICMP. Filter analyzuje všetky polia v ICMP hlavičke a odfiltruje podľa pravidiel potencionálne nebezpečné typy paketov ako napr. ICMP redirect. Veľmi často však administrátor protokol ICMP zakáže úplne alebo obmedzí len do nevyhnutnej miery.
Filtrácia môže prebiehať aj v rámci transportnej vrstvy. Firewall sa tam taktiež opiera o TCP alebo UDP záhlavie. Môže teda okrem obmedzenia komunikácie medzi počítačmi cez IP protokol prihliadať aj na aplikácie cez ktoré prebieha. Filtrácia sa tu spolieha predovšetkým na porty využívané TCP/UDP. Dá sa použiť známy zoznam portov, a tak odhadnúť použitú aplikáciu. Administrátor môže s istotou zakázať alebo povoliť niektoré porty resp. služby, pri ktorých sa vždy predpokladá na jednej strane použitie podľa štandardu. Porty otvorí podľa potreby a nutnosti prevádzky určitých služieb. Firewall ostatné filtruje a pre útočníka majú zväčša rovnaký efekt ako zatvorené. Avšak nikdy sa nedá dosiahnuť stopercentná istota na základe blokovania a povoľovania jednotlivých portov. Útočník môže napríklad zneužiť zraniteľnosť webservera cez otvorený port 80. Pri protokole TCP sa dá aplikovať aj filtrácia na základe príznakov.
V súčasnosti je väčšina filtrov stavových, taktiež ich možno nazvať reflexívnymi. Vyhodnocuje komunikáciu ako celok, neanalyzuje len jednotlivé pakety osobite v jednotlivých smeroch, ale uchováva celkový stav komunikácie. Filter si môže zapamätať stav, zaznamenať ho a na základe toho odvodiť spätnú komunikáciu. Vyhodnotiť, či paket povoliť alebo zahodiť. Neinicializovaná komunikácia bude zahodená, zatiaľ, čo odpovede na inicializovanú budú akceptované, taktiež akceptuje aj komunikáciu povolenú jednotlivými pravidlami.
Ďalšou dôležitou časťou firewallu je proxy server. Proxy server v ponímaní firewallu, zasahuje do samotného dátového obsahu parketov, môže ho filtrovať a meniť. Počúva požiadavky od staníc na lokálnej sieti, analyzuje ich a na základe pravidiel sa rozhodne či ich prepošle ďalej. Rovnako analyzuje aj prichádzajúcu komunikáciu pričom sa pre vzdialenú stranu správa ako cieľová stanica. Pakety pred odoslaním skutočnému adresátovi takisto analyzuje podľa daných pravidiel. V prípade potreby ich pozmení a následne doručí adresátovi.
Proxy pracuje na aplikačnej vrstve. Poradí si teda s filtráciou, či zakazovaním rôznych aktivít. Poslúži administrátorom na blokovanie konkrétnych URL adries. Môže určiť blacklist, čo nie je však veľmi efektívne riešenie, nakoľko nikdy nezablokuje všetky potencionálne škodlivé stránky. Alebo naopak whitelist, ktorý umožní prístup len na určité webové stránky. Taktiež možno obmedziť filtráciu URL na výskyt určitých slov a podobne ich dať na whitelist alebo blacklist.
Pri HTTP komunikácií sa dá filtrovať aj obsah ako Java, JavaScript, ActiveX, ale aj sťahovanie multimediálnych, spustiteľných, či komprimovaných súborov, obrázkov a pod. Pri elektronickej pošte možno filtrovať isté typy príloh atď. Je možné filtrovať aj ďalšie špecifické aplikačné protokoly a ich funkcie, či vykonávanie určitých príkazov. Proxy umožňuje využiť aj funkciu cache a tým zrýchliť načítavanie veľmi často navštevovaných webových stránok, v tom prípade je však dôležité zabezpečiť aj potrebnú mieru aktualizácie obsahu. Navyše môžu byť všetky aktivity logované.
S firewallom sa veľmi často spájajú aj ďalšie súčasti ako VPN, šifrovanie, IDS/IPS systémy, či antivírusová kontrola komunikácie priamo na firewalle. O niektorých z týchto súčasti sa zmienime samostatne.
Úlohou NAT je prevádzanie interných IP adries z lokálnej siete na verejné jedinečné IP adresy platné a dostupné v rámci WAN siete alebo internetu. Jeho prioritným zameraním nie je posilnenie bezpečnosti, ale šetrenie IP adresami. Poskytuje možnosť pripojiť lokálnu sieť s veľkým počtom staníc s rôznymi internými IP adresami pod jednou spoločnou verejnou adresou. Avšak NAT nepriamo bezpečnosť v istých prípadoch zvyšuje. Neumožňuje v určitej konfigurácií priamo dosiahnuť systémy, ktoré sa nachádzajú za ním bez toho, aby oni neinicializovali spojenie s vonkajším prostredím. Samozrejme existujú aj možnosti prekonania tejto prekážky. Potencionálny útočník vníma jednotlivé stanice ako jeden celok vystupujúci pod IP adresou smerovača alebo zariadenia, ktoré preklad prevádza. V takomto prípade sa útočníkovi sťažuje situácia jeho napadnutia. NAT môže fungovať v rôznych režimoch. Sám vo svojej podstate sa však ani v jednom nespráva priamo ako bezpečnostný prvok.
V najjednoduchšom prípade NAT prideľuje k pevne definovaným interným IP adresám pevne definované verejné jedinečné adresy. Hovoríme o statickom preklade (statický NAT). Smerovač teda disponuje určitým blokom adries a v odchádzajúcich paketoch pozmení internú IP adresu na prislúchajúcu verejnú. Tak isto dokáže zistiť kam patria prichádzajúce pakety a ďalej ich dopraviť podľa prevodu externej IP adresy na internú patriacu danej stanici. Takže napríklad ak bude chcieť komunikovať interná stanica s IP adresou 192.168.2.6 ktorej prislúcha verejná 206.53.12.4, smerovač v pakete adresu 192.168.2.6 modifikuje na 206.53.12.4 a predá ju ďalej. Iný systém napr. 192.168.2.7 obdrží verejnú adresu 206.53.12.5. Pridelenie IP adries musí napevno stanoviť administrátor siete. V prichádzajúcej komunikácii smerovač prepošle paket s cieľovou adresou 206.53.12.4 na základe prekladovej tabuľky systému 192.168.2.6. Paket smerovaný 206.53.12.5 prepošle na 192.168.2.7. Tu však o veľkom zvýšení bezpečnosti nemožno hovoriť.
Obdobou tejto metódy je aj dynamické prideľovanie špecifických verejných IP adries jednotlivým interným adresám z istého dynamického bloku. Každá pripojená interná stanica má svoju verejnú IP adresu. Výhodou je však šetrenie adries, pridelená je IP adresa len stanici, ktorá ju potrebuje. Pokiaľ ju nepotrebuje, vráti ju medzi nepoužité (napr. systém sa vypne). Prideľovanie musí stanoviť administrátor a dbať pri tom, aby nežiadalo o verejnú IP adresu viac interných staníc ako má k dispozícií verejných adries.
Potencionálny útočník teda takmer vždy môže naviazať spojenie so systémom, ktorý je za týmto typom NAT-u z vonku. V týchto prípadoch je vždy daná stanica dostupná z internetu. Tento spôsob sa využíva napríklad pri serveroch kde sa táto vlastnosť požaduje pre prístup klientov.
„NAT v pravom slova zmysle“ však funguje iným spôsobom. Toto riešenie možno označovať aj NAPT (Network Address Port Translation). V tomto prípade za jednou verejnou IP adresou už vystupuje mnoho interných IP adries. Dochádza tu k efektu najväčšieho šetrenia a k zvýšenej miere bezpečnosti. Takže ak chce počítač umiestnený za NATom nadviazať spojenie, smerovač si poznačí do prekladovej tabuľky jeho internú IP adresu a port z ktorého pristupuje. Pozmení internú IP adresu na externú a zmení port na pseudoport resp. na jeho port. Taktiež zaznamená aj vzdialenú IP adresu a jej port. Tento záznam využije aj pre dáta, ktoré prídu od vzdialenej strany. Pri týchto dátach sa prevedie reverzný preklad. Proces môžeme vysvetliť aj na príklade: Klient s IP adresou 192.168.2.6 chce komunikovať cez port 1812 so vzdialeným systémom s IP adresou 191.16.32.5 s portom 80. Smerovač s internou IP adresou 192.168.2.1 a externou IP adresou 203.76.31.2 do záznamu v prekladovej tabuľke poznačí internú zdrojovú adresu 192.168.2.6, port hostiteľa 1812, vzdialenú IP adresu 191.16.32.5 a vzdialený port 80. Preloží port na svoj port 51352 a zmení IP adresu na svoju 203.76.31.2. Následne pošle takýto paket cieľovému systému. Ten ho obdrží ako paket od stanice 203.76.31.2:51352. Odpoveď pošle späť na 203.76.31.2:51352, tam ju zachytí smerovač, vyhľadá v prekladovej tabuľke odpovedajúcu internú IP adresu s portom a prepošle ho adresátovi. Klient s inou internou adresou 192.168.2.7:1813 chce komunikovať so vzdialenou stranou 84.16.38.11:25. Smerovač preloží požiadavku na rovnakú externú IP adresu 203.76.31.2:51353, ale použije iný port zo svojho rozsahu. Prichádzajúcu komunikáciu z IP 84.16.38.11:25 presmeruje reverzne pôvodnému odosielateľovi 192.168.2.7:1813.
Pokiaľ prichádzajú dáta pre ktoré neexistuje v tabuľke žiadny záznam sú zahodené. Záznam v tabuľke vydrží istý čas a potom je odstránený.
Pre útočníka je teda problém adresovať pakety obeti, ktorá sa nachádza za dynamickým NATom, pokiaľ neinicializuje žiadne spojenie, NAT pakety vždy zahodí.
Existuje však spôsob ktorým by sa mohol potencionálny útočník k obeti dostať aj cez dynamický NAT. Umožňuje mu to source routing - striktné smerovanie. Útočník by mohol pevne zadať trasu pre paket a adresu cieľového smerovača zadať iba ako jeden z uzlov (hopov) po ceste k cieli. Cieľová adresa by bola interná IP adresa obete. Avšak každý firewall by mal tento pokus vyhodnotiť ako útok a daný paket zahodiť. V súčasnosti už v základnom nastavení tento úkon prevádza drvivá väčšina smerovačov automaticky. Pre útočníka však ostávajú ďalšie možnosti, medzi ktoré patrí využitie backdoora, či nájsť slabé miesto v nastavení smerovača alebo firewallu, a tak preniknúť do lokálnej siete. Do úvahy pripadá aj zneužitie bezpečnostnej zraniteľnosti firmwaru.
NAT sa teda sám ako taký nedá považovať za bezpečnostný prvok, nebol k tomuto účelu ani nikdy navrhnutý, preto je vždy dôležité používať aj firewall.
V druhej časti budeme pokračovať ďalšími bezpečnostnými riešeniami ako IDS/IPS systémy, honeypotmi, ale zameriame sa aj na obvyklé postupy útočníka.