IOMMU protegge contro l'inserimento di malware tramite scheda di rete PCI / scheda audio DMA?

2

Ho appena letto su questo: link

Oltre alla domanda nel titolo, vorrei aggiungere anche la seguente domanda:

  • È possibile eseguire il flashing del firmware della scheda audio per caricare il codice dannoso tramite DMA o assumere il controllo dei driver audio che dispongono di privilegi elevati in una macchina Windows, quindi contattare il server C2?

Se tutto questo è possibile, vuol dire che basta collegare una scheda PCIe Sound infetta a praticamente tutti i PC che Windows o Linux potrebbero essere già compromessi nonostante l'abilitazione e la corretta configurazione di IOMMU, come ad esempio impostarla come ENABLED nel BIOS e impostando intel_iommu = on / amd_iommu = on in Linux? Questo è presupposto che tutto il resto sia pulito tranne la scheda audio.

    
posta Resonce 21.12.2018 - 09:26
fonte

1 risposta

3

IOMMU proteggerà non a meno che non sia combinato con un avvio misurato. Mentre un IOMMU proteggerà da DMA canaglia, ciò si applica solo dopo che è stato inizializzato. In particolare, poiché sarebbe necessario abilitare l'avvio misurato, è necessario un TPM. Esistono due tipi di avvio misurati, denominati SRTM e DRTM . Il primo misura il firmware una volta mentre il sistema sta avviando, mentre il secondo misura una parte del software in fase di runtime. Per proteggere da un primo attacco DMA , è necessario utilizzare DRTM, anziché solo SRTM, per la misurazione. Questo di solito richiede la configurazione manuale.

IOMMU è vulnerabile durante l'avvio iniziale poiché le tabelle di configurazione IOMMU (DMAR) vengono inizializzate in un'area di memoria non protetta. Durante il breve periodo tra il caricamento della configurazione e l'abilitazione di IOMMU, un dispositivo malintenzionato potrebbe modificarli, annullando la protezione che dovrebbe fornire. Questo è spiegato in un documento di ricerca su bypassando le protezioni IOMMU .

Questo è solo un rischio se si avvia il sistema con una scheda PCIe dannosa o compromessa già installata. Se uno è collegato mentre il sistema è acceso o una scheda esistente viene compromessa (ad esempio tramite JTAG) mentre il sistema è acceso, un IOMMU configurato correttamente dovrebbe essere sufficiente per impedire al dispositivo di emettere richieste DMA dannose. Ciò richiede tabelle DMA Remapping funzionali o DMAR, che è una tabella ACPI inclusa nel BIOS. Se il DMAR è rotto, come accade spesso con alcuni laptop, il sistema potrebbe non avviarsi correttamente con IOMMU abilitato tramite intel_iommu=on o amd_iommu=on .

    
risposta data 21.12.2018 - 10:58
fonte

Leggi altre domande sui tag