Fondamenti di port scanning

Nonostante Nmap nel corso degli anni abbia ampliato le proprie funzionalità, iniziò come un efficiente port scanner e tale resta la sua funzione di base. Il semplice comando nmap <target> effettua una scansione di 1.000 porte TCP sull'host <target>. Mentre molti port scanner considerano tutte le porte chiuse o aperte, Nmap è molto più preciso. Divide le porte in sei categorie o stati: open (aperta), closed (chiusa), filtered (filtrata), unfiltered (non filtrata), open|filtered (aperta|filtrata), closed|filtered (chiusa|filtrata).

Questi stati non sono proprietà intrinseche delle porte stesse, ma descrivono come Nmap le vede. Ad esempio, uno scan Nmap proveniente dalla stessa rete nella quale risiede l'obiettivo può mostrare la porta 135/tcp come aperta, mentre una scansione nello stesso momento con gli stessi parametri ma proveniente da Internet può mostrare quella stessa porta come filtered.

I sei stati nei quali Nmap classifica le porte
open (aperta)

Un'applicazione accetta attivamente su questa porta connessioni TCP, datagrammi UDP o associazioni SCTP. La ricerca di questo tipo di porte è spesso l'obiettivo primario del port scanning. Chi si dedica alla sicurezza sa che ogni porta aperta è una strada verso un attacco. Gli attaccanti e i tester di sicurezza (penetration testers, conosciuti anche come "pen-testers", NdT) hanno come obiettivo quello di trovare e trarre vantaggio dalle porte aperte, mentre d'altro canto gli amministratori di rete e i sistemisti provano a chiuderle o a proteggerle con firewall senza limitare gli utenti autorizzati al loro uso. Le porte aperte sono anche interessanti per tutta una serie di scansioni non indirizzate unicamente alla sicurezza, perché mostrano che servizi sono disponibili in una rete.

closed (chiusa)

Una porta chiusa è accessibile (riceve e risponde ai pacchetti di probe di Nmap) ma non vi è alcuna applicazione in ascolto su di essa. Esse possono rendersi utili nel mostrare che un host è attivo su un indirizzo IP (durante l'host discovery o il ping scanning) o in quanto parte integrante dell'Operating System discovery. Poiché una porta chiusa è raggiungibile, può essere interessante effettuare una scansione più tardi nel caso alcune vengano aperte. Chi amministra una macchina o una rete può voler bloccare tali porte con un firewall ed in questo caso esse apparirebbero come filtrate, come mostrato in seguito.

filtered (filtrata)

In questo caso Nmap non può determinare con esattezza se la porta sia aperta o meno, perché un filtro di pacchetti impedisce ai probe di raggiungere la porta. Questo filtro può esser dovuto a un firewall dedicato, alle regole di un router, o a un firewall software installato sulla macchina stessa. Queste porte forniscono poche informazioni e rendono frustrante il lavoro dell'attaccante. A volte esse rispondono con un messaggio ICMP del tipo 3, codice 13 ("destination unreachable: communication administratively prohibited", ovvero "destinazione non raggiungibile: comunicazione impedita da regole di gestione"), ma in genere sono molto più comuni i filtri di pacchetti che semplicemente ignorano i tentativi di connessione senza rispondere. Questo obbliga Nmap a riprovare diverse volte, semplicemente per essere sicuri che il pacchetto non sia stato perduto a causa di una congestione di rete o di problemi simili piuttosto che dal firewall o dal filtro stesso. Questo riduce drammaticamente la velocità della scansione.

unfiltered (non filtrata)

Lo stato "unfiltered" indica che una porta è accessibile, ma che Nmap non è in grado di determinare se sia aperta o chiusa. Solo la scansione di tipo ACK, usata per trovare e classificare le regole di un firewall, posiziona una porta in questo stato. Una scansione di porte in questo stato ("non filtrate") mediante altri tipi di scansione come il Window scan (scan per finestre di connessione), il SYN scan o il FIN scan aiuta a determinare se la porta sia aperta o chiusa.

open|filtered (aperta|filtrata)

Nmap posiziona le porte in questo stato quando non è in grado di determinare se una porta sia aperta o filtrata. Questo accade in quelle scansioni per le quali una porta aperta non risponde in alcun modo. La mancanza di informazioni può significare inoltre che un filtro di pacchetti ha lasciato cadere ("drop") il probe o qualsiasi risposta sia stata generata in seguito a questo. Scansioni che classificano porte in questo stato sono le scansioni UDP, IP, FIN, NULL e Xmas.

closed|filtered (chiusa|filtrata)

Questo stato è usato quando Nmap non è in grado di determinare se una porta sia chiusa o filtrata. Viene usato solo per l'IP ID idle scan.