La scansione di rete (Network scanning) è una tecnica critica e fondamentale nel campo della cybersecurity,
che serve come parte essenziale sia delle strategie offensive che difensive.
Permette ai professionisti della sicurezza di mappare un'infrastruttura di rete, identificare vulnerabilità
e mantenere la visibilità dei dispositivi e dei sistemi di rete.
Scansionando la rete, i professionisti sono in grado di rilevare porte aperte, servizi in esecuzione e
potenziali debolezze che potrebbero essere sfruttate dagli attaccanti.
Al contrario, gli attaccanti usano la scansione di rete per la ricognizione, raccogliendo informazioni
sui bersagli disponibili prima di lanciare attacchi più mirati come exploit o tentativi
di denial of service (DoS).
Il processo di scansione di rete inizia tipicamente con la scoperta degli host (host discovery), che identifica
i dispositivi attivi sulla rete.
Ciò può essere ottenuto attraverso strumenti che sfruttano il protocollo ARP o ICMP usando "ping sweeps",
entrambi metodi per determinare quali dispositivi sono attualmente attivi e reattivi
all'interno di un intervallo specifico.
Una volta identificati gli host attivi, la scansione continua con il rilevamento delle porte (port detection), dove
l'obiettivo è determinare quali porte sono aperte, chiuse o protette da firewall.
Questo è cruciale perché le porte aperte spesso espongono servizi che potrebbero essere potenzialmente attaccati.
Esistono diverse tecniche per la scansione delle porte, incluse le scansioni SYN che sono furtive e
non completano un handshake TCP completo, rendendole più difficili da rilevare, le scansioni connect che
completano l'handshake completo e sono quindi più facili da rilevare, e metodi più evasivi come
null scans, fin scans o Xmas Tree scans.
Questi metodi variano nella loro rilevabilità e possono essere usati a seconda della necessità dell'attaccante
di evitare il rilevamento o aggirare specifici meccanismi di sicurezza.
Una volta completata la fase di scansione delle porte e noto lo stato delle porte (aperte, chiuse,
filtrate), il passo successivo è l'enumerazione dei servizi (service enumeration).
L'enumerazione dei servizi va un passo oltre identificando i servizi specifici in esecuzione sulle
porte aperte.
Ciò può essere fatto attraverso tecniche come il "banner grabbing" dove l'attaccante invia una richiesta
al servizio e analizza la risposta per informazioni sulla versione del servizio
o le configurazioni.
Ad esempio, una semplice richiesta HTTP a un server web potrebbe rivelare il tipo di server.
Ad esempio, se sta usando Apache o NGINX e la sua versione.
L'enumerazione dei servizi permette ai professionisti della sicurezza di identificare servizi obsoleti, configurazioni errate
o servizi esposti inutilmente, che possono essere sfruttati dagli attaccanti.
Un esempio reale di scansione di rete sarebbe un amministratore di sistema che scansiona la propria
sottorete interna, ad esempio .1.0, per identificare host attivi, porte aperte e servizi.
L'amministratore potrebbe usare Nmap, un popolare strumento di scansione di rete, per eseguire una scansione
con vari strumenti come -sS per una scansione SYN, -sV per il rilevamento della versione del servizio,
e -O per il fingerprinting del sistema operativo.
Eseguire un comando, come Nmap -sS -sV -O, restituirebbe una mappa completa della
rete elencando directory attive, host attivi, le loro porte aperte, i servizi in esecuzione
su queste porte e i sistemi operativi dei dispositivi.
Questa mappa consente all'amministratore di rilevare rischi, dispositivi non autorizzati o servizi
vulnerabili che potrebbero essere esposti alle minacce.
La scansione di rete è tipicamente suddivisa in tre fasi sequenziali: scoperta degli host, scansione
delle porte ed enumerazione dei servizi.
Ogni fase si basa sulla precedente, creando un quadro completo della rete e
dei suoi rischi associati.
Scoperta degli Host: la prima fase della scansione di rete è la scoperta degli host, dove l'obiettivo
è identificare quali dispositivi o sistemi sono attivi su una rete.
La scoperta degli host può essere ottenuta usando diverse tecniche, come richieste echo ICMP, usando
comandi ping, richieste ARP per reti locali o probe TCP UDP.
Strumenti come Nmap e ARP scan sono spesso usati per questo scopo.
Ad esempio, un penetration tester potrebbe eseguire il comando Nmap -sn, e poi l'IP della
rete, per eseguire un ping sweep attraverso una sottorete aziendale.
Questa scansione restituirà un elenco di host attivi, che sono i dispositivi o sistemi attualmente
rispondenti e connessi alla rete.
La scoperta degli host è un primo passo cruciale, perché aiuta il tester a concentrare gli sforzi sui dispositivi
vivi, ignorando quelli che sono offline.
La scansione delle porte: una volta identificati gli host attivi, la fase successiva è la scansione delle porte.
Questa determina quali endpoint di comunicazione, le porte, sono aperti sugli host vivi.
Sondando queste porte, il tester può valutare lo stato di ogni porta, se è aperta,
chiusa o filtrata da un firewall o altro motivo.
Esistono diversi tipi di tecniche di scansione delle porte, incluse scansioni SYN, scansioni connect,
-sT, e scansioni UDP, -sU.
Le scansioni SYN sono tipicamente preferite per la furtività, poiché inviano solo il pacchetto SYN senza
completare l'handshake TCP.
Ad esempio, dopo aver condotto una scansione SYN, il tester potrebbe scoprire che la porta 80 o la porta
22 per SSH sono aperte su diversi host, fornendo informazioni preziose sui servizi
in esecuzione su quei sistemi.
Poi c'è l'enumerazione dei servizi.
La fase finale della scansione di rete è chiamata enumerazione dei servizi, dove l'
obiettivo è raccogliere informazioni dettagliate sui servizi o applicazioni in esecuzione sulle
porte aperte identificate.
Questo passo è essenziale, perché aiuta a identificare potenziali vulnerabilità o
configurazioni errate.
L'enumerazione dei servizi utilizza tipicamente il rilevamento della versione, -sV, o metodi più avanzati
come il Nmap scripting engine, NSE, per interagire con i servizi e determinare
le loro esatte configurazioni.
Ad esempio, il tester potrebbe eseguire il comando Nmap usando -sV per identificare le versioni
dei servizi.
Questo può rivelare che l'host che esegue HTTP sulla porta 80 sta usando Apache 2.4.2.9 e SSH
sulla porta 22 sta usando OpenSSH versione 7.6, per esempio.
Tali informazioni sono molto preziose per i penetration tester, perché possono essere
evidenziati software obsoleti o vulnerabili che necessitano di patch.
Uno scenario di esempio considera un penetration tester che valuta una sottorete
aziendale come 10.0.0.0.
Il tester inizia la scoperta degli host, eseguendo un ping sweep o scansione ARP, poi
per identificare 12 host attivi sulla rete.
Questi sono dispositivi connessi all'interno della rete.
Eseguono una scansione SYN su ciascuno degli host identificati per sondare le porte aperte,
rivelando che le porte 80 o 22 sono aperte su alcuni dei dispositivi.
Dopo aver identificato le porte aperte, il tester passa all'enumerazione dei servizi
e cerca di determinare la versione di ogni sistema, Apache versione X e OpenSSH.
Queste informazioni sulla versione sono critiche e potrebbero avere vulnerabilità note.
Il tester può ora raccomandare mitigazioni specifiche, come l'applicazione di patch a quelle
versioni per prevenire lo sfruttamento da parte degli attaccanti.
Dopo aver identificato l'host attivo, lo strumento Nmap può eseguire scansioni dettagliate delle porte
per identificare quali porte sono aperte, come spiegato prima.
Tuttavia, quando si ha a che fare con grandi reti o vasti spazi di indirizzi,
la velocità diventa un fattore significativo.
È qui che brilla Masscan.
A differenza di Nmap, che è noto per la scansione dettagliata, Masscan è ottimizzato per la velocità.
Posso inviare milioni di pacchetti al secondo, rendendolo estremamente veloce
per condurre una ricognizione iniziale su ampi intervalli IP.
Masscan utilizza il proprio stack TCP IP, che abilita lo strumento a scansionare
intere sottoreti o grandi reti rapidamente.
Ad esempio, se un analista di sicurezza ha il compito di scansionare una grande
rete aziendale, potrebbe usare Masscan con un comando come
masscan e poi l'IP di rete .0.0, lo specifico -p e i numeri di porta
e il rate che definisce quanto saranno grandi i pacchetti,
il che scansionerà un'intera sottorete a un tasso molto alto per porte comuni
come SSH, che è sulla 22, HTTP o HTTPS.
Questa capacità di scansione rapida consente all'analista di identificare rapidamente quali host sono attivi
e quali porte sono aperte, fornendo un elenco di potenziali bersagli per ulteriori indagini.
Una volta che Masscan ha identificato host attivi e porte aperte,
Nmap viene tipicamente utilizzato per eseguire scansioni più dettagliate su questi bersagli.
Ad esempio, possiamo usare i tag che abbiamo usato prima,
come -sV, -O per condurre scansioni SYN e così via.
Questo fornirà dettagli sulla versione di Apache e così via.
Per coloro che preferiscono un'interfaccia più visiva per gestire le scansioni di rete,
ZenMap è un'ottima scelta. ZenMap è un'interfaccia grafica utente ufficiale per
Nmap progettata per rendere le potenti funzionalità di Nmap più accessibili agli utenti
che potrebbero non essere molto a loro agio con le operazioni da riga di comando.
ZenMap fornisce un'interfaccia intuitiva per configurare scansioni Nmap e
visualizzare i risultati visivamente. Semplifica il processo di scelta dei tipi di scansione,
impostazione dei bersagli e intercettazione dei risultati mentre Nmap richiede un input dettagliato da riga di comando
per configurare le scansioni. ZenMap offre un'alternativa user-friendly,
che può essere particolarmente utile per gli amministratori di rete e gli utenti meno esperti
che vogliono comunque sfruttare tutta la potenza di Nmap per le capacità di scansione.
Angry IP scanner è un altro strumento che offre semplicità e facilità d'uso per compiti di scansione di rete di base.
Questo strumento è un'ottima scelta per amministratori o utenti per effettuare scansioni.
Infine, Netcat, o come viene chiamato NC, è uno strumento versatile che è spesso sottovalutato,
ma incredibilmente potente quando si tratta di test di rete.
Netcat è un'utilità da riga di comando aperta che può essere utilizzata per testare e aprire porte e dati
tra i dispositivi e diversi fattori stabiliti in esercizi di team.
Uno degli usi più comuni per Netcat è il "banner grabbing", che comporta la connessione a una porta aperta
per estrarre informazioni sul servizio in esecuzione su quella porta.
Ad esempio, se l'analista trova una porta HTTP aperta sulla 8080,
può usare Netcat per interagire manualmente con il servizio digitando NC,
Netcat, l'indirizzo IP, e poi il numero di porta.
Questo potrebbe consentire all'analista di inviare richieste HTTP di bassissimo livello
o ricevere banner che rivelano la versione del servizio e altri dettagli
che potrebbero essere utili per identificare le vulnerabilità.
Tornando a Angry IP Scanner, è uno strumento multipiattaforma leggero.
È ideale per determinare rapidamente quali dispositivi sono attivi sulla rete.
È come la scansione di massa o la scansione Nmap per identificare dispositivi aperti
che sono connessi alla rete.
Questo lo rende uno strumento eccellente, Angry IP Scanner, per gli utenti per
condurre un'enumerazione veloce e per controllare lo stato di salute e così via.
Ma è molto intrusivo.
In pratica, un analista di sicurezza può combinare questi strumenti in un approccio a strati alla scansione.
Per prima cosa, potrebbero usare una scansione di massa per identificare rapidamente host attivi e porte aperte su un
ampio spazio di indirizzi.
Una volta identificati i potenziali bersagli, Nmap può essere utilizzato per condurre un'analisi più approfondita,
rivelando i servizi in esecuzione su quelle porte aperte e identificando le loro versioni.
Se viene trovato un servizio sospetto, l'analista può usare Netcat per interagire manualmente
con il servizio, recuperare banner o sondare ulteriormente usando pacchetti raw a basso livello.
Per gli utenti meno esperti, possono usare un host discoverer come Angry IP Scanner o ZenMap
che è molto semplice da usare e un modo più accessibile per eseguire,
ma è come se avessi bisogno di strumenti più avanzati e configurazioni più avanzate,
alla fine vai alla scansione Nmap.
Ecco fatto.
Ogni strumento nel toolkit di scansione di rete porta vantaggi unici e compromessi
tecnici, a seconda degli obiettivi specifici e delle circostanze della scansione.
Nmap è uno strumento standard del settore noto per la sua versatilità e profondità di funzionalità.
Uno dei punti di forza chiave è Nmap scripting engine, gli script NSE,
che consente agli utenti di automatizzare un'ampia varietà di attività come la scansione delle vulnerabilità,
il brute forcing delle credenziali e persino l'esecuzione di rilevamento complesso dei servizi o attacchi DoS.
Nmap eccelle anche nella scansione furtiva, abilitando diverse opzioni di configurazione,
e altre impostazioni avanzate, che rendono più difficile per i sistemi di rilevamento delle intrusioni
rilevarlo se vengono utilizzati in modo molto avanzato, quindi molto sofisticato.
Queste capacità rendono Nmap ideale per valutazioni di rete complete che
sono un'analisi approfondita dei servizi e delle vulnerabilità.
Abbiamo visto Netcat e MassScan e tutti questi strumenti che possono essere utilizzati per la
scansione di rete. Tuttavia, la scansione di rete, indipendentemente dallo strumento utilizzato,
non è priva di considerazioni legali ed etiche.
La scansione non autorizzata, anche se fatta con l'intento di migliorare la sicurezza,
può portare a significative conseguenze legali.
Ad esempio, leggi come il Computer Fraud and Abuse Act (CFAA) negli Stati Uniti,
o la direttiva sul crimine informatico nell'Unione Europea,
rendono illegale accedere o manomettere i sistemi informatici senza autorizzazione.
In alcuni casi, anche condurre semplici attività di ricognizione come la scansione delle porte
può essere considerato una violazione di queste leggi, in particolare se la scansione viene intercettata
come precursore di un attacco. Eticamente, la scansione di rete dovrebbe sempre essere eseguita
con le autorizzazioni appropriate. Ci si aspetta che i professionisti della sicurezza seguano
pratiche di divulgazione responsabile, assicurandosi di avere un'autorizzazione esplicita
prima di condurre qualsiasi scansione. Questa autorizzazione è tipicamente concessa
attraverso regole di ingaggio (Rules of Engagement - ROE) o contratti che delineano l'ambito,
gli obiettivi e i confini della scansione. Questi documenti servono come salvaguardia legale sia
per il professionista che per l'organizzazione, garantendo che le attività di scansione siano
in linea con le linee guida etiche e non interrompano inavvertitamente i servizi
o violino la privacy degli utenti. Aderendo alle linee guida etiche e al quadro legale,
i professionisti della sicurezza possono garantire che le loro attività di scansione contribuiscano a migliorare
la sicurezza piuttosto che causare involontariamente danni.
Analizziamo lo scenario in cui un Amministratore di Rete sta controllando una
sottorete locale .1.0 per esempio. Gli utenti possono mappare per ottenere informazioni sui dispositivi attivi
e i servizi all'interno della rete. Il processo inizia con un semplice passo di scoperta
degli host. L'amministratore esegue il comando Nmap -sn,
e poi l'IP della rete. Questo comando invia richieste echo ICMP, anche come
richiesta ping all'intera sottorete. Inoltre, sulle reti locali
nmap può usare la scansione ARP per identificare i dispositivi attivi, poiché ARP funziona anche quando
ICMP è bloccato dai firewall. È come un'informazione pubblicamente disponibile usando il
protocollo di risoluzione degli indirizzi. L'interruttore -sn dice a nmap di non
eseguire alcuna scansione delle porte, controlla solo la presenza di host vivi.
Se il dispositivo risponde, Nmap lo contrassegna come attivo, fornendo all'amministratore
un elenco di dispositivi che sono online all'interno della sottorete.
Successivamente, l'amministratore si concentra su un dispositivo specifico, ad esempio .1.1, e controlla le comuni
porte aperte usando il comando Nmap -p 22,80,443. Questa scansione è focalizzata sul controllo
se il dispositivo bersaglio ha porte specifiche aperte, come SSH, HTTP e HTTPS.
Queste sono tipicamente usate per l'accesso remoto e i servizi basati sul web.
Il comando invia pacchetti SYN e scopre se le porte sono aperte, chiuse o filtrate dal firewall.
Questo processo è utile per identificare potenziali vettori di attacco su un dispositivo specifico.
Per ottenere informazioni più granulari sui servizi in esecuzione su una porta specifica,
puoi usare -p 80 e quindi scoprire una porta specifica, o avere un intervallo da
1 a 1.000 e controllare quali porte di esse sono effettivamente aperte.
Il -sV ricorderà che questo riguarda la versione e fornirà la versione del
servizio specifico che ha la porta aperta. Il -sn è usato per eseguire la scansione ping
e -p per le porte e -sV per le versioni.
Quindi un'altra opzione importante sono le opzioni di timing che possono regolare quanto velocemente Nmap esegue le scansioni,
con scansioni più lente che hanno meno probabilità di attivare avvisi dai sistemi di rilevamento delle intrusioni.
Quindi -T ha le sue variabili per impostare la soglia del timing,
e ci sono anche altre opzioni come i formati di output. Puoi estrarre il risultato di
Nmap su un file specifico, definendo -oN o -oX, lascia che l'amministratore
salvi le scansioni in diversi formati come testo semplice o XML o JSON e così via.
Gli script NSE consentono l'esecuzione degli script che possono automatizzare la scansione
delle vulnerabilità, quindi questo è molto importante da gestire su Nmap.
Per iniziare, gli studenti avvieranno il processo con una scansione di base per la scoperta degli host.
Usando il comando Nmap -sn e poi l'IP della rete.
Normalmente nell'IP di rete sull'adattatore host only c'è 56.0,
ma questo può essere configurato diversamente se vuoi.
Identificheranno quali macchine virtuali (VM) sono attualmente attivate sulla rete,
quindi scopriranno webgoat, dvwa o qualunque macchina vulnerabile abbiano
caricato sulla loro rete. Questo passo imita la prima fase di una valutazione
di rete dove i professionisti della sicurezza stabiliscono quali host sono online
e pronti per un ulteriore esame. Una volta identificati gli host vivi,
il compito successivo sarà la scansione delle porte. Ad esempio, eseguendo la scansione Nmap
-p e poi definiscono l'intervallo dei numeri
di porta e l'indirizzo IP della specifica VM, gli studenti saranno in grado
di controllare i servizi comuni come FTP, SSH, HTTP e così via.
Queste sono porte tipiche di interesse nella scansione di sicurezza principale.
Infine, gli studenti approfondiranno l'integrazione dei servizi con un comando come -sV
per trovare le versioni specifiche del servizio vulnerabile.
Attraverso questo laboratorio gli studenti esploreranno anche diverse opzioni avanzate di Nmap
e per personalizzare le loro scansioni useranno -v, -oN,
-oX per estrarre in XML e possono usare opzioni di timing come
T3 per regolare il timing della scansione, bilanciando la velocità con la furtività,
che è importante in scenari del mondo reale dove evitare il rilevamento è spesso una priorità.
È cruciale che le scansioni siano condotte solo su sandbox o sistemi con permesso concesso,
ambienti controllati come rete NAT e strumenti di virtualizzazione come virtual box
forniranno questa opportunità. Altrimenti, gli studenti possono usare anche scanme.nmap.org
che è un sito web offerto da Nmap per fare scansioni di prova senza problemi legali.
Lavorando con le impostazioni di controllo, gli studenti possono testare e ottimizzare le loro tecniche di scansione
senza preoccuparsi di violare le policy o causare interruzioni.
I risultati delle scansioni dovrebbero essere documentati attentamente e gli studenti
dovrebbero analizzare i dati criticamente. Verrà loro chiesto di interpretare
il significato di ogni porta e del servizio associato.
Ad esempio, una porta SSH aperta potrebbe indicare un potenziale vettore per attacchi di login remoto
se sono in uso password deboli usando attacchi di forza bruta, mentre una porta HTTP aperta
potrebbe esporre un'applicazione web vulnerabile allo sfruttamento. Incoraggiare gli studenti a pensare
alle implicazioni di sicurezza che risulteranno da ogni scansione, li aiuterà a sviluppare non solo
la loro competenza tecnica ma anche il loro pensiero analitico che è essenziale
per pratiche di cybersecurity efficaci in scenari del mondo reale.