Programavimas

Beldimas į uostą: saugumo idėja, kurios laikas atėjo

Daug daug naujovių ateina iš „Linux“ ir „Unix“ pasaulio. Nedaugelis mane labiau intriguoja nei beldimas į uostą. Kaip visuotinis saugos papildinys paslaugoms apsaugoti, jis turi daug ką nuveikti ir nedaug trūkumų. Tačiau dėl vienų ar kitų priežasčių jis kenčia dėl nepakankamo naudojimo ir supratimo. Galbūt daugelis administratorių apie tai yra girdėję, tačiau nedaugelis žino, kaip tai įgyvendinti. Dar mažiau juo pasinaudojo.

Prijungimas prie uosto veikia pagal koncepciją, kad vartotojai, norintys prisijungti prie tinklo paslaugos, turi inicijuoti iš anksto nustatytą uosto jungčių seką arba išsiųsti unikalią baitų eilutę, kol nuotolinis klientas galės prisijungti prie galimos paslaugos. Pagrindine forma nuotolinio vartotojo kliento programinė įranga pirmiausia turi prisijungti prie vieno ar daugiau uostų, prieš prisijungdama prie galutinio paskirties uosto.

Pavyzdžiui, tarkime, kad nuotolinis klientas nori prisijungti prie SSH serverio. Administratorius iš anksto sukonfigūruoja uosto trankymo reikalavimus, reikalaudamas, kad prisijungdami nuotoliniai klientai pirmiausia prisijungtų prie 3400, 4000 ir 9887 prievadų, prieš prisijungdami prie galutinio paskirties prievado, 22. Administratorius nurodo visiems teisėtiems klientams teisingą „derinį“ prisijungti. ; kenksmingiems įsilaužėliams, norintiems prisijungti prie SSH paslaugos, nebus suteikta prieiga be jų derinio. Beldimas į uostą sužlugdys net uosto nuskaitymo ir reklaminių antraščių griebimo mėgėjus.

Kadangi galima naudoti bet kokį uostų ir perdavimo protokolų derinį, galimų sekų, kurias užpuolikas turėtų atspėti, skaičius yra didelis. Net jei įsilaužėlis žinojo, kad tai susiję tik su trimis prievadų trikdžiais, kaip parodyta aukščiau pateiktame labai paprastame pavyzdyje, su 64 000 galimų TCP, UDP ir ICMP (interneto valdymo pranešimo protokolo) prievadų, kuriuos galima pasirinkti, rinkinys, gautas iš įsilaužėlio galimų derinių. pabandykite patekti į milijonus. Uosto skaitytuvai bus nusivylę, nes trankant uostui klausytis naudojami uždari prievadai (daugiau apie tai žemiau).

Didžiausias visų privalumas yra tai, kad uosto trankymas nepriklauso nuo platformos, paslaugų ir programų: bet kuri OS su tinkama kliento ir serverio programine įranga gali pasinaudoti jos apsauga. Nors uosto trankymas daugiausia yra „Linux / Unix“ diegimas, yra „Windows“ įrankių, kurie gali padaryti tą patį. Panašiai kaip „IPSec“ ir kiti apsaugos mechanizmai, nė viena iš susijusių paslaugų ar programų neturi žinoti apie uosto beldimąsi.

Uosto bakstelėjimo serverio programinė įranga veikia stebint užkardos žurnalą ir ieškant ryšių su uždarais prievadais arba stebint IP kaminą. Pirmasis metodas reikalauja, kad visi uždrausti prisijungimo bandymai būtų greitai įrašomi į užkardos žurnalą, o uosto bakstelėjimo tarnyba (deimonas) stebi ir koreliuoja teisėtas uosto bakstelėjimo kombinacijas. Tikrintiems kopijavimo deriniams uosto bakstelėjimo serverio tarnyba liepia ugniasienei atidaryti galutinį prašomą prievadą tik teisėtam uosto bakstelėjimo klientui - paprastai stebimam pagal IP adresą.

Pažangesni uosto trankymo darbai įgyvendinami IP rietuvėje ir klausomi ir įrašomi ryšiai su uždarais prievadais, arba naudojamas sudėtingesnis mechanizmas. Kai kurie diegimai ieško konkrečios baitų serijos per pirmąjį bandymą prisijungti. Šie baitai netgi gali būti „paslėpti“ paprastame ICMP aido užklausos pinge. Dar stipresni derybų iš uosto išjungimo metodai apima šifravimą arba asimetrinį autentifikavimą.

Uosto trankymas taip pat gali būti papildomas saugumo sluoksnis apsaugant didelės rizikos nuotolinio valdymo paslaugas, tokias kaip SSH ir RDP (nuotolinio darbalaukio protokolas). Deja, uosto trankymą naudojo daugiau nei keli rootkit trojiečiai, nes jų įsilaužėlių kūrėjai bando išlaikyti savo kenkėjiškų kūrinių kontrolę.

Kritikai dažnai atkreipia dėmesį į tai, kad įsiklausantys įsilaužėliai gali užfiksuoti ir pakartoti sėkmingą uosto trankymo seką ar baitų seriją. Nors tai gali būti tiesa su pagrindiniais diegimais, tokios atakos kaip šios būtų sutraiškytos naudojant sudėtingesnius autentifikavimo metodus arba sumažintos naudojant antrinius griežtai koduotus leidžiamus IP adresus, pvz., TCP paketus.

Jei įsilaužėliui pavyksta surinkti jūsų derinį, blogiausiu atveju scenarijus yra tas, kad įsibrovėlis apeina apsaugą nuo uosto trankymo ir dabar turi imtis jūsų įprastų paslaugų saugumo priemonių - prisijungimo slaptažodžio raginimo ir pan. Kiek galiu pasakyti, uosto beldimasis gali tik sustiprinti bet kokią nuodugnią gynybos strategiją ir nieko nedaryti, kad jai pakenktų.

Norėčiau, kad „Windows“ pagal nutylėjimą būtų įmontuoti uosto trankymo mechanizmai. Tai būtų puikus „Microsoft“ rinkoje išbandytų „IPSec“ ir „Kerberos“ diegimų papildymas. „Linux / Unix“ pasaulyje galima rinktis daugybę uosto bakstelėjimo diegimų, kurių konfigūravimui ar naudojimui nereikia nė vienos neįtikėtinos patirties.

Norėdami gauti daugiau informacijos apie uosto beldimą, apsilankykite www.portknocking.org arba en.wikipedia.org/wiki/Port_knocking. Išsamios konfigūracijos iš vieno įgyvendinimo pavyzdžio ieškokite gentoo-wiki.com/HOWTO_Port_Knocking.

Puikią uosto trankymo programinės įrangos ir paslaugų rinkinį galite rasti svetainėje www.portknocking.org/view/implementations, o kitą „Windows“ pagrindu veikiantį uosto bakstelėjimo serverį ir klientą galite rasti svetainėje www.security.org.sg/code/portknock1 .html.