Nachádzate sa tu

Bezpečnosť v sieťach TCP/IP (IP spoofing, smurf, DoS)

Sieťovú bezpečnosť môžeme chápať ako infraštruktúru pozostávajúcu zo sieťových zariadení (servery, smerovače, prepínače, klientske počítače a pod.) a bezpečnostných politík definovaných sieťovými správcami, ktoré slúžia na ochranu pred prístupom do siete, resp. prístupom k jednotlivým sieťovým zdrojom.

Čo je to TCP/IP?

TCP/IP (Transport Control Protocol, Internet Protocol) sú protokoly, ktoré sa používajú na komunikáciu v sieti internet. Kto je schopný komunikovať pomocou TCP/IP, dokáže komunikovať na internete. TCP/IP vychádza z referenčného modelu ISO/OSI, kde na tretej vrstve modelu (NETWORK) sa nachádza IP a na štvrtej TCP (TRANSPORT). Na základe vrstvy NETWORK dokážu jednotlivé zariadenia navzájom komunikovať. Každá adresa IP (napr. 192.168.1.2) je definovaná voči hardvérovej adrese (mac adresa, napr. 00:03:ba:08:55:95), ktorá patrí v rámci ISO/OSI do druhej vrstvy (DATA LINK). Vrstva NETWORK takisto zabezpečuje smerovanie, aby sa jednotlivé zariadenia našli.

Typy útokov

TCP session hijacking (kradnutie TCP sedenia) – typ útokov na používateľské sedenia. Najznámejším typom kradnutia sedenia je IP spoofing, kde útočník použije source-routované IP pakety na vloženie príkazov do už existujúcej komunikácie medzi dvoma nodmi a tvári sa už ako autentizovaný používateľ. Tento typ útoku je možný na základe toho, že autentizácia sa vykonáva vždy na začiatku sedenia TCP. Chrániť sa proti tomuto útoku je možné pomocou šifrovaného spojenia. Pod pojmom IP spoofing môžeme chápať aj „kradnutie“ adries IP (napr. na lokálnej sieti). Keďže väčšina smerovačov má vo svojich ACL (Access Control Lists, prístupové zoznamy) definované, ktorý paket má a ktorý nemá prístup na základe odosielateľovej adresy IP, je pre útočníka najjednoduchší spôsob „ukradnúť“ adresu IP, ktorá prístup má. Vcelku elegantné riešenie (no len vo vlastnej prepínanej lokálnej sieti) proti tomuto typu útoku je nasadiť prepínače s funkciou port security, kde možno určiť, ktoré adresy MAC smú komunikovať cez konkrétny port prepínača. Ďalší častý typ kradnutia sedenia TCP je tzv. man in the middle – útočník používa sniffer na odchytávanie komunikácie medzi nodmi. Takýmto spôsobom môže získať napr. heslá a iné citlivé údaje. Opäť najlepšia ochrana proti tomuto útoku je používať šifrované spojenia.
Denial-of-Service (odmietnutie služby) – pokus o zahltenie služby alebo služieb bežiacich na konkrétnom systéme v sieti, napr. opakujúce sa posielanie náhodných dát po sieti a následné zahltenie cieľového systému. Základný predpoklad na úspešný útok DoS je nutnosť väčšej šírky pásma u útočníka než v systéme, na ktorý útočí. Vďaka tomu poznáme tzv. DDoS (Distributed Denial-of-Service), kde útočník použije viac nodov, ktoré sa nachádzajú na rôznych miestach v internete. Napríklad útok DDoS môže prichádzať z rôznych krajín alebo svetadielov. Väčšina nodov, ktoré sú zapojené v takýchto distribuovaných útokoch, ani nevie, že sú súčasťou niečoho takého. Zväčša ide o bežných používateľov siete internet, ktorí sú infikovaní napr. trójskymi koňmi. Zjednodušene povedané, útočník spustí útok DDoS jednoduchým „zapnutím“ infikovaného nodu.

Existuje viac typov útokov DoS, resp. DDoS:
SYN flood – útočník posiela obrovské množstvo požiadaviek TCP/SYN s neplatnou hlavičkou odosielateľa, na ktoré sa cieľový systém snaží odpovedať pomocou TCP/SYN-ACK, keďže je však pôvodný odosielateľ falošný a cieľový systém čaká na TCP/ACK a ostatné (hoci aj regulárne) požiadavky musia čakať na timeout pôvodných a začína vznikať väčšia a väčšia latencia. Najlepšia obrana pred SYN floodom sú tzv. SYN cookies, ktoré modifikujú protokol TCP pozdržaním alokovania systémových zdrojov, pokiaľ nedôjde k overeniu opačnej strany.
Smurfing – metóda, ktorá zneužíva ICMP (Internet Control Message Protocol). Problém spočíva v zneužití broadcastových adries, na ktorých sa nachádza viac hostov. Niektoré implementácie TCP/IP povoľujú odpovede či už na broadcastové adresy, alebo ich lokálne adresy (prvotná idea broadcastových adries bola niečo ako „ukáž mi, kto je na sieti“). Systémy, ktoré sú nesprávne nakonfigurované a odpovedajú na požiadavky ICMP na broadcastovú adresu, sa nazývajú smurf amplifiers. Útok sa vykonáva sfalšovaním zdrojovej adresy IP (adresa IP obete) a takéto pakety sa následne smerujú na smurf amplifiers. Každý hostiteľ pošle odpoveď zaslaním paketu v podobe odpovede (pokiaľ je „živý“). Takýmto spôsobom sa obeť na základe pôvodných požiadaviek ICMP sama zahltí a môže dôjsť ku kompletnému kolapsu. Brániť sa proti útokom smurf môžeme pomocou Smurf Amplified registra, ktorý spravuje databázu sietí, ktoré sú nesprávne nakonfigurované a môžeme ich na našich systémoch filtrovať.
ping flood – tento útok spočíva v zahltení systému obrovským množstvom ping paketov. Podmienkou úspešnosti útoku je väčšia šírka pásma na útočníkovej strane. V linuxových distribúciách možno takýto útok vykonať jednoduchým príkazom ping -f. Obranou môže byť nastavenie rate-limitu na odpovede na ping, prípadne úplné filtrovanie takýchto požiadaviek.
Teardrop – útok teardrop používa na znefunkčnenie obete zasielanie priveľkých a prekrývajúcich sa IP fragmentov, čo v prípade zlej implementácie TCP/IP v niektorých operačných systémoch môže spôsobiť až pád. Na tento útok sú náchylné operačné systémy Windows 3.1x, Windows 95, Windows NT a linuxové kernely verzie 2.0.32 a 2.1.63.
Nuke bomby – sú to pakety, ktoré využívajú chyby v aplikačných protokoloch, typickým príkladom je chyba v NetBIOS na systémoch Windows 95. Útok pozostával zo špeciálne upraveného (zničeného) paketu, ktorý na základe chyby spôsobil pád cieľového systému.

Komplexná ochrana proti útokom DoS a DDoS je aj IPS (Intrusion Prevention System), ktorý na základe prednastavených typov útokov dokáže reagovať filtrovaním takýchto požiadaviek. DoS nemusí nevyhnutne pochádzať zo siete. Môže mať napr. povahu zneužitia aplikačných chýb a tým zahltenie CPU, RAM alebo iných hardvérových prostriedkov.

Neautorizovaný prienik – pokus o neautorizovaný prienik je taký všeobecný problém, že je vskutku zložité opísať ho širšie. Zahŕňa obrovské množstvo rôznych druhov útokov. Cieľom týchto útokov je získať prístup k zdrojom, ku ktorým útočník nemá prístup (napr. možnosť vykonávať príkazy – shell), na základe chýb na systémoch či už z aplikačného hľadiska (napr. bug vo web serveri), alebo z hľadiska konfigurácie systému (napr. laicky napísaný PHP alebo CGI skript). Vo väčšine prípadov sú kompromitované servery, ktoré sa využívajú na ďalšiu nekalú činnosť útočníka, ako napr. redirektor iných útokov (čím viac redirektorov útočník použije, tým ťažšie je vystopovateľný) alebo ako nody pre spomínaný DDoS. Cieľom útočníka môžu byť aj dáta. Predstavte si situáciu, kde bol kompromitovaný váš firemný server, ktorý slúži ako centrálne úložisko dokumentov (informácie o zákazníkoch, firemná agenda, faktúry, zmluvy a pod.). netreba asi zdôrazňovať, ako môžu byť takéto dáta využiteľné pre konkurenciu. Takisto sa môže stať, že útočníkom nebude vaša konkurencia, ale jednoducho script kiddies (vo voľnom preklade niekto, kto nevie, ako veci fungujú, ale používa verejne prístupné exploity na prienik), ktoré vám tie dáta zmažú.

Ako sa teda proti takýmto prienikom brániť?

Zálohy – pokiaľ nastane uvedená situácia, vždy máte možnosť návratu dát.
Single point of failure – snažte sa zabezpečiť takým spôsobom, aby sa na jednom systéme nenachádzali všetky služby (napr. firewall, IPS, mail server, file server). Keď útočník prelomí firewall, stále nemá prístup k mailom alebo file serveru.
Aktualizácia – pravidelnou aktualizáciou zabezpečíte, že sa na systéme nebudú nachádzať všeobecné diery a bugy a útočník bude mať v prípade útoku sťaženú situáciu.
Správne heslá – nastavujte zásadne len zložité heslá. Pokiaľ sa pozriete do logov svojho systému, určite narazíte na množstvo robotov, ktoré skúšali rôzne útoky na uhádnutie hesla (v prípade robotov ide zväčša o slovníkové typy útokov).
Firewall – môžeme ním zabezpečiť prístup k jednotlivým službám, ktoré bežia na systéme, a jednoducho ním môžeme určiť, kto má a kto nemá prístup, na základe viacerých kritérií, ako je napr. zdrojová adresa IP alebo adresa MAC (v prípade lokálnej siete, keďže TCP/IP sa nachádza len v tretej a štvrtej vrstve modelu ISO/OSI, ako sme spomínali na začiatku, a adresa MAC patrí do vrstvy druhej).
VPN (Virtual Private Network) – vystavujte na internete len tie systémy, ktoré tam vyslovene musia byť. Zvyšné systémy, s ktorými potrebujete komunikovať len v rámci firemnej infraštruktúry, umiestnite do VPN, kde je komunikácia šifrovaná a systémy nie sú priamo viditeľné z internetu. Vďaka šifrovaniu je zaistená relatívna bezpečnosť prenášaných dát, no vždy je tu riziko útokov, ktoré smerujú zvnútra siete.

Sieťová bezpečnosť je zložitá problematika a netreba ju brať na ľahkú váhu, pretože v konečnom dôsledku môže mať na podnikanie fatálny dosah, či už v podobe odcudzených, alebo stratených dát, ale aj nefunkčných systémov (predstavte si svoju spoločnosť bez mailovej alebo internetovej komunikácie hoci len 24 hodín). Takisto treba mať na zreteli, že úroveň zabezpečenia nesmie byť prekážkou v reálnej práci, a preto treba hľadať vhodný kompromis medzi zabezpečením a obťažovaním používateľov systémov, lebo v prípade, že tí začnú predpísanú bezpečnostnú politiku obchádzať, môže prísť k neželaným dôsledkom.

Michal Žila
systémový administrátor SOMI Systems a.s.

Zdroj: Infoware