O documento discute os conceitos de virtualização, máquinas virtuais e seus benefícios. A virtualização oferece uma camada de abstração dos recursos reais de hardware e permite executar múltiplos sistemas operacionais simultaneamente. Isso proporciona recursos como reaproveitamento de recursos, portabilidade e segurança.
2. Virtualização
• A virtualização é uma tecnologia que oferece
uma camada de abstração dos verdadeiros
recursos de uma máquina;
• As principais qualidades da virtualização são:
– o reaproveitamento de recursos;
– a portabilidade;
– a segurança.
3. Com a virtualização podemos
• Executar diferentes sistemas operacionais em
um mesmo hardware simultaneamente.
• Executar um sistema operacional (e suas
aplicações) como um processo de outro.
• Utilizar sistemas operacionais e aplicações
escritas para uma plataforma em outra, além
de outros usos que serão vistos a seguir.
4. Virtualização e Emulação
• Na Virtualização as instruções do sistema
operacional numa maquina virtual a maior
parte e repassada para a maquina real
executar o que garante um desempenho com
apenas uns 10% de perda de desempenho se
estivesse em um maquina real.
5. Virtualização e Emulação
• Na emulação todas as instruções são
executadas via software o que gera uma perda
de desempenho muito grande , nesse caso a
maquina emulada executa com apenas 5% a
10% do desempenho se estivesse em maquina
real.
7. Monitor de Máquinas Virtuais
• O monitor de máquinas virtuais (VMM) é uma
aplicação que implementa uma camada de
virtualização, a qual permite que múltiplos
sistemas operacionais funcionem sobre um
mesmo hardware simultaneamente.
8. Monitor de Máquinas Virtuais
• As principais funções do monitor de máquinas
virtuais são:
– Definir o ambiente de máquinas virtuais.
– Alterar o modo de execução do sistema operacional
convidado de privilegiado para não privilegiado, e
vice-versa.
– Emular as instruções e escalonar o uso da CPU
para as máquinas virtuais.
9. Monitor de Máquinas Virtuais
– Gerenciar acesso aos blocos de memória e disco
destinados ao funcionamento das máquinas
virtuais.
– Intermediar as chamadas de sistema e controlar
acesso a outros dispositivos como CD-ROM, drives
de disquete, dispositivos de rede, dispositivos USB.
10. Monitor de Máquinas Virtuais
• Segundo Popek e Goldberg, um monitor de
máquinas virtuais deve ter três características
[POPEK e GOLDBERG] principais:
– Eficiência;
– Integridade;
– Equivalência.
11. Eficiência
• É extremamente importante que um grande
número de instruções do processador virtual
seja executada diretamente pelo processador
real, sem que haja intervenção do monitor.
• As instruções que não puderem ser tratadas
pelo processador real precisam ser tratadas
pelo monitor.
12. Integridade
• todas as requisições aos recursos de hardware
devem ser alocadas explicitamente pelo
monitor (memória, processamento, etc.)
13. Equivalência
• O monitor deve prover um comportamento de
execução semelhante ao da máquina real para
o qual ele oferece suporte de virtualização,
salvo haja a necessidade de se fazer
alterações na disponibilidade de recursos da
máquina.
14. Tipos de Máquinas Virtuais
• Para a construção de máquinas virtuais,
existem duas abordagens:
Máquinas virtuais clássicas ou de Tipo I.
Máquinas virtuais hospedadas ou de Tipo II.
15. Tipo I
• Nesta abordagem o monitor de máquinas
virtuais é implementado entre o hardware e os
sistemas convidados.
19. Hardware Abstraction Layer - HAL
• Nesta virtualização é utilizado um monitor de
máquinas virtuais que simula um conjunto de
recursos de hardware para os sistemas
convidados.
20. OS Level
• Nessa técnica, a virtualização é obtida
utilizando-se uma chamada de sistema
específica, criando um ambiente idêntico ao
sistema operacional anfitrião, cujo principal
objetivo é o isolamento de processos.
21. Emulação completa
• A execução do sistema virtual é conseguida
usando-se um software emulador, o qual
simula o hardware do sistema para a execução
do sistema convidado.
22. Nível de Aplicação
• Essa virtualização consiste no uso de uma
máquina virtual como um componente-chave
para execução de certas aplicações de uma
forma protegida a outros processos em
execução no sistema operacional.
26. Isolamento
• Com a virtualização, podemos isolar aplicações
de alto risco de aplicações potencialmente
vulneráveis.
• O isolamento eleva a proteção contra
aplicações maliciosas, aumentando a
dificuldade das mesmas acessarem dados, ou
afetar processos que estejam executando em
outras máquinas virtuais.
27. Tolerância à falhas
• A virtualização permite que uma aplicação em
mau funcionamento executando em sua
máquina virtual possa ser reiniciada
rapidamente e de um modo seguro, sem afetar
outras aplicações que estejam executando no
mesmo sistema anfitrião.
28. Honeypots e Honeynets
• Um honeypot é um sistema ou aplicação que é
colocado em uma rede de forma proposital
para que seja comprometido ou “atacado”.
• Um honeypot age como uma ferramenta de
estudos e testes de vulnerabilidades em uma
rede ou aplicações, mas não é considerado
uma ferramenta de segurança. Honeynet é
uma rede composta de honeypots.