Benvenuti alla settima puntata della serie RaspberryPi, le basi!
Sicurezza Informatica
Ci ritroviamo tra le mani il nostro fidato RaspberryPi con Raspbian installato e pronto all'uso. Quando siamo in giro però, ora che di sicuro avrai già collegato sensori, telecamere, siti web e chissà cos'altro, ti senti osservato...
Dal momento in cui accendi router, vieni bersagliato ogni minuto, da BOT automatici che scansionano H24 internet, nel tentativo di raccogliere più dati possibili sui dispositivi vulnerabili.
Non ci credi, leggi il log del router o informati sul shodan, l'incredibile motore di ricerca per i dispositivi vulnerabili. Potrai letteralmente entrare nelle telecamere delle persone ignare e molto altro.
Tecniche malware
Gli attacchi informatici spesso sfruttano una botnet (insieme di computer infetti) per scansionare tutti gli apparati esposti ad internet, alla ricerca di porte standard aperte, come ad esempio la 22 per l’SSH o la 80 per http e in caso positivo, possono tentare tutte le combinazioni di password e nomi utenti standard o meglio sfruttare le vulnerabilità.
Su Raspbian ad esempio il primo login da provare sarà, utente: pi password: raspberry, per i router o telecamere di sicurezza utente: admin password: admin.
Una volta entrati nel sistema, lo infettano, unendolo alla botnet, che all’occorrenza può anche essere usata per bloccare siti internet tramite attacchi DDOS chiedendo poi il riscatto, come nel caso dell’attacco “Mirai”.
Altrimenti come Linux.MulDrop.14 , vengono usati i Raspberry Pi per minare criptomonete sfruttando il lavoro della CPU, anche se una chiavetta ASIC USB farebbe guadagnare molto di più di un semplice Raspberry Pi.
Aggiornamenti
La prima cosa in assoluto da fare è sempre installare gli aggiornamenti del sistema operativo e dei software. Vanno aggiornati tutti i sistemi da Windows 7 ormai defunto, al router, al firmware della stampante e ogni altra cosa collegata in rete.
Essi sono in grado di riparare le falle di sicurezza scoperte e corrette fino a quel momento. Come ad esempio la falla nel protocollo SMB1, che ha infettato 100.000 macchine linux poco tempo fa.
Partiamo con il comando
sudo su
che ci permetterà, per tutta la guida, di eseguire comandi con privilegi di root, necessari per queste operazioni.
Iniziamo con aggiornare la lista dei pacchetti di apt
apt-get update
Successivamente aggiorniamo tutti i software installati con il comando
apt-get dist-upgrade -y
Aggiornamenti automatici
Non possiamo controllare ogni giorno se Raspberry Pi ha l’ultima patch installata, quindi installiamo un software che lo faccia per noi tramite
apt-get install unattended-upgrades -y
modifichiamo i vari parametri con
nano /etc/apt/apt.conf.d/50unattended-upgrades
controllare che ci sia
"o=Raspbian,n=jessie,l=Raspbian-Security";
interessante la voce di riavvio automatico con orario prestabilito.
In tutti i tutorial che troverete online, ricordatevi di non limitarvi a copia incollare alla cieca, verificate si i comandi sono da adattare, per esempio io sto usando Raspbian Jessie, ma forse tu avrai Buster o una versione successiva.
Hostname ed utenti
Ogni Raspbian inizialmente ha questi dati
- hostname : rasberrypi
- utente : pi
- password : raspberry
ed è importante sostituirli in modo da bloccare più attacchi possibili.
Entriamo nell’interfaccia di configurazione di Raspbian
raspi-config
selezioniamo hostname e cambiamo il nome con quello che preferiamo, non serve che sia complicato, solo diverso.
Successivamente entriamo in Boot Option, Desktop / Cli e selezioniamo una voce senza l’autologin.
Finiamo eliminando l’utente pi e creandone uno nuovo, che sia compreso nel gruppo sudo
useradd -m enrico -G sudo
successivamente assegnamogli una password complessa
passwd enrico
ecco i consigli di un hacker per una password sicura
Ed ora eliminiamo la falla più grossa, l’utente e password di default con il prossimo comando, ma attenzione valutate se cancellarne anche la home col parametro -remove-home
deluser -remove-home pi
Attualmente se scrivete sudo [comando] non vi viene richiesta la password di root, ed è un male, dal punto di vista della sicurezza. Noi vogliamo che ci venga richiesta
spostiamo o cancelliamo il file
mv /etc/sudoers.d/010_pi-nopasswd /tmp
facciamo una semplice prova
exit
sudo su
dovrebbe comparire un avviso e la richiesta di password.
Ottimo, ora va cambiata anche la password di root con
sudo passwd root
Firewall e controllo accessi
In ogni rete e computer è sempre bene avere attivo un firewall in grado di filtrare e controllare tutto il traffico in entrata ed uscita, sul raspberry si può installare ed usare UFW (Uncomplicated firewall) in grado di gestire le iptables in modo veramente semplice.
apt-get install ufw -y
Le regole di default consentono tutte le connessioni in uscita, ma bloccano qualsiasi connessione in entrata.
Apriamo e filtriamo solo le porte che ci servono, di solito può servire la porta SSH nel caso ci serva connetterci da remoto o non venga usato il monitor
ufw allow ssh/tcp
oppure col numero della porta
ufw allow 22/tcp
Ora possiamo abilitare UFW
ufw enable
poi, molto importante: limitiamo gli accessi con il comando
ufw limit ssh/tcp
cosi che le prime sei connessioni verranno effettuate senza problemi, ma l’attaccante vedrà negate tutte quelle successive. Verifichiamo che sia configurato correttamente
ufw status numbered
e nel caso dovessimo cancellare una regola sarà sufficente digitare
ufw delete [numero della regola]
Dopo aver applicato nuove regole al firewall va riavviato
ufw disable && ufw enable
Per ulteriori informazioni rimando al manuale
man ufw
Un’ accortezza importante sarebbe quella di cambiare le porte di default di alcuni servizi, ad esempio il server SSH
nano /etc/ssh/sshd_config
Cambiando dalla bersagliata porta 22 a una porta con un numero a caso magari intorno al 10000
# What ports, IPs and protocols we listen forPort 14000
in questo attenzione che le regole UFW vanno impostato con il numero della porta e non il nome.
Una protezione aggiuntiva sarebbe avere, a monte del router, un firewall di rete, ma per CPU ARM ormai non se ne trovano molti, forse in una futura guida ne parleremo.
Analisi di sicurezza
Una volta completate le varie protezioni iniziali, passiamo all’analisi dei sicurezza tramite il software Lynis che grazie alla sua versione gratuita ci da un’ idea di cosa si potrebbe ancora proteggere.
Installazione Lynis
Procediamo attivando la chiave software
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F
abilitiamo l’https per apt
apt install apt-transport-https
aggiungiamo
echo "deb https://packages.cisofy.com/community/lynis/deb/CODENAME main" > /etc/apt/sources.list.d/cisofy-lynis.list
dove al posto di CODENAME andrà messo il nome della versione, attualmente jessie.
Rimando al sito ufficiale per tutte le distro supportate
Ed ora, finalmente, possiamo installarlo
apt update ; apt install lynis
ed avviarlo
lynis audit system -Q
Lynis farà un resoconto di tutte le debolezze del nostro sistema e le salverà in un log, in /var/log/lynis.log
Antimalware
Concludiamo con i più famosi tools per la scansione dei malware attivi nel sistema, rkhunter e chkrootkit.
Procediamo con l’installazione di rkhunter
apt-get update ; apt-get install rkhunter -y
Aggiorniamolo all’ultima versione
rkhunter --update --version-check
ed eseguiamo la scansione automatica
rkhunter -c --skip-keypress
alla fine verrà visualizzato il verdetto
Il secondo tool che si usa in tandem con rkhunter è chkrootkit
installazione
apt-get update ; apt-get install chkrootkit -y
ed esecuzione tramite
chkrootkit
Ottimo, direi che per iniziare avete già fatto dei buoni progressi per mettere in sicurezza il vostro Raspberry Pi, anche se le tecniche di attacco e le vulnerabilità, ci saranno sempre.
Se infine volete cimentarvi nei penetration test contro i vostri apparecchi, installate Kali Linux sul vostro Raspberry Pi e poi studiate la documentazione .
Ci vediamo alla prossima puntata di RaspberryPi, le basi.