Sto sviluppando un dispositivo IoT (un Raspberry Pi) che sarà connesso a Internet. Gli utenti non saranno necessariamente a proprio agio con la distribuzione degli aggiornamenti, quindi ho intenzione di renderlo il più sicuro possibile senza dover distribuire gli aggiornamenti ogni tanto.
Cosa deve essere in grado di fare il dispositivo:
- accedere a un microfono: questa è la mia preoccupazione, non voglio che nessuno spii gli utenti del dispositivo accedendo al microfono da remoto
- accedere a API specifiche su Internet. Sono conosciuti in anticipo e possono essere considerati salvati e non mutevoli. Saranno accessibili tramite riga di comando, python o Chrome (vedi sotto)
- esegui il codice Python
- esegui un'istanza di Chrome. Sarà la versione più recente quando creerò il dispositivo, ma (si spera) non avrà mai bisogno di essere aggiornato
- esegue Raspian (Debian ottimizzato per Raspberry Pi). Spero che non sia mai necessario aggiornarlo.
Il mio piano attuale è:
- Comunicare solo con le API utilizzando SSL
- Imposta
/etc/hosts
per consentire solo la comunicazione con gli IP specifici delle API che devo usare
Non mi preoccupo per gli utenti del dispositivo che manipolano le impostazioni. Gli attacchi che richiedono l'accesso fisico al dispositivo non sono una mia preoccupazione. Gli attacchi che richiedono di essere vicini al dispositivo sono interessanti, ma altamente improbabili (il dispositivo non è molto diffuso, non è risaputo dove sono installati e gli utenti sono persone comuni, nessun luogo ad alta sicurezza). Sono principalmente preoccupato per attacchi più o meno casuali via internet.
Ci sono ulteriori passaggi che dovrei fare per garantire che il dispositivo (specialmente l'accesso al microfono) sia ancora sicuro anche se c'è un bug noto in uno dei suoi componenti software?