Protezione dalle vulnerabilità Firewire DMA in Linux

3

So che ci sono state domande su questo argomento in passato, ma sembrano tutte abbastanza obsolete o non particolarmente pertinenti.

Ho bisogno di usare una connessione 1394 (Firewire), tuttavia sono interessato alle possibili vulnerabilità DMA. Dalla mia comprensione, un dispositivo firewire potrebbe falsificare la quantità di memoria a cui è necessario accedere, in modo tale che tutti gli indirizzi di memoria possano essere letti dal sistema. In Linux per esempio c'è un modo in cui questo spazio può essere limitato, possibilmente usando mmap ?? Qualsiasi idea è molto apprezzata.

    
posta Nark 21.01.2014 - 10:49
fonte

3 risposte

1

I controller FireWire del tipo utilizzato nei PC (OHCI) hanno la capacità di consentire ad altri dispositivi FireWire di eseguire DMA remoto. Questa funzione deve essere abilitata dal driver prima che funzioni.

Il protocollo SBP-2 è l'unico protocollo FireWire che utilizza DMA remoto; Pertanto, il kernel Linux abilita il DMA remoto solo per i dispositivi SBP-2 (ad esempio, dischi rigidi e altri dispositivi di archiviazione) o qualsiasi dispositivo che afferma sia un dispositivo SBP-2.

Puoi disabilitare quel driver disabilitandolo; scrivi la riga

blacklist firewire-sbp2

in qualsiasi file .conf in /etc/modprobe.d o disabilita CONFIG_FIREWIRE_SBP2 durante la compilazione del kernel.

Al momento, il driver firewire-sbp2 si affida al DMA remoto per il trasferimento dei dati, quindi devi scegliere tra dispositivi di archiviazione FireWire e protezione dagli attacchi DMA remoti. (Sarebbe possibile implementare tali trasferimenti nel software, ma questo non è stato ancora implementato.)

La possibilità di leggere / scrivere qualsiasi memoria è utile anche per il debug da un altro sistema, quindi c'è l'opzione CONFIG_FIREWIRE_OHCI_REMOTE_DMA che abilita il DMA remoto per qualsiasi dispositivo FireWire. Tuttavia, questa opzione non è abilitata per impostazione predefinita.

    
risposta data 22.01.2014 - 11:38
fonte
0

Hai bisogno del protocollo SBP-2 ? In caso contrario, inserisci la lista nera: aggiungi quanto segue a /etc/modprobe.d/blacklist-firewire.conf :

blacklist firewire-sbp2

Questo dovrebbe almeno proteggere da strumenti come inizio .

    
risposta data 21.01.2014 - 23:50
fonte
-2

Non esiste una mitigazione del software per l'attacco DMA. In alcuni casi anche disabilitando la porta non funziona perché la produzione si basa su un interruttore software off per il dispositivo 1394.

Nel momento in cui è possibile richiamare una chiamata di livello del sistema operativo, l'attacco è già riuscito.

Rimuovi il dispositivo 1394 se non è necessario (ma tieni in considerazione altri vettori DMA come PCMCIA, Thunderbolt, ecc.) o usa la resina epossidica sulla porta.

    
risposta data 21.01.2014 - 23:16
fonte

Leggi altre domande sui tag