virtio è un'interfaccia standard per una comunicazione efficiente tra il guest di una macchina virtuale e il backend del dispositivo dell'host. Invece di emulare in modo lento e dettagliato ogni dispositivo hardware, il guest usa driver virtio per scambiare dati con un modello di dispositivo paravirtualizzato. Tra i dispositivi virtio comuni ci sono quelli di rete, di blocco e di console, spesso accelerati da componenti dell'host come vhost.
Nel campo della sicurezza informatica, virtio è importante perché si colloca al confine tra codice guest non attendibile e codice host con privilegi. Se il backend dell'host gestisce in modo errato descriptor, traduzioni o stato memorizzato nella cache, un guest può riuscire a provocare corruzione della memoria o a aggirare l'isolamento. I difensori considerano virtio e i suoi backend critici per la sicurezza: mantenere aggiornato il kernel e il codice dell'hypervisor, limitare l'accesso ai nodi di dispositivo dell'host e rivedere le funzionalità che influenzano la traduzione degli indirizzi o il comportamento di reset. Se implementato correttamente, virtio migliora le prestazioni senza sacrificare l'isolamento; quando compaiono bug, può diventare parte del percorso di attacco.


