Scanner de porturi

Un scanner de porturi  este un instrument software conceput pentru a găsi gazde de rețea care au porturile necesare deschise . Aceste programe sunt utilizate în mod obișnuit de administratorii de sistem pentru a verifica securitatea rețelelor lor și de atacatori pentru a sparge rețeaua. Poate căuta o serie de porturi deschise pe o gazdă sau un port specific pe mai multe gazde. Acesta din urmă este caracteristic activităților unui număr de viermi de rețea .

Procesul în sine se numește scanare porturi sau (în cazul în care sunt verificate multe gazde) scanare în rețea . Scanarea porturilor poate fi primul pas într-un proces de prevenire a încălcării sau a încălcării, ajutând la identificarea țintelor potențiale de atac. Cu ajutorul instrumentelor adecvate, prin trimiterea pachetelor de date și analiza răspunsurilor, se pot examina serviciile care rulează pe mașină ( server Web , server FTP , server de e- mail etc.), se pot stabili numerele de versiune ale acestora și sistemul de operare utilizat. .

Protocol TCP/IP

Cea mai comună stivă de protocoale de pe Internet astăzi este TCP/IP . Serviciile găzduite sunt adresate prin doi identificatori: o adresă IP și un număr de port . Există 65536 de numere de porturi posibile. Majoritatea serviciilor folosesc un set limitat de numere de port (numărul de port este fixat de IANA în cazul în care serviciul devine suficient de semnificativ [1] ).

Unele scanere de porturi caută doar porturile cele mai frecvent utilizate sau cele mai vulnerabile pe o anumită gazdă sau set de gazde.

Rezultatul unei scanări de port se încadrează de obicei într-una dintre cele trei categorii:

Vulnerabilitățile asociate cu porturile deschise sunt împărțite în:

  1. probleme de securitate și stabilitate asociate cu funcționarea programelor care furnizează servicii ,
  2. probleme de securitate și stabilitate legate de sistemul de operare care rulează pe gazdă.

Porturile închise pot reprezenta un pericol doar în al doilea punct. Porturile blocate, în prezent, nu reprezintă un pericol real.

Partea tehnică

Tehnicile de scanare porturi se bazează pe presupunerea că gazda acceptă „Protocolul de control înainte” ( ICMP ) definit în RFC 792 [2] . Deși acest lucru este adevărat în majoritatea cazurilor, este totuși posibil ca o gazdă să răspundă cu pachete ciudate, sau chiar să genereze false pozitive, atunci când stiva TCP/IP utilizată nu este conformă RFC sau a fost modificată.

Tipuri de scanări

Verificare online

În unele cazuri, înainte de a începe scanarea efectivă, este util să verificați dacă există un sistem funcțional pe adresa IP țintă. Această problemă poate fi rezolvată trimițând mesaje ICMP Echo folosind utilitarul ping , secvenționând toate adresele de rețea sau trimițând un mesaj Echo la o adresă de difuzare.
Prin analizarea traficului și monitorizarea mesajelor Echo trimise tuturor nodurilor într-o perioadă scurtă de timp, este posibilă identificarea încercărilor de scanare. În locul mesajelor Echo, pot fi folosite segmente TCP cu bit de cod RST , răspunsuri la solicitări DNS inexistente . Dacă scanerul primește un pachet ICMP Destination Unreachable cu codul 1 ( host unreachable ) ca răspuns, înseamnă că nodul testat este oprit sau nu este conectat la rețea.

Trebuie reținut că (în practică) neprimirea unui răspuns la solicitări nu garantează inexistența gazdei, deoarece mulți administratori de sistem de dragul „securității” merg la încălcarea standardelor de rețea.

SYN scan

Acest tip de scanare este cel mai popular. În loc să utilizeze funcțiile de rețea ale sistemului de operare, scanerul de porturi în sine generează pachete IP și monitorizează răspunsurile la acestea. Această tehnică este adesea denumită scanare a conexiunii pe jumătate deschisă, deoarece o conexiune TCP/IP completă nu este niciodată deschisă. Scannerul de porturi generează un pachet SYN. Dacă portul de pe gazda țintă este deschis, un pachet SYN-ACK va fi trimis de la acesta. Gazda scanerului răspunde cu un pachet RST, închizând astfel conexiunea înainte ca procesul de stabilire a conexiunii să se încheie.

Utilizarea pachetelor de rețea autogenerate are o serie de avantaje, oferind software-ului de scanare control deplin asupra pachetelor trimise și a răspunsurilor la acestea, întârzieri de răspuns și permițând rezultate detaliate ale scanării.

Părerile despre potențialul rău pentru o gazdă scanată sunt amestecate. Pe de o parte, scanarea SYN are avantajul că aplicațiile individuale nu primesc niciodată o conexiune de intrare (este încheiată în timpul fazei de instalare), pe de altă parte, trimiterea unui pachet RST în timpul stabilirii conexiunii poate cauza probleme pentru unele dispozitive de rețea, mai ales simple. altele, cum ar fi imprimantele de rețea .

Scanare TCP

Această metodă mai simplă utilizează funcțiile de rețea ale sistemului de operare și este utilizată atunci când o scanare SYN nu este fezabilă dintr-un motiv sau altul. Sistemul de operare, dacă portul este deschis, finalizează procedura de stabilire a conexiunii în trei etape, apoi închide imediat conexiunea. În caz contrar, este returnat un cod de eroare. Avantajul acestei metode este că nu necesită drepturi speciale de acces din partea utilizatorului. Cu toate acestea, utilizarea funcțiilor de rețea ale sistemului de operare nu permite controlul la nivel scăzut, astfel încât acest tip nu este atât de utilizat.

Principalul dezavantaj al acestei metode este un număr mare de conexiuni deschise și imediat încheiate, care creează o sarcină asupra sistemului scanat și facilitează detectarea activității scanerului de porturi.

Scanare UDP

Scanarea folosind pachete UDP este, de asemenea, posibilă, deși are o serie de particularități. Nu există un concept de conexiune pentru UDP și nici un echivalent cu pachetul TCP SYN. Cu toate acestea, dacă trimiteți un pachet UDP la un port închis, sistemul va răspunde cu un mesaj ICMP „port indisponibil”. Absența unui astfel de mesaj este interpretată ca un semnal că portul este deschis. Cu toate acestea, dacă portul este blocat de un firewall , metoda va indica incorect faptul că portul este deschis. Dacă mesajele inaccesibile din portul ICMP sunt blocate, toate porturile vor apărea deschise. De asemenea, se poate seta o limită asupra frecvenței de utilizare a pachetelor ICMP, care afectează și rezultatele date de metodă.

O abordare alternativă este de a trimite pachete UDP specifice aplicației în așteptarea primirii unui răspuns de la nivelul aplicației. De exemplu, trimiterea unei interogări DNS către portul 53 va avea ca rezultat un răspuns dacă există un server DNS la adresa solicitată. Problema în acest caz este că există un pachet „de încercare” corespunzător pentru fiecare dintre porturi. În unele cazuri, un serviciu poate fi prezent, dar configurat să nu răspundă la pachetele cunoscute „sondare”.

De asemenea, este posibilă o abordare hibridă, combinând ambele metode de mai sus. De exemplu, o scanare poate începe prin trimiterea unui pachet UDP pentru a verifica un răspuns ICMP „port indisponibil”, iar apoi porturile cu un rezultat ambiguu „deschis sau blocat” pot fi scanate din nou pentru răspunsuri specifice aplicației.

Scanare ACK

Această scanare este folosită pentru a determina dacă un anumit port este filtrat sau nu și este eficientă în special pentru a detecta prezența firewall -urilor și pentru a afla regulile acestora. Filtrarea simplă a pachetelor va permite pachetelor cu bitul ACK setat (utilizat pentru conexiunile deja stabilite) să treacă, în timp ce firewall-urile mai sofisticate nu o vor face.

FIN-scan

Unele servere sunt capabile să urmărească o încercare de scanare SYN pe porturile lor. De exemplu, o încercare de scanare SYN poate fi recunoscută prin sosirea pachetelor SYN „false” pe porturile închise ale serverului protejat, iar dacă sunt interogate mai multe porturi, serverul închide conexiunea pentru a proteja împotriva scanării.

Scanarea cu pachete FIN vă permite să ocoliți astfel de protecții. Conform RFC 793 , un pachet FIN care sosește pe un port închis trebuie să primească răspuns de către server cu un pachet RST. Pachetele FIN pentru porturile deschise TREBUIE să fie ignorate de server. Prin această diferență, devine posibil să distingem un port închis de unul deschis.

Nu toate sistemele de operare urmează această recomandare RFC 793 . De exemplu, reacția Windows din familia 95/98/NT la un pachet FIN de intrare nu diferă pentru un port deschis și unul închis.

Alte tipuri de scanări

Și o altă modalitate este de a trimite segmente cu flag FIN (nu mai sunt date de la expeditor), PSH (funcție de împingere), URG (câmp de indicator urgent semnificativ) sau chiar cu un câmp de biți de cod gol. Dacă portul este închis, atunci un segment cu steag RST va fi returnat ca răspuns , dacă nu există niciun răspuns, atunci portul este deschis (deoarece un astfel de segment este pur și simplu ignorat).

Viteza de lucru

Viteza de scanare depinde de factori precum numărul de porturi verificate, înclinația sistemelor scanate pentru răspunsuri ICMP, metoda de scanare aleasă, numărul de gazde verificate și înclinația acestora de a răspunde la solicitări, precum și cât de preocupată este partea de scanare. invizibilitatea activităților sale. Pentru a preveni descoperirea, scannerul de porturi poate extinde în timp trimiterea mesajelor. Pe de altă parte, cu un număr mare de gazde verificate, acestea pot fi scanate în paralel, astfel încât sarcina pe fiecare gazdă specifică să fie foarte mică.

Protecție scanare porturi

Majoritatea firewall -urilor pot proteja împotriva scanărilor de porturi. Firewall-ul poate deschide toate porturile din sistem pentru a opri scanerul să arate porturile. Această metodă funcționează în majoritatea cazurilor, dar nu protejează împotriva noilor tehnici de scanare a porturilor, cum ar fi scanarea porturilor ICMP și scanarea NULL.

Unii ISP implementează filtre de pachete sau proxy -uri deschise care împiedică activitatea de scanare a porturilor de ieșire.

Limite morale și legale

Mulți ISP-uri interzic în mod explicit utilizatorilor să efectueze scanări de porturi. De obicei, această interdicție este inclusă în regulile de serviciu, cu care clientul trebuie să fie de acord atunci când se conectează.

Codul penal al Federației Ruse prevede răspunderea penală pentru următoarele infracțiuni [3] :

Software

Vezi și

Note

  1. IANA List of Ports Arhivată la 2 august 2002 la Wayback Machine 
  2. RFC 792  - Internet Control Message Protocol  ]
  3. Codul Penal al Federației Ruse . Capitolul 28. Infracţiuni în domeniul informaţiei informatice.
  4. http://www.insecure.org  (Eng.) Arhivat 10 iunie 2021 la Wayback Machine - site-ul dezvoltatorilor programului Nmap

Link -uri