FERRAMENTAS LINUX: O fortalecimento do kernel ROE continua a restringir as VMs do KVM a apenas sua memória

sábado, 8 de dezembro de 2018

O fortalecimento do kernel ROE continua a restringir as VMs do KVM a apenas sua memória




Confia !!



Para ajudar a melhorar a segurança dos servidores que executam o KVM para virtualização, há uma série de patches de proteção de kernel com proteção de ROE em andamento. Essa nova adição ao kernel permite que o sistema operacional host restrinja o acesso de um convidado estritamente à sua própria memória. Ainda não está claro se a proteção de ROE fará o corte a tempo para o próximo ciclo de kernel do Linux 4.21.

Para aqueles que não têm seguido a série de patch de endurecimento do kernel ROE para o KVM, a sétima revisão foi publicada na sexta-feira. A carta de apresentação faz um bom trabalho em explicar elegantemente os benefícios:

O ROE é um hypercall que permite que o sistema operacional host restrinja o acesso do convidado à sua própria memória. Isso fornecerá um mecanismo de proteção que pode ser usado para impedir que os rootkits manipulem estruturas e códigos de dados estáticos do kernel. Uma vez que uma região de memória é protegida, o kernel guest não pode sequer solicitar a desfazer a proteção.  
A memória protegida pelo ROE deve ser não trocável, porque mesmo que a página protegida por ROE seja desativada, não será possível escrever nada em seu lugar. 
O ROE hypercall deve ser capaz de proteger um quadro de memória inteiro ou partes dele. Com esses dois, deve ser possível para o kernel guest proteger sua memória e todas as entradas da tabela de páginas para aquela memória dentro da tabela de páginas. Ainda não tenho certeza se isso deve fazer parte do trabalho do ROE ou do trabalho do hóspede.  
A razão pela qual seria melhor implementar isso de dentro do kvm: em vez de (host) o espaço do usuário é a necessidade de acessar SPTEs para modificar as permissões, enquanto o mprotect () do espaço do usuário pode funcionar em teoria. Ele se tornará um grande sucesso de performance para vmexit e mudar para o modo de espaço do usuário em cada falha, por outro lado, ter a permissão manipulada pelo EPT deve fazer algum ganho de desempenho notável.  
Nosso modelo de ameaça pressupõe que um invasor tenha acesso root completo a um convidado em execução e seu objetivo é manipular o código / dados do kernel (hook syscalls, sobrescrever IDT ..etc). 

Há trabalhos futuros em andamento para também colocar algum tipo de proteção no registro de tabela de páginas CR3 e outros registros críticos que podem ser interceptados pelo KVM. Desta forma, não será possível a um invasor manipular qualquer parte do
tabela de páginas dos convidados.

Este trabalho está sendo liderado pela pesquisa da Universidade de Virgina Tech. Há um bom progresso sendo feito nos patches ROE, mas com ele não suportando páginas enormes e outros trabalhos ainda em andamento, pode não estar pronto a tempo para o kernel Linux 4.21 que deve ser aberto no Natal após a versão do kernel Linux  4.20 .



Até a próxima!!

Nenhum comentário:

Postar um comentário