Kaj je skeniranje vrat?
Vrata so eden od glavnih razlogov, da lahko podatkovni paketi najdejo pot do želenega cilja. Delujejo kot vmesniki med računalniki in sistemskimi storitvami ali programi, uporabljata pa jih omrežna protokola TCP in UDP. V povezavi z naslovom IP lahko operacijski sistemi ugotovijo, kateremu računalniku in kateri aplikaciji naj pošljejo podatke.
Kaj je skeniranje vrat? Kratka razlaga
Skeniranje vrat pomeni ciljno usmerjen postopek preverjanja odprtih vrat v računalniškem sistemu s pomočjo posebnih orodij. Preden se poglobimo v to, kaj je skeniranje vrat, je morda koristno najprej pogledati, kaj so vrata. Vrata služijo kot vmesnik med aktivnimi programi in internetom. Uporabljajo se za usmerjanje vhodnih in izhodnih podatkovnih paketov k ustreznim aplikacijam, upravljajo pa jih operacijski sistemi.
Da lahko aplikacija komunicira prek vrat, morajo biti ta odprta. Odpiranje vrat pa predstavlja tveganje. Če ima katera od aplikacij, ki uporablja ta vrata, varnostne ranljivosti, lahko ta vrata postanejo potencialna vstopna točka za napadalce. Da bi zmanjšali tveganje napada, morate vedno vedeti, katera vrata so odprta v vašem sistemu in katere aplikacije so z njimi povezane.
Za izvedbo skeniranja vrat na ciljnem sistemu ni potrebno, da ste v njem prijavljeni. Zadostuje, da ste z njim povezani prek lokalnega omrežja ali interneta. S pomočjo programov za skeniranje vrat lahko na različna vrata pošiljate posebne podatkovne pakete kot testne poizvedbe. Nato boste prejeli odgovore ali sporočila o napakah, ki jih bo analiziralo orodje, ki ga uporabljate. Glede na obseg funkcij programa za skeniranje lahko pridobite informacije o tem, katera vrata so odprta in katera zaprta. Prejeli boste tudi podatke o tem, katere storitve in/ali aplikacije uporabljajo posamezna vrata.
Skeniranje vrat sistemskim administratorjem ponuja zelo učinkovito orodje za spremljanje prometa podatkov v omrežju. S skeniranjem vrat je mogoče odkriti morebitne šibke točke in zmanjšati površino napada sistema. V nekaterih primerih lahko administratorjem pomaga pri reševanju konkretnih omrežnih težav. Poleg tega orodja nimajo opaznega vpliva na zmogljivost sistemov, ki jih pregledujejo. Zato jih je mogoče uporabiti za varnostne ukrepe, ne da bi se bilo treba skrbeti za nezaželene učinke na zmogljivost sistema.
Programi za pregledovanje vrat so koristni tudi za domače računalnike. Takoj ko začnete uporabljati programe, ki zahtevajo internetno 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 potrebujete več. Ta lahko nato zaprete, da zmanjšate varnostna tveganja.
Kako poteka skeniranje vrat?
Programi za skeniranje vrat ponujajo številne različne metode. Večina med njimi pa temelji na protokolu TCP, ki je usmerjen v vzpostavljanje povezav. Da bi razumeli osnovne procese, ki potekajo med skeniranjem vrat, je koristno, da si ogledamo splošno strukturo povezav TCP:
- Ta postopek, znan tudi kot tristranski rokovanje, se začne s tem, da odjemalec pošlje paket SYN (sinhronizacija) na ciljno vrata.
- Ko paket prispe do aplikacije, stranka prejme kombinirani paket SYN/ACK (sinhronizacija/potrditev), ki potrdi, da je bila povezava vzpostavljena.
- V tretjem in zadnjem koraku stranka pošlje paket ACK (potrditev), ki vzpostavi povezavo in omogoči začetek izmenjave podatkov.
Če pride do vzpostavitve povezave z zaprtim vratom, bo odjemalec v drugem koraku prejel paket RST (ponastavitev), s čimer se rokovanje zaključi.
Ker bi bila izmenjava podatkov z različnimi vrstami aplikacij zahtevna in zamudna, se skeniranje vrat omejuje na preproste poskuse vzpostavitve povezav, kot kažejo naslednje metode skeniranja.
TCP-SYN skeniranje
Cilj skeniranja TCP-SYN ni vzpostavitev popolne povezave TCP. Zato se ta vrsta skeniranja pogosto imenuje skeniranje polodprtih vrat. Pri tej metodi skener vrat pošilja tipične pakete SYN na posamezna vrata in čaka na odgovor ciljnega gostitelja. Če gostitelj vrne paket SYN/ACK, to pomeni, da je zadevno vrata odprto in da je mogoče vzpostaviti 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-skeniranja niso vidna za aplikacije, ki se pregledujejo, zato ne ustvarjajo nobenih dnevniških podatkov. Zato se jim reče tudi »skeniranja v skrivnem načinu«.
Pregled povezav TCP
Če s svojim skenerjem vrat izvedete skeniranje povezave, podatkovnega paketa dejansko ne ustvarjate in pošiljate sami. Namesto tega uporabljate sistemski klic connect. Ta je na voljo v skoraj vsakem operacijskem sistemu. Če je poskus vzpostavitve povezave uspešen, to pomeni, da je vrata odprta. Če poskus vzpostavitve povezave ni uspešen, to pomeni, da je vrata zaprta. Če je bila povezava uspešno vzpostavljena (tj. vrata so bila odprta), boste v dnevniških datotekah aplikacije lahko videli, da je bila uporabljena ta tehnika skeniranja. Vendar pa informacije o uporabljenih programih za filtriranje ne bodo na voljo. Če nimate pravic za pošiljanje surovih podatkovnih paketov, je skeniranje TCP connect lahko koristna alternativa skeniranju SYN.
TCP-FIN, božični in null skeniranja
Te tri metode pregledovanja vrat omogočajo tudi razlikovanje med odprtimi in zaprtimi vrati. Pri tem se uporabljata dva osnovna koncepta, ki sta opisana v RFC 793:
- Zaprta vrata morajo na pakete (če ne gre za pakete RST) vedno odgovoriti s svojim paketom RST.
- Odprta vrata morajo ignorirati vse pakete, ki niso označeni kot SYN, RST ali ACK.
Pri skeniranju sistemov, ki so skladni s standardom RCF, te metode skeniranja izkoriščajo ta načela z uporabo lastnih paketov:
- Pri skeniranju z metodo Null se ne uporabljajo nobene posebne oznake.
- Pri skeniranju FIN skener vrat pošilja pakete FIN (končaj)
- Xmas skeniranje uporablja kombinacijo oznak FIN, PSH (push) in URG (urgent), zaradi česar paketi zasvetijo kot božično drevo.
Vse tri metode skeniranja delujejo na enak način. Zaradi pravil RCF testni paketi zagotavljajo, da zaprti vrata odgovorijo s paketi RST, odprta vrata pa ne dajo odgovora. Vsi usmerjevalniki ne pošiljajo sporočil o napaki, če je vrata filtrirana, kar lahko pomeni, da gre za filtrirana vrata, če se sporočilo ne prikaže (poleg možnosti, da gre za odprta vrata). Čeprav je ta metoda veliko bolj diskretna kot skeniranje SYN, morda ne deluje pravilno, če sistemi ne upoštevajo v celoti RFC 793. Izrazit primer tega je Windows.
UDP-skeniranje
Pri skeniranju 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 usmerjevalnika prejme sporočilo o napaki »Vrata nedosegljiva« (tip 3, koda 3), vrata prepozna kot zaprta. Druga sporočila o napakah uporabnike obveščajo, da za blokiranje vrat krivijo filtri paketov. Problem pri testiranju UDP-vrat je ogromna količina časa, ki je za to potrebna. To je zato, ker lahko pri mnogih sistemih zaradi varnostnih razlogov traja dolgo, da se izpišejo sporočila o napakah. Poleg tega mnogi od teh sistemov odgovarjajo na vrata le občasno. Jedro Linux omejuje število poročil na sekundo, kar pomeni, da bi za popolno skeniranje 65.535 vrat potrebovali približno 18 ur.
Kateri skenerji vrat obstajajo?
Na voljo je veliko različnih skenerjev, ki se med seboj razlikujejo po obsegu ponujenih funkcij. Večina teh orodij je na voljo kot brezplačna programska oprema ali odprtokodne rešitve. Mnoge od njih vključujejo klasične programe za ukazno vrstico, ki jih je mogoče uporabljati prek ločenih grafičnih vmesnikov. Poleg tega obstaja veliko spletnih rešitev, ki uporabnikom omogočajo skeniranje vrat neposredno v brskalniku. Storitve, kot je skener vrat DNS tools, so omejene glede na svoje funkcije in ponujajo le možnost preverjanja posameznih vrat. Zaradi tega so primerne za hitro preverjanje na osebnih računalnikih.
Netcat
Program Netcat (skrajšano: nc) je leta 1996 izdal anonimni razvijalec, 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širitev, kot so GNU Netcat, OpenBSD Netcat, Cryptcat in Netcat6 (ki podpira tudi IPv6), ki so privzeto vključene v številne distribucije Linuxa. Osnovna različica orodja za ukazno vrstico je namenjena predvsem pošiljanju ali branju podatkov prek omrežnih povezav TCP in UDP. Uporablja se lahko tudi za preproste naloge skeniranja vrat. To uporabnikom omogoča, da preverijo stanje vrat od 20 do 30 na določenem sistemu s preprostimi ukazi, kot so:
nc -zv localhost 20-30bashZa preverjanje vrat UDP je potreben dodatni parameter*-u*. Namesto localhost lahko uporabite tudi ime gostitelja ali IP-naslov zunanjega sistema (če ga poznate).
Nmap
Precej zmogljivejše orodje, ki je še posebej uporabno za skeniranje vrat, je Network Mapper, pogosto imenovan Nmap. Nmap, zasnovan za uniksovske sisteme, je licenciran pod licenco GPL, za sisteme Windows pa je na voljo že od leta 2000 (čeprav z omejitvami). To pomeni, da skeniranje s protokolom TCP Connect traja nesorazmerno dolgo in da je skeniranje 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 uporabnikom omogoča enostavno uporabo omrežnega orodja.
Za nadaljnji razvoj programa in njegovih funkcij za skeniranje vrat so odgovorni avtor programa Nmap, Gordon Lyon, ter razvojna ekipa Nmap. Zlasti tehnologije, kot so prepoznavanje operacijskega sistema (tj. prepoznavanje operacijskega sistema ciljnega gostitelja) in odkrivanje storitev, ki se skrivajo za vrati, uvrščajo Nmap med najbolj priljubljene rešitve za skeniranje vrat. V spodnji tabeli je prikazana paleta metod, ki jih ponuja ta program:
| Metode skeniranja vrat | Ukaz Nmap | Opis |
|---|---|---|
| TCP povezovalno skeniranje | nmap -sT gostitelj | Klasična preverjanja za uporabnike brez skrbniških pravic |
| TCP Syn skeniranje | nmap -sS gostitelj | Hitri, neopazni načini pregleda za administratorje. |
| TCP FIN-/XMAS-/Null skeniranje | nmap -sF gostitelj nmap -sX gostitelj nmap -sN gostitelj | Metode, ki lahko zaobidejo požarne zidove |
| TCP ping skeniranje | nmap -sP gostitelj | Za tradicionalne skeniranje vrat; pomaga preveriti razpoložljivost gostitelja. |
| TCP ACK skeniranje | nmap -sA gostitelj | Ugotovi dostavljene vrata, vendar ne razlikuje med odprtimi in zaprtimi vrati |
| Skeniranje TCP okna | nmap -sW gostitelj | Podoben skeniranju ACK; lahko preveri nekatere odprte in zaprte vrata. |
| TCP Maimon skeniranje | nmap -sM gostitelj | Kombinacija skeniranja FIN in ACK. |
| TCP idle skeniranje | nmap -sI zombie host host | Najmanj opazna, najbolj zapletena in zato najpočasnejša metoda skeniranja; poteka prek tretjega računalnika, ki ga Nmap označi kot »zombie«. |
| UDP skeniranje | nmap -sU gostitelj | Metode skeniranja za brezvezne UDP-vrata |
| SCTP init skeniranje | nmap -sY gostitelj | Skeniranje vrat s SCTP, alternativo TCP in UDP |
| Skeniranje IP protokola | nmap -sO gostitelj | Brez skeniranja 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 operacijski sistem. Na voljo sta tako trenutna (stabilna) različica kot tudi beta različica (razvojna).
Zakaj skeniranje vrat ni vedno zakonito
Preverjanje vrat ni vedno zakonito. Takoj ko pride do poskusaizkoriščanja ranljivosti (izraz, ki ga strokovnjaki za kibernetsko varnost uporabljajo za dejanje izkoriščanja varnostne pomanjkljivosti ali vrzeli), se lahko oseba ali skupina, odgovorna za to, sooča z morebitnimi pravnimi posledicami.
Manj jasno pa je, kakšno je pravno stanje, kadar se računalniški sistem zaradi intenzivnega skeniranja vrat zaustavi. Zaradi visoke pogostosti zahtevkov za povezavo lahko takšne metode spremljanja predstavljajo izziv za ciljni sistem, kar včasih povzroči njegov sesutje. Poleg tega se lahko skrbniki ciljnega sistema še pred sesutjem zavedo dejavnosti napadalcev in te ukrepe razumejo kot prve korake napada.
V takih primerih je pomembno, da ne izključimo pravnih posledic. Če je ciljni sistem namerno preobremenjen, se to lahko šteje za DDoS-napad, zaradi česar lahko žrtev napada sproži pravne postopke.
Vedno se morate prepričati, da imate pooblastilo za izvajanje skeniranja vrat na sistemu, ter to metodo uporabljati izključno v varnostne namene in ne zgolj zaradi lastne radovednosti. Metode skeniranja vrat, ki so tukaj obravnavane, poudarjajo, kako pomembno je, da spremljate vrata lastnega sistema in računalnike v omrežju ter storitve, ki dostopajo do njih.