Come proteggere il tuo computer Linux da unità USB non autorizzate
Pubblicato: 2023-01-23Le memory stick USB possono essere utilizzate per rubare dati dal tuo computer Linux. USBGuard ti consente di impostare regole che disciplinano l'uso di memory stick USB, come un firewall per dispositivi di archiviazione USB. Ecco come funziona e come puoi configurarlo.
La chiavetta USB e i suoi pericoli
Cos'è USB Guard?
Comportamento normale con chiavette USB su Linux
Installazione di USBGuard
Configurazione di una politica di base
Aggiunta di un altro dispositivo USB
Rimozione dell'accesso a un dispositivo USB
La chiavetta USB e i suoi pericoli
Probabilmente tutti abbiamo almeno una memory stick USB o un dispositivo di archiviazione USB come un'unità esterna USB. Sono economici, efficaci, portatili e facili da usare.
Al giorno d'oggi puoi semplicemente collegarne uno al tuo computer Linux per identificarlo come dispositivo di archiviazione e montarlo automaticamente. Sono finiti i giorni in cui dovevi montarli a mano sulla riga di comando. Questa comodità significa che chiunque può inserirne uno in un computer Linux e copiare i dati dall'unità USB al computer o dal computer alla memory stick.
Se altre persone usano il tuo computer, potresti voler limitare ciò che possono fare con le chiavette USB. Se il tuo computer è a casa tua, è improbabile che un opportunista con intenti maligni passi quando il tuo computer è acceso e incustodito, ma ciò può accadere in un posto di lavoro.
Ma anche con un computer nella tua casa di famiglia, potresti voler limitare l'accesso USB. Forse i tuoi figli hanno regolarmente amici con cui giocare. Il blocco dell'accesso USB è una precauzione ragionevole per impedire loro di causare inavvertitamente problemi.
Quando qualcuno trova un drive USB c'è un desiderio immediato di collegarlo a qualcosa per vedere cosa c'è dentro. Le minacce informatiche che prendono di mira i computer Linux sono molto più rare di quelle progettate per i computer Windows, ma esistono ancora.
Cos'è USB Guard?
USBGuard può proteggerti dalle minacce basate su software distribuite su memory stick USB compromesse, come BadUSB, dove l'attacco inizia quando sei manipolato per aprire quello che sembra un documento ma è un eseguibile camuffato. USBGuard non può proteggerti da minacce basate su hardware come i dispositivi USB Killer che causano danni fisici al tuo computer rilasciando una scarica ad alta tensione nella tua macchina.
In realtà, USBGuard ti consente di impostare regole per tutti i tipi di diversi dispositivi USB, inclusi mouse, webcam e tastiere. Non è solo per memory stick USB. Il tuo computer conosce l'ID di ciascun dispositivo USB, quindi puoi scegliere quali dispositivi USB funzionano nel tuo computer e quali no. È qualcosa come un firewall per la connettività USB.
Avviso: il demone USBGuard viene eseguito non appena viene installato. Assicurati di configurare USBGuard subito dopo averlo installato. In caso contrario, tutti i dispositivi USB verranno bloccati al riavvio del computer.
Comportamento normale con chiavette USB su Linux
Prima di fare qualsiasi cosa, controlleremo il comportamento predefinito sul nostro computer Ubuntu 22.10. È un processo semplice. Inseriamo una chiavetta USB e vediamo cosa succede.
Sentiamo un suono di avviso udibile e nel dock viene visualizzata l'icona di una memory stick.
L'apertura del browser dei file mostra che una voce è stata aggiunta all'elenco delle posizioni nella barra laterale. Il nome visualizzato è quello assegnato al dispositivo al momento della formattazione.
Aprendo un terminale e utilizzando il comando lsusb
elencati i dispositivi USB collegati. La voce in alto è la memory stick in questione, che sembra essere un dispositivo con marchio TDK.
lsusb
CORRELATO: Come elencare i dispositivi del tuo computer dal terminale Linux
Installazione di USBGuard
USBGuard ha dipendenze da usbutils
e udisks2
. Nelle ultime build di Manjaro, Fedora e Ubuntu che abbiamo testato, erano già installate.
Per installare USBGuard su Ubuntu, usa questo comando:
sudo apt install usbguard
Su Fedora devi digitare:
sudo dnf installa usbguard
Su Manjaro, il comando è:
sudo pacman -S usbguard
Configurazione di una politica di base
USBGuard ha un bel trucco. Ha un comando che crea una regola che consente a tutti i dispositivi USB attualmente collegati di continuare a lavorare senza ostacoli. Ciò significa che puoi creare una configurazione di base per tutti i tuoi dispositivi sempre necessari. Questo insieme di regole è chiamato criterio di base.
USBGuard utilizza tre tipi di regole.
- Consenti : le regole consentite consentono a un dispositivo specificato di funzionare senza ostacoli, come di consueto. Viene utilizzato per dispositivi sempre connessi, come tastiere cablate, mouse, trackball, webcam e così via. Viene utilizzato anche per i dispositivi che sono connessi in modo intermittente e che sono noti e affidabili.
- Blocca : le regole di blocco impediscono il funzionamento dei dispositivi USB. Il dispositivo USB non è affatto visibile all'utente.
- Rifiuta : le regole di rifiuto impediscono anche il funzionamento dei dispositivi USB, ma il dispositivo USB è visibile all'utente utilizzando
lsusb
.
USBGuard ha un bel trucco. Ha un comando che creerà una politica di base con una regola di autorizzazione per ciascuno dei dispositivi USB attualmente connessi . Questo è un ottimo modo per configurare rapidamente dispositivi sempre connessi al tuo computer, come tastiere e webcam. È anche un modo conveniente per acquisire dispositivi attendibili e intermittenti. Assicurati solo che tutti i tuoi dispositivi attendibili siano connessi al tuo computer quando esegui il comando.
Una strana stranezza richiede che tu lo faccia come root. L'uso di sudo
con il comando non funziona. Dobbiamo usare il comando sudo -i
(login) per aprire una shell come root, quindi emettere il comando. Assicurati di utilizzare il comando exit
per lasciare la sessione di accesso root una volta che hai finito.
sudo -i
usbguard generate-policy -X -t rifiuta > /etc/usbguard/rules.conf
Uscita
L'opzione -X
(–no-hash) impedisce a USBGuard di generare attributi hash per ciascun dispositivo. L'opzione -t
(destinazione) imposta una destinazione predefinita per tutti i dispositivi USB non riconosciuti. Nel nostro caso abbiamo scelto "rifiuta". Avremmo anche potuto scegliere "blocco".
Per vedere le nostre nuove regole, possiamo usare cat
.
sudo cat /etc/usbguard/rules.conf
Sul nostro computer di prova, questo ha rilevato tre dispositivi USB e ha creato regole "consenti" per loro. Ha aggiunto "rifiuta" come destinazione per tutti gli altri dispositivi USB.
Aggiunta di un altro dispositivo USB
Ora, se colleghiamo la stessa memory stick USB che abbiamo usato in precedenza, non è consentito operare. Non viene aggiunto al dock, non viene aggiunto al browser di file e non riceviamo un avviso acustico.
Ma poiché abbiamo utilizzato un obiettivo di "rifiuto" per i dispositivi non riconosciuti, lsusb
può elencarne i dettagli.
lsusb
Se avessimo utilizzato un obiettivo di "blocco" nella nostra politica di base, avremmo dovuto utilizzare il comando list-devices
con l'opzione -b
(dispositivi bloccati).
sudo usbguard list-dispositivi -b
Questo mostra i dispositivi USB attualmente connessi, ma bloccati.
Utilizzeremo alcune delle informazioni di questo comando per consentire al nostro dispositivo USB rifiutato di avere accesso temporaneo o permanente. Per concedere un accesso temporaneo al nostro dispositivo, utilizzeremo il numero ID del dispositivo. Nel nostro esempio questo è "10".
sudo usbguard consenti-dispositivo 10
Il nostro dispositivo è connesso e appare nel dock e nel browser dei file. Se chiediamo a USBGuard di elencare i dispositivi bloccati, nessuno viene elencato.
sudo usbguard list-dispositivi -b
Possiamo rendere il permesso permanente usando l'opzione -p
(permanente). Questo crea una regola per noi e la aggiunge alla nostra politica.
sudo usbguard consenti-dispositivo 10 -p
Ora possiamo utilizzare questo dispositivo USB normalmente.
Rimozione dell'accesso a un dispositivo USB
Se cambi idea su un dispositivo USB, forse hai perso una memory stick USB e vuoi rimuoverne l'accesso, puoi farlo con il comando block-device
.
Dobbiamo conoscere l'ID del dispositivo. Possiamo trovarlo elencando i dispositivi consentiti. Nota che questo numero potrebbe non essere lo stesso che hai usato per aggiungere la regola all'elenco, quindi controlla prima di emettere il comando block-device
.
sudo usbguard list-devices -a
Nel nostro caso l'ID è "13". Lo useremo con il comando block-device e l'opzione -p
(permanent) per rimuovere il suo accesso per sempre.
sudo usbguard dispositivo a blocchi 13 -p
Si noti che questo disconnette immediatamente il dispositivo. Usa questo comando solo quando hai finito di usare tutti i dati sul dispositivo.
USBGuard ti offre un modo efficiente e robusto per assumere il controllo e gestire i dispositivi USB che possono essere utilizzati sul tuo computer.
È il tuo computer, quindi è giusto che tu possa scegliere.
CORRELATO: Come montare e smontare i dispositivi di archiviazione dal terminale Linux