Kas yra prievadų nuskaitymas?
Prievadai yra viena iš pagrindinių priežasčių, dėl kurių duomenų paketai gali pasiekti norimą paskirties vietą. Jie veikia kaip sąsajos tarp kompiuterių ir sistemos paslaugų arba programų ir yra naudojami TCP bei UDP tinklo protokolų. Kartu su IP adresu operacinės sistemos gali nustatyti, kuriam kompiuteriui ir kuriai programai jos turi siųsti duomenis.
Kas yra prievadų nuskaitymas? Trumpas paaiškinimas
Prievadų nuskaitymas – tai tikslingas procesas, kurio metu naudojant specialias priemones tikrinami kompiuterinės sistemos atviri prievadai. Prieš gilinantis į tai, kas yra prievadų nuskaitymas, vertėtų pirmiausia paaiškinti, kas yra prievadai. Prievadai veikia kaip sąsaja tarp veikiančių programų ir interneto. Jie naudojami įeinantiems ir išeinantiems duomenų paketams nukreipti į reikiamas programas, o juos valdo operacinės sistemos.
Kad programa galėtų bendrauti per prievadą, šis turi būti atidarytas. Tačiau prievadų atidarymas kelia pavojų. Jei viena iš prievadą naudojančių programų turi saugumo spragų, prievadas gali tapti potencialiu įsilaužėlių įsibrovimo tašku. Norėdami sumažinti įsilaužimo riziką, visada turėtumėte žinoti, kurie prievadai jūsų sistemoje yra atidaryti ir kokios programos su jais susijusios.
Norint atlikti prievadų nuskaitymą, nebūtina būti prisijungusiam prie tikslinės sistemos. Pakanka būti prijungtam prie jos per vietinį tinklą arba internetą. Naudodamiesi prievadų nuskaitymo programomis, galite siųsti specialius duomenų paketus kaip bandymus į įvairius prievadus. Tada gausite atsakymus arba klaidų pranešimus, kuriuos analizuos jūsų naudojama priemonė. Priklausomai nuo nuskaitymo programos funkcionalumo, galite gauti informaciją apie tai, kurie prievadai yra atviri, o kurie uždaryti. Taip pat galite gauti duomenis apie tai, kokias paslaugas ir (arba) programas naudoja atitinkami prievadai.
Prievadų nuskaitymas suteikia sistemos administratoriams labai veiksmingą priemonę tinklo duomenų srautui stebėti. Atliekant prievadų nuskaitymą, galima nustatyti galimas silpnąsias vietas ir sumažinti sistemos pažeidžiamumą. Kai kuriais atvejais tai gali padėti administratoriams išspręsti konkrečias tinklo problemas. Be to, šios priemonės neturi jokio pastebimo poveikio nuskaitomų sistemų našumui. Todėl jas galima naudoti saugumo priemonėms, nesijaudinant dėl nenumatytų pasekmių sistemos našumui.
Prievadų skeneriai taip pat praverčia namų kompiuteriuose. Vos pradėjus naudoti programas, kurioms reikalingas interneto ryšys, prievadai atidaromi automatiškai, nebent jūsų ugniasienė užkirstų tam kelią. Prievadų skenavimas padės jums išlaikyti bendrą vaizdą ir parodys, kurie prievadai jau nebėra reikalingi. Tuomet galėsite juos uždaryti, kad sumažintumėte saugumo riziką.
Kaip veikia prievadų nuskaitymas?
Prievadų skeneriai siūlo daugybę skirtingų metodų. Tačiau dauguma jų naudoja ryšio orientuotą protokolą TCP. Norint suprasti pagrindinius procesus, vykstančius prievadų skenavimo metu, verta susipažinti su bendrąja TCP ryšių struktūra:
- Šis procesas, dar vadinamas trijų etapų rankos paspaudimu, prasideda tuo, kad klientas siunčia SYN paketą (sinchronizacija) į paskirties prievadą.
- Kai paketas pasiekia programą, klientas gauna sujungtą SYN/ACK paketą (sinchronizuoti/patvirtinti), kuris patvirtina, kad ryšys buvo užmegztas.
- Trečiuoju ir paskutiniuoju žingsniu klientas siunčia ACK paketą (patvirtinimas), kuris užbaigia ryšio užmezgimą ir leidžia pradėti keitimąsi duomenimis.
Jei bus užfiksuotas uždarytas prievadas, antrajame žingsnyje klientas gaus RST paketą (atstatymo paketą), ir tai užbaigs ryšio užmezgimo procesą.
Kadangi keistis duomenimis su įvairių tipų programomis būtų sudėtinga ir laiko atimanti užduotis, prievadų nuskaitymas apsiriboja paprastais bandymais užmegzti ryšį, kaip rodo toliau pateikti nuskaitymo metodai.
TCP-SYN nuskaitymas
TCP-SYN skenavimo tikslas nėra užmegzti pilną TCP ryšį. Būtent todėl šis skenavimo tipas dažniausiai vadinamas pusiau atvirų prievadų skenavimu. Naudojant prievadų skenerį, šis metodas siunčia tipinius SYN paketus į atskirus prievadus ir laukia atsakymo iš tikslinio kompiuterio. Jei kompiuteris atsiunčia atgal SYN/ACK paketą, tai reiškia, kad atitinkamas prievadas yra atviras ir galima užmegzti ryšį. Jei atsakymas yra RST paketas, tai reiškia, kad prievadas yra uždarytas. Jei atsakymo nėra, tai greičiausiai galima priskirti paketo filtrui (pvz., ugniasienei), esančiam prieš srautą.
TCP-SYN nuskaitymai nėra matomi vertinamoms programoms, todėl jie nesukuria jokių žurnalo įrašų. Dėl to jie dar vadinami „nematomais“ nuskaitymais.
TCP prisijungimo skenavimas
Jei atliekate „connect“ tipo skenavimą naudodami prievadų skenerį, iš tikrųjų duomenų paketo nesukuriate ir nesiunčiate patys. Vietoj to naudojate sistemos iškvietą „connect“. Ji yra prieinama beveik visose operacinėse sistemose. Jei prisijungimo bandymas pavyksta, tai reiškia, kad prievadas yra atviras. Jei prisijungimo bandymas nepavyksta, tai reiškia, kad prievadas yra uždarytas. Jei ryšys buvo sėkmingai užmegztas (t. y. prievadas buvo atviras), programos žurnalo failuose galėsite pamatyti, kad buvo naudota ši nuskaitymo technika. Tačiau informacija apie naudotas filtravimo programas nebus pateikta. Jei neturite teisių siųsti neapdorotų duomenų paketų, TCP „connect“ nuskaitymas gali būti naudinga alternatyva SYN nuskaitymams.
TCP-FIN, „Xmas“ ir „Null“ skenavimai
Šie trys prievadų nuskaitymo metodai taip pat leidžia atskirti atvirus prievadus nuo uždarų. Čia naudojamos dvi pagrindinės sąvokos, aprašytos RFC 793standarte:
- Uždaryti prievadai visada turėtų atsakyti į paketus (jei tai nėra RST paketai) savo pačių RST paketu.
- Atviri prievadai turėtų ignoruoti visus paketus, kurie nėra pažymėti kaip SYN, RST arba ACK.
Skenuojant RCF standartą atitinkančias sistemas, šie skenavimo metodai taiko šiuos principus naudodami savo pačių paketus:
- Atliekant „Null“ skenavimą nenaudojami jokie specialūs žymėjimai.
- Atliekant FIN skenavimą, prievadų skeneris siunčia FIN (baigimo) paketus
- „Xmas“ skenavimas naudoja FIN, PSH (push) ir URG (urgent) žymių derinį, dėl kurio paketai užsidega kaip Kalėdų eglutė.
Visi trys nuskaitymo metodai veikia vienodai. Pagal RFC taisykles, bandomieji paketai užtikrina, kad uždaryti prievadai atsakytų RST paketais, o atviri prievadai neatsakytų. Ne visi maršrutizatoriai siunčia klaidų pranešimus, jei prievadas yra filtruojamas, todėl jei pranešimas neatsiranda, tai gali reikšti, kad susiduriama su filtruojamu prievadu (be to, yra galimybė, kad tai gali būti atviras prievadas). Nors šis metodas yra daug diskretiškesnis nei SYN nuskaitymai, jis gali neveikti tinkamai, jei sistemos nevisiškai atitinka RFC 793. Ryškus to pavyzdys yra „Windows“.
UDP nuskaitymas
Atliekant UDP skenavimą, į visus laisvus prievadus siunčiami tušti UDP antraštės be duomenų. Jei paslauga atsako UDP paketu, atitinkamas prievadas yra atviras. Jei prievadų skeneris iš maršrutizatoriaus gauna klaidos pranešimą „Port unreachable“ (3 tipo, 3 kodas), jis pripažįsta, kad prievadas yra uždarytas. Kiti klaidos pranešimai informuoja vartotojus, kad prievadus blokuoja paketų filtrai. UDP prievadų testavimo problema yra tai , kad tam reikia labai daug laiko. Taip yra todėl, kad daugelyje sistemų dėl saugumo priežasčių klaidų pranešimų pateikimas gali užtrukti ilgą laiką. Be to, daugelis šių sistemų į prievadus atsako tik sporadiškai. Linux branduolys riboja pranešimų skaičių per sekundę, o tai reiškia, kad visiškai nuskaityti 65 535 prievadus užtruktų apie 18 valandų.
Kokie yra prievadų skeneriai?
Yra daugybė įvairių skenerių, kurie skiriasi siūlomų funkcijų spektru. Dauguma šių įrankių yra prieinami kaip nemokama programinė įranga arba atvirojo kodo sprendimai. Daugelis jų turi klasikinės komandinės eilutės programas, kurias galima naudoti per atskiras grafinės sąsajas. Be to, yra daug internetinių sprendimų, leidžiančių vartotojams nuskaityti prievadus tiesiogiai naršyklėje. Tokios paslaugos kaip „DNS tools“ prievadų skeneris yra ribotos savo funkcijomis ir siūlo tik galimybę patikrinti atskirus prievadus. Dėl šios priežasties jos puikiai tinka greitam patikrinimui asmeniniuose kompiuteriuose.
Netcat
„Netcat“ (trumpinys: „nc“) 1996 m. išleido anoniminis kūrėjas, žinomas kaip „Hobbit“. Iš pradžių programa buvo sukurta „Unix“ platformoms, tačiau dabar yra daug jos pritaikymų tokioms sistemoms kaip „Windows“, taip pat kitų versijų, pavyzdžiui, „GNU Netcat“, „OpenBSD Netcat“, „Cryptcat“ ir „Netcat6“ (taip pat palaiko IPv6), kurios daugelyje „Linux“ distribucijų įtrauktos pagal numatytuosius nustatymus. Pagrindinė komandinės eilutės įrankio versija pirmiausia skirta duomenims siųsti ar skaityti per TCP ir UDP tinklo ryšius. Tačiau ją taip pat galima naudoti paprastoms prievadų nuskaitymo užduotims. Tai leidžia vartotojams patikrinti 20–30 prievadų būseną nurodytoje sistemoje naudojant paprastas komandas, pvz.:
nc -zv localhost 20-30bashNorint patikrinti UDP prievadus, reikia nurodyti papildomą parametrą*-u*. Vietoj „localhost“ taip pat galite nurodyti išorinės sistemos vardą arba IP adresą (jei jį žinote).
Nmap
Žymiai galingesnis įrankis, ypač naudingas prievadų nuskaitymui, yra „Network Mapper“, dažnai vadinamas „Nmap“. Sukurtas Unix tipo sistemoms, „Nmap“ yra licencijuotas pagal GPL ir nuo 2000 m. yra prieinamas „Windows“ sistemoms (nors ir su tam tikrais apribojimais). Tai reiškia, kad TCP „Connect“ nuskaitymai užima neproporcingai daug laiko, o savo sistemos prievadų nuskaitymas įmanomas tik naudojant netiesioginius kelius. Paprastai „Nmap“ galima valdyti per komandų eilutę. Kita vertus, „Zenmap“ turi našią grafinę sąsają, leidžiančią vartotojams lengvai naudotis šiuo tinklo įrankiu.
Už tolesnę programos ir jos prievadų nuskaitymo funkcijų plėtrą atsakingas „Nmap“ kūrėjas Gordonas Lyonas bei „Nmap“ kūrėjų komanda. Visų pirma tokios technologijos kaip operacinės sistemos atpažinimas (t. y. tikslinio kompiuterio operacinės sistemos nustatymas) ir už prievadų pasislėpusių paslaugų nustatymas daro „Nmap“ vienu iš populiariausių prievadų nuskaitymo sprendimų. Toliau pateiktoje lentelėje nurodyti įvairūs šios programos siūlomi metodai:
| Prievadų nuskaitymo metodai | Nmap komanda | Aprašymas |
|---|---|---|
| TCP prisijungimo nuskaitymas | nmap -sT host | Klasikinis patikrinimas ne administratoriams |
| TCP Syn skenavimas | nmap -sS host | Greiti, nepastebimi tikrinimo metodai administratoriams. |
| TCP FIN-/XMAS-/Null skenavimas | nmap -sF host nmap -sX host nmap -sN host | Metodai, leidžiantys apeiti ugniasienes |
| TCP ping skenavimas | nmap -sP host | Tradiciniams prievadų skenavimams; padeda patikrinti kompiuterio prieinamumą. |
| TCP ACK skenavimas | nmap -sA host | Nustato pasiekiamus prievadus, tačiau neatskiria atvirų ir uždarų prievadų |
| TCP lango nuskaitymas | nmap -sW host | Panašus į ACK skenavimą; gali patikrinti kai kuriuos atvirus ir uždarus prievadus. |
| TCP Maimon skenavimas | nmap -sM host | FIN ir ACK skenavimo derinys. |
| TCP neveikimo skenavimas | nmap -sI zombie host host | Mažiausiai pastebimas, sudėtingiausias ir todėl lėčiausias skenavimo metodas; vykdomas per trečiąjį kompiuterį, kurį Nmap vadina „zombie“. |
| UDP nuskaitymas | nmap -sU host | Skenavimo metodai, skirti nesusijusiems su ryšiu UDP prievadams |
| SCTP inicijavimo nuskaitymas | nmap -sY host | Prievadų nuskaitymas naudojant SCTP, alternatyvą TCP ir UDP |
| IP protokolo nuskaitymas | nmap -sO host | Neskenuojami prievadai; tikrinama, kuris IP protokolas palaikomas tikslinėje sistemoje |
Nmap oficialioje svetainėje galite atsisiųsti tiek pačią programą „Nmap“, tiek jos sąsają „Zenmap“, pritaikytą jūsų operacinei sistemai. Čia rasite tiek dabartinę (stabilią) versiją, tiek beta versiją (kurią dar tobuliname).
Kodėl prievadų nuskaitymas ne visada yra teisėtas
Prievadų tikrinimas ne visada yra teisėtas. Vos tik bandoma pasinaudotipažeidžiamumu (šis terminas, kurį kibernetinio saugumo specialistai vartoja apibūdindami saugumo spragos ar trūkumo išnaudojimą), už tai atsakingas asmuo ar grupė gali susidurti su galimomis teisinėmis pasekmėmis.
Tačiau ne visai aišku, kokia yra teisinė padėtis, kai kompiuterinė sistema sustabdomas dėl intensyvaus prievadų nuskaitymo. Dėl didelio prisijungimo užklausų dažnio tokie stebėjimo metodai gali kelti sunkumų tiksliniam sistemai, o kartais netgi sukelti sistemos gedimą. Be to, tiksliniam sistemai administratoriai gali pastebėti užpuolėjų veiklą dar prieš gedimą ir šiuos veiksmus įvertinti kaip pirmuosius užpuolimo žingsnius.
Tokiais atvejais svarbu nepamiršti galimų teisinių pasekmių. Jei tikslinė sistema yra tyčia perkraunama, tai gali būti traktuojama kaip DDoS ataka, dėl kurios atakos auka gali imtis teisinių veiksmų.
Visada turėtumėte įsitikinti, kad turite leidimą atlikti sistemos prievadų nuskaitymą, ir naudoti šią techniką tik saugumo tikslais, o ne vien tik norėdami patenkinti savo smalsumą. Čia aptarti prievadų nuskaitymo metodai parodo, kaip svarbu stebėti savo sistemos prievadus ir tinklo kompiuterius, taip pat paslaugas, kurios prie jų prisijungia.