E 'possibile la lista bianca USB in Linux?

7

Dopo aver guardato la presentazione di Black Hat su i problemi fondamentali con la "sicurezza" USB , sono chiedendo se c'è un modo per fare il whitelist USB in Linux.

Esiste attualmente un meccanismo che consentirà solo un determinato elenco di dispositivi USB di caricare effettivamente i driver ed eseguire sugli ultimi kernel di Linux?

    
posta Naftuli Kay 13.08.2014 - 19:58
fonte

4 risposte

4

I dispositivi USB sono normalmente identificati dal fornitore e dall'ID del dispositivo e, in Linux, il supporto per i dispositivi USB viene gestito con udev . Potresti scrivere le regole di udev per rifiutare tutti i dispositivi, salvo per uno specifico elenco (bianco). Vedi ad esempio questa domanda .

Tuttavia, questo potrebbe non portare la sicurezza che desideri. In effetti, tutti i dispositivi di un modello specifico di un determinato fornitore condivideranno lo stesso ID. Se consenti, tramite la tua lista bianca, un dispositivo con ID 08e6: 3438, allora anche qualsiasi dispositivo che afferma di avere quell'ID sarà consentito. Un dispositivo ostile può annunciare perfettamente qualunque ID desideri mostrare. Per avere una whitelist reale, è necessario che ogni singolo dispositivo contenga un identificatore specifico che l'utente malintenzionato non può indovinare (cioè un tasto ). Non c'è nulla di simile nel protocollo e nei dispositivi USB esistenti.

Tale lista bianca sarebbe, in ogni caso, ridondante con controllo fisico. Come utente tangibile di fronte alla macchina, spetta a te decidere se inserire o meno un dispositivo specifico nella porta USB. Se vuoi inserire un dato dispositivo che hai in mano, allora puoi modificare le regole per permetterlo; e se ti astieni dall'inserire il dispositivo, allora non hai nemmeno bisogno della lista bianca. Il filtraggio dei dispositivi USB sarebbe molto utile nelle situazioni in cui gli utenti non fidati possono accedere alle porte fisiche. Questa è, discutibilmente, una situazione piuttosto brutta per cominciare, poiché ciò significa che gli utenti non fidati hanno un certo livello di accesso fisico all'hardware. Questo potrebbe essere applicato ai chioschi self-service nei negozi di fotografia, ma in questi casi l'utente non fidato dovrebbe portare il proprio dispositivo USB, quindi la whitelist non ha più senso.

    
risposta data 13.08.2014 - 20:17
fonte
1

Sì. Sort of.

"Carica driver" è un po 'ambiguo. In genere i driver USB sono integrati nel kernel in quanto potrebbero essere necessari durante l'avvio. Inoltre, non è possibile interrogare il dispositivo USB per scoprire il suo ID dispositivo senza "caricare" il sottosistema USB, e in genere il driver specifico del dispositivo è semplicemente lo storage di massa o il sistema HID condiviso da tutti i dispositivi simili. Quindi buttiamo quell'esigenza. È sciocco.

Ma puoi autorizzare i dispositivi USB. Questo è stato ampiamente trattato su SuperUser e siti simili.

SuperUser: elenco bianco per la memoria USB utilizzando udev

Chiedi a Ubuntu: Si può usare udev (regole udev) per autorizzare determinati dispositivi USB?

Unix & Linux: qual è la regola di udev per consentire specifici fornitori di pen drive?

Una semplice ricerca su Google mostrerà centinaia di guide sull'argomento.

    
risposta data 13.08.2014 - 20:17
fonte
1

Come altri post hanno detto, puoi dire cose come "Lexar Jumpdrive da 16 GB possono lavorare qui, tutto il resto è vietato", ma non dire "Questo specifico flash può funzionare solo su questa rete".

Tuttavia, come con molte cose, puoi ingannare il sistema. Ecco un defcon talk in cui qualcuno ha costruito un dispositivo per agire come un MITM USB e converte i comandi tra diversi dispositivi, così ho potuto inserire un sandisk casuale su una rete lexar-only e copiare i file su di esso semplicemente.

link

Questo lascia prove forensi e simili, ma alza anche il livello se questo tipo di approccio ha senso nel proprio ambiente. Ricorda, gli ID USB sono come codici a barre, non come indirizzi MAC. Non sono univoci per dispositivo.

    
risposta data 14.08.2014 - 00:38
fonte
0

A partire da ~ 2007 appare per poter specificare manualmente quali periferiche USB (o interfacce di un dispositivo USB) possono associarsi a un driver.

Vedi documentazione:
link

(Nessuno si sentirà male. Mi sono imbattuto per caso in una spedizione di ricerca non correlata, ben dopo aver considerato la funzionalità inesistente nel kernel.)

    
risposta data 18.02.2016 - 03:19
fonte

Leggi altre domande sui tag