Quão seguro é o sistema operacional do host do sistema operacional da máquina virtual convidada ao usar passagem de GPU (usando os métodos descritos aqui )?
Se o convidado estiver comprometido, ele pode infectar permanentemente a GPU e seu firmware? Se for possível, o que esta GPU comprometida poderia fazer?
- Mesmo que VT-d / IOMMU seja projetado para conter dispositivos com segurança para a máquina virtual, o convidado poderia usar a GPU para comprometer o host (SO ou qualquer outro dispositivo)?
-
Se houver suspeita de que a GPU está comprometida, qual deve ser o curso de ação ideal? Se o sistema operacional host do computador for reinstalado, a GPU seria capaz de atacar e infectá-lo?
(Movido para pergunta separada )
Estou procurando uma resposta geral, mas se for relevante, suponha que o host Linux com KVM e convidado do Windows.
Comentários
- Há uma prova de conceito GPU rootkit jellyfish no github. Ela sobrevive à reinicialização, mas não ao desligamento.
Resposta
-
Se o convidado está comprometido, ele pode infectar permanentemente a GPU e seu firmware?
De acordo com o OpenStack documentação , sim .
Muitos hipervisores oferecem uma funcionalidade conhecida como passagem PCI. Isso permite que uma instância tenha acesso direto a uma peça de hardware no nó. Por exemplo, o Isso pode ser usado para permitir que instâncias acessem placas de vídeo ou GPUs oferecendo a arquitetura de dispositivo unificado de computação (CUDA) para computação de alto desempenho.
Este recurso traz dois tipos de riscos de segurança: acesso direto à memória e infecção de hardware .
O acesso direto à memória só é relevante para a passagem do dispositivo que não usa IOMMU.
-
Mesmo que VT-d / IOMMU seja projetado para conter dispositivos com segurança na máquina virtual, o convidado poderia usar a GPU para comprometer o host (SO ou qualquer outro dispositivo)?
Possivelmente, se o dispositivo for usado pelo host.
Uma infecção de hardware ocorre quando uma instância faz uma modificação maliciosa no firmware ou em alguma outra parte de um dispositivo. Como este dispositivo é usado por outras instâncias ou pelo sistema operacional host, o código malicioso pode se espalhar para esses sistemas. O resultado final é que uma instância pode executar código fora de seu domínio de segurança. Esta é uma violação significativa, pois é mais difícil redefinir o estado do hardware físico do que do hardware virtual e pode levar a uma exposição adicional, como acesso à rede de gerenciamento.
Comentários
- O dispositivo " usado " pelo host após o desligamento da VM? Ou em qualquer outro momento?
- No mínimo, o dispositivo é " usado " pelo BIOS quando o a máquina host é reiniciada em seguida e tenta descobrir quais dispositivos estão no sistema.
- Acho que a infecção de hardware requer acesso ao espaço de configuração PCI (para escrever ROMs opcionais). Não ' acho que CUDA é suficiente para realmente " infectar " uma GPU com persistente código.