Skener portů

Skener portů  je softwarový nástroj určený k vyhledání hostitelů v síti , kteří mají otevřené požadované porty . Tyto programy běžně používají správci systému ke kontrole bezpečnosti svých sítí a útočníci k pronikání do sítě. Může vyhledávat řadu otevřených portů na jednom hostiteli nebo jeden konkrétní port na mnoha hostitelích. Ten je charakteristický pro činnost řady síťových červů .

Samotný proces se nazývá skenování portů nebo (v případě, že je kontrolováno mnoho hostitelů) skenování sítě . Skenování portů může být prvním krokem v procesu narušení nebo prevence narušení tím, že pomáhá identifikovat potenciální cíle útoku. Pomocí vhodných nástrojů, odesíláním datových paketů a analýzou odpovědí lze prozkoumat služby běžící na stroji ( webový server , FTP server , poštovní server atd.), určit jejich čísla verzí a používaný operační systém . .

TCP/IP protokol

Nejběžnějším zásobníkem protokolů na internetu je dnes TCP/IP . Hostované služby jsou adresovány dvěma identifikátory: IP adresou a číslem portu . Existuje 65536 možných čísel portů. Většina služeb používá omezenou sadu čísel portů (číslo portu je pevně stanoveno IANA v případě, že se služba stane dostatečně významnou [1] ).

Některé skenery portů hledají pouze nejčastěji používané nebo nejzranitelnější porty na daném hostiteli nebo sadě hostitelů.

Výsledek skenování portů obvykle spadá do jedné ze tří kategorií:

Zranitelnosti spojené s otevřenými porty se dělí na:

  1. problémy s bezpečností a stabilitou spojené s provozem programů, které poskytují služby ,
  2. problémy se zabezpečením a stabilitou související s operačním systémem běžícím na hostiteli.

Uzavřené porty mohou představovat nebezpečí pouze ve druhém bodě. Zablokované porty v současnosti nepředstavují skutečné nebezpečí.

Technická stránka

Techniky skenování portů jsou založeny na předpokladu, že hostitel podporuje "Forward Control Protocol" ( ICMP ) definovaný v RFC 792 [2] . I když to ve většině případů platí, je stále možné, aby hostitel odpověděl podivnými pakety nebo dokonce generoval falešné poplachy, když použitý zásobník TCP/IP není kompatibilní s RFC nebo byl změněn.

Typy skenování

Kontrola online

V některých případech je před zahájením skutečné kontroly užitečné zkontrolovat, zda je na cílové IP adrese funkční systém. Tento problém lze vyřešit odesláním zpráv ICMP Echo pomocí nástroje ping , seřazením všech síťových adres nebo odesláním zprávy Echo na broadcast adresu.
Analýzou provozu a sledováním zpráv Echo odeslaných všem uzlům v krátkém časovém období je možné identifikovat pokusy o skenování. Místo Echo zpráv lze použít TCP segmenty s kódovým bitem RST , odpovědi na neexistující DNS dotazy. Pokud skener jako odpověď přijme paket ICMP Destination Unreachable s kódem 1 ( hostitel nedostupný ), znamená to, že testovaný uzel je vypnutý nebo není připojen k síti.

Je třeba mít na paměti, že (v praxi) nepřijetí odpovědi na požadavky nezaručuje neexistenci hostitele, protože mnoho systémových administrátorů kvůli „bezpečnosti“ porušuje síťové standardy.

SYN scan

Tento typ skenování je nejoblíbenější. Místo toho, aby využíval síťové funkce operačního systému, skener portů sám generuje IP pakety a sleduje odpovědi na ně. Tato technika je často označována jako skenování polootevřeného připojení, protože úplné připojení TCP/IP se nikdy neotevře. Skener portů vygeneruje paket SYN. Pokud je port na cílovém hostiteli otevřený, bude z něj odeslán paket SYN-ACK. Hostitel skeneru odpoví paketem RST, čímž uzavře spojení před dokončením procesu navázání spojení.

Použití samostatně generovaných síťových paketů má řadu výhod, které poskytují skenovacímu softwaru plnou kontrolu nad odeslanými pakety a odpověďmi na ně, zpožděním odezvy a umožňují podrobné výsledky skenování.

Názory na potenciální poškození skenovaného hostitele jsou smíšené. Na jedné straně má skenování SYN tu výhodu, že jednotlivé aplikace nikdy nepřijímají příchozí spojení (je ukončeno ve fázi instalace), na druhou stranu může odeslání RST paketu při navazování spojení způsobit problémy některým síťovým zařízením, zejména jednoduchým jako jsou síťové tiskárny .

TCP skenování

Tato jednodušší metoda využívá síťové funkce operačního systému a používá se, když skenování SYN není z toho či onoho důvodu možné. Operační systém, pokud je port otevřený, dokončí třífázovou proceduru navázání připojení a poté připojení okamžitě uzavře. V opačném případě je vrácen chybový kód. Výhodou této metody je, že nevyžaduje od uživatele speciální přístupová práva. Využití síťových funkcí operačního systému však neumožňuje nízkoúrovňové ovládání, takže tento typ není tak rozšířený.

Hlavní nevýhodou této metody je velký počet otevřených a okamžitě ukončených spojení, což zatěžuje skenovaný systém a usnadňuje detekci aktivity skeneru portů.

Skenování UDP

Skenování pomocí UDP paketů je také možné, i když má řadu zvláštností. Neexistuje žádný koncept připojení pro UDP a žádný ekvivalent k paketu TCP SYN. Pokud však odešlete paket UDP na uzavřený port, systém odpoví zprávou ICMP „port není dostupný“. Absence takové zprávy je interpretována jako signál, že port je otevřený. Pokud je však port blokován bránou firewall , metoda bude nesprávně indikovat, že je port otevřený. Pokud jsou zprávy o nedosažitelnosti portu ICMP zablokovány, všechny porty se zobrazí jako otevřené. Také lze nastavit limit na frekvenci používání ICMP paketů, což také ovlivňuje výsledky dané metodou.

Alternativním přístupem je odesílání paketů UDP specifických pro aplikaci v očekávání přijetí odpovědi od aplikační vrstvy. Například odeslání dotazu DNS na port 53 bude mít za následek odpověď, pokud je na požadované adrese server DNS. Problém v tomto případě je, že pro každý z portů existuje odpovídající „zkušební“ balíček. V některých případech může být služba přítomna, ale nakonfigurována tak, aby neodpovídala na známé pakety „zkušenosti“.

Je také možný hybridní přístup, který kombinuje oba výše uvedené způsoby. Skenování může například začít odesláním paketu UDP ke kontrole odpovědi ICMP „port není k dispozici“ a porty s nejednoznačným výsledkem „otevřený nebo blokovaný“ by mohly být znovu prohledány na odpovědi specifické pro aplikaci.

ACK skenování

Tato kontrola se používá k určení, zda je daný port filtrován nebo ne, a je zvláště účinná pro detekci přítomnosti firewallů a zjišťování jejich pravidel. Jednoduché filtrování paketů umožní procházet paketům s nastaveným bitem ACK (používá se pro již navázaná spojení), zatímco sofistikovanější firewally nikoli.

FIN-scan

Některé servery jsou schopny sledovat pokus o skenování SYN na svých portech. Například pokus o skenování SYN lze rozpoznat podle příchodu „falešných“ paketů SYN na uzavřené porty chráněného serveru, a pokud je dotazováno několik portů, server uzavře spojení, aby byl chráněn před skenováním.

Skenování pomocí paketů FIN vám umožňuje obejít takové ochrany. Podle RFC 793 musí být paket FIN přicházející na uzavřený port serverem zodpovězen paketem RST. Pakety FIN k otevření portů MUSÍ server ignorovat. Díky tomuto rozdílu je možné rozlišit uzavřený port od otevřeného.

Ne všechny operační systémy toto doporučení RFC 793 dodržují. Například reakce Windows řady 95/98/NT na příchozí paket FIN se neliší pro otevřený a uzavřený port.

Jiné typy skenování

A další způsob je posílat segmenty s příznaky FIN (žádná další data od odesílatele), PSH (funkce push), URG (urgentní ukazatel pole významné) nebo dokonce s prázdným polem kódového bitu. Pokud je port uzavřen, bude jako odpověď vrácen segment s příznakem RST , pokud není žádná odpověď, je port otevřený (protože takový segment je jednoduše ignorován).

Rychlost práce

Rychlost skenování závisí na faktorech, jako je počet kontrolovaných portů, náchylnost skenovaných systémů k odpovědím ICMP, zvolená metoda skenování, počet kontrolovaných hostitelů a jejich sklon reagovat na požadavky, stejně jako na tom, jak se skenovací strana zajímá. neviditelnost jeho činnosti. Aby se zabránilo odhalení, může skener portů prodloužit odesílání zpráv v čase. Na druhou stranu, při velkém počtu kontrolovaných hostitelů je lze skenovat paralelně, takže zatížení každého konkrétního hostitele bude velmi nízké.

Ochrana skenování portů

Většina firewallů může chránit před skenováním portů. Brána firewall může otevřít všechny porty v systému, aby skener přestal zobrazovat porty. Tato metoda funguje ve většině případů, ale nechrání před novými technikami skenování portů, jako je skenování portů ICMP a skenování NULL.

Někteří ISP implementují paketové filtry nebo otevřené proxy , které zabraňují aktivitě skenování odchozích portů.

Morální a právní limity

Mnoho ISP uživatelům výslovně zakazuje provádět skenování portů. Obvykle je tento zákaz obsažen v pravidlech služby, se kterými musí klient při připojování souhlasit.

Trestní zákoník Ruské federace stanoví trestní odpovědnost za tyto trestné činy [3] :

Software

Viz také

Poznámky

  1. Seznam portů IANA archivován 2. srpna 2002 na Wayback Machine 
  2. RFC 792  – Internet Control Message Protocol  ]
  3. Trestní zákoník Ruské federace . Kapitola 28. Trestné činy v oblasti počítačových informací.
  4. http://www.insecure.org  (anglicky) Archivováno 10. června 2021 na Wayback Machine - stránkách vývojářů programu Nmap

Odkazy