Ghost in the Virtual Machine
Iván Arce
Core Security Technologies
Histórico da Virtualização
• Time-sharing system (1960)
– Otimizar o uso dos recursos computacionais (caros)
• Computador dedicado e interativo por usuário
• IBM System/370 (1970)
• Deram origem ao conceito de “Máquina Virtual”:
– Monitor de Máquina Virtual (VMM)
• Controle e alocação de recursos
• Gerenciamento de recursos das múltiplas máquinas virtuais
– Sistema operacional convidado (Guest OS)
• Computador virtual usado pelo usuário
Histórico da Virtualização
• Década de 80
– Pouco interesse em máquinas virtuais
• Crescimento de PCs e sistemas UNIX
• Meados da década de 90
– Nova onda de virtualização
• Questões de segurança voltam à tona
• Requisitos para virtualização [Popek e Goldberg, 1974]
– Eficiência
– Controle de recursos
– Equivalência
Requisitos para virtualização
[Popek e Goldberg, 1974]
• Requisito 1: Eficiência
– VMM não pode impor queda de desempenho perceptível
– Maioria das instruções deve ser executada sem mediação do
VMM
• Requisito 2: Controle de recursos
– VMM deve ter controle completo dos recursos virtualizados
• Gerenciamento e alocação de recursos
• Máquina virtual não pode interferir nos recursos de outras
máquinas virtuais ou da VMM
Requisitos para virtualização
[Popek e Goldberg, 1974]
• Requisito 3: Equivalência
– Ambiente virtual provido pelo VMM deve ser idêntico ao real
• Programa rodando na máquina virtual deve ter comportamento
idêntico se estivesse rodando sobre o hardware real
– Exceções:
• Diferenças de tempo de execução
• Indisponibilidade de recurso compartilhado
Requisitos para virtualização
[Popek e Goldberg, 1974]
• Como determinar se uma ISA é virtualizável ou não?
• Classificação das instruções (privilegiadas ou sensíveis)
– De acordo com o efeito causado no estado do sistema
Classificação das Instruções
• Instruções privilegiadas
– Só podem ser executadas em um modo de execução específico
– Geram exceções
• Instruções sensíveis
– Sensíveis de controle
• Alteram a alocação de recursos do sistema
– Sensíveis comportamentais
• Comportamento depende do estado do sistema
Instruções sensíveis devem ser privilegiadas
Análise de Segurança
• Ideia de usar máquinas virtuais para segurança não é nova
– Madnick e Donovan (MIT, 1973)
• Usar máquinas virtuais para enclausurar ameaças de segurança
• Porém, não consideraram a presença de máquinas virtuais
maliciosas
• Isolamento é uma importante propriedade para segurança
– Principal problema são as exceções do 3º requisito de Popek
e Goldberg
• “Canais clandestinos” (covert channels) baseado em tempo
– Solução: “tempo virtual” (Lampson e Lipner, 1975)
Análise de Segurança
• Robin e Cynthia (Usenix 2000)
– Verificaram a possibilidade de se implementar um VMM
seguro usando um processador Intel Pentium
– Identificaram 17 (dentre 250 analisadas) instruções que são
sensíveis, mas não privilegiadas
• Ausência de um modelo de segurança para VMM
– Show de Truman
Análise de Segurança
•
Carpenter et al. (IEEE Security and Privacy 2007)
– Técnicas para detectar a presença de um VMM
•
Exploram instrução sensíveis não-privilegiadas ou de I/O
– Contramedidas a uma fonte maliciosa (o Truman)
•
Autores definem possíveis ataques:
1. Escapar do ambiente virtual e ganhar controle sobre
recursos da máquina real
2. Interferir no comportamento ou recursos de outras
máquinas virtuais
3. Confinar um sistema não-virtualizado em uma máquina
virtual e permanecer não-detectado
Análise de Segurança
• King et al. (IEEE Security and Privacy 2006)
– Malwares usam virtualização para evitar detecção
– Realização do 3º tipo de ataque
• Ormandy (Google, 2007)
– Ferramentas de virtualização populares possuem falhas de
segurança
Conclusão
• Virtualização
– Propriedade de isolamento interessante para segurança
– Problemas
• Não há VMM robusto a falhas e ataques
Download

Apresentação do Marcelo