Alcuni ricercatori di sicurezza hanno reso pubblica una vulnerabilità grave del protocollo UPnP, battezzata
CallStranger. Universal Plug-and-Play è un protocollo - per la precisione, un insieme di protocolli - di vecchia data. Permette a dispositivi in rete, dalle stampanti ai media player, di rilevarsi fra loro. E di scambiarsi dati e servizi. Nasce puntando soprattutto a
semplificare l'utilizzo in rete di varie classi di dispositivi. Ed è pensato in particolare per le reti domestiche.
CallStranger è una
vulnerabilità legata al funzionamento stesso del protocollo UPnP. Quando si contatta un dispositivo che supporta tale protocollo, è possibile "abbonarsi" (subscribe) ad uno o più servizi che il device espone in rete. Quando si usa questa funzione, si indicano anche uno o più specifici URL HTTP - detti
Callback - a cui il dispositivo UPnP deve connettersi per erogare il suo servizio.
CallStranger sfrutta due debolezze di UPnP. La prima è che il protocollo
non prevede alcuna forma di identificazione. Qualsiasi device può quindi cercare altri dispositivi plug-and-play, se questi sono raggiungibili ad esempio via Internet, e collegarsi ad essi.
Seconda debolezza: il protocollo
non esegue alcun controllo sul valore di Callback. Un malintenzionato potrebbe - ed è qui il pericolo - collegarsi a tutti i dispositivi UPnP che rintraccia in rete, identificare i servizi a cui "abbonarsi" e poi farlo indicando un medesimo URL di Callback. A questo punto, un numero potenzialmente molto alto di dispositivi in rete cercherebbe di collegarsi a quell'indirizzo
nello stesso tempo. Creando di fatto un
attacco DDoS.
Un altro rischio particolarmente serio associato a CallStranger è la possibilità di
esfiltrare dati da una rete aggirando le sue forme di protezione. Un malware creato ad hoc potrebbe installarsi su un sistema-bersaglio che non ha connessioni Internet oppure ha forme di DLP (Data Loss Prevention) attive. Sembra una situazione ideale per evitare esfiltrazioni. Ma non è (più) così.
Il malware potrebbe inviare pacchetti di dati anche cospicui - diversi megabyte -
ad un device UPnP a cui è connesso il nodo che ha conquistato. Ad esempio a una stampante. Se questa è connessa in rete e aperta verso Internet, i dati rubati potrebbero essere
"girati" a un server esterno usando creativamente CallStranger. Dando come valore di Callback l'URL di un server controllato dai criminali informatici.
CallStranger è trasversale
La pericolosità di CallStranger è elevata perché la vulnerabilità è a livello del protocollo UPnP in sé.
Non di qualche singola implementazione fatta male. L'unica vera soluzione è quindi
aggiornare i dispositivi a una versione del protocollo che non abbia questa vulnerabilità. Per questo i
ricercatori che hanno identificato la vulnerabilità hanno contattato subito - alla fine dello scorso dicembre - la Open Connectivity Foundation, che gestisce le specifiche di UPnP.
Il 17 aprile scorso la OCF ha rilasciato le specifiche di
una versione di UPnP che elimina CallStranger. Ora tutti i produttori di dispositivi UPnP dovrebbero aggiornarne il firmware. Come minimo ci vorrà parecchio tempo, ma in realtà sappiamo bene che non tutti lo faranno. Meglio quindi seguire anche le possibili
misure di mitigation del rischio.
A livello di device UPnP, queste misure prevedono tra l'altro la
chiusura delle porte di comunicazione UPnP accessibili via Internet. A meno che non siano proprio indispensabili. A livello di dispositivi e policy di sicurezza, meglio
bloccare i pacchetti Http Subscribe e Notify di UPnP, in ingresso e in uscita dalla rete. Andrebbe anche controllato lo stato dei servizi dei dispositivi UPnP che possono essere in rete. In particolare router, stampanti, telecamere IP, console giochi, media server.