Quali semplici test di sicurezza posso eseguire sulla mia rete MQTT?


13

Sto per creare una rete MQTT a casa. Voglio acquisire alcune conoscenze con esercizi pratici. Sarebbe una piccola rete con il broker ospitato sul mio laptop (Windows 7) e alcuni client alimentati con Raspberry Pi. Inoltre sto pensando di creare un client sul mio telefono (Android).

Il mio obiettivo è di avere una rete semplice su cui posso sperimentare e voglio eseguire alcuni test di sicurezza, sperimentando prima.

Ho trovato una suite di test server MQTT progettata per fungere da client MQTT dannoso. È abbastanza promettente per cominciare.

Caratteristiche generali dello strumento di test

  • Test negativi completamente automatizzati
  • Casi di prova pronti
  • Scritto in Java (tm)
  • Interfaccia grafica, riga di comando, modalità di interfaccia remota
  • Capacità di strumentazione (controllo dello stato)
  • Supporto e manutenzione
  • Documentazione utente completa
  • Rapporti e analisi dei risultati

Ma sono anche interessato ad alcune pratiche più semplici che posso usare per verificare le funzionalità di sicurezza di MQTT. Quali sono i modi più semplici per un principiante di eseguire alcune verifiche di sicurezza di base su una rete MQTT?

Risposte:


12

Alcune idee - Non ho coperto tutte le combinazioni di con / senza nome utente / TLS, spero che tu possa vedere dove mancano.

Un client può connettersi in modo anonimo, senza TLS?

mosquitto_sub -t test/topic -h <broker address>

Un client può connettersi se fornisce un nome utente ma nessuna password, nessun TLS?

mosquitto_sub -t test/topic -u <username> -h <broker address>

Un client può connettersi se fornisce un nome utente e una password (corretti o meno), senza TLS?

mosquitto_sub -t test/topic -u <username> -P <password> -h <broker address>

Un cliente può iscriversi $SYSall'argomento e vedere informazioni sul broker?

mosquitto_sub -t '$SYS/#' -v -h <broker address>

Un client può connettersi tramite TLS?

mosquitto_sub -t test/topic -h <broker address> -p 8883 --capath /etc/ssl/certs

Un cliente può iscriversi a tutti gli argomenti? Cosa vede?

mosquitto_sub -t '#' -v

Ripeti tutto quanto sopra anche durante la pubblicazione.


5

Forse affermando l'ovvio, ma penso sia importante sottolineare che un principiante non può aspettarsi di costruire una rete sicura. Nulla di sbagliato nell'apprendimento però.

Sembra che la sicurezza primaria in MQTT sia implementata a livello di trasporto, quindi dovrebbe essere al centro dell'attenzione per la sicurezza reale.

Sarei sorpreso se qualsiasi suite di test automatizzati fosse in grado di replicare la capacità di un esperto di trovare buchi nell'implementazione del protocollo.


4
Non mi aspetto una rete completamente sicura. Voglio solo eseguire controlli di integrità, quindi test molto basilari per vedere che ho qualcosa da cui cominciare.
Bence Kaulics,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.