SubVirt: Implementing malware with virtual machines Yi-Min Wang Chad Verbowski Helen J. Wang Jacob R. Lorch Microsoft Research Samuel T. King Peter M. Chen University of Michigan
Motivação Atacantes e sistemas de defesa lutam por controle – Atacantes monitoram e perturbam a execução do sistema Para evitar a detecção por parte dos sistemas de defesa – Sistemas de defesa detectam e removem o atacante – Controle das camadas mais baixas Hardware Sistema operacional App1App2 AtacantesSistemas de defesa
VMM roda abaixo do sistema operacional – Efetivamente um novo nível de privilégio do processador Fundamentalmente mais controle Sem estados ou eventos visíveis Fácil desenvolver serviços maliciosos Virtual-machine based rootkits (VMBRs)
Hardware Sistema alvo App1App2 Antes da infecção Hardware Sistema alvo App1App2 VMM Sistema de ataque Após a infecção
Resumo do Trabalho Instalar o VMBR Manter o controle Rodar serviços maliciosos Defesa contra VMBR Implementação de prova de conceito Perspectiva do atacante Perspectiva do sistema de defesa
Instalação do VMBR Assume que o atacante possui privilégio de kernel – Exploit remoto tradicional – Subornar empregado – CD-Rom bootável malicioso Instalação durante o shutdown – Poucos processos rodando – Esforços para evitar detecção da atividade de instalação do VMBR
Instalação do VMBR Modificação da sequência de boot BIOS Master boot record Boot sector OS
Instalação do VMBR Modificação da sequência de boot BIOS Master boot record Boot sector OS VMBR loads
Manutenção do Controle VMBR perde controle em caso de reset do hardware – Ilusão de reset para não perder o controle – Reboot fácil, shutdown difícil BIOS Master boot record Boot sector OS VMBR loads
Manutenção do Controle ACPI BIOS usada para entrar em modo low power – Desliga os discos – Coloca monitor em modo low power – Altera LED power Ilusão de desligamento, emulação de shutdown Controle sobre o botão power Funcionalidade do sistema não modificada
Serviços Maliciosos Vantagens de dois lados (alto nível e baixo nível) – Prover implementação de baixo nível – Ainda assim torna fácil a implementação de serviços Uso de um attack OS em separado Hardware Target OS App1App2 VMM Attack OS App
Serviços Malicisos Serviços com interação zero – phishing web server Monitoramento passivo – keystroke logger, file system scanner Modificação ativas da execução – Evitar técnicas de detecção de VMM Todos fáceis de implementar
Defesa contra VMBRs Detecção de VMBRs – Perturbações geradas Onde rodar o software de detecção
Perturbações geradas pelo VMBR Inerentes – Tempo de execução – Espaço ocupado pelo VMBR Hardware – Diferenças entre dispositivos – Processador não completamente virtualizado Software – Ícone da VM – Nomes dos dispositivos Fácil de esconder Díficil de esconder
Sistemas de defesa (rodando acima do VMBR) Estado do atacante não é visível – Só pode detectar efeitos adversos (ex. timing) VMBR pode manipular a execução – Relógio controlado pelo VMBR – Evitar a execução de serviços de defesa – Desligar a rede – Desabilitar notificação de intrusão
Mais controle, acesso direto aos recursos – Pode detectar estados ou eventos do VMBR VMM segura e/ou hardware seguro Boot de uma mídia segura – Desplugar máquina da energia elétrica Sistemas de defesa (rodando abaixo do VMBR)
Prova de conceito VMware / Linux host Virtual PC / Windows XP host OS atacante é o sistema hospedeiro Imagem do malware de ~100MB (comprimida) ISA não completamente virtualizada – Evitar degradação de desempenho Dispositivos emulados por software – Sistema hospedeiro possui muitos drivers
Prova de Conceito Quatro serviços maliciosos implementados – Phishing web server – Keystroke logger + password parser – File system scanner – Contramedida a sistema de detecção Scripts de instalação and modules do kernel Emulação de ACPI shutdown – Sleep states e botão power
Conclusão Ameaça realista – Quantitativamente mais controle – Ainda assim fácil de implementar o malware – Prova de conceito pode ser detectada – Melhorias de hardware podem tornar VMBR mais efetiva Defesa é possível – Melhor maneira é controlar camadas mais baixas