Caso di studio: l’irrigazione smart che chiunque poteva comandare
Abbiamo testato un sistema di irrigazione smart: una configurazione MQTT difettosa ci ha permesso di vedere, comandare e localizzare i dispositivi di altri clienti.
Zyberum Security Team · Pubblicato il · 4 min di lettura
L’irrigazione smart sembra innocua: valvole, una centralina, un’app. Abbiamo testato un sistema di questo tipo e ci siamo ritrovati con il controllo di dispositivi che non erano nostri e con una mappa di dove si trovano.
Che cosa abbiamo testato
- la centralina e il suo firmware
- l’app mobile
- il servizio cloud
- la connessione MQTT che trasporta comandi e messaggi di stato
Che cosa abbiamo trovato
MQTT era configurato male
Il sistema usava MQTT per collegare dispositivi, app e cloud. La configurazione non separava i clienti tra loro. Dal nostro account potevamo vedere i dispositivi di altri clienti, compresi i loro messaggi di stato.
Potevamo comandarli
Non ci si fermava al vedere. Potevamo anche inviare comandi: aprire valvole, avviare l’irrigazione, modificare le impostazioni, su impianti che appartenevano ad altre persone.
Potevamo localizzarli
I messaggi e le risposte dell’API contenevano informazioni sufficienti per geolocalizzare i dispositivi. Un attaccante saprebbe quale dispositivo si trova dove.
Perché è importante
Mettendo tutto insieme: un elenco di dispositivi, la loro posizione, la loro attività e la possibilità di comandarli da remoto. Significa danni da acqua e costi su larga scala, e significa dati di localizzazione su abitazioni private e aziende.
E come per la maggior parte dei risultati IoT di questo tipo, nulla ha richiesto di violare la cifratura o di sfruttare bug di memoria. Il sistema rispondeva a domande che avrebbe dovuto rifiutare.
Che cosa dovrebbero trarne i produttori
- Date a ogni dispositivo una propria identità. Credenziali proprie, non una credenziale condivisa presa dal firmware.
- Limitate i topic sul broker. Un client può leggere e scrivere soltanto i propri topic. Le sottoscrizioni wildcard devono essere impossibili per i client normali.
- Non inserite la posizione nei messaggi che non ne hanno bisogno. I dati che non vengono inviati non possono trapelare.
- Verificate l’autorizzazione anche nel cloud. Lo stesso controllo di proprietà va fatto in ogni chiamata API.
- Monitorate il broker. Un client che sottoscrive tutto è un incidente e deve far scattare un allarme.
Sono esattamente i punti che i requisiti di cybersecurity della RED (EN 18031) e il Cyber Resilience Act rendono ora obbligatori per i prodotti connessi.
Testiamo dispositivi, app e cloud come un unico sistema. Scoprite i test di sicurezza IoT o i pentest hardware, oppure verificate quanto costa un test.
FAQ
Domande frequenti
Che cos’è MQTT e perché rappresenta un rischio?
MQTT è un protocollo di messaggistica leggero usato da molti prodotti IoT: dispositivi e app pubblicano e sottoscrivono topic su un broker centrale. Se il broker non limita i topic che un client può usare, qualsiasi client connesso può leggere e inviare messaggi per tutti i dispositivi.
Un sistema di irrigazione da giardino è davvero un problema di sicurezza?
Sì. Chi lo controlla può causare danni da acqua e costi, e i dati di posizione dicono a un attaccante dove sono installati i dispositivi e, in base alla loro attività, quando le persone sono assenti. Le stesse famiglie di prodotti vengono usate anche in agricoltura e in siti commerciali.