Programovanie

Klepanie na prístav: Bezpečnostný nápad, ktorého čas nastal

Mnoho, veľa noviniek pochádza zo sveta Linuxu a Unixu. Málokto ma zaujme viac ako klepanie portom. Ako globálny bezpečnostný doplnok na ochranu služieb má toho veľa a len zopár nevýhod. Z jedného alebo iného dôvodu však trpí nedostatkom použitia a porozumenia. Možno o tom počulo veľa správcov, ale málokto vie, ako ho implementovať. Využilo to ešte menej.

Klepanie na port pracuje na koncepte, ktorý musia používatelia, ktorí sa chcú pripojiť k sieťovej službe, inicializovať vopred stanovenú sekvenciu portových pripojení alebo poslať jedinečný reťazec bajtov, aby sa vzdialený klient mohol pripojiť k prípadnej službe. Vo svojej najzákladnejšej podobe sa musí klientsky softvér vzdialeného používateľa najskôr pripojiť k jednému alebo viacerým portom a až potom sa pripojiť k cieľovému portu.

Predpokladajme napríklad, že sa vzdialený klient chce pripojiť k serveru SSH. Správca nakonfiguruje požiadavky na klepanie na port vopred, vyžaduje, aby sa pripojenie vzdialených klientov najskôr pripojilo k portom 3400, 4000 a 9887 pred pripojením k cieľovému portu, 22. Správca povie všetkým legitímnym klientom správnu „kombináciu“ na pripojenie ; škodlivým hackerom, ktorí sa chcú pripojiť k službe SSH, bude bez tejto kombinácie odmietnutý prístup. Klepanie na porty potlačí aj nadšencov skenovania portov a chytania bannerov.

Pretože je možné použiť ľubovoľnú kombináciu portov a transportných protokolov, je počet možných sekvencií, ktoré by útočník musel uhádnuť, vysoký. Aj keď hacker vedel, že išlo iba o tri klepnutia na port, ako je tomu vo veľmi jednoduchom príklade vyššie, pričom na výber je 64 000 možných portov TCP, UDP a ICMP (Internet Control Message Protocol), výsledná sada možných kombinácií pre hackera skúste naraziť na milióny. Skenery portov budú frustrované, pretože klepanie portov na počúvanie využíva uzavreté porty (viac nižšie).

Najväčšou výhodou všetkých je to, že klepanie portov je nezávislé na platforme, službách a aplikáciách: Každý OS so správnym softvérom klienta a servera môže využiť jeho ochranu. Aj keď je klepanie portov hlavne implementácia Linux / Unix, existujú aj nástroje Windows, ktoré dokážu to isté. A podobne ako IPSec a ďalšie ochranné mechanizmy, ani jedna zo zapojených služieb alebo aplikácií nemusí byť informovaná o klepaní na port.

Softvér servera využívajúci porty pracuje na základe sledovania protokolu brány firewall a hľadania pripojení k uzavretým portom alebo sledovania protokolu IP. Prvá metóda vyžaduje, aby sa všetky pokusy o odmietnutie pripojenia rýchlo zapísali do protokolu brány firewall a služba klepania na porty (démon) monitoruje a koreluje legitímne kombinácie klepania na porty. V prípade overených kombinácií klepania služba servera klepania na porty potom informuje bránu firewall, aby otvorila posledný požadovaný port iba pre legitímneho klienta klepajúceho na porty - obvykle sledovaného podľa adresy IP.

Pokročilejšie implementácie klepania portov pracujú na zásobníku IP a buď počúvajú a zaznamenávajú pripojenia k uzavretým portom, alebo používajú sofistikovanejší mechanizmus. Niektoré implementácie hľadajú pri prvom pokuse o pripojenie konkrétnu sériu bajtov. Tieto bajty môžu byť dokonca „skryté“ v rámci jednoduchého príkazu ping na požiadavku na echo ICMP. Ešte silnejšie spôsoby vyjednávania klepania na porty zahŕňajú šifrovanie alebo asymetrickú autentizáciu.

Klepanie na porty môže slúžiť aj ako ďalšia vrstva zabezpečenia na ochranu vysoko rizikových služieb vzdialenej správy, ako sú SSH a RDP (Remote Desktop Protocol). Bohužiaľ, klepanie na porty používalo viac ako niekoľko trójskych koní typu rootkit, keď sa ich tvorcovia hackerov pokúšajú udržať si kontrolu nad svojimi škodlivými výtvormi.

Kritici často poukazujú na skutočnosť, že odpočúvanie hackerov by mohlo byť schopné zachytiť a prehrať úspešnú sekvenciu alebo sériu bajtov klepajúcich na porty. Aj keď to môže byť pravda pri základných implementáciách, útoky, ako sú tieto, by boli zneškodnené použitím sofistikovanejších metód autentifikácie alebo minimalizované použitím sekundárne pevne zakódovaných povolených adries IP, ako sú napríklad obalové protokoly TCP.

Ak sa hackerovi podarí zhromaždiť vašu kombináciu, najhorším scenárom je, že narušiteľ obchádza ochranu pred klepaním na port a teraz musí čeliť vašim bežným bezpečnostným opatreniam služby - výzve na prihlásenie pomocou hesla atď. Pokiaľ viem, použitie klepania na porty môže iba posilniť akúkoľvek stratégiu hĺbkovej obrany a nerobí nič pre to, aby jej ublížilo.

Prial by som si, aby mal systém Windows predvolene zabudované mechanizmy klepania portov. Bol by príjemným doplnkom implementácií IPSec a Kerberos testovaných na trhu spoločnosťou Microsoft. Svet Linux / Unix má na výber nepreberné množstvo implementácií klepajúcich na porty, z ktorých žiadna nevyžaduje konfiguráciu alebo použitie neuveriteľných odborných znalostí.

Viac informácií o klepaní na porty nájdete na www.portknocking.org alebo en.wikipedia.org/wiki/Port_knocking. Podrobnosti o konfigurácii z jedného príkladu implementácie nájdete na stránke gentoo-wiki.com/HOWTO_Port_Knocking.

Vynikajúcu zbierku softvéru a nástrojov na klepanie na porty nájdete na www.portknocking.org/view/implementations a ďalší server a klienta na klepanie na porty Windows nájdete na www.security.org.sg/code/portknock1. .html.

$config[zx-auto] not found$config[zx-overlay] not found