Sociálne siete

SecIT.sk na Facebooku SecIT.sk na Google+ SecIT.sk na Twitteri

Podporte nás


V prípade, že Vám obsah nášho portálu niekedy nejakým spôsobom pomohol, či bol pre Vás prínosom prosím podporte jeho chod ľubovoľnou čiastkou. Ďakujeme!

Štítky

Vyhľadávanie

You are here

Domov
Upozornenie: Obsah je licenčne chránený a bez písomných súhlasov autora článku a vlastníka webovej stránky nesmie byť v žiadnej forme ďalej kopírovaný a šírený v pôvodnom, či v akokoľvek upravenom stave.

Bezpečnosť protokolu CDP a port security

V tomto článku sa pozrieme na ďalšie bezpečnostné úskalia potenciálne vznikajúce na lokálne sieti, konkrétne pôjde o často používaný protokol CDP, ale aj o port security. Ukážeme si niekoľko útokov, ktoré využívajú ich slabiny a zároveň i možnosti adekvátnej ochrany.

Upozornenie: Všetky publikované informácie a postupy slúžia výhradne na študijné účely, prevádzané len na sieťach, ktoré patria pod vaše vlastníctvo, ak týmto konaním priamo, či nepriamo nezasiahnete ich používateľov. Vykonávanie týchto postupov na sieťach s reálnou prevádzkou môže byť ilegálne a v každom prípade ide o amorálne počínanie. Autor článku nenesie žiadnu zodpovednosť za škody, ktoré môžu vzniknúť v dôsledku realizácie týchto postupov.

Protokol CDP

V článku zhrnieme len niekoľko základných faktov o tomto proprietárnom sieťovom protokole od spoločnosti Cisco. Pre viac informácii si pozrite popis špecifikácie, či Wikipédiu. CDP je linkový protokol, ktorý slúži na získavanie informácii o priamo pripojených susedných sieťových zariadeniach k smerovaču, či prepínaču. Môže tak dopomôcť k získaniu prehľadu o komplexnej topológii celej siete. V súčasnosti tento protokol okrem zariadení spoločnosti Cisco využívajú aj sieťové prvky spoločností ako HP, či Mikrotik. Okrem toho sú dostupné i nástroje umožňujúce implementovať podporu tohto protokolu v rámci linuxového servera. Ide napríklad o implementáciu cdp-tools, ktorá obsahuje dva komponenty: CDP send - pre odosielanie CDP rámcov a CDP listen - v tomto prípade sa zariadenie správa iba ako klient, ktorý prijíma a spracováva CDP rámce. Tento postup však nemusí byť legitímny.

CDP rámce sú odosielané štandardne každú minútu ako multicastové rámce na linkovú adresu 01-00-0C-CC-CC-CC. Obsahujú informácie ako názov zariadenia, model, verziu systému IOS, IP adresu/y, VTP doménu, informácie o sieťovom rozhraní a vlastnosti zariadenia napr. smerovač, prepínač, alebo most a pod.


obrazok
Pohľad na CDP paket zachytený programom Wireshark.

Automatické získavanie informácií o ďalších zariadeniach na sieti, spolu s mapovaním susedov je istotne užitočné a efektívne. Avšak tento protokol žiaľ nemyslí na žiadny spôsob autentizácie a predstavuje tak pomerne značné bezpečnostné riziko.

Riziká protokolu CDP

Prvé a zásadné riziko je už samotné zachytenie CDP rámca útočníkom, v prípade, že sa tieto rámce šíria na porty prepínačov za ktorými sa nachádzajú klientske stanice. Potenciálnemu útočníkovi stačí na zaychytenie CDP rámcov bežný sniffer ako Wireshark, či TCPdump. Informácie sú šírené ako text. Ich obsah môže byť významne nápomocný pre realizáciu ďalších útokov na danej sieti. Využiť možno informácie o type zariadení, o verzii systému IOS a pod. Hlavne v dávnejšej dobe bolo po identifikácií verzie IOSu možné využiť pre zraniteľnú verziu rôzne exploity. No zásadná môže byť už i len znalosť IP adresy. Na tento fakt môžu často doplatiť malí lokálni poskytovatelia internetovej konektivity. Ich zariadenia často šíria CDP pakety do siete, kde ich bez menších ťažkostí zachytia bežní klienti. Tí sa tak následne môžu veľmi ľahko oboznámiť s topológiou celej siete, ale i s IP adresou smerovača, či manažovateľného prepínača. Nehovoriac o tom, ak takýto poskytovateľ ponechá štandardný login do webového administrátorského rozhrania. Podobná situácia môže byť i v niektorých firmách a najčastejšie sa tak deje v školách.

Druhým nebezpečným úskalím je tvorba podvrhnutých CDP rámcov. Útočník si tak môže na sieti vytvoriť fiktívne zariadenie, vydávať sa za smerovač, či prepínač. Tento útok zvyčajne, za predpokladu, že administrátor dodržiava bezpečnostné zásady pri konfigurácií, sám o sebe nepredstavuje vysoké riziko.

Poslednou možnosťou ohrozenia je DoS útok za pomoci CDP rámcov. Tento útok má za cieľ zahltiť sieťové zariadenie a vyvolať jeho nedostupnosť. Dochádza k zaplňovaniu tabuľky susedov záznamami veľkého množstva fiktívnych zariadení. Útok mal požadovaný efekt hlavne v minulosti. Dnes sú mu aktuálne verzie systémov IOS schopné čeliť. Útok samotný tak zvyčajne nemá priamy vplyv na prevádzku v rámci zasiahnutej sieti, no môže spôsobiť výpadok konzolového, či telnetového/ssh pripojenia na daný sieťový prvok. Každé zariadenie a verzia IOSu reaguje na CDP DoS útok rôzne. Sieťové zariadenie môže dočasne pociťovať zásadný nedostatok operačnej pamäte a tým sa, ako už bolo spomenuté, stane nedostupná jeho administrácia. Tiež môže dôjsť k automatickému reštartu a veľmi ojedinele (staršie verzie IOSov) aj k nedostupnosti celej siete. Niekedy je tiež nutné zariadenie uviesť do normálneho stavu za pomoci reštartu, i keď DoS útok už ustal. Tento stav by v podstate mohol rafinovane zneužiť útočník neustálym zasielaním množstva CDP rámcov, čím by si vynucoval neustále reštarty sieťového zariadenia, a tak by spôsobil i nedostupnosť celej siete.

Útok

Na realizáciu tohto útoku je možné použiť nástroje určené pre operačný systém Linux - Irpas, či Yersinia.

Na sieťovom zariadení môžeme použiť príkaz show cdp, získame nasledovné informácie:

Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Sending CDPv2 advertisements is enabled

Vieme tak, že CDP rámce sa odosielajú každých 60 sekúnd, zariadenie si informácie o susedoch udržuje 180 sekúnd a protokol CDP je globálne povolený. Následne môžeme overiť beh CDP pre konkrétne rozhranie príkazom show cdp interface. V prípade, že by bol protokol CDP vypnutý (správa CDP is not enabled), zapne sa príkazom cdp run.

Program Yersinia (zaujímavé je, že názov sa inšpiroval baktériou, ktorá je pôvodcom moru) pracuje v niekoľkých režimoch. Od textového, cez interaktívny, grafický až po režim démona. Ten tak môže umožniť spúšťanie po štarte systému, a teda stály beh napríklad aj s vytvorením vzdialenej relácie. Do grafického režimu sa dostaneme prepínačom yersinia -G, do interaktívneho režimu prepínačom yersinia -I.


obrazok
Yersinia - interaktívny režim.

Ak spustíte grafický režim sama yersinia vás upozorňuje, že ide o nestabilnú alfa verziu. O nestabilite sa čoskoro presvedčíte aj sami. Interaktívny režim je na tom už o niečo lepšie, čo sa týka stability, no zrejme si budete musieť dlhšie zvykať na špecifické ovládanie. Stále je však možné využiť klasický textový režim a ovládanie parametrami. Pri CDP yersinia ponúka tri typy útokov. Môžete vytvoriť svoj CDP paket, virtuálne podvrhnuté zariadenie a spustiť CDP floofing (DoS). Spustenie útokov v grafickom režime je len o klikaní, v interaktívnom sa rýchlo zorientujete po stlačení tlačidla h a v textovom režime využijete prehľadný manuál - man yersinia.


obrazok
Yersinia počas DoS útoku.

Výsledok útoku si overíme pomocou príkazu show cdp neighbours/show cdp neighbours detail na sieťovom zariadení.


obrazok
Na našej sieti sa zrazu objaví zariadenie "Útočník." :-)

Podobne ako yersiniu možno využiť na šírenie falošných CDP paketov i nástroj Irpas. Ten obsahuje program cdp. Ten môžeme použiť napr. s parametrami: (rozhranie, mód: m1 -sniffing/m2 - flooding, schopnosti zaradenia, platforma, názov, IP adresa rozhrania):

cdp -v -i eth1 -m 1 -D 'Utocnik' -P 'Ethernet1/0' -C RI -L 'Cisco' -S 'Router' -F '172.30.128.15'

Použiť, či skôr zneužiť sa dá rovnako pre tento účel i už spomínaný nástroj cdp-tools.

Taktiež možno použiť Irpas na DoS útok, napr.:

cdp -i eth1 -n 100000 -l 1480 -r (odošleme 100000 CDP rámcov o veľkosti 1480 B, ktoré sa vygenerujú náhodne). Dávnejšie sa odporúčalo okrem rámcov o maximálnej veľkosti (1480B, kvôli obmedzeniam Ethernetu) posielať i rámce s menšou veľkosťou, čo malo údajne spôsobiť zaplnenie ďalších segmentov internej pamäte sieťového zariadenia napr.: cdp -i eth1 -n 100000 -l 80 -r.

Počas môjho testu fungovala sieť úplne normálne, reagoval aj smerovač.

Obrana

Obrana voči útokom na protokol CDP je veľmi jednoduchá. Vypnite protokol CDP buďto globálne, alebo aspoň na všetkých portoch, kde existuje čo i len náznak rizika jeho zneužitia. Ideálne je ponechať protokol CDP zapnutý len na rozhraniach, kde rozhodne viete, že budú pripojené len iné legitímne sieťové zariadenia a nehrozí tak žiadny z vyššie spomínaných útokov. Vypnutie prebieha jednoducho, buď globálne v konfiguračnom móde príkazom no cdp run, alebo na konkrétnom rozhraní príkazom no cdp enable.

Fyzická bezpečnosť a port security

Nutné je pozastaviť sa i nad fyzickou bezpečnosťou sieťových prvkov a pri nutnosti chrániť sa pred pripojením útočníka na port prepínača. Každý sieťový prvok, na lokálnej sieti teda najmä prepínač, by mal byť bezpečne umiestnený, tak aby sa k nemu nemohli fyzicky dostať nepovolané osoby. Ideálne je uzamknutie v racku, alebo v špeciálnej skrinke. Prax je však často iná, switche sú bežne rozmiestnené v budovách, na chodbách, či v kanceláriách, voľne bez akéhokoľvek fyzického zabezpečenia. Útočníkovi tak stačí jednoducho sa na daný port pripojiť. Nehovoriac o tom, keď nahradí kábel v správnom porte HUBom. Následky môžu byť pomerne strašidelné. Sofistikovaný útočník môže po pripojení sa na switch realizovať všetky útoky, ktoré som popísal už dávnejšie v predošlých článkoch. Táto nemilá prax sa objavuje najmä v školách a v malých, občas až stredných firmách. Preto zabezpečte v prvom rade fyzicky svoje zariadenia, potom má zmysel pokračovať. Ak to nejde fyzicky dá sa riziko ilegálneho pripojenia aspoň čiastočne eliminovať bezpečnostnými nastaveniami. Zameriame sa na produkty spoločnosti Cisco.


obrazokobrazok
Prvý obrázok ukazuje ako to nemá vyzerať v praxi, druhý ukazuje zabezpečenie pomocou špeciálnej uzamykateľnej skrinky - malého racku.

Cisco Port-Security

Ide o bezpečnostný nástroj, ktorý má za úlohu zabezpečiť, že sa vždy na daný port prepínača pripojí len legitímne zariadenie, podľa uváženia administrátora siete. Sleduje sa tak, či rámce prichádzajú z MAC adries, ktoré boli priradené jednotlivým portom. Porty na prepínači môžu byť v rôznych stavoch: access, trunk, dynamic a tunnel. Port security sa dá použiť len v prípade, že je port v statickom móde, a teda v režimoch access, alebo trunk. Stav dynamic vyjednáva o ďalšom režime portu - buď access, alebo trunk, za pomoci protokolu DTP. Do požadovaného módu prepneme port príkazom switchport mode /názov_módu/.

Každému portu na prepínači môžeme určiť maximálny počet MAC adries, ktoré budú môcť pomocou neho komunikovať, štandardne je nastavený tento počet na jednu MAC adresu, alebo priamo priradiť fixnú MAC adresu. Pokiaľ sa pripojí na port iná adresa (ak je port pevne asociovaný), či sa poruší maximum MAC adries, ktoré môžu byť pripojené, je možné nastaviť adekvátnu reakciu. Reakcia sa vyvolá i vtedy ak sa MAC adresa asociovaná s istým portom na prepínači pokúsi o pripojenie z iného portu. Štandardne sa po porušení bezpečnostnej zásady port prepne do stavu error-disabled, administrátor tak tento port musí manuálne vypnúť a opäť zapnúť.

Nastvenie port-security sa prevádza vždy na konkrétnom porte, alebo so skupinou portov. Zabezpečenie aktivujeme príkazom switchport port-security. Počet povolených pripojených MAC adries určíme príkazom switchport port-security maximum /hodnota/. Dané MAC adresy môžeme s portom asociovať pevne príkazom switchport port-security mac-address /MAC_adresa/ s platnosťou do reštartu zariadenia, alebo ich môžeme nechať uložiť natrvalo príkazom switchport port-security mac-address sticky /MAC_adresa/. Ak chceme MAC adresy ukladať dynamicky resp. nechať prepínač, aby sa ich učil, použije sa príkaz switchport port-security mac-address sticky. Dynamicky asociované MAC adresy je tiež možné po určitej dobe automaticky mazať. Použije sa príkaz switchport port-security aging time /čas_v_minútach/. V praxi sa teda prepínač naučí MAC adresu prvej stanice, ktorá bude pripojená na daný port a následne môže blokovať, v závislosti na nastavení reakcie, stanice pripojené na daný port s inými MAC adresami.

Po porušení takto nastavených pravidiel je potrebné stanoviť už spomínanú adekvátnu reakciu. Na výber je z niekoľkých protiopatrení. Protect - zablokuje sa komunikácia z nepovolenej MAC adresy, ostatná prevádzka naďalej prebieha, restrict - administrátor siete je upovedomený pomocou správy SNMP protokolu, shutdown - port je uvedený do stavu error-disabled, administrátor ho musí znova ručne aktivovať (vypnutím a zapnutím), prípadne nastaviť dobu po ktorej sa aktivuje automaticky - príkaz switchport port-security violation /režim/. Automatické spustenie portu sa nastavuje v globálnom konfiguračnom móde príkazmi errdisable recovery cause psecure-violation a errdisable recovery interval /čas_v_sekundách/. Možné je ešte nastaviť špeciálny typ portu tzv. protected port, v konfigurácií daného rozhrania príkazom switchport protected. Tento režim zabráni cez daný port posielať špecifické linkové rámce (ktoré sa viažu len k MAC adresám) a umožní bežnú prevádzku len dátam na sieťovej vrstve. Ide v podstate o akúsi zjednodušenú obdobu private VLAN. Informácie o port-security je možné vyvolať prostredníctvom príkazu show port-security/show port-security interface /rozhranie/ a asociované MAC adresy možno zobraziť príkazom show port-security address.

Všetky tieto opatrenia zamedzia do istej miery pripojeniu potenciálne nežiaduceho zariadenia. No treba mať na pamäti, že pokiaľ má útočník fyzický prístup k danému prepínaču a je čo i len trocha zdatnejší a fundovanejší v tejto oblasti, opatrenia môže prekonať. Záleží do akej miery má prístup k danému zariadeniu, často môže jednoducho napríklad falšovať MAC adresy. Preto je fyzická ochrana nevyhnutná.

Záver

Článok poukázal na riziká a praktické možnosti zneužitia linkového protokolu CDP a tiež na úskalia pripojenia nelegitímneho zariadenia priamo na prepínač. Opatrenia proti týmto útokom by sa mali stať štandardom v každej organizácií bez ohľadu na veľkosť, typ, či počet zamestnancov. Ide o základné zabezpečenie, no žiaľ prax ukazuje, že ho mnoho organizácií ignoruje. Ignorancia týchto bezpečnostných zásad sa však môže veľmi nemilo vypomstiť.


Podporte nás


Páčil sa Vám tento článok? Ak áno, prosím podporte nás ľubovoľnou čiastkou. Ďakujeme!


ITC manažer Security-portal.cz Soom.cz
Hoax.cz Crypto-world.info