Kucanje u luci: Sigurnosna ideja čije je vrijeme došlo

Mnogo, mnogo inovacija dolazi iz svijeta Linuxa i Unixa. Rijetki su mi intrigantniji od kucanja u luci. Kao globalni sigurnosni dodatak za zaštitu usluga, puno toga ima i ima nekoliko nedostataka. Međutim, iz jednog ili drugog razloga pati od nedostatka korištenja i razumijevanja. Mnogi su administratori možda čuli za to, ali malo ih zna kako to primijeniti. Još manje ih je koristilo.

Kucanje putem porta djeluje na konceptu da korisnici koji se žele priključiti na mrežnu uslugu moraju pokrenuti unaprijed određeni slijed lučkih veza ili poslati jedinstveni niz bajtova prije nego što se udaljeni klijent može povezati s eventualnom uslugom. U svom najosnovnijem obliku, klijentski softver udaljenog korisnika mora se prvo povezati s jednim ili više priključaka prije povezivanja s konačnim odredišnim portom.

Na primjer, pretpostavimo da se udaljeni klijent želi povezati s SSH poslužiteljem. Administrator prije vremena konfigurira zahtjeve za kucanjem porta, zahtijevajući da se povezivanje udaljenih klijenata prvo poveže s priključcima 3400, 4000 i 9887 prije spajanja na krajnji odredišni port, 22. Administrator svim legitimnim klijentima kaže ispravnu "kombinaciju" za povezivanje ; zlonamjernim hakerima koji se žele povezati sa SSH uslugom uskratit će se pristup bez kombinacije. Lupanje lukama onemogućit će čak i ljubitelje skeniranja luka i privlačenja transparenta.

Budući da se može koristiti bilo koja kombinacija portova i transportnih protokola, velik je broj mogućih sekvenci koje bi napadač morao pogoditi. Čak i ako je haker znao da su uključena samo tri kucanja porta, kao u vrlo jednostavnom primjeru gore, s 64.000 mogućih TCP, UDP i ICMP (Internet Control Message Protocol) portova koje možete izabrati, rezultirajući skup mogućih kombinacija za hakera pokušaj trči na milijune. Skeneri porta će biti frustrirani jer lupanje lukama koristi zatvorene portove za preslušavanje (više o tome u nastavku).

Najveća prednost svega je što je kucanje porta neovisno o platformi, uslugama i aplikacijama: Bilo koji OS s ispravnim klijentskim i poslužiteljskim softverom može iskoristiti svoju zaštitu. Iako je kucanje porta uglavnom implementacija Linux / Unixa, postoje Windows alati koji mogu učiniti isto. I slično IPSecu i drugim zaštitnim mehanizmima, niti jedna uključena usluga ili aplikacija ne mora biti svjesna lupanja.

Poslužiteljski softver za kucanje porta funkcionira nadgledanjem dnevnika vatrozida i traženjem veza sa zatvorenim priključcima ili nadgledanjem IP steka. Prva metoda zahtijeva da se svi odbijeni pokušaji povezivanja brzo zapišu u dnevnik vatrozida, a usluga kucanja porta (demon) nadgleda i uspostavlja korelaciju legitimnih kombinacija kucanja porta. Za ovjerene kombinacije kucanja, usluga poslužitelja za kucanje porta tada govori vatrozidu da otvori konačni traženi port samo za legitimni klijent za kucanje porta - obično se prati putem IP adrese.

Naprednije implementacije lupanja porta rade na IP stogu i slušaju i snimaju veze na zatvorene portove ili koriste sofisticiraniji mehanizam. Neke implementacije traže određeni niz bajtova u prvom pokušaju povezivanja. Ti se bajtovi mogu čak i "sakriti" u jednostavnom ping-u ICMP zahtjeva za odjekom. Još jače metode pregovaranja o kucanju luka uključuju šifriranje ili asimetričnu provjeru autentičnosti.

Kucanje porta također može poslužiti kao dodatni nivo zaštite za zaštitu visoko rizičnih usluga daljinskog upravljanja, poput SSH i RDP (protokol udaljene radne površine). Nažalost, lupanje lukama koristilo je više od nekoliko rootkit trojanaca dok njihovi tvorci hakera pokušavaju zadržati kontrolu nad vlastitim zlonamjernim kreacijama.

Kritičari često ukazuju na činjenicu da bi hakeri koji prisluškuju mogli uspjeti uhvatiti i ponoviti uspješan slijed kucanja luka ili niz bajtova. Iako bi to moglo biti istina s osnovnim implementacijama, napadi poput ovih ugušili bi se korištenjem sofisticiranijih metoda provjere autentičnosti ili umanjili upotrebom sekundarnih teško kodiranih dopuštenih IP adresa poput TCP omotača.

Ako haker uspije prikupiti vašu kombinaciju, najgori je scenarij da uljez zaobiđe zaštitu od udara i da se sada mora suočiti s vašim uobičajenim sigurnosnim mjerama usluge - traženje lozinke za prijavu i tako dalje. Koliko vidim, korištenje lupanja lukom može samo ojačati bilo koju dubinsku obranu i ne čini joj ništa nažao.

Volio bih da Windows ima zadane ugrađene mehanizme za kucanje porta. To bi bio lijep dodatak Microsoftovoj implementaciji IPSec i Kerberos koja je testirana na tržištu. Svijet Linux / Unix ima mnoštvo implementacija koje kucaju na vrata, a nijedno od njih ne zahtijeva nevjerojatnu stručnost za konfiguriranje ili upotrebu.

Za više informacija o kucanju u luci posjetite www.portknocking.org ili en.wikipedia.org/wiki/Port_knocking. Pojedinosti o konfiguraciji iz jednog primjera implementacije potražite na gentoo-wiki.com/HOWTO_Port_Knocking.

Izvrsnu kolekciju softvera i uslužnih programa za kucanje porta možete pronaći na www.portknocking.org/view/implementations, a drugi poslužitelj i klijent za kucanje porta koji se temelje na sustavu Windows mogu se naći na www.security.org.sg/code/portknock1 .html.