Ogni computer presente su Internet deve erogare qualche tipo di servizio e dispone quindi di porte aperte. Un server che offre solo pagine web avrà una sola porta perta, la numero 80. Un server che fornisce IRC e giochi on-line avrà la porta 6667 aperta e altre porte dedicate ai giochi (per esempio la 26000 per Quake). La lista delle possibili delle porte è molto lunga e può essere consultata all’indirizzo di IANA (Internet Assigned Numbers Authority) è un organismo che ha responsabilità nell’assegnazione degli indirizzi IP
Ogni computer presente su Internet che deve erogare.
Come si comporta invece il proprio computer?
Questo non fornisce servizi pubblici su Internet e perciò non dovrebbe avere porte aperte. Questo è errato ed è proprio qui che nascono i problemi di sicurezza. Innanzitutto i programmi client aprono un certo numero di porte di servizio. Non sarebbe altrimenti possibile ricevere le risposte alle interrogazioni. Un browser per esempio comunica con i server web esterni alla porta 80 ma ricevono le pagine da essi su un certo numero di porte aperte localmente. Allo stesso modo un client IRC (per esempio il celebre mIRC) sfrutta porte aperte localmente per ricevere il flusso dati in ingresso. Essendo aperte, ogni utente esterno su Internet, dovunque esso sia, è potenzialmente in grado di accedervi.
Bisogna sempre ricordarsi che la propria postazione non è un semplice client ma a seconda dei momenti e delle applicazioni svolge sia funzioni di server che di client. Se qualunque utente IRC è in grado di inviare file alla propria postazione in maniera diretta, significa che si hanno servizi server disponibili localmente e accessibili da chiunque senza particolari autorizzazioni.
Oltre a questo ci sono un numero arbitrario di porte che possono essere state aperte dal sistema operativo o da programmi installati sul proprio computer. Windows per esempio apre la porta 37, 38 e 39 per le funzionalità di rete. Queste rendono possibile l’accesso esterno alle risorse condivise del proprio computer. Un utente esterno potrebbe quindi avere facile accesso ai file locali usando queste funzionalità di sistema. Ecco quindi nascere seri problemi di riservatezza.
L’ERRORE DIETRO LA PORTA
Cosa succede se dietro una porta aperta dal sistema risponde un servizio con un baco? Esistono buone possibilità che il proprio sistema possa essere compromesso e che un utente malintenzionato possa installare una backdoor. Questo è successo nel 2012 quando un cracker ha sfruttato un problema presente nel web server di Microsoft. Un baco presente su una vecchia versione del software permetteva l’alterazione del contenuto stesso del server, dando la possibilità di installare ed eseguire programmi dall’esterno. I celebri vermi Codice Rosso e Nimda hanno infettato milioni di computer in questo modo. Microsoft ha prontamente fornito patch di sicurezza e strumenti per incrementare la sicurezza. In seguito sono state rilasciate versioni corrette del prodotto. Il problema è quindi risolto ma il caso è interessante per capire il modo in cui nascono i problemi di sicurezza.
UN MURO PER PROTEGGERSI
Per limitare il problema di sicurezza legato alle porte aperte si fa uso di un firewall. Questo prodotto viene installato sul sistema locale o nel punto di ingresso di una rete locale e ha il compito di visionare ogni pacchetto che entra e che esce. Una serie di regole stabilite dall’utente o dall’amministratore della rete specifica quali pacchetti possono transitare e quali devono essere scartati. Se un server per esempio eroga solo servizi web si può implementare un firewall che permetta l’ingresso ai soli pacchetti indirizzati alla porta 80. Tutto il traffico indirizzato ad altre porte viene considerato pericoloso e quindi immediatamente scartato. In questo modo è impossibile accedere a qualsiasi programma al di fuori del server web. Nel caso di una connessione domestica si dovrebbe invece bloccare quasi tutto il traffico in ingresso. Si presume infatti che vi saranno principalmente richieste in uscita dal momento che si dovrebbe agire come client. Si punta quindi a chiudere tutte le porte dei servizi noti, per esempio web, ftp, telnet, ecc. In cima alla lista di blocco ci saranno anche le sopra citate porte 37, 38 e 39.
Bloccando queste porte agli utenti esterni si impedisce che un cracker remoto possa accedere alle condivisioni locali e carpire file o manomettere la configurazione del sistema.
Elenco TCP e UDP numeri di porta
Riportiamo gli indirizzi delle porte più utilizzate:
21 per l’ftp
23 per telnet
25 per smtp (invio di posta elettronica)
80 (http, pagine web; molti server usano anche la porta 8080)
110 per pop3 (ricezione mail di posta elettrinica)
119 per nntp (le news)
Oltre ad un controllo per porte è possibile bloccare i pacchetti anche in base agli indirizzi IP. Nel caso del serverweb si potrebbe mantenere aperta una porta per l’accesso e il controllo remoto (per esempio Telnet e SSH). Visto il rischio si deve in questo caso abilitare solo pochi indirizzi noti quali la sede aziendale, la propria abitazione e gli IP di un numero selezionati di persone di fiducia.
In questo modo la porta risulta aperta sul server, ma solo ad un numero ristretto e controllato di indirizzi. Si tratta di una configurazione standard per molti server web installati non nella propria azienda ma in centri specifici come service e webfarm. Per riassumere si può stabile che il firewall, almeno nella sua forma classica, svolge una funzione molto semplice: setacciare il canale dati e bloccare indirizzi e porte in base ad una politica di sicurezza. Nulla di più! Esiste un’offerta molto ampia di prodotti. In ambito domestico esistono due ottimi prodotti. Uno è il Norton Personal Firewall e l’altro è ZoneAlarm di ZoneLabs. Come bloccare le porte e indirizzi
Questi prodotti sono concepiti per i piccoli utenti e risolvono il problema maggiore di questa categoria di software: la configurazione. I programmi vengono infatti preconfigurati con una impostazione adatta alla maggior parte degli utenti domestici. Si è così operativi da subito. Se poi c’è qualche problema è possibile alterare la configurazione per adattarla a necessità particolari. I due prodotti citati sono anche in grado di riconfigurarsi in base alle nuove esigenze nel tempo. Se viene installato un programma che ha bisogno di usare nuove porte, il firewall personale segnala l’evento e chiede all’utente come comportarsi. Questo permette di avere flessibilità e sicurezza. I programmi che hanno bisogno di Internet potranno funzionare con una semplice conferma mentre una backdoor entrata per errore e intenta ad aprire un canale di comunicazione verso l’esterno sarebbe subito segnalata.
Il firewall non deve però essere inteso come un oggetto statico. Una volta configurato e reso operativo dovrebbe essere comunque interessato da un continuo processo di aggiornamento. Nel tempo infatti vengono alla ribalta nuovi problemi e sono sviluppate nuove backdoor. Un firewall personale deve tenere conto delle nuove minacce ed aggiornarsi di conseguenza. Quasi tutti i prodotti di questa categoria supportano oggi questa funzionalità e sono dotati di auto-update. Symantec Personal Firewall e ZoneAlarm hanno inoltre due innegabili vantaggi per l’utente domestico: il costo. Il prodotto di Symantec costa circa 45 Euro mentre ZoneAlarm è un prodotto gratuito.
Per scoprire la porta di comunicazione TCP usata da un programma che sta accedendo a Internet puoi aprire la finestra a riga di comando di Windows: fai clic su Start, scegli Esegui e digita “cmd” seguito da INVIO. Ora digita il nome di comando “netstat” (seguito da INVIO) per ottenere l’elenco dei programmi che stanno usando le porte TCP/IP, con tutti i dettagli. Per ottenere un elenco più semplice e comprensibile, puoi scaricare da Internet e installare il programma per il Monitoraggio Aperto TCP / IP porte di rete / connessioni CurrPorts ), che mostra in tempo reale l’uso di tutte le porte.
Bisogna però fare attenzione a un dettaglio: se è attivo un firewall, molti programmi tentano di aggirare l’ostacolo provando in sequenza più di una porta. Quando il firewall è attivo l’elenco ottenuto da Active Ports o dal comando “netstat” può quindi contenere più porte di quelle realmente usate.