Come attaccare le porte aperte e cosa potrebbero fare i criminali informatici

Siamo sicuri che tutti voi abbiate mai dovuto “aprire una porta”, o meglio, fare “port forwarding” sul router, dato che tutti i computer della rete locale sono dietro il NAT. Per poter accedere a questi dispositivi che si trovano sulla rete locale da Internet, dobbiamo "aprire una porta" o fare "Port forwarding" sul router, altrimenti non saremo in grado di accedere a questo servizio da Internet ( Server SSH, server FTP, server OpenVPN ecc.) Oggi in questo articolo spiegheremo cosa significa per una porta essere aperta, come potrebbero attaccare le porte aperte e cosa potrebbero fare.

Come attaccare le porte aperte e cosa potrebbero fare i criminali informatici

Cosa significa per una porta essere “aperta”?

Le comunicazioni a livello di livello di trasporto, utilizzando principalmente protocolli TCP e UDP, fanno uso di ciò che è noto come "socket Internet". Questo socket costituisce un meccanismo mediante il quale due processi (applicazioni, ad esempio) possono scambiare dati attraverso la rete locale o tramite Internet. Qualsiasi flusso di dati che utilizza TCP o UDP richiede almeno le seguenti informazioni:

  • IP di origine
  • Porto di origine
  • IP di destinazione
  • porto di destinazione

In una rete locale, in modo completamente automatico e trasparente, le porte vengono continuamente aperte e chiuse dai diversi processi per poter comunicare con altri computer. Affinché due processi possano comunicare, è necessario che un processo sia in grado di "localizzare" l'altro per ottenere servizi o fornire servizi all'utente.

esquema della stretta di mano a 3 vie

Quando definiamo che una "porta è aperta", può essere in due scenari molto diversi:

  • Una porta aperta su un computer locale , ad esempio, sul nostro computer o su un server locale. In linea di principio, tutte le porte dovrebbero essere chiuse perché il firewall è normalmente configurato in modo restrittivo (tutto bloccato tranne ciò che è specificamente consentito).
  • Una porta aperta nel NAT del router . Normalmente nel router non abbiamo nessuna porta “aperta”, o meglio, non abbiamo nella sezione “Virtual Server” o “Port Forwarding” nessuna porta verso nessun computer. Per impostazione predefinita in qualsiasi router questa tabella è vuota, tuttavia, è possibile registrare regole diverse per aprire le porte su computer diversi.

Quando è necessario aprire le porte in locale?

Se il nostro computer locale funge da server "qualcosa", come, ad esempio, un server FTP, un server web, un server SSH, un VPN server, un server database e molto altro ancora, dovremo avere una o più porte aperte su di esso. firewall in modo che i diversi computer sulla rete locale o su Internet possano accedere ai nostri servizi, altrimenti non saranno in grado di accedere perché il firewall bloccherà questa comunicazione e le connessioni non verranno stabilite.

Normalmente in un ambiente domestico, se impostiamo Windows 10 o un Linux-sistema operativo basato su "Rete privata" o "Rete domestica", il firewall è disabilitato e tutte le connessioni in entrata saranno consentite. Tuttavia, se lo abbiamo come "Rete pubblica" il firewall verrà attivato e bloccherà tutte le connessioni in entrata che non abbiamo precedentemente effettuato in uscita, quindi ci troviamo di fronte a un firewall "restrittivo".

Quando dobbiamo aprire le porte nel NAT del router?

Se abbiamo un computer sulla rete locale che funge da server «per qualcosa», come nel caso precedente, e vogliamo che questi servizi siano accessibili da Internet, sarà necessario fare un «port forwarding» o anche noto come «porte aperte». In questo modo, se qualcuno apre un socket con indirizzo IP pubblico e una corrispondente porta esterna, quel flusso di dati verrà automaticamente inoltrato al computer per il quale abbiamo “aperto le porte”.

Qualsiasi router di default non ha regole per eseguire il port forwarding, dovremo farlo appositamente. Inoltre, un dettaglio molto importante è che se il tuo operatore ha CG-NAT, anche se apri una porta del router esternamente, non potrai fare nulla per accedere alle risorse interne della rete locale.

Come si attacca un porto?

Non si può realmente "attaccare" una porta, ciò che viene attaccato è il servizio dietro quella "porta" che è in ascolto per accettare le connessioni in entrata. Ad esempio, se abbiamo la porta 5555 aperta e qui è configurato un server FTP, ciò che faremo è attaccare il servizio FTP, ma non la porta. La porta è ancora una "porta" per le informazioni, ciò che viene veramente attaccato sono i servizi dietro queste porte.

Il termine attaccare una porta è comunemente usato, quando in realtà dovrebbe essere detto "fai una scansione delle porte" per verificare quali porte sono aperte su un determinato computer, per attaccare successivamente i servizi dietro questo specifico servizio. Per fare una scansione delle porte ci sono molti metodi, ma, senza dubbio, il migliore che possiamo usare è eseguire una scansione con Nmap, la quintessenza del programma di host discovery e port scanning, inoltre, ne consentirebbe lo sfruttamento tramite NSE che è un add-on di Nmap con la possibilità di crackare diversi servizi e sfruttare le vulnerabilità note.

Nmap è un programma molto facile da usare, basta installarlo su un qualsiasi sistema operativo basato su Linux per avviarne il funzionamento, si trova nei repository ufficiali di ogni distribuzione, quindi basta eseguire il seguente comando:

sudo apt install nmap

Una volta installato, dovremo eseguire il comando specifico per vedere se una porta è aperta, filtrata o chiusa:

nmap -p PUERTO IP

Potremmo anche scansionare una serie di porte come segue:

nmap -p PUERTOINICIAL-PUERTOFINAL IP

Ad esempio, se abbiamo un server web con HTTP e HTTPS in esecuzione, è del tutto normale che abbiamo le porte 80 e 443 aperte, in questo modo:

Controllare le porte aperte, filtrate o chiuse con Nmap è facile, tuttavia, ti consigliamo di leggere il wiki completo di Nmap dove abbiamo manuali dettagliati passo-passo dei diversi tipi di scansione delle porte che abbiamo a disposizione.

Cosa può fare un criminale informatico con una porta aperta?

Quando abbiamo una porta aperta, possono esserci diversi casi intorno a ciò che un criminale informatico può o non può fare. Se abbiamo una porta aperta, ma non c'è un servizio dietro di essa in ascolto, non sarà in grado di fare nulla, tuttavia, il numero della porta aperta potrebbe essere "salvato" nel caso in cui mettiamo un servizio in ascolto in futuro .

Se abbiamo una porta aperta e c'è un servizio dietro l'ascolto, potrebbe eseguire molte azioni:

  • Utilizzare un modo legittimo per verificarne il funzionamento
  • Se il servizio richiede l'autenticazione, potrebbe eseguire un dizionario o un attacco di forza bruta per accedere al servizio.
  • Eseguire un attacco Denial of Service per interrompere il corretto funzionamento del servizio e interrompere la fornitura del servizio.
  • Sfruttare una vulnerabilità di sicurezza nel servizio, sia per accedere illegittimamente alle risorse del servizio, per entrare nel sistema, sia persino per aumentare i privilegi e assumere il pieno controllo del server.

Come puoi vedere, con una porta aperta e un servizio in esecuzione dietro di essa, un criminale informatico può eseguire molte azioni dannose, quindi, è molto importante proteggere i servizi dietro questa porta, per proteggerli, è consigliabile eseguire le seguenti azioni :

  • Configura correttamente il firewall per consentire l'accesso solo a chi ne ha realmente bisogno, ad esempio puoi filtrare per Paese.
  • Per mitigare gli attacchi DoS, è possibile configurare le regole del firewall per negare troppe connessioni simultanee allo stesso IP di origine.
  • Puoi installare un programma come fail2ban per rilevare più tentativi di accesso, quindi dire al firewall di bloccare l'IP di origine.
  • Rafforzando il servizio in ascolto, che si tratti di un server SSH, FTP o web server, ci sono sempre impostazioni avanzate in questi servizi per proteggerli ancora di più.
  • Rafforzare il sistema operativo che ospita il servizio, definire robuste politiche di autenticazione, aggiornare il sistema e persino utilizzare sistemi avanzati come SELinux, tra gli altri.

Ci sono molte misure di sicurezza che possiamo applicare a un sistema e un servizio per essere più sicuri, ma devi tenere presente che la sicurezza al 100% non esiste, quindi, devi essere preparato per un incidente ed essere in grado di ripristinare il sistema.