Vrata so eden od glavnih razlogov, da lahko po­dat­kov­ni paketi najdejo pot do želenega cilja. Delujejo kot vmesniki med ra­ču­nal­ni­ki in sis­tem­ski­mi sto­ri­tva­mi ali programi, upo­ra­blja­ta pa jih omrežna protokola TCP in UDP. V povezavi z naslovom IP lahko ope­ra­cij­ski sistemi ugotovijo, kateremu ra­ču­nal­ni­ku in kateri apli­ka­ci­ji naj pošljejo podatke.

Kaj je ske­ni­ra­nje vrat? Kratka razlaga

Ske­ni­ra­nje vrat pomeni ciljno usmerjen postopek pre­ver­ja­nja odprtih vrat v ra­ču­nal­ni­škem sistemu s pomočjo posebnih orodij. Preden se poglobimo v to, kaj je ske­ni­ra­nje vrat, je morda koristno najprej pogledati, kaj so vrata. Vrata služijo kot vmesnik med aktivnimi programi in in­ter­ne­tom. Upo­ra­blja­jo se za usmer­ja­nje vhodnih in izhodnih po­dat­kov­nih paketov k ustreznim apli­ka­ci­jam, upra­vlja­jo pa jih ope­ra­cij­ski sistemi.

Note

Da lahko apli­ka­ci­ja ko­mu­ni­ci­ra prek vrat, morajo biti ta odprta. Odpiranje vrat pa pred­sta­vlja tveganje. Če ima katera od aplikacij, ki uporablja ta vrata, varnostne ran­lji­vo­sti, lahko ta vrata postanejo po­ten­ci­al­na vstopna točka za napadalce. Da bi zmanjšali tveganje napada, morate vedno vedeti, katera vrata so odprta v vašem sistemu in katere apli­ka­ci­je so z njimi povezane.

Za izvedbo ske­ni­ra­nja vrat na ciljnem sistemu ni potrebno, da ste v njem pri­ja­vlje­ni. Zadostuje, da ste z njim povezani prek lokalnega omrežja ali interneta. S pomočjo programov za ske­ni­ra­nje vrat lahko na različna vrata pošiljate posebne po­dat­kov­ne pakete kot testne poizvedbe. Nato boste prejeli odgovore ali sporočila o napakah, ki jih bo ana­li­zi­ra­lo orodje, ki ga upo­ra­blja­te. Glede na obseg funkcij programa za ske­ni­ra­nje lahko pridobite in­for­ma­ci­je o tem, katera vrata so odprta in katera zaprta. Prejeli boste tudi podatke o tem, katere storitve in/ali apli­ka­ci­je upo­ra­blja­jo posamezna vrata.

Ske­ni­ra­nje vrat sis­tem­skim ad­mi­ni­stra­tor­jem ponuja zelo učin­ko­vi­to orodje za spre­mlja­nje prometa podatkov v omrežju. S ske­ni­ra­njem vrat je mogoče odkriti morebitne šibke točke in zmanjšati površino napada sistema. V nekaterih primerih lahko ad­mi­ni­stra­tor­jem pomaga pri reševanju kon­kre­tnih omrežnih težav. Poleg tega orodja nimajo opaznega vpliva na zmo­glji­vost sistemov, ki jih pre­gle­du­je­jo. Zato jih je mogoče uporabiti za varnostne ukrepe, ne da bi se bilo treba skrbeti za ne­za­že­le­ne učinke na zmo­glji­vost sistema.

Programi za pre­gle­do­va­nje vrat so koristni tudi za domače ra­ču­nal­ni­ke. Takoj ko začnete upo­ra­blja­ti programe, ki zahtevajo in­ter­ne­tno povezavo, se vrata samodejno odprejo, razen če jim to prepreči vaš požarni zid. Pregled vrat vam lahko pomaga ohraniti pregled nad stanjem in vam pokaže vrata, ki jih ne po­tre­bu­je­te več. Ta lahko nato zaprete, da zmanjšate varnostna tveganja.

Kako poteka ske­ni­ra­nje vrat?

Programi za ske­ni­ra­nje vrat ponujajo številne različne metode. Večina med njimi pa temelji na protokolu TCP, ki je usmerjen v vzpo­sta­vlja­nje povezav. Da bi razumeli osnovne procese, ki potekajo med ske­ni­ra­njem vrat, je koristno, da si ogledamo splošno strukturo povezav TCP:

  • Ta postopek, znan tudi kot tri­stran­ski rokovanje, se začne s tem, da odjemalec pošlje paket SYN (sin­hro­ni­za­ci­ja) na ciljno vrata.
  • Ko paket prispe do apli­ka­ci­je, stranka prejme kom­bi­ni­ra­ni paket SYN/ACK (sin­hro­ni­za­ci­ja/potrditev), ki potrdi, da je bila povezava vzpo­sta­vlje­na.
  • V tretjem in zadnjem koraku stranka pošlje paket ACK (potrditev), ki vzpostavi povezavo in omogoči začetek izmenjave podatkov.

Če pride do vzpo­sta­vi­tve povezave z zaprtim vratom, bo odjemalec v drugem koraku prejel paket RST (po­na­sta­vi­tev), s čimer se rokovanje zaključi.

Ker bi bila izmenjava podatkov z raz­lič­ni­mi vrstami aplikacij zahtevna in zamudna, se ske­ni­ra­nje vrat omejuje na preproste poskuse vzpo­sta­vi­tve povezav, kot kažejo naslednje metode ske­ni­ra­nja.

TCP-SYN ske­ni­ra­nje

Cilj ske­ni­ra­nja TCP-SYN ni vzpo­sta­vi­tev popolne povezave TCP. Zato se ta vrsta ske­ni­ra­nja pogosto imenuje ske­ni­ra­nje po­lod­pr­tih vrat. Pri tej metodi skener vrat pošilja tipične pakete SYN na posamezna vrata in čaka na odgovor ciljnega go­sti­te­lja. Če gostitelj vrne paket SYN/ACK, to pomeni, da je zadevno vrata odprto in da je mogoče vzpo­sta­vi­ti povezavo. Če je odgovor paket RST, to pomeni, da je vrata zaprta. Če ni odgovora, je to verjetno mogoče pripisati filtru paketov (npr. požarnemu zidu), ki se nahaja v zgornjem delu omrežja.

TCP-SYN-ske­ni­ra­nja niso vidna za apli­ka­ci­je, ki se pre­gle­du­je­jo, zato ne ustvar­ja­jo nobenih dnev­ni­ških podatkov. Zato se jim reče tudi »ske­ni­ra­nja v skrivnem načinu«.

Pregled povezav TCP

Če s svojim skenerjem vrat izvedete ske­ni­ra­nje povezave, po­dat­kov­ne­ga paketa dejansko ne ustvar­ja­te in pošiljate sami. Namesto tega upo­ra­blja­te sistemski klic connect. Ta je na voljo v skoraj vsakem ope­ra­cij­skem sistemu. Če je poskus vzpo­sta­vi­tve povezave uspešen, to pomeni, da je vrata odprta. Če poskus vzpo­sta­vi­tve povezave ni uspešen, to pomeni, da je vrata zaprta. Če je bila povezava uspešno vzpo­sta­vlje­na (tj. vrata so bila odprta), boste v dnev­ni­ških datotekah apli­ka­ci­je lahko videli, da je bila upo­ra­blje­na ta tehnika ske­ni­ra­nja. Vendar pa in­for­ma­ci­je o upo­ra­blje­nih programih za fil­tri­ra­nje ne bodo na voljo. Če nimate pravic za po­ši­lja­nje surovih po­dat­kov­nih paketov, je ske­ni­ra­nje TCP connect lahko koristna al­ter­na­ti­va ske­ni­ra­nju SYN.

TCP-FIN, božični in null ske­ni­ra­nja

Te tri metode pre­gle­do­va­nja vrat omogočajo tudi raz­li­ko­va­nje med odprtimi in zaprtimi vrati. Pri tem se upo­ra­blja­ta dva osnovna koncepta, ki sta opisana v RFC 793:

  1. Zaprta vrata morajo na pakete (če ne gre za pakete RST) vedno od­go­vo­ri­ti s svojim paketom RST.
  2. Odprta vrata morajo igno­ri­ra­ti vse pakete, ki niso označeni kot SYN, RST ali ACK.

Pri ske­ni­ra­nju sistemov, ki so skladni s stan­dar­dom RCF, te metode ske­ni­ra­nja iz­ko­ri­šča­jo ta načela z uporabo lastnih paketov:

  • Pri ske­ni­ra­nju z metodo Null se ne upo­ra­blja­jo nobene posebne oznake.
  • Pri ske­ni­ra­nju FIN skener vrat pošilja pakete FIN (končaj)
  • Xmas ske­ni­ra­nje uporablja kom­bi­na­ci­jo oznak FIN, PSH (push) in URG (urgent), zaradi česar paketi zasvetijo kot božično drevo.

Vse tri metode ske­ni­ra­nja delujejo na enak način. Zaradi pravil RCF testni paketi za­go­ta­vlja­jo, da zaprti vrata od­go­vo­ri­jo s paketi RST, odprta vrata pa ne dajo odgovora. Vsi usmer­je­val­ni­ki ne pošiljajo sporočil o napaki, če je vrata fil­tri­ra­na, kar lahko pomeni, da gre za fil­tri­ra­na vrata, če se sporočilo ne prikaže (poleg možnosti, da gre za odprta vrata). Čeprav je ta metoda veliko bolj diskretna kot ske­ni­ra­nje SYN, morda ne deluje pravilno, če sistemi ne upo­šte­va­jo v celoti RFC 793. Izrazit primer tega je Windows.

UDP-ske­ni­ra­nje

Pri ske­ni­ra­nju UDP se na vsa prazna vrata pošiljajo prazni UDP-glave brez podatkov. Če storitev odgovori s paketom UDP, je ustrezno vrata odprto. Če skener vrat od usmer­je­val­ni­ka prejme sporočilo o napaki »Vrata ne­do­se­glji­va« (tip 3, koda 3), vrata prepozna kot zaprta. Druga sporočila o napakah upo­rab­ni­ke obveščajo, da za blo­ki­ra­nje vrat krivijo filtri paketov. Problem pri te­sti­ra­nju UDP-vrat je ogromna količina časa, ki je za to potrebna. To je zato, ker lahko pri mnogih sistemih zaradi var­no­stnih razlogov traja dolgo, da se izpišejo sporočila o napakah. Poleg tega mnogi od teh sistemov od­go­var­ja­jo na vrata le občasno. Jedro Linux omejuje število poročil na sekundo, kar pomeni, da bi za popolno ske­ni­ra­nje 65.535 vrat po­tre­bo­va­li približno 18 ur.

Kateri skenerji vrat obstajajo?

Na voljo je veliko različnih skenerjev, ki se med seboj raz­li­ku­je­jo po obsegu ponujenih funkcij. Večina teh orodij je na voljo kot brez­plač­na pro­gram­ska oprema ali od­pr­to­ko­dne rešitve. Mnoge od njih vklju­ču­je­jo klasične programe za ukazno vrstico, ki jih je mogoče upo­ra­blja­ti prek ločenih grafičnih vmesnikov. Poleg tega obstaja veliko spletnih rešitev, ki upo­rab­ni­kom omogočajo ske­ni­ra­nje vrat ne­po­sre­dno v br­skal­ni­ku. Storitve, kot je skener vrat DNS tools, so omejene glede na svoje funkcije in ponujajo le možnost pre­ver­ja­nja po­sa­me­znih vrat. Zaradi tega so primerne za hitro pre­ver­ja­nje na osebnih ra­ču­nal­ni­kih.

Netcat

Program Netcat (skrajšano: nc) je leta 1996 izdal anonimni raz­vi­ja­lec, znan pod imenom »Hobbit«. Sprva je bil napisal za platforme Unix, danes pa obstaja veliko različic za sisteme, kot je Windows, ter različnih raz­ši­ri­tev, kot so GNU Netcat, OpenBSD Netcat, Cryptcat in Netcat6 (ki podpira tudi IPv6), ki so privzeto vključene v številne di­s­tri­bu­ci­je Linuxa. Osnovna različica orodja za ukazno vrstico je namenjena predvsem po­ši­lja­nju ali branju podatkov prek omrežnih povezav TCP in UDP. Uporablja se lahko tudi za preproste naloge ske­ni­ra­nja vrat. To upo­rab­ni­kom omogoča, da preverijo stanje vrat od 20 do 30 na določenem sistemu s pre­pro­sti­mi ukazi, kot so:

nc -zv localhost 20-30
bash

Za pre­ver­ja­nje vrat UDP je potreben dodatni parameter*-u*. Namesto localhost lahko uporabite tudi ime go­sti­te­lja ali IP-naslov zunanjega sistema (če ga poznate).

Nmap

Precej zmo­glji­vej­še orodje, ki je še posebej uporabno za ske­ni­ra­nje vrat, je Network Mapper, pogosto imenovan Nmap. Nmap, zasnovan za uni­kso­vske sisteme, je li­cen­ci­ran pod licenco GPL, za sisteme Windows pa je na voljo že od leta 2000 (čeprav z ome­ji­tva­mi). To pomeni, da ske­ni­ra­nje s pro­to­ko­lom TCP Connect traja ne­so­raz­mer­no dolgo in da je ske­ni­ra­nje vrat lastnega sistema mogoče le prek posrednih poti. Na splošno se Nmap upravlja prek ukazne vrstice. Zenmap pa ima zmogljiv grafični vmesnik, ki upo­rab­ni­kom omogoča enostavno uporabo omrežnega orodja.

Za nadaljnji razvoj programa in njegovih funkcij za ske­ni­ra­nje vrat so odgovorni avtor programa Nmap, Gordon Lyon, ter razvojna ekipa Nmap. Zlasti teh­no­lo­gi­je, kot so pre­po­zna­va­nje ope­ra­cij­ske­ga sistema (tj. pre­po­zna­va­nje ope­ra­cij­ske­ga sistema ciljnega go­sti­te­lja) in od­kri­va­nje storitev, ki se skrivajo za vrati, uvrščajo Nmap med najbolj pri­lju­blje­ne rešitve za ske­ni­ra­nje vrat. V spodnji tabeli je prikazana paleta metod, ki jih ponuja ta program:

Metode ske­ni­ra­nja vrat Ukaz Nmap Opis
TCP po­ve­zo­val­no ske­ni­ra­nje nmap -sT gostitelj Klasična pre­ver­ja­nja za upo­rab­ni­ke brez skrb­ni­ških pravic
TCP Syn ske­ni­ra­nje nmap -sS gostitelj Hitri, neopazni načini pregleda za ad­mi­ni­stra­tor­je.
TCP FIN-/XMAS-/Null ske­ni­ra­nje nmap -sF gostitelj nmap -sX gostitelj nmap -sN gostitelj Metode, ki lahko zaobidejo požarne zidove
TCP ping ske­ni­ra­nje nmap -sP gostitelj Za tra­di­ci­o­nal­ne ske­ni­ra­nje vrat; pomaga preveriti raz­po­lo­žlji­vost go­sti­te­lja.
TCP ACK ske­ni­ra­nje nmap -sA gostitelj Ugotovi do­sta­vlje­ne vrata, vendar ne razlikuje med odprtimi in zaprtimi vrati
Ske­ni­ra­nje TCP okna nmap -sW gostitelj Podoben ske­ni­ra­nju ACK; lahko preveri nekatere odprte in zaprte vrata.
TCP Maimon ske­ni­ra­nje nmap -sM gostitelj Kom­bi­na­ci­ja ske­ni­ra­nja FIN in ACK.
TCP idle ske­ni­ra­nje nmap -sI zombie host host Najmanj opazna, najbolj zapletena in zato naj­po­ča­snej­ša metoda ske­ni­ra­nja; poteka prek tretjega ra­ču­nal­ni­ka, ki ga Nmap označi kot »zombie«.
UDP ske­ni­ra­nje nmap -sU gostitelj Metode ske­ni­ra­nja za brezvezne UDP-vrata
SCTP init ske­ni­ra­nje nmap -sY gostitelj Ske­ni­ra­nje vrat s SCTP, al­ter­na­ti­vo TCP in UDP
Ske­ni­ra­nje IP protokola nmap -sO gostitelj Brez ske­ni­ra­nja vrat; preveri, kateri protokol na podlagi IP je podprt na ciljnem sistemu

Na uradni spletni strani programa Nmap lahko prenesete tako program Nmap kot tudi vmesnik Zenmap za svoj ope­ra­cij­ski sistem. Na voljo sta tako trenutna (stabilna) različica kot tudi beta različica (razvojna).

Zakaj ske­ni­ra­nje vrat ni vedno zakonito

Pre­ver­ja­nje vrat ni vedno zakonito. Takoj ko pride do poskusaiz­ko­ri­šča­nja ran­lji­vo­sti (izraz, ki ga stro­kov­nja­ki za ki­ber­net­sko varnost upo­ra­blja­jo za dejanje iz­ko­ri­šča­nja varnostne po­manj­klji­vo­sti ali vrzeli), se lahko oseba ali skupina, odgovorna za to, sooča z mo­re­bi­tni­mi pravnimi po­sle­di­ca­mi.

Manj jasno pa je, kakšno je pravno stanje, kadar se ra­ču­nal­ni­ški sistem zaradi in­ten­ziv­ne­ga ske­ni­ra­nja vrat zaustavi. Zaradi visoke po­go­sto­sti zahtevkov za povezavo lahko takšne metode spre­mlja­nja pred­sta­vlja­jo izziv za ciljni sistem, kar včasih povzroči njegov sesutje. Poleg tega se lahko skrbniki ciljnega sistema še pred sesutjem zavedo de­jav­no­sti na­pa­dal­cev in te ukrepe razumejo kot prve korake napada.

V takih primerih je pomembno, da ne iz­klju­či­mo pravnih posledic. Če je ciljni sistem namerno pre­o­bre­me­njen, se to lahko šteje za DDoS-napad, zaradi česar lahko žrtev napada sproži pravne postopke.

Vedno se morate pre­pri­ča­ti, da imate po­o­bla­sti­lo za izvajanje ske­ni­ra­nja vrat na sistemu, ter to metodo upo­ra­blja­ti izključno v varnostne namene in ne zgolj zaradi lastne ra­do­ve­dno­sti. Metode ske­ni­ra­nja vrat, ki so tukaj obrav­na­va­ne, po­u­dar­ja­jo, kako pomembno je, da spre­mlja­te vrata lastnega sistema in ra­ču­nal­ni­ke v omrežju ter storitve, ki dostopajo do njih.

Go to Main Menu