Porty sú jedným z hlavných dôvodov, prečo sa dátové pakety dostanú na požadované miesto určenia. Slúžia ako rozhrania medzi počítačmi a systémovými službami alebo programami a používajú ich sieťové protokoly TCP a UDP. Spolu s IP adresou sú operačné systémy schopné zistiť, na ktorý počítač a do akej aplikácie majú odoslať dáta.

Čo je skenovanie portov? Stručné vysvetlenie

Skenovanie portov je cielený proces kontroly otvorených portov v počítačovom systéme pomocou špeciálnych nástrojov. Než sa pustíme do vysvetľovania, čo je skenovanie portov, bolo by dobré najskôr si vysvetliť, čo sú porty. Porty slúžia ako rozhranie medzi aktívnymi programami a internetom. Používajú sa na smerovanie prichádzajúcich a odchádzajúcich dátových paketov do správnych aplikácií a spravujú ich operačné systémy.

Poznámka

Aby aplikácia mohla komunikovať cez port, musí byť otvorený. Otvorenie portov však predstavuje riziko. Ak jedna z aplikácií, ktorá port používa, má bezpečnostné chyby, port môže slúžiť ako potenciálny vstupný bod pre útočníkov. Aby ste minimalizovali riziko útoku, mali by ste vždy vedieť, ktoré porty sú vo vašom systéme otvorené a ktoré aplikácie sú s nimi spojené.

Na vykonanie skenovania portov v cieľovom systéme nie je potrebné byť prihlásený. Stačí byť pripojený prostredníctvom lokálnej siete alebo internetu. Pomocou skenerov portov môžete odosielať špeciálne dátové pakety ako testy na rôzne porty. Potom dostanete odpovede alebo chybové správy, ktoré analyzuje nástroj, ktorý používate. V závislosti od rozsahu funkcií skenovacieho programu môžete získať informácie o tom, ktoré porty sú otvorené a ktoré uzavreté. Môžete tiež získať údaje o tom, ktoré služby a/alebo aplikácie príslušné porty používajú.

Skenovanie portov ponúka správcom systémov veľmi efektívny prostriedok na monitorovanie dátového prevádzky v sieti. Pomocou skenovania portov je možné odfiltrovať potenciálne slabé miesta a znížiť tak zraniteľnosť systému. V niektorých prípadoch môže pomôcť správcom vyriešiť konkrétne problémy so sieťou. Navyše, tieto nástroje nemajú žiadny badateľný vplyv na výkonnosť systémov, ktoré skenujú. V dôsledku toho ich možno použiť na bezpečnostné opatrenia bez obáv z nežiaducich účinkov na výkonnosť systému.

Portové skenery sú užitočné aj pre domáce počítače. Akonáhle začnete používať aplikácie, ktoré vyžadujú pripojenie k internetu, porty sa automaticky otvoria, pokiaľ ich neblokuje firewall. Portové skenovanie vám pomôže udržať prehľad o situácii a ukáže vám porty, ktoré už nie sú potrebné. Tie potom môžete uzavrieť, aby ste znížili bezpečnostné riziká.

Ako funguje skenovanie portov?

Portové skenery ponúkajú mnoho rôznych metód. Väčšina z nich však zahŕňa protokol TCP orientovaný na pripojenie. Aby sme pochopili základné procesy, ktoré prebiehajú počas skenovania portov, je užitočné pozrieť sa na všeobecnú štruktúru pripojení TCP:

  • Tento proces, známy aj ako trojcestné potvrdenie, začína odoslaním paketu SYN (synchronizácia) klientom do cieľového portu.
  • Akonáhle paket dorazí do aplikácie, klient dostane kombinovaný paket SYN/ACK (synchronizácia/potvrdenie), ktorý potvrdzuje, že spojenie bolo nadviazané.
  • V treťom a poslednom kroku klient odošle paket ACK (potvrdenie), ktorý nadviaže spojenie a umožní začatie výmeny dát.

Ak je kontaktovaný uzavretý port, klient dostane v druhom kroku paket RST (reset), čím sa ukončí handshake.

Keďže výmena údajov s rôznymi typmi aplikácií by bola náročná a časovo náročná, skenovanie portov je obmedzené na jednoduché pokusy o nadviazanie spojenia, ako ukazujú nasledujúce metódy skenovania.

Skenovanie TCP-SYN

Cieľom skenovania TCP-SYN nie je vytvorenie úplného TCP pripojenia. Preto sa tento typ skenovania bežne označuje ako skenovanie polootvorených portov. Pomocou skenera portov táto metóda odosiela typické SYN pakety na jednotlivé porty a čaká na odpoveď od cieľového hostiteľa. Ak hostiteľ odošle späť SYN/ACK paket, signalizuje to, že príslušný port je otvorený a je možné nadviazať pripojenie. Ak je odpoveďou paket RST, znamená to, že port je uzavretý. Ak nie je žiadna odpoveď, pravdepodobne to spôsobuje paketový filter (napr. firewall) umiestnený vyššie v sieti.

Skenovanie TCP-SYN nie je viditeľné pre aplikácie, ktoré sú hodnotené, a z tohto dôvodu negeneruje žiadne údaje protokolu. Preto sa tiež označuje ako skryté skenovanie.

Skenovanie TCP pripojenia

Ak vykonáte skenovanie pripojenia pomocou skenera portov, v skutočnosti sami negenerujete a neposielate dátový paket. Namiesto toho používate systémovú funkciu connect. Tá je k dispozícii takmer na každom operačnom systéme. Ak je pokus o pripojenie úspešný, znamená to, že port je otvorený. Ak pokus o pripojenie zlyhá, znamená to, že port je uzavretý. Ak bolo pripojenie úspešne nadviazané (t. j. port bol otvorený), v logových súboroch aplikácie uvidíte, že bola použitá táto technika skenovania. Informácie o použitých filtračných programoch však nebudú poskytnuté. Ak nemáte práva na odosielanie surových dátových paketov, skenovanie TCP connect môže byť užitočnou alternatívou k skenovaniu SYN.

Skenovanie TCP-FIN, Xmas a Null

Tieto tri metódy skenovania portov vám tiež umožňujú rozlišovať medzi otvorenými a uzavretými portmi. Tu sa používajú dva základné pojmy, ktoré sú zdokumentované v RFC 793“):

  1. Uzavreté porty by mali vždy odpovedať na pakety (pokiaľ nie sú to pakety RST) svojím vlastným paketom RST.
  2. Otvorené porty by mali ignorovať všetky pakety, ktoré nie sú označené ako SYN, RST alebo ACK.

Pri skenovaní systémov kompatibilných s RCF tieto metódy skenovania využívajú tieto princípy pomocou vlastných paketov:

  • Null scan nepoužíva žiadne špeciálne označenia.
  • Pri skenovaní FIN portový skener odosiela pakety FIN (finish).
  • Xmas skenovanie používa kombináciu označení FIN, PSH (push) a URG (urgent), vďaka čomu pakety svietia ako vianočný stromček.

Všetky tri metódy skenovania fungujú rovnakým spôsobom. Vďaka pravidlám RCF testovacie pakety zabezpečujú, že uzavreté porty odpovedajú paketmi RST a otvorené porty neposkytujú žiadnu odpoveď. Nie všetky smerovače odosielajú chybové správy, ak je port filtrovaný, čo môže znamenať, že ak sa nezobrazí žiadna správa, ide o filtrovaný port (okrem možnosti, že môže ísť o otvorený port). A hoci je táto metóda oveľa diskrétnejšia ako skenovanie SYN, nemusí fungovať správne, ak systémy nedodržiavajú RFC 793. Výrazným príkladom je Windows.

UDP skenovanie

Pri skenovaní UPD sa prázdne hlavičky UDP bez údajov odosielajú na všetky prázdne porty. Ak služba odpovie paketom UDP, príslušný port je otvorený. Ak skener portov dostane od smerovača chybovú správu „Port nedostupný“ (typ 3, kód 3), rozpozná port ako uzavretý. Ostatné chybové správy slúžia na informovanie používateľov, že za blokovanie portov sú zodpovedné filtre paketov. Problémom testovania portov UDP je obrovské množstvo času, ktoré si vyžaduje. Je to preto, že v mnohých systémoch môže z bezpečnostných dôvodov trvať dlho, kým sa zobrazí chybová správa. Navyše, mnohé z týchto systémov odpovedajú na porty len sporadicky. Jadro Linuxu obmedzuje počet správ za sekundu, čo znamená, že úplné skenovanie 65 535 portov by trvalo približne 18 hodín.

Aké portové skenery existujú?

Existuje mnoho rôznych skenerov, ktoré sa líšia rozsahom funkcií, ktoré ponúkajú. Väčšina z týchto nástrojov je k dispozícii ako freeware alebo open-source. Mnohé z nich obsahujú klasické programy s príkazovým riadkom, ktoré je možné používať prostredníctvom samostatných grafických rozhraní. Okrem toho existuje mnoho online riešení, ktoré používateľom umožňujú skenovať porty priamo v prehliadači. Služby, ako je skener portov od DNS tools, sú obmedzené z hľadiska svojich funkcií a ponúkajú len možnosť kontroly jednotlivých portov. Z tohto dôvodu sú vhodnou voľbou na rýchlu kontrolu osobných počítačov.

Netcat

Netcat (skrátene: nc) bol vydaný anonymným vývojárom známym ako „Hobbit“ v roku 1996. Pôvodne bol napísaný pre platformy Unix, ale v súčasnosti existuje mnoho portovacích možností pre systémy ako Windows, ako aj ďalšie rozšírenia ako GNU Netcat, OpenBSD Netcat, Cryptcat a Netcat6 (podporuje aj IPv6), ktoré sú štandardne zahrnuté v mnohých distribúciách Linuxu. Základná verzia nástroja príkazového riadku je primárne navrhnutá na odosielanie alebo čítanie údajov prostredníctvom sieťových pripojení TCP a UDP. Môže sa však použiť aj na jednoduché úlohy skenovania portov. To umožňuje používateľom skontrolovať stav portov 20 až 30 na špecifikovanom systéme pomocou jednoduchých príkazov, ako napríklad:

nc -zv localhost 20-30
bash

Kontrola portov UDP vyžaduje dodatočný parameter*-u*. Namiesto localhost môžete použiť aj názov hostiteľa alebo IP adresu externého systému (ak ju poznáte).

Nmap

Omnoho výkonnejším nástrojom, ktorý je obzvlášť užitočný pri skenovaní portov, je Network Mapper, často nazývaný Nmap. Nmap je navrhnutý pre unixové systémy, má licenciu GPL a od roku 2000 je dostupný aj pre systémy Windows (hoci s obmedzeniami). To znamená, že skenovanie TCP Connect trvá neprimerane dlho a skenovanie portov vlastného systému je možné len pomocou nepriamych ciest. Nmap sa zvyčajne ovláda prostredníctvom príkazového riadku. Zenmap, na druhej strane, disponuje vysokovýkonným grafickým rozhraním, ktoré používateľom umožňuje jednoduché používanie sieťového nástroja.

Tvorca programu Nmap, Gordon Lyon, a tím vývojárov programu Nmap sú zodpovední za ďalší vývoj programu a jeho funkcií na skenovanie portov. Najmä technológie ako OS fingerprinting (t. j. rozpoznávanie operačného systému cieľového hostiteľa) a čítanie služieb, ktoré sa skrývajú za portmi, robia z programu Nmap jedno z najpopulárnejších riešení na skenovanie portov. Nasledujúca tabuľka zobrazuje rôzne metódy, ktoré tento program ponúka:

Metódy skenovania portov Príkaz Nmap Popis
TCP connect-scan nmap -sT host Klasická kontrola pre neadministrátorov
TCP Syn scan nmap -sS host Rýchle, nenápadné metódy kontroly pre správcov.
TCP FIN-/XMAS-/Null scan nmap -sF host nmap -sX host nmap -sN host Metódy, ktoré dokážu obísť firewally
TCP ping scan nmap -sP host Pre tradičné skenovanie portov; pomáha skontrolovať dostupnosť hostiteľa.
TCP ACK skenovanie nmap -sA host Určuje doručené porty, ale nerozlišuje medzi otvorenými a uzavretými portmi.
Skenovanie TCP okien nmap -sW host Porovnateľné so skenovaním ACK; dokáže overiť niektoré otvorené a uzavreté porty.
Skenovanie TCP Maimon nmap -sM host Kombinácia skenovania FIN a ACK.
TCP idle skenovanie nmap -sI zombie host host Najmenej nápadná, najkomplexnejšia a teda najpomalšia metóda skenovania; beží cez tretí počítač, ktorý je označený ako „zombie“ programom Nmap.
Skenovanie UDP nmap -sU host Metódy skenovania pre bezpripojové porty UDP
SCTP init skenovanie nmap -sY host Skenovanie portov pomocou SCTP, alternatívy k TCP a UDP
Skenovanie IP protokolu nmap -sO host Žiadne skenovanie portov; kontroluje, ktorý protokol založený na IP je podporovaný v cieľovom systéme

Nmap aj rozhranie Zenmap si môžete stiahnuť pre svoj operačný systém na oficiálnej webovej stránke Nmap. K dispozícii je aktuálna (stabilná) verzia aj beta verzia (vývojová).

Prečo skenovanie portov nie je vždy legálne

Kontrola portov nie je vždy legálna. Akonáhle dôjde k pokusu oexploit (termín používaný odborníkmi na kybernetickú bezpečnosť na označenie činu, pri ktorom sa využíva bezpečnostná chyba alebo medzera), osoba alebo skupina zodpovedná za tento čin môže čeliť potenciálnym právnym dôsledkom.

Menej jasná je však právna situácia v prípade, keď dôsledkom intenzívneho skenovania portov dôjde k zastaveniu počítačového systému. Vzhľadom na vysokú frekvenciu požiadaviek na pripojenie môžu takéto metódy monitorovania predstavovať výzvu pre cieľový systém, čo niekedy vedie k zrúteniu systému. Navyše správcovia systému, ktorý je terčom útoku, si môžu pred zrútením systému uvedomiť aktivity útočníkov a interpretovať ich ako prvé kroky útoku.

V takýchto prípadoch je dôležité nezavrhovať právne dôsledky. Ak je cieľový systém úmyselne preťažený, môže to byť považované za DDoS útok, čo môže mať za následok, že obeť útoku podnikne právne kroky.

Vždy by ste sa mali uistiť, že máte oprávnenie vykonávať skenovanie portov v systéme, a túto techniku používať iba na bezpečnostné účely, a nie len na uspokojenie svojej zvedavosti. Metódy skenovania portov, ktoré sme tu opísali, poukazujú na to, aké dôležité je sledovať porty vášho vlastného systému a sieťové počítače, ako aj služby, ktoré k nim pristupujú.

Prejsť na hlavné menu