[S.Li.P] Server IOT, come renderlo sicuro

giorgio boiero giorgio.boiero a gmail.com
Mer 5 Maggio 2021 21:03:35 CEST


Ciao Lucio
Grazie dei tuoi consigli
Di seguito trovi le mie risposte
Ti aggiungo qualche altro dettaglio

Noi per il momento usiamo questo sistema IOT basato su Docker per
semplicità di configurazione ma ho dei dubbi sulla sicurezza del sistema:
https://sensorsiot.github.io/IOTstack/
Il sistema gira o su un RapsberryPi 3 o 4 (meglio con SSD) o su un X86 (io
uso Debian)

La VPN (Wireguard) deve essere installata su questo server oppure sul
Router con firmware open source?

Si potrebbe approfondire questo argomento sulla cybersecurity in un
"virtual-incontro" Slip

Gio


Il 04/05/21 16:59, carlo b via SLiP ha scritto:
> Noi del gruppo arduino utilizziamo telegram per i nostri progetti verso
> internet.

Qui ho bisogno di qualche dettaglio in più per capire. Come si realizza
la comunicazione remota fra l'hardware e l'utente? Io mi immagino, ma
magari mi sbaglio, che l'hardware di turno abbia un software in
esecuzione che parla periodicamente (per esempio ogni tot secondi) ad un
bot di Telegram, giusto?
GB=> Nell'Arduino (un ESP nel dettaglio, cioè un microcontrollore con il
Wifi integrato) è eseguito il codice che fa funzione il Bot Telegram
Quel codice usa le API dei Bot Telegram


Immagino poi che questo bot di Telegram sia l'interfaccia con cui
l'utente visualizza lo stato dei sensori ed invia comandi attraverso
pulsanti o caselle di testo, giusto?
GB=> Si esatto

Ed immagino infine che tale bot di Telegram richieda un'autenticazione
tipo utente/password o sia in qualche altro modo strettamente legato
all'utente, in modo che solo il proprietario dell'hardware possa vedere
ed interagire da remoto, giusto?
GB=> E' possibile implementare queste sicurezze all'interno del codice
Non si usa utente e password ma si identifica il ID dell'utente

Se fin qui è tutto giusto e se la strada di Telegram (versione
ufficiale) è quella che continuerete a seguire, temo che ci sia poco che
si possa fare per migliorare la sicurezza, in quanto il server ufficiale
di Telegram non è software libero e non è possibile installarsi un
proprio server ufficiale di Telegram (in gergo, Telegram non è un
sistema federato).

Detto questo, a seconda dei casi, potrebbe non essere neppure così
necessario aumentare la sicurezza della soluzione.
GB=> Esatto, Telegram va bene, sia in termini di semplicità che sicurezza
E' però limitato nell'interfaccia utente, essendo fatto per una chat e non
per una Dashboard


> Lettura sensori e controlli vari.
> Tutto questo funziona bene ma siamo limitati all'uso di pulsanti per i
> comandi e per immissione dati necessita
> utilizzare la riga immissione testo, poco pratica.

Che tipo di interfaccia ti piacerebbe avere in alternativa
all'immissione del testo per inviare dati?
GB=> Si pensava ad un interfaccia grafica tipo quelle delle App dei vari
dispositivi IOT commerciali. Pensi siano sviluppate come Web APP che si
appoggiano sul server del produttore

> Pensavamo di
> acquistare uno spazio in rete ma non abbiamo
> abbastanza conoscenze per quanto riguarda la sicurezza.

Qualsiasi VPS è sufficientemente sicuro per questo tipo di utlizzo,
nella misura in cui non ci si metta a controllare da remoto
l'attivazione dell'antifurto di casa o cose del genere.

La parte eventualmente poco sicura non è tanto il server che si va ad
acquistare, quanto le applicazioni che poi ci si installano.
GB=> Il nostro timore è che la configurazione errata delle varie
applicazioni IOT (MQTT Broker, Node Red, Influxdb, Grafana, etc...) porti
all'akeraggio della VPS con tutti i problemi che ne conseguono

Il 02/05/21 19:14, giorgio boiero via SLiP ha scritto:
 > Per il momento abbiamo attivato alcuni server nelle nostre reti locali
 > Ci piacerebbe approfondire con chi è più esperto di noi di cybersecurity
 > (Davide, Lucio, Alessandro, Luca) se e come fosse possibile poter
 > accedere in sicurezza a questi server e servizi dall'esterno della
 > propria rete domestica
 > Come configurare il port forwarding dei nostri router, installare un VPN
 > ed utilizzarla (tipo lo script di Lucio per Wireguard)

Sì, in questo caso (cioè senza usare Telegram ufficiale) una VPN con
Wireguard è sicuramente una soluzione che offre tutta la sicurezza di
cui avete bisogno, almeno dal punto di vista della connettività.

Certo che se poi si installa Wireguard sul cellulare, ma si lascia il
cellulare sbloccato ed incustodito sul tavolino del bar, non c'è VPN che
tenga. Come sempre il fattore umano è l'anello più debole della catena.

GB=> Se capisco bene la soluzione migliore è installare la VPN (Wireguard)
in modo che da remoto ci si collega direttamente al server domestico
evitando di esporre le applicazioni IOT direttamente a Internet

 > etc.. o se
 > sarebbe meglio far girare il server e i containers in un VPS remota,

Dal punto di vista della sicurezza assolutamente no: un VPS, una volta
che ci installi istanze docker con tutta quella roba che hai citato, è
sicuro quanto una prostituta a spasso nel Bronx.

La soluzione più sicura è avere un server in rete locale (cioè a casa)
ed accedervi via VPN, senza aprire alcuna porta sul router, tranne
quella per far funzionare la VPN (di default la 12345/udp nello script
che ho fatto). A questo va aggiunto un servizio di DNS dinamico, in modo
che il riavvio del router e relativo cambio di indirizzo IP pubblico non
creino problemi.
GB=> OK come sopra

Essendo la sicurezza l'argomento di questo thread,
direi che anche il router sarebbe da tenere aggiornato e suggerisco di
avere un router su cui si possa installare un firmware libero, in modo
da essere più tranquillo della disponibilità di tempestivi aggiornamenti
di sicurezza (io per esempio uso un Asus RT-AC51U).
GB=> Usi openwrt sul Asus?
Marche di router che consigli a parte Asus?
Molti usano Fritzbox, ma non so se si può cambiare il firmware con uno
libero
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://liszt.softwareliberopinerolo.org/pipermail/slip/attachments/20210505/4ee1dfff/attachment.htm>


Maggiori informazioni sulla lista SLiP