RaspberryPi, le basi: sicurezza informatica contro gli hacker. #7


Informatica / giovedì, Aprile 2nd, 2020

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.

Bene ora che ti ho instillato il dubbio, non pensi sia il caso di provare a mettere in sicurezza il tuo RaspberryPi? Dico provare, per il semplice fatto, che se un cracker è bravo, entra lo stesso, mi dispiace: se uno di un certo livello ti prende di mira, dovrai fare molto di più. Ma essendo questo un tutorial sulle basi, partiamo dal minimo non credi?

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.

Installiamolo con

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.

Riferimenti utili