Vai al contenuto
Zyberum Cyber Security Firm
Menu
Case studyIoTMQTT

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

  1. Date a ogni dispositivo una propria identità. Credenziali proprie, non una credenziale condivisa presa dal firmware.
  2. 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.
  3. Non inserite la posizione nei messaggi che non ne hanno bisogno. I dati che non vengono inviati non possono trapelare.
  4. Verificate l’autorizzazione anche nel cloud. Lo stesso controllo di proprietà va fatto in ogni chiamata API.
  5. 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.

ChiamateciPrenota una call

Scegliete l’orario più comodo

Apri in una nuova scheda