I ricercatori di Shadowserver Foundation hanno fatto emergere, nel corso di una loro ricerca globale sui server MySQL online nel mondo, che un grande numero di questi sono pubblicamente esposti ad Internet e possono appunto rispondere a richieste remote.
Il fenomeno è rilevante sia per il numero di risultati trovati, un po’ ovunque nel mondo, sia perché una connessione perennemente aperta, accessibile a chiunque, espone le rispettive reti di appartenenza a grandi rischi di sicurezza.
Indice degli argomenti
Sono 3,6 milioni i server MySQL accessibili da remoto
La ricerca è stata basata sulla scansione di una grande fetta di Internet globale, focalizzando il mirino sulla porta 3306, che corrisponde a quella di default utilizzata dai server MySQL.
Facendo una richiesta “mysql-info” con Nmap, è stato possibile elencare tutti quei server che hanno risposto positivamente a tale richiesta, scartando invece tutte le risposte fallite.
Stati Uniti, Cina, Polonia e Germania costituiscono la “Top 4” di questi risultati. Rispettivamente con 740.000, 300.000, 208.000 e 175.000 server esposti nel territorio si aggiudicano, infatti, il primato di Stati con il maggior numero di connessioni raggiungibili dall’esterno, sfruttando appunto MySQL.
L’Italia, considerate tutte le dovute proporzioni, non è completamente fuori da questa triste e pericolosa classifica. Si trova, infatti, al 17esimo posto, molto vicino a Irlanda e Turchia: il nostro Paese registra l’esposizione di 17.400 server MySQL non adeguatamente protetti (o configurati).
Cosa impariamo da questa ricerca
I server MySQL sono utilizzati all’erogazione del servizio di gestione degli omonimi database relazionali. Largamente utilizzati nello sviluppo per il Web, fanno parte del set minimo di un server adibito ad ospitare una web application o un sito web dinamico (che abbia un database di riferimento per l’archiviazione delle informazioni). Per capirci ogni sito/blog WordPress deve avere un server MySQL per funzionare.
Il punto cruciale è l’esposizione di questo server (contenente il database), pubblicamente su Internet. Infatti tecnicamente, al netto di qualche raro caso specifico, l’accesso al database (sfruttando quindi il server MySQL) è sempre effettuato in locale dall’applicazione stessa, o comunque all’interno della stessa rete fisica del server Web.
Apparentemente, quindi, non c’è motivo di tenere il server MySQL (porta 3306), aperto e accessibile da remoto. Questa funzionalità, di contro, espone a gravi rischi di sicurezza l’infrastruttura stessa che ospita il server medesimo. Un rischio che non sembra compensato, peraltro, dall’utilità di avere questa connessione perennemente aperta.
Nel raro caso in cui si debba usufruire di un server MySQL, dislocato fisicamente da remoto rispetto al server Web o all’applicativo che lo deve utilizzare, si dovrebbe configurare il server MySQL in modo che possa accettare connessioni dall’esterno, ma solo da indirizzi IP a noi noti (es. quello del server Web) e nessun altro.
In questa maniera avremo ogni server MySQL non più accessibile dall’esterno migliorando notevolmente la nostra sicurezza. Un utente malintenzionato potrebbe sfruttare questa connessione perennemente aperta (3306), per inviare richieste appositamente malevole e compromettere il server con tutte le conseguenze che possono derivarne, prima fra tutte il furto dei dati memorizzati, la manipolazione o addirittura la loro distruzione, a seconda dell’attacco e dell’obiettivo che il criminale intende perseguire.