Raspberry Pi e la cybersecurity Parte I

Raspberry Pi

Troppo spesso quando parliamo di Raspberry Pi, tendiamo a sottolineare le sue enormi potenzialità e la sua flessibilità progettuale ma, allo stesso tempo, tendiamo a sottovalutare il fatto che si tratta di un dispositivo elettronico a tutti gli effetti che, per forza di cose, potrebbe diventare il bersaglio di un attacco informatico.

Non si creda, infatti, che un Raspberry Pi sia un dispositivo totalmente sicuro e inattaccabile solo perché è piccolo e non è un PC come lo conosciamo noi. Qualsiasi elemento connesso a una rete internet, infatti, costituisce un potenziale pericolo e, trascurare questo elemento, potrebbe esporvi a gravissime conseguenze.

Ci sono alcune abitudini piuttosto “seducenti” che, sia per pigrizia che per scarsa informazione, rischiano di essere le cause principali di Raspberry “bucati” e finiti sotto attacco. I consigli che stiamo per darvi rientrano tutti all’interno della “configurazione base” che, noi di Moreware, facciamo fare a tutti i nostri studenti durante la prima lezione di approccio al Raspberry Pi. La cybersecurity è ormai un elemento fondante dell’informatica e dell’elettronica moderna e, i sistemi SBC, non fanno assolutamente eccezione.

 

Raspberry Pi

 

Raspberry Pi è la board più venduta per i progetti basati su IoT (Internet of Things) e la sua rapidissima diffusione ha, di conseguenza, attirato l’attenzione dei cybercriminali. Dobbiamo sempre ricordare che ogni aggiunta al nostro progetto nasconde potenziali insidie che vanno assolutamente gestite e ottimizzate. Tantissime persone ci chiedono continuamente consigli sulle migliori telecamere per Raspberry Pi, perché tutti vogliono avere un sistema di videosorveglianza. Il concetto di per sé va benissimo, ma occorre considerare che una telecamera costituisce una fortissima vulnerabilità: prendendone il controllo è virtualmente possibile controllare casa vostra h24, sapendo esattamente cosa state facendo e dando un’occhiata a ciò che possedete.

Cambiare subito Nome Utente e Password

Ogni Raspberry Pi viene fornito di fabbrica con lo stesso nome utente e password per tutte le board, ovvero

Nome Utente: pi

Password: raspberry

Mantenere queste impostazioni equivale a nascondere le chiavi di casa sotto al tappeto e ad apporre sulla porta il cartello che dice dove trovarle. Per quanto possa sembrarvi divertente la questione, fidatevi che su venti persone che utilizzano la board, il 90% se non di più si dimentica di cambiare i dati di accesso. In questo modo, basta fare una ricerca su google per avere Nome Utente e Password memorizzati di default e tentare un accesso. Anche qui, le pessime abitudini e la pigrizia la fanno da padrone: molte volte le persone mantengono il Nome Utente e cambiano soltanto la Password.

Non tutti sanno che “Nome Utente” e “Password” sono due chiavi fatte per lavorare insieme. È la coppia di chiavi che compone la procedura di Login e, a una deve corrispondere necessariamente l’altra. Se voi ne cambiate una soltanto e l’altra è una chiave conosciuta, semplicemente il pirata informatico vi ringrazierà per avergli risparmiato metà del lavoro. L’obiettivo non è quello di rendere impenetrabile un sistema (“Non esistono sistemi inviolabili. Esistono sistemi violati e altri che devono ancora esserlo” -Kevin Mitnich-), ma quello di complicare il più possibile la vita a chi sta cercando di attaccare il vostro sistema.

 

Raspberry Pi

 

Al primo avvio “out of the box” della board, la schermata Raspberry Pi Software Configuration Tool (raspi-config) si avvierà in automatico. Come detto poc’anzi, il nome utente e la password settati di default sono informazioni perfettamente recuperabili nella documentazione ufficiale della Raspberry Org. Capito perché dovete cambiare subito questi parametri?

Iniziamo cambiando la password dell’utente pi:

apriamo il terminale loggati come utente “pi” e digitiamo

passwd

Una volta premuto INVIO, digitiamo la password memorizzata di default (“raspberry”) e premiamo INVIO. Il sistema, a questo punto, ci chiederà di digitare la nuova password. Una volta fatto, premete ENTER e apparirà la scritta

passwd: password updated succesfully

Attenzione: quando digitate la password, Linux nasconde volutamente i caratteri per evitare che possano essere visibili da altri. Non preoccupatevi se non li vedete comparire.

Adesso andiamo a creare un nuovo utente. Sempre da terminale digitiamo:

sudo adduser nuovo_nome_utente

e rispondiamo alle varie domande, digitando anche la relativa nuova password

A questo punto, occorre inserire il nuovo utente nel gruppo degli utenti sudo, ovvero gli administrator.

Sempre da prompt digitiamo:

sudo adduser nuovo_nome_utente sudo

e premiamo INVIO

Ora occorre fare logout dall’utente pi e riloggare con il nuovo utente e la password appena creati.

Riapriamo il terminale e andiamo a cancellare l’utente pi con i comandi:

sudo userdel -r pi

il flag -r cancella l’utente anche dalla cartella Home. È un’operazione assolutamente necessaria, perché occorre cancellare ogni traccia di tutto ciò che è stato settato di fabbrica.

Dopo aver dato INVIO, avete il vostro nome utente e la nuova password, senza più dovervi preoccupare dell’utente default.

Fare aggiornamenti periodici

Raspberry Pi OS non è Windows. Deriva da Linux con tutte le differenze del caso. Se siete abituati a sistemi operativi proprietari, sappiate che qui la musica è decisamente diversa. Non esiste una procedura che scarica in automatico tutti gli aggiornamenti al posto vostro e ve li installa al successivo riavvio. Qui dovete essere voi a lanciare il comando per cercare aggiornamenti e installarli. Il problema è che qui le persone tendono a dimenticarsene, portate per abitudine a pensare che sia il Sistema Operativo a farlo al posto loro. Il nostro consiglio è di aggiornare il sistema almeno una volta al mese. Molto spesso ci capita di essere contattati per problemi di questo genere, salvo poi scoprire che i sistemi in questione non vengono aggiornati da anni.

 

Raspberry Pi

 

Per effettuare questa operazione, aprite il terminale e digitate:

sudo apt update

e

sudo apt upgrade

Confermate con Y e date invio.

Disabilitare ciò che non serve

Quello che non c’è, non si rompe“, diceva il grande Henry Ford. Stesso discorso vale per il Raspberry Pi. Se il vostro progetto prevede un collegamento a internet via cavo ethernet, perché mantenere abilitato il modulo wi-fi? Oltre a consumare corrente (e di conseguenza produrre calore), rappresenta comunque una falla nel vostro sistema che potrebbe essere facilmente utilizzata dai cyber-criminali. Stessa cosa vale per il modulo bluetooth: è contemplato il suo utilizzo nel vostro progetto? Se sì, mantenetelo, altrimenti disabilitatelo in maniera permanente. Più porte chiudete, meno accessi dovete controllare, a tutto vantaggio della stabilità e della sicurezza del sistema.

Raspberry Pi

Tenete presente che, da quando è arrivato Raspberry Pi OS, questo tipo di servizi è attivato di default.

Bastano due comandi per farlo, è sufficiente modificare il file config.txt con il comando

sudo vi /boot/config.txt

e aggiungere due righe di codice:

dtoverlay=disable-wifi
dtoverlay=disable-bt

digitare poi

sudo reboot

per riavviare la board applicando le modifiche.

Attenzione a cosa modificate nel file config.txt. Contiene tutti i parametri di configurazine della board, quindi non addentratevi in modifiche se non sapete cosa state facendo. Un altro modo (molto più sicuro) per effettuare questo tipo di operazioni è quello di passare per il tool chiamato “raspi-config”.

È sufficiente dare il comando da prompt:

sudo raspi-config

e agire sulle impostazioni di rete.

Analogamente, chiedetevi sempre se è necessario che il vostro sistema sia collegato a internet tutti i giorni h24. Se questa caratteristica non è strettamente necessaria, perché lasciarla attivata? L’ideale, in questo caso, sarebbe collegare il Raspberry Pi alla rete solo per effettuare gli aggiornamenti software. Così facendo, il livello di sicurezza si alza in maniera esponenziale.

Se siete “pigri” e non vi va di collegare e scollegare il sistema, potete sempre avvalervi di un cronjob che attivi la connessione, controlli la presenza di eventuali aggiornamenti, li esegua e chiuda il collegamento internet. Ci occuperemo della configurazione di questo cronjob in un prossimo articolo. Se non sapete cosa sia il tool Cron, potete guardare il nostro video.

Fare molti test

Una volta realizzato un progetto che, sulla carta, ha una ridottissima “attack surface” (il numero di possibilità di venir attaccato), occorre dedicare molto tempo ai test. Un “Penetration Test” fatto come si deve, deve valutare diversi aspetti

Raspberry Pi

Valutazione esterna del progetto: Raspberry Pi è una board di ridotte dimensioni, ma a seconda di come viene montata e allocata, può essere davvero fragile e soggetta a manipolazione. I porti I/O e il GPIO devono rigorosamente protetti e mai in bella vista. Installate sempre un case e cercate di tenere il sistema il più lontano possibile da occhi indiscreti. Non tutti gli attacchi sono portati in maniera remota: nel caso vi entrino in casa o in ufficio, infatti, il poter lavorare fisicamente sul sistema costituisce un rischio elevatissimo.

Dopo aver valutato l’aspetto esteriore e di posizionamento, occorre iniziare a lavorare sul perfezionamento del lato software, simulando attacchi informatici sul sistema per vedere come reagiscono i vari applicativi e quali funzionalità verrebbero più facilmente compromesse. Questo tipo di simulazioni andrebbero fatte ogni volta che si aggiungono elementi al progetto e ad ogni aggiornamento software/firmware. Sì, perché ogni volta che un aggiornamento corregge un bug o una vulnerabilità, al 90% ne apre un’altra e occorre sempre effettuare controlli.

Se volete saperne di più su come organizzare un Penetration Test per Raspberry Pi, ne parleremo in un articolo che uscirà tra qualche giorno.

Iscrivetevi ai nostri gruppi Telegram…

… e non dimenticate di farlo anche sui social!

###Da sempre appassionato di tecnologia, soffro di insaziabile curiosità scientifica. Adoro sperimentare e approfondire le mie conoscenze sulle ultime novità sul mercato in termini di hardware, alta tecnologia e videogiochi. Attratto e coinvolto nella prototipazione hardware dalla piattaforma Arduino, Raspberry Pi e Nvidia Jetson.### ###Always passionate about technology, I am suffering from insatiable scientific curiosity. I love experimenting and deepening of my knowledge on the latest news on the market in terms of hardware, hi-tech and video games. Got attracted and involved in hardware prototyping by the Arduino platform, Raspberry Pi and Nvidia Jetson.###

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.