Virtualização: Conceitos e Aplicações em
Segurança
Marcos Laureano e Carlos Maziero
Centro Universitário Franciscano – Unifae
Pontı́ficia Universidade Católica do Paraná
Programa de Pós-Graduação em Informática
1 de setembro de 2008
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
1 / 166
Sumário
Introdução
Máquinas virtuais
Virtualização e segurança
Exemplos de Máquinas Virtuais
Perspectivas
Dúvidas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
2 / 166
Introdução
Sumário
Introdução
Máquinas virtuais
Virtualização e segurança
Exemplos de Máquinas Virtuais
Perspectivas
Dúvidas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
3 / 166
Introdução
Origem Máquinas Virtuais
Origem Máquinas Virtuais
Motivação
Década de 60
Tendência dominante nos sistemas naquela época era fornecer a cada
usuário um ambiente mono-usuário completo.
Década de 80
Com a popularização de plataformas de hardware baratas como o PC, a
virtualização perdeu importância.
Década de 90
Surgimento da linguagem Java motiva novas pesquisas com virtualização.
O VMware torna-se uma alternativa de virtualização nos limitados
processadores da época.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
4 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Máquina Real
I
I
Formada por vários componentes fı́sicos que fornecem operações
para o sistema operacional e suas aplicações.
Formado basicamente por três componentes:
I
I
I
Hardware.
Sistema Operacional.
Aplicações.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
5 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Sistema de Computadores
Hardware
Seu papel é executar as operações solicitadas pelas aplicações através do
sistema operacional.
Sistema Operacional
Recebe as solicitações das operações (por meio das chamadas de
sistema) e controla o acesso ao hardware.
Aplicações
Fornece funcionalidades para o usuário.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
6 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Nı́veis de Abstração
Sistemas Convencionais
São caracterizados por nı́veis de abstração crescentes e interfaces bem
definidas entre eles.
Principal objetivo de um Sistema Operacional
Oferecer uma visão abstrata, de alto nı́vel, dos recursos de hardware, que
sejam mais simples de usar e menos dependente das tecnologias
subjacentes.
Em outras palavras
Criar uma interface homogênea para uso.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
7 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Nı́veis de abstração em um sub-sistema de disco
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
8 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Interfaces existentes entre componentes
I
Conjunto de instruções (ISA – Instruction Set Architecture)
I
I
Instruções de usuário (User ISA)
Instruções de sistema (System ISA)
I
Chamadas de sistema (syscalls)
I
Chamadas de bibliotecas (libcalls)
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
9 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
ISA – Instruction Set Architecture
ISA
É a interface básica entre o hardware e o software.
User ISA
Compreende as instruções do processador e demais itens de hardware
acessı́veis aos programas do usuário (modo não-privilegiado).
System ISA
Compreende as instruções do processador e demais itens de hardware,
unicamente acessı́veis ao núcleo do sistema operacional (modo
privilegiado).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
10 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Syscalls
I
I
Conjunto de operações oferecidas pelo núcleo do sistema operacional
aos processos dos usuários.
Permitem um acesso controlado das aplicações:
I
I
I
Dispositivos periféricos;
Memória;
Instruções privilegiadas do processador.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
11 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Libcalls
I
Oferecem um grande número de funções para simplificar a
construção de programas.
I
Chamadas de biblioteca encapsulam chamadas do sistema
operacional (uso mais simples).
Interface própria, denominada Interface de Programação de
Aplicações (API – Application Programming Interface):
I
I
I
I
LibC do UNIX;
GTK+ (Gimp ToolKit);
SDL (Simple DirectMedia Layer).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
12 / 166
Introdução
Arquitetura dos sistemas computacionais
Arquitetura dos sistemas computacionais
Visão conceitual da arquitetura de um sistema computacional
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
13 / 166
Introdução
Compatibilidade entre interfaces de sistema
Compatibilidade entre interfaces de sistema
Compatibilidade
Programas e Bibliotecas
Para garantir a compatibilidade em uma determinada plataforma, é
necessário que tenham sido compilados para ela, respeitando User ISA e
Syscalls.
User ISA + syscalls
É denominada Interface Binária de Aplicação (ABI – Application Binary
Interface).
Sistema Operacional
Só poderá executar sobre uma plataforma de hardware se tiver sido
construı́do e compilado de forma a respeitar sua interface ISA
(User/System ISA)
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
14 / 166
Introdução
Compatibilidade entre interfaces de sistema
Compatibilidade entre interfaces de sistema
Interfaces de sistema ISA e ABI
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
15 / 166
Introdução
Compatibilidade entre interfaces de sistema
Compatibilidade entre interfaces de sistema
Flexibilidade das interfaces
ISA e ABI
Interfaces normalmente fixas ou pouco flexı́veis.
Diversos fabricantes
Incompatibilidade entre diversos hardwares, sistemas operacionais e
aplicações.
Consequência
Um sistema operacional somente funciona para o hardware projetado
(ISA). Uma biblioteca só funciona para a ABI para qual foi projetada. As
aplicações devem respeitar o conjunto de ABIs/APIs pré-definidas.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
16 / 166
Introdução
Compatibilidade entre interfaces de sistema
Compatibilidade entre interfaces de sistema
Problemas de compatibilidade entre interfaces
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
17 / 166
Introdução
Compatibilidade entre interfaces de sistema
Compatibilidade entre interfaces de sistema
Baixa flexibilidade → Problemas!
Baixa portabilidade
A rigidez das interfaces de sistema atuais dificulta a conectividade e a
mobilidade.
Barreiras de inovação
Dificuldade de interação. Necessidade de manter compatibilidade com o
legado (evolução prejudicada).
Otimizações inter-componentes
A rigidez das interfaces não permitem interação entre componentes
diferentes (isolamento).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
18 / 166
Introdução
Compatibilidade entre interfaces de sistema
Compatibilidade entre interfaces de sistema
Compatibilidade entre sistemas
Virtualização
Camada, construı́da em software, que possibilita que serviços projetados
para uma interface possam executar sob outra.
Acomplamento entre interfaces distintas
Um programa desenvolvido para a plataforma A possa executar sobre
uma plataforma distinta B.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
19 / 166
Introdução
Compatibilidade entre interfaces de sistema
Compatibilidade entre interfaces de sistema
Acoplamento entre interfaces distintas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
20 / 166
Máquinas virtuais
Sumário
Introdução
Máquinas virtuais
Virtualização e segurança
Exemplos de Máquinas Virtuais
Perspectivas
Dúvidas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
21 / 166
Máquinas virtuais
Introdução
Introdução
Conceitos
Camada de virtualização
Utilizando os serviços de uma interface de sistema, é possı́vel construir
outra interface distinta.
Esta camada é denominada hipervisor ou monitor de máquina virtual.
Máquina Virtual
É a nova interface de sistema, vista através dessa camada de
virtualização.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
22 / 166
Máquinas virtuais
Introdução
Introdução
Uma máquina virtual
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
23 / 166
Máquinas virtuais
Introdução
Introdução
Componentes de um ambiente de máquina virtual
Sistema real, nativo ou hospedeiro (host system)
Contém os recursos reais de hardware e software do sistema.
Sistema virtual ou sistema convidado (guest system)
Que executa sobre o sistema virtualizado.
Vários sistemas virtuais podem coexistir, executando simultaneamente
sobre o mesmo sistema real.
Camada de virtualização, hipervisor, ou monitor (VMM –
Virtual Machine Monitor)
Constrói as interfaces virtuais a partir da interface real.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
24 / 166
Máquinas virtuais
Introdução
Introdução
Definição de máquina virtual
Originalmente
Uma máquina virtual era definida como uma cópia eficiente, isolada e
protegida de uma máquina real.
Definição nos 1960-1970
Uma abstração de software que gerencia um sistema fı́sico (máquina
real).
Com o passar do anos
O termo “máquina virtual” evoluiu e englobou um grande número de
abstrações, como por exemplo a Java Virtual Machine (JVM), que não
virtualiza um sistema real.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
25 / 166
Máquinas virtuais
Introdução
Introdução
Complexidade
Arquitetura do hospedeiro diferente do convidado
É necessário usar as instruções da máquina real para simular as instruções
da máquina virtual.
Recursos de hardware virtuais
É necessário mapear sobre os recursos existentes na máquina real.
Chamadas de Sistema
Devem ser mapeadas em chamadas equivalentes.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
26 / 166
Máquinas virtuais
Introdução
Introdução
Possibilidades de virtualização
Virtualização completa
Um sistema operacional convidado e suas
aplicações, desenvolvidas para uma plataforma de
hardware A, são executadas sobre uma plataforma
de hardware distinta B.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
27 / 166
Máquinas virtuais
Introdução
Introdução
Possibilidades de virtualização
Emulação do sistema operacional
As aplicações de um sistema operacional X são
executadas sobre outro sistema operacional Y , na
mesma plataforma de hardware.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
28 / 166
Máquinas virtuais
Introdução
Introdução
Possibilidades de virtualização
Tradução dinâmica
As instruções de máquina das aplicações são
traduzidas durante a execução em outras instruções
mais eficientes para a mesma plataforma.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
29 / 166
Máquinas virtuais
Introdução
Introdução
Possibilidades de virtualização
Replicação de hardware
São criadas várias instâncias virtuais de um mesmo
hardware real, cada uma executando seu próprio
sistema operacional convidado e suas respectivas
aplicações.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
30 / 166
Máquinas virtuais
Introdução
Introdução
Possibilidades de virtualização
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
31 / 166
Máquinas virtuais
Abstração versus virtualização
Abstração versus virtualização
Abstração de recursos
Consiste em fornecer uma interface de acesso homogênea e simplificada
ao recursos do sistema.
Virtualização
Consiste em criar novas interfaces a partir das interfaces existentes.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
32 / 166
Máquinas virtuais
Abstração versus virtualização
Virtualização versus abstração de recursos
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
33 / 166
Máquinas virtuais
Abstração versus virtualização
Abstração versus virtualização
Abstração versus virtualização de um disco rı́gido
Detalhes de baixo nı́vel
Na virtualização, os detalhes de baixo nı́vel da plataforma real não são
necessariamente ocultos, como ocorre na abstração de recursos.
Abstração
Provê às aplicações o conceito de “arquivo”, sobre o qual estas podem
executar operações simples como read ou write.
Virtualização
Fornece para a camada superior apenas um disco virtual, construı́do a
partir de um arquivo do sistema operacional real.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
34 / 166
Máquinas virtuais
Abstração versus virtualização
Abstração versus virtualização
Abstração versus virtualização de um disco rı́gido
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
35 / 166
Máquinas virtuais
Propriedades dos hipervisores
Propriedades dos hipervisores
Requisitos básicos de um hipervisor
I
Prover um ambiente de execução aos programas essencialmente
idêntico ao da máquina real;
I
Programas executando sobre uma máquina virtual devem apresentar,
no pior caso, leves degradações de desempenho;
I
Deve ter controle completo sobre os recursos do sistema real (o
sistema hospedeiro).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
36 / 166
Máquinas virtuais
Propriedades dos hipervisores
Propriedades dos hipervisores
Propriedades a serem satisfeitas por um hipervisor ideal
Equivalência
Um hipervisor provê um ambiente de execução quase idêntico ao da
máquina real original.
Controle de recursos
Nenhum programa executando na máquina virtual deve possuir acesso a
recursos que não tenham sido explicitamente alocados a ele pelo
hipervisor.
Eficiência
Grande parte das instruções do processador virtual deve ser executada
diretamente pelo processador da máquina real, sem intervenção do
hipervisor. Outras instruções devem ser interpretadas pelo hipervisor.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
37 / 166
Máquinas virtuais
Propriedades dos hipervisores
Propriedades dos hipervisores
Outras propriedades importantes
Isolamento
Garante que um software em execução em uma máquina virtual não
possa ver, influenciar ou modificar outro software em execução no
hipervisor ou em outra máquina virtual.
Gerenciabilidade
Administração de diversas instâncias de máquinas virtuais sobre um
mesmo supervisor é simplificada e centralizada.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
38 / 166
Máquinas virtuais
Propriedades dos hipervisores
Propriedades dos hipervisores
Outras propriedades importantes
Inspeção
O hipervisor tem acesso e controle sobre todas as informações do estado
interno da máquina virtual, como registradores do processador, conteúdo
de memória, eventos etc.
Encapsulamento
A inspeção possibilita salvar checkpoints de uma máquina virtual para
realizar rollback, análises post-mortem ou migração de máquinas virtuais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
39 / 166
Máquinas virtuais
Propriedades dos hipervisores
Propriedades dos hipervisores
Outras propriedades importantes
Recursividade
Possibilidade de executar um hipervisor
dentro de uma máquina virtual, produzindo
um novo nı́vel de máquinas virtuais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
40 / 166
Máquinas virtuais
Suporte de Hardware
Suporte de Hardware
Teorema de Popek e Goldberg
Para qualquer computador convencional de terceira geração,
um hipervisor pode ser construı́do se o conjunto de instruções
sensı́veis daquele computador for um sub-conjunto de seu
conjunto de instruções privilegiadas.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
41 / 166
Máquinas virtuais
Suporte de Hardware
Suporte de Hardware
Conceitos (entendimento do teorema)
Computador convencional de terceira geração
Qualquer sistema de computação convencional seguindo a arquitetura de
Von Neumann, que suporte memória virtual e dois modos de operação:
modo usuário e modo privilegiado.
Instruções sensı́veis
São aquelas que podem consultar ou alterar o status do processador, ou
seja, os registradores que armazenam o status atual da execução na
máquina real.
Instruções privilegiadas
Acessı́veis somente por meio de códigos executando em nı́vel privilegiado.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
42 / 166
Máquinas virtuais
Suporte de Hardware
Suporte de Hardware
Construção de hipervisores eficientes
Mainframes
Dispõe de uma funcionalidade chamada execução direta, que permite a
uma máquina virtual acessar nativamente o hardware para execução de
instruções.
Micro-processadores de mercado
Suporte parcial. Processadores Intel Pentium IV (e anteriores) possui 17
instruções sensı́veis que podem ser executadas em modo usuário sem
gerar exceções (violação do teorema).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
43 / 166
Máquinas virtuais
Suporte de Hardware
Suporte de Hardware
Processador Pentium IV (e anteriores)
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
44 / 166
Máquinas virtuais
Suporte de Hardware
Suporte de Hardware
Novos Processadores
Intel
Tecnologia IVT (Intel Virtualization Technology).
AMD
AMD-V (AMD Virtualization).
Dois modos possı́veis de operação do processador
Modos root e non-root.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
45 / 166
Máquinas virtuais
Suporte de Hardware
Suporte de Hardware
Modos de operação
root
Equivale ao funcionamento de um processador convencional, e se destina
à execução de um hipervisor.
non-root
Se destina à execução de máquinas virtuais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
46 / 166
Máquinas virtuais
Suporte de Hardware
Suporte de Hardware
Processador IVT
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
47 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
Classificação de Máquinas Virtuais
I
Tipo de suporte (processo ou sistemas convidados)
I
Similaridade entre interfaces (ISA);
I
Tipo de virtualização;
I
De acordo com uso;
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
48 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
Duas grandes famı́lias
Máquinas virtuais de aplicação (Process Virtual Machines)
Ambientes de máquinas virtuais destinados a suportar apenas um
processo ou aplicação convidada especı́fica.
Máquinas virtuais de sistema (System Virtual Machines)
Ambientes de máquinas virtuais construı́dos para suportar sistemas
operacionais convidados completos e suas aplicações.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
49 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
Máquinas virtuais de aplicação e de sistema
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
50 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
Similaridade entre interfaces (ISA)
Interfaces equivalentes
A interface virtual oferecida ao ambiente convidado reproduz a interface
de hardware do sistema real.
Interfaces distintas
A interface virtual não tem relação com a interface de hardware do
sistema real, ou seja, implementa um conjunto de instruções distinto, a
ser interpretado pelo hipervisor.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
51 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
De acordo com o tipo de virtualização
Virtualização do
hardware
Exporta o sistema fı́sico
como hardware abstrato
(semelhante ao sistema
original).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
52 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
De acordo com o tipo de virtualização
Virtualização do sistema
operacional
Exporta um sistema operacional
como abstração de um sistema
especı́fico.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
53 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
De acordo com o tipo de virtualização
Virtualização de linguagens de
programação
Cria uma aplicação no topo do
sistema operacional (computadores
fictı́cios projetados para uma
finalidade especı́fica).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
54 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
Em acordo com o uso
Abstração da ISA
Emulação completa da ISA. Instruções do sistema convidado traduzidas
para instruções do sistema nativo.
Hardware Abstraction Layer (HAL)
Simula uma arquitetura completa para o sistema convidado.
OS Level (sistema operacional)
Obtido utilizando uma chamada de sistema (system call) especı́fica.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
55 / 166
Máquinas virtuais
Tipos de Máquinas Virtuais
Tipos de Máquinas Virtuais
Em acordo com o uso
Nı́vel de aplicação ou virtualização de linguagens de
programação
Obtida por meio da abstração de uma camada de execução.
Independência de hardware.
User level library interface (biblioteca de interface para usuário)
Abstração do topo do sistema operacional, para que as aplicações
possam executar em outra plataforma.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
56 / 166
Máquinas virtuais
Máquinas Virtuais de Aplicação
Máquinas Virtuais de Aplicação
Funcionamento
Process Virtual Machine
Suporta a execução de um processo ou aplicação individual.
hipervisor + aplicação
Criado sobre demanda e visto como um único processo.
Portanto
Submetido às mesmas condições e restrições que os demais processos
nativos.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
57 / 166
Máquinas virtuais
Máquinas Virtuais de Aplicação
Máquinas Virtuais de Aplicação
Tipos
Sistemas operacionais multi-tarefas
Suportam vários processos simultâneos. Cada processo recebe um
processador virtual (simulado através de fatias de tempo do processador
real), uma memória virtual (através do espaço de endereços mapeado
para aquele processo) e recursos fı́sicos (acessı́veis através de chamadas
de sistema).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
58 / 166
Máquinas virtuais
Máquinas Virtuais de Aplicação
Máquinas Virtuais de Aplicação
Tipos
Tradutores dinâmicos
Analisa e otimiza um código executável. Não muda o conjunto de
instruções da máquina real usado pelo código, apenas reorganiza as
instruções de forma a acelerar sua execução.
Depuradores de memória
As instruções do programa que manipulam acessos à memória são
executadas de forma controlada, a fim de encontrar possı́veis erros.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
59 / 166
Máquinas virtuais
Máquinas Virtuais de Aplicação
Máquinas Virtuais de Aplicação
Popularidade
Interface binária de aplicação (ABI)
Requerida pela aplicação é diferente da oferecida pela máquina real.
Diferenças
Chamadas do sistema operacional ou as instruções de máquina
disponı́veis à aplicação (user ISA).
Tradução dinâmica
Durante a execução das ações requeridas pela aplicação.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
60 / 166
Máquinas virtuais
Máquinas Virtuais de Aplicação
Máquinas Virtuais de Aplicação
Diferenças nas chamadas de sistema
Hipervisor
Precisa apenas mapear as chamadas
de sistema usadas pela aplicação
sobre as chamadas oferecidas pelo
sistema operacional da máquina real.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
61 / 166
Máquinas virtuais
Máquinas Virtuais de Aplicação
Máquinas Virtuais de Aplicação
Hardware abstrato
Interface ISA
Utilizada pela aplicação não corresponde a nenhum hardware existente.
Máquina abstrata
Hardware simplificado para execução de aplicações (independência de
hardware).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
62 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Primeira abordagem para construção de hipervisores
Máquina virtual
Suporta um ou mais sistemas operacionais convidados, com suas
respectivas aplicações, que executam de forma isolada e independente.
Sistema convidado
Tem a ilusão de executar sozinho sobre uma plataforma de hardware
própria.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
63 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Fortemente isolados
Interações
Geralmente através dos mecanismos de rede, como se estivessem em
máquinas fisicamente separadas.
Compartilhamento de recursos
Provido pelo hipervisor. Exemplo: diretórios compartilhados no sistema
de arquivos real, que podem ser acessados pelas máquinas virtuais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
64 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
O hipervisor
ISA virtual
Fornecido aos sistemas operacionais convidados.
Recursos virtualizados
Cada sistema operacional convidado tem um conjunto de recursos
virtuais próprio, construı́do a partir dos recursos fı́sicos existentes.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
65 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Tipos de máquinas virtuais de sistema
Hipervisores nativos (ou de tipo I)
O hipervisor executa diretamente sobre o hardware
da máquina real, sem um sistema operacional
subjacente.
Multiplexar os recursos de hardware (memória,
discos, interfaces de rede, etc) em recursos
virtualizados.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
66 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Tipos de máquinas virtuais de sistema
Hipervisores convidados (ou de tipo II)
O hipervisor executa como um processo normal
sobre um sistema operacional nativo subjacente.
Utiliza os recursos oferecidos pelo sistema
operacional nativo para oferecer recursos virtuais
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
67 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Arquiteturas de máquinas virtuais de sistema
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
68 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Vantagens
Hipervisores convidados
São mais flexı́veis, pois podem ser facilmente instalados/removidos em
máquinas com sistemas operacionais previamente instalados.
Hipervisor nativo
Tem melhor desempenho que um hipervisor convidado, pois acessa
diretamente o hardware real.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
69 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Nı́vel de virtualização oferecido pelo hipervisor
Virtualização de recursos
A interface ISA de usuário é mantida, apenas as
instruções privilegiadas e os recursos (discos, etc)
são virtualizados.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
70 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Nı́vel de virtualização oferecido pelo hipervisor
Virtualização completa
Toda a interface do hardware é virtualizada,
incluindo todas as instruções do processador e os
dispositivos de hardware.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
71 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Nı́veis de virtualização: virtualização de recursos e virtualização completa
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
72 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Categoria especial de hipervisor nativo
hipervisores embutidos no
hardware (codesigned
hypervisors)
Virtualização completa, onde o
hipervisor é visto como parte
integrante do hardware da máquina
real, e implementa a interface de
sistema (ISA).
As instruções do processador real
somente está acessı́vel ao hipervisor.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
73 / 166
Máquinas virtuais
Máquinas Virtuais de Sistema
Máquinas Virtuais de Sistema
Classificação de máquinas virtuais de sistema
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
74 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
I
Virtualização total (full virtualization); normalmente associada à
Tradução dinâmica (dynamic translation);
I
Paravirtualização (paravirtualization);
I
Técnicas complementares para melhoria de desempenho.
I
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
75 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Virtualização total
I
Uma estrutura completa de hardware é virtualizada;
I
O sistema convidado não precisa sofrer qualquer tipo de alteração;
I
Monitor mais complexo;
I
Compatibilidade garantida;
I
Custo de virtualização maior.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
76 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Tradução dinâmica ou recompilação dinâmica
dynamic translation ou dynamic recompilation
Hipervisor analisa, reorganiza e traduz as seqüências de instruções
emitidas pelo sistema convidado em novas seqüências de instruções.
Objetivos
I
Adaptar as instruções geradas pelo sistema convidado à interface
ISA do sistema real;
I
Detectar e tratar instruções sensı́veis não-privilegiadas (que não
geram interrupções);
I
Analisar, reorganizar e otimizar as seqüências de instruções geradas
pelo sistema convidado (desempenho).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
77 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Utilização em vários hipervisores
Máquina virtual Java
Recebe o nome de JIT – Just-in-Time Bytecode Compiler
Processadores Intel/AMD 32 bits
Sem suporte adequado à virtualização. O código convidado a ser
executado é analisado em busca de instruções sensı́veis, que são
substituı́das por chamadas a rotinas apropriadas dentro do hipervisor.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
78 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Os passos da recompilação dinâmica
1. Desmontagem (disassembling);
2. Geração de código intermediário (desnecessário se as instruções do
convidado forem as mesmas do sistema real);
3. Otimização;
4. Codificação;
5. Caching (evitar tradução de códigos repetidos);
6. Execução.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
79 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Paravirtualização
I
Denali (2002) e Xen (2003);
I
Modificações na interface de sistema do hardware virtual (system
ISA);
I
O sistema convidado sofre alterações (adaptado ao hipervisor);
I
Menor portabilidade;
I
Maior performance.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
80 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Relação entre a virtualização total e a paravirtualização
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
81 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Compreendendo as diferenças
Virtualização total
Hipervisor reserva um espaço de memória separado para cada sistema
convidado; no entanto, todos os sistemas convidados “vêem” suas
respectivas áreas de memória iniciando no endereço 0000H .
Paravirtualização
Hipervisor informa ao sistema convidado qual o espaço de memória
disponı́vel. O acesso a memória fornecida ocorre sem a interferência do
hipervisor
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
82 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Paravirtualização:hipervisores nativos visão da memória por um sistema convidado
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
83 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Melhoria de desempenho
Hipervisores nativos e convidados
Na prática raramente são usados em sua forma conceitual.
Desempenho
Otimizações são inseridas para melhorar o desempenho das aplicações
nos sistemas convidados.
Pontos cruciais
São as operações de entrada/saı́da e as principais otimizações dizem
respeito as estas operações.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
84 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Otimizações
Hipervisores nativos
O sistema convidado acessa diretamente o
hardware
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
85 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Otimizações em hipervisores convidados
1ª abordagem
O sistema convidado acessa diretamente o
sistema nativo.
2ª abordagem
O sistema convidado acessa diretamente o
hardware (device driver).
3ª abordagem
O hipervisor acessa diretamente o hardware
(device driver).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
86 / 166
Máquinas virtuais
Estratégias de Virtualização
As estratégias de virtualização
Otimizações em sistemas de máquinas virtuais
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
87 / 166
Máquinas virtuais
Estratégias de Virtualização
Desempenho de hipervisores nativos e convidados
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
88 / 166
Virtualização e segurança
Sumário
Introdução
Máquinas virtuais
Virtualização e segurança
Exemplos de Máquinas Virtuais
Perspectivas
Dúvidas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
89 / 166
Virtualização e segurança
Virtualização e segurança
Utilização de Máquinas Virtuais
Consolidação de Servidores
Redução de custos em hardware, software e gerência do parque
tecnológico.
Segurança
Vários trabalhos de pesquisa e desenvolvimento comprovaram a eficácia
da utilização de máquinas virtuais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
90 / 166
Virtualização e segurança
Virtualização e segurança
Critérios básicos de segurança
Confidencialidade
Informação somente está visı́vel a sujeitos (usuários e/ou processos)
explicitamente autorizados.
Disponibilidade
Informação deve estar prontamente disponı́vel sempre que for necessária.
Integridade
Informação somente pode ser modificada por sujeitos explicitamente
autorizados e de formas claramente definidas.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
91 / 166
Virtualização e segurança
Virtualização e segurança
Outros critérios de segurança
Autenticidade
Garante que a informação ou o usuário da mesma é autêntico, ou seja,
garante que a entidade envolvida é quem afirma ser.
Não-repúdio
Não é possı́vel negar a existência ou autoria de uma operação que criou,
modificou ou destruiu uma informação.
Auditoria
Implica no registro das ações realizadas no sistema, identificando os
sujeitos e recursos envolvidos, as operações realizadas, seus horários,
locais e outros dados relevantes.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
92 / 166
Virtualização e segurança
Aplicações da virtualização em segurança
Aplicações da virtualização em segurança
Propriedades de virtualização aplicadas em segurança
I
Isolamento
I
Controle de Recursos
I
Inspeção
I
Encapsulamento
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
93 / 166
Virtualização e segurança
Aplicações da virtualização em segurança
Aplicações da virtualização em segurança
Isolamento
Confidencialidade
Ao manter os ambientes virtuais isolados, o hipervisor provê a
confidencialidade de dados entre os sistemas convidados.
Integridade
Aplicações convidadas não alteram dados de outras aplicações.
Disponibilidade
Permite a contenção de erros de software no âmbito da máquina virtual.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
94 / 166
Virtualização e segurança
Aplicações da virtualização em segurança
Aplicações da virtualização em segurança
Controle de Recursos
Integridade
Possibilidade de implementar mecanismos para verificar a consistência de
acessos e de seus resultados.
Auditoria
Acompanhamento e registro das atividades do sistema convidado.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
95 / 166
Virtualização e segurança
Aplicações da virtualização em segurança
Aplicações da virtualização em segurança
Inspeção
Integridade
A visão privilegiada sobre o estado interno do sistema convidado permite
extrair informações, , permitindo implementar externamente mecanismos
como antivı́rus e detectores de intrusão.
Balões de ensaio
Inspeção aliada ao isolamento torna as máquinas virtuais um ambiente
ideal para estudo de aplicações maliciosas.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
96 / 166
Virtualização e segurança
Aplicações da virtualização em segurança
Aplicações da virtualização em segurança
Encapsulamento
Integridade e Disponibilidade
A possibilidade de salvar/restaurar o estado do sistema convidado torna
viável a implementação de mecanismos de rollback.
Disponibilidade
Migração on the fly de máquinas virtuais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
97 / 166
Virtualização e segurança
Aplicações da virtualização em segurança
Aplicação de Máquinas Virtuais em Segurança
I
Confinamento de aplicações;
I
Detecção de intrusão;
I
Análise de programas maliciosos;
I
I
Honeypots e honeynets;
Rootkits;
I
Consolidação de servidores, planos de contingência e migração;
I
Tolerância a faltas.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
98 / 166
Virtualização e segurança
Confinamento de Aplicações
Confinamento de Aplicações
Em um sistema operacional
Cada processo (serviço) tem acesso a um conjunto de recursos para
funcionar.
Comprometimento da segurança
Por serviços mal configurados, erros nas regras de controle de acesso,
vulnerabilidades no serviço ou no sistema operacional.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
99 / 166
Virtualização e segurança
Confinamento de Aplicações
Confinamento de Aplicações
Alternativas
Ferramentas tradicionais de segurança
Trabalho de configuração significativo. Essas ferramentas também são
processos, consumindo recursos e sendo passı́veis de falhas ou subversão
Máquina isolada (dedicada)
Solução cara.
Máquina virtual
Isolamento da aplicação sensı́vel do restante do sistema hospedeiro.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
100 / 166
Virtualização e segurança
Confinamento de Aplicações
Confinamento de Aplicações
Isolamento
Hipervisor convencional
Pode ser usado para confinar uma aplicação.
Servidores virtuais
Técnicas simplificadas e com baixo custo computacional.
Domı́nio virtual
Recebe uma parcela dos recursos do sistema.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
101 / 166
Virtualização e segurança
Confinamento de Aplicações
Confinamento de Aplicações
Servidores virtuais
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
102 / 166
Virtualização e segurança
Confinamento de Aplicações
Confinamento de Aplicações
Implementações disponı́veis
chroot
Técnica mais antiga.
Jails
Alternativa no sistema FreeBSD.
Zones
Alternativa no sistema Solaris.
Ambiente Linux
Sistemas Virtuozzo/OpenVZ e Vservers/FreeVPS.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
103 / 166
Virtualização e segurança
Detecção de intrusão
Detecção de intrusão
IDS – Intrusion Detection Systems
Objetivo
Monitorar uma rede ou sistema computacional, buscando detectar
ataques ou atividades maliciosas.
IDSs de máquina (HIDS – Host-based IDS)
Monitoram um computador para identificar atividades maliciosas locais.
IDSs de rede (NIDS – Network-based IDS)
Monitoram o tráfego de uma rede, para identificar ataques aos
computadores a ela conectados.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
104 / 166
Virtualização e segurança
Detecção de intrusão
Detecção de intrusão
Limitações
Sistemas NIDS
I
Eficácia diminui na medida em que o tráfego da rede aumenta.
I
Protocolos de rede cifrados torna o conteúdo dos pacotes opaco.
Sistemas HIDS
É um processo local, que pode ser desativado ou subvertido por um
ataque bem-sucedido.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
105 / 166
Virtualização e segurança
Detecção de intrusão
Detecção de intrusão
Máquinas virtuais protegendo sistemas HIDS
Propriedade de inspeção
Hipervisor pode extrair informações de um sistema convidado e
encaminhá-las para análise por um detector de intrusão executando no
sistema nativo, ou em outra máquina virtual.
Propriedade de isolamento
Assegura a integridade das informações coletadas e do próprio detector
de intrusão.
Propriedade de controle de recursos
Permite ao hipervisor intervir no sistema convidado, para interromper
atividades consideradas suspeitas pelo detector de intrusão.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
106 / 166
Virtualização e segurança
Detecção de intrusão
Detecção de intrusão
Possibilidades com máquinas virtuais
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
107 / 166
Virtualização e segurança
Detecção de intrusão
Detecção de intrusão
Projetos
ReVirt
I
Uma camada entre o hipervisor e o sistema hospedeiro recebe as
mensagens de syslog do convidado e registro no hospedeiro.
I
Realiza checkpoints regulares do sistema convidado.
VMI IDS – Virtual Machine Introspection Intrusion Detection
System
I
Hipervisor nativo, executando diretamente sobre o hardware.
I
IDS executa em uma das máquinas virtuais e observa dados obtidos
das demais máquinas virtuais.
I
Somente o estado global da máquina virtual é analisado (não
considera processos isolados).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
108 / 166
Virtualização e segurança
Detecção de intrusão
Detecção de intrusão
Projetos
VMIDS – Virtual Machine Intrusion Detection System
I
Hipervisor convidado modificado, que extrai informações do sistema
convidado e as submete a um detector de intrusão executando no
sistema hospedeiro.
I
Análise e bloqueio de seqüências de chamadas de sistema.
I
Cada processo convidado pode ser analisado separadamente.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
109 / 166
Virtualização e segurança
Análise de programas maliciosos
Análise de programas maliciosos
Dois tipos de programas prejudiciais
Intencionais
Programas escritos para se infiltrar em um sistema (sem conhecimento de
seus usuários).
Não-intencionais
Programas normais contendo erros de programação ou de configuração
que permitam a manipulação não-autorizada das informações de um
sistema.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
110 / 166
Virtualização e segurança
Análise de programas maliciosos
Análise de programas maliciosos
Classificação dos Programas Prejudiciais
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
111 / 166
Virtualização e segurança
Análise de programas maliciosos
Análise de programas maliciosos
Classificação dos Programas Prejudiciais
Vı́rus
Habilidade de se auto-replicar e infectar partes do sistema operacional ou
dos programas de aplicação
Worm
Capaz de propagar a si próprio em uma rede.
Cavalo de Tróia
Realiza ações escondidas visando roubar informações ou provocar danos.
Rootkit
Ocultar a presença de um invasor.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
112 / 166
Virtualização e segurança
Análise de programas maliciosos
Análise de programas maliciosos
Objetivos
Estática
I
Observação do conteúdo (código binário).
I
Cada vez mais difı́cil de realizar, devido ao emprego de técnicas de
dissimulação e cifragem.
Dinâmica
Observação do comportamento.
I
Objetivos;
I
Métodos de propagação;
I
Evidências que possam indicar sua presença;
I
Formas de detecção e remoção.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
113 / 166
Virtualização e segurança
Análise de programas maliciosos
Análise de programas maliciosos
Máquinas virtuais para análise dinâmica
I
Não é necessário dedicar uma máquina real “limpa” para cada
análise;
I
Salvar e restaurar estados da máquina virtual, permitindo desfazer
os efeitos de uma intrusão;
I
Comparação entre os estados antes de depois da intrusão permite
compreender melhor seus efeitos no sistema;
A verificação de informações de baixo nı́vel através da capacidade de
inspeção do hipervisor;
I
I
A tradução dinâmica de instruções pode ser usada para instrumentar
o fluxo de instruções executado pelo malware.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
114 / 166
Virtualização e segurança
Análise de programas maliciosos
Análise de programas maliciosos
Ferramentas e dificuldades
Anubis, CWSandbox e Joebox
Análise dinâmica automatizada de programas suspeitos.
Dificuldades
I
Erros de projeto e/ou implementação nos hipervisores;
I
Virtualização de plataformas (Intel x86) é uma tarefa complexa;
I
Possibilidade de detectar o ambiente virtual.
Vault
Verificação da integridade de um sistema por troca de mensagens
(malwares convencionais).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
115 / 166
Virtualização e segurança
Honeypots e honeynets
Honeypots e honeynets
Honeypots
Armadilha
Servem para atrair e estudar o tráfego de rede malicioso.
Baixa interatividade
Interação com emulação de serviços de redes.
Alta interatividade
Expõem sistemas e serviços reais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
116 / 166
Virtualização e segurança
Honeypots e honeynets
Honeypots e honeynets
Honeynets
Coleção de honeypots
Alta interatividade com diferentes sistemas operacionais, configurações e
serviços de rede (custo implantação e operação).
Honeynet virtual
É simplesmente uma honeynet construı́da com máquinas virtuais ao invés
de computadores reais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
117 / 166
Virtualização e segurança
Honeypots e honeynets
Honeypots e honeynets
Honeynet virtual
Totalmente virtual
Todos os computadores envolvidos são máquinas virtuais.
Hı́brida
Composta por honeypots virtuais e máquinas reais para as funções de
firewall, detecção de intrusão e logging.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
118 / 166
Virtualização e segurança
Rootkits
Rootkits
Complexidade
Primeiros rootkits
Consistiam em substituir alguns comandos do sistema por versões com a
mesma funcionalidade (ocultar atividades).
Posteriormente
Rootkits mais elaborados que substituem bibliotecas do sistema com a
mesma finalidade.
VMBR – VM-based rootkits
Avanços no suporte de hardware à virtualização possibilitaram o
desenvolvimento de rootkits baseado em máquinas virtuais.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
119 / 166
Virtualização e segurança
Rootkits
Rootkits
VMBR – VM-based rootkits
Simplicidade conceitual
Ao ser instalado, ele se torna
um hipervisor, virtualizando
todo o hardware da máquina
e transformando o sistema
operacional invadido em um
sistema convidado
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
120 / 166
Virtualização e segurança
Rootkits
Rootkits
Mais conhecidos
Subvirt
Uma prova de conceito.
Vitriol
Usa a tecnologia VT-x dos processadores Intel.
BluePill
Usa a tecnologia equivalente SVM, da AMD.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
121 / 166
Virtualização e segurança
Rootkits
Rootkits
Funcionamento
Semelhante a um hipervisor nativo
Modificam a seqüência de inicialização da máquina afetada, carregando
primeiro o seu código e posteriormente o sistema operacional original, em
um ambiente convidado.
VMBR torna-se incontornável
Ele pode interceptar todos os acessos ao hardware e inspecionar todo o
estado interno do sistema operacional.
Teoricamente indetectável
Vários pesquisadores afirmam ser possı́vel detectar anomalias em um
sistema virtualizado.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
122 / 166
Virtualização e segurança
Consolidação de servidores, planos de contingência e migração
Consolidação de servidores
Conceito
Transferir serviços em máquinas fı́sicas para máquinas virtuais, para
diminuir o número de equipamentos da organização.
Recursos fı́sicos
Podem ser dinamicamente alocados aos sistemas operacionais de acordo
com suas necessidades, proporcionando balanceamento de carga dinâmico
e um melhor controle de uso dos recursos dos servidores .
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
123 / 166
Virtualização e segurança
Consolidação de servidores, planos de contingência e migração
Consolidação de servidores
Vantagens
I
Aumentar a produtividade da infra-estrutura;
I
Simplificar a gerência do ambiente;
I
Aumentar a segurança;
I
Diminuir o consumo de energia;
I
Economizar recursos humanos, fı́sicos e financeiros.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
124 / 166
Virtualização e segurança
Consolidação de servidores, planos de contingência e migração
Planos de contigência
Visa assegurar
A disponibilidade de sistemas crı́ticos e facilitar a continuidade das
operações durante uma crise.
Máquinas virtuais
Podem ser salvas na forma de arquivos, checkpoints dos servidores
crı́ticos podem ser salvos em equipamentos distintos.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
125 / 166
Virtualização e segurança
Consolidação de servidores, planos de contingência e migração
Migração
Stop-and-copy
Consiste em suspender a máquina virtual, transferir o conteúdo de sua
memória para o hipervisor de destino e retomar a execução em seguida.
Demand-migration
I
A máquina virtual é suspensa apenas durante a cópia das estruturas
de memória do núcleo para o hipervisor de destino.
I
A execução da máquina virtual é retomada e o restante das páginas
de memória da máquina virtual é transferido sob demanda.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
126 / 166
Virtualização e segurança
Consolidação de servidores, planos de contingência e migração
Migração
Pre-copy
I
Consiste basicamente em copiar para o hipervisor de destino todas
as páginas de memória da máquina virtual enquanto esta executa.
I
A máquina virtual é suspensa e as páginas modificadas depois da
cópia inicial são novamente copiadas no destino.
I
A máquina pode retomar sua execução no destino.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
127 / 166
Virtualização e segurança
Tolerância a faltas
Tolerância a faltas
Isolamento
Pode ser usado para restringir a propagação de erros de software nos
sistemas.
Drivers construı́dos por terceiros
Principal causa de falhas de um sistema operacional.
Projeto Isolation Kernel
A execução de drivers é realizada no sistema convidado (núcleo Linux), e
o resultado da execução é devolvido ao sistema hospedeiro.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
128 / 166
Exemplos de Máquinas Virtuais
Sumário
Introdução
Máquinas virtuais
Virtualização e segurança
Exemplos de Máquinas Virtuais
Perspectivas
Dúvidas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
129 / 166
Exemplos de Máquinas Virtuais
VMware
VMware
A máquina virtual mais conhecida
Interface x86
Provê uma implementação completa desta interface ao sistema
convidado.
Tradução dinâmica
O hipervisor tem que emular certas instruções para representar
corretamente um processador virtual (execução de vários sistemas
operacionais distintos).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
130 / 166
Exemplos de Máquinas Virtuais
VMware
VMware
Versões
Hipervisor convidado
I
VMware Workstation: primeira versão comercial da máquina virtual,
lançada em 1999, para ambientes desktop;
I
VMware Fusion: versão experimental para o sistema operacional
Mac OS com processadores Intel;
I
VMware Player: versão gratuita do VMware Workstation, com as
mesmas funcionalidades mas limitado a executar máquinas virtuais
criadas previamente com versões comerciais;
I
VMWare Server: conta com vários recursos do VMware
Workstation, mas é voltado para pequenas e médias empresas;
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
131 / 166
Exemplos de Máquinas Virtuais
VMware
VMware
Versões
Hipervisor nativo
VMware ESX Server: para servidores de grande porte, possui um núcleo
proprietário chamado vmkernel e utiliza o Red Hat Linux para prover
outros serviços, tais como a gerência de usuários.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
132 / 166
Exemplos de Máquinas Virtuais
VMware
VMware
Estratégias de virtualização
VMware Workstation
Utiliza as estratégias de virtualização total e tradução dinâmica.
VMware ESX Server
Implementa ainda a paravirtualização.
Abordagem hı́brida
Implementada na interface do hipervisor com as máquinas virtuais por
questões de desempenho.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
133 / 166
Exemplos de Máquinas Virtuais
VMware
VMware
Abordagem hı́brida
Exceção e gerenciamento de memória
Realizados por acesso direto ao hardware.
Entrada/saı́da
Usa o sistema hospedeiro
Alocação de memória para uso exclusivo em cada máquina
virtual
Garante que não ocorra nenhuma colisão de memória entre o sistema
convidado e o real.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
134 / 166
Exemplos de Máquinas Virtuais
VMware
VMware
VMware Workstation
Interrupções
Intercepta todas as interrupções do sistema convidado. Entrada/saı́da
são remetidas para o sistema hospedeiro, para que sejam processadas
corretamente.
Exceções
Geradas pelas aplicações no sistema convidado (como as chamadas de
sistema, por exemplo) são remetidas para o sistema convidado.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
135 / 166
Exemplos de Máquinas Virtuais
FreeBSD Jails
FreeBSD Jails
Confinamento de processos
FreeBSD
Oferece um mecanismo de confinamento de processos denominado Jails.
Jails ou celas
São domı́nios de execução distintos, cada cela contém um subconjunto
de processos e recursos (arquivos, conexões de rede) que pode ser
gerenciado de forma autônoma.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
136 / 166
Exemplos de Máquinas Virtuais
FreeBSD Jails
FreeBSD Jails
Limitação dos processos
Domı́nios
Criados a partir de um diretório previamente preparado no sistema de
arquivos e com diversas limitações, mesmo executando com privilégios de
administrador.
I
Reconfigurar o núcleo (através da chamada sysctl, por exemplo);
I
Carregar/retirar módulos do núcleo;
I
Mudar configurações de rede (interfaces e rotas);
I
Montar/desmontar sistemas de arquivos;
I
Criar novos devices;
I
Realizar modificações de configurações do núcleo em tempo de
execução;
I
Acessar recursos que não pertençam ao seu próprio domı́nio.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
137 / 166
Exemplos de Máquinas Virtuais
FreeBSD Jails
FreeBSD Jails
Virtualização parcial
Somente partes do sistema hospedeiro
I
Árvore de diretórios (cada domı́nio tem sua própria visão do sistema
de arquivos);
I
Espaços de nomes (cada domı́nio mantém seus próprios
identificadores de usuários, processos e recursos de IPC);
I
Interfaces de rede (cada domı́nio tem sua interface virtual, com
endereço IP próprio).
Demais recursos
São preservadas, ou melhor, podem ser usadas diretamente demandado
um custo computacional muito baixo, mas exige que todos os sistemas
convidados executem sobre o mesmo núcleo.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
138 / 166
Exemplos de Máquinas Virtuais
Xen
Xen
Hipervisor nativo
Interface x86
Paravirtualizada, permitindo executar sistemas operacionais como Linux e
Windows especialmente modificados para executar sobre o hipervisor.
Versões recentes
Utilizam o suporte de virtualização disponı́vel nos processadores (sistemas
convidados não sofrem modificações, mas perdem desempenho).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
139 / 166
Exemplos de Máquinas Virtuais
Xen
Xen
Modificações nos convidados
I
O mecanismo de entrega de interrupções passa a usar um serviço de
eventos oferecido pelo hipervisor; o núcleo convidado deve registrar
um vetor de tratadores de exceções junto ao hipervisor;
I
as operações de entrada/saı́da de dispositivos são feitas através de
uma interface simplificada, independente de dispositivo, que usa
buffers circulares de tipo produtor/consumidor;
I
o núcleo convidado pode consultar diretamente as tabelas de
segmentos e páginas da memória usada por ele e por suas aplicações,
mas as modificações nas tabelas devem ser solicitadas ao hipervisor;
I
o núcleo convidado deve executar em um nı́vel de privilégio inferior
ao do hipervisor;
I
o núcleo convidado deve implementar uma função de tratamento das
chamadas de sistema de suas aplicações, para evitar que elas tenham
de passar pelo hipervisor antes de chegar ao núcleo convidado.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
140 / 166
Exemplos de Máquinas Virtuais
Xen
Xen
Drivers
Hipervisor
Deve dispor dos drivers adequados para acessar os dispositivos de
hardware.
Núcleos convidados
Não precisam de drivers especı́ficos, pois eles acessam dispositivos
virtuais através de uma interface simplificada.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
141 / 166
Exemplos de Máquinas Virtuais
Xen
Xen
O hipervisor Xen
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
142 / 166
Exemplos de Máquinas Virtuais
User-Mode Linux
User-Mode Linux
Ambiente Linux
Núcleo do Linux
Portado de forma a poder executar sobre si mesmo, como um processo
do próprio Linux.
Hipervisor convidado
User space separado e isolado na forma de uma máquina virtual.
Hardware
Os dispositivos de hardware são virtualizados a partir dos serviços
providos pelo sistema hospedeiro.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
143 / 166
Exemplos de Máquinas Virtuais
User-Mode Linux
User-Mode Linux
Utilização
Uma máquina virtual
Capaz de executar todos os serviços e aplicações disponı́veis para o
sistema hospedeiro.
Custo
Processamento e memória menor que aquele imposto por outros
hipervisores mais complexos.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
144 / 166
Exemplos de Máquinas Virtuais
User-Mode Linux
User-Mode Linux
Confinamento
Processos em execução na máquina virtual não têm acesso direto aos
recursos do sistema hospedeiro.
Chamadas de Sistema
Implementada pelo uso de uma thread de rastreamento e interceptadas
pelo ptrace para garantir a distinção de privilégios e controle do contexto
do sistema convidado.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
145 / 166
Exemplos de Máquinas Virtuais
QEMU
QEMU
Virtualização completa
Sistema Hospedeiro
Não requer alterações ou otimizações, pois utiliza a tradução dinâmica
para prover a virtualização.
Hipervisor recursivo
É possı́vel chamar o QEMU a partir do próprio QEMU
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
146 / 166
Exemplos de Máquinas Virtuais
QEMU
QEMU
Dois modos de operação
Emulação total do sistema
Emula um sistema completo e pode ser utilizado para executar diferentes
sistemas operacionais.
Emulação no modo de usuário
Disponı́vel apenas para o sistema Linux. O emulador pode executar
processos Linux compilados em diferentes plataformas.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
147 / 166
Exemplos de Máquinas Virtuais
QEMU
QEMU
MMU – Memory Management Unit
Emulação de um sistema completo
Implementa a MMU totalmente em software, para garantir o máximo de
portabilidade.
Em modo usuário
Simula uma MMU simplificada através da chamada de sistema mmap do
sistema hospedeiro.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
148 / 166
Exemplos de Máquinas Virtuais
QEMU
QEMU
KQEMU ou QEMU Accelerator
Módulo
Instalado no núcleo do sistema hospedeiro que possibilita ao hipervisor
obter um ótimo desempenho.
Chamadas de sistemas
Emitidas pelos processos convidados são executadas diretamente sobre o
sistema hospedeiro (não ocorre interpretação).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
149 / 166
Exemplos de Máquinas Virtuais
QEMU
QEMU
KQEMU ou QEMU Accelerator
Dispositivos de entrada/saı́da e o endereçamento de memória
Do sistema convidado são associados diretamente aos do sistema
hospedeiro.
Processos convidados
Passam a executar diretamente no modo usuário do sistema hospedeiro.
Modo núcleo do sistema convidado
É utilizado apenas para virtualizar o processador e os periféricos.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
150 / 166
Exemplos de Máquinas Virtuais
QEMU
QEMU
VirtualBox
Máquina virtual
Construı́do sobre o hipervisor QEMU.
Hipervisor convidado
Similar ao VMware Workstation em muitos aspectos.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
151 / 166
Exemplos de Máquinas Virtuais
Valgrind
Valgrind
Ferramenta de Depuração
Uso da memória RAM e problemas correlatos
Fugas de memória (memory leaks), acessos a endereços inválidos, padrões
de uso dos caches e outras operações envolvendo o uso da memória RAM.
Hipervisor de aplicação
Virtualiza o processador através de técnicas de tradução dinâmica.
Traduz o código executável do mesmo para um formato interno.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
152 / 166
Exemplos de Máquinas Virtuais
Valgrind
Valgrind
Ferramenta de Depuração
Após a conversão
O código é instrumentado, através da inserção de instruções para
registrar e verificar operações.
Processador virtual
Execução do código, até 50 vezes mais lento que o código original.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
153 / 166
Exemplos de Máquinas Virtuais
JVM – Java Virtual Machine
JVM – Java Virtual Machine
Java
Linguagem de programação
Baseada em máquina virtual.
Código fonte
É compilado em um código binário independente de plataforma
(bytecode).
bytecode Java
Não corresponde a instruções de nenhum processador real.
JVM – Java Virtual Machine
É o responsável por interpretar o bytecode Java.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
154 / 166
Exemplos de Máquinas Virtuais
JVM – Java Virtual Machine
JVM – Java Virtual Machine
Vantagens
Portabilidade
Para que uma aplicação Java possa executar sobre uma determinada
plataforma, basta que a máquina virtual Java esteja disponı́vel.
Navegador Web
Permite que código Java seja associado a páginas Web, na forma de
pequenas aplicações denominadas applets.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
155 / 166
Exemplos de Máquinas Virtuais
JVM – Java Virtual Machine
JVM – Java Virtual Machine
Máquina virtual Java
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
156 / 166
Exemplos de Máquinas Virtuais
JVM – Java Virtual Machine
JVM – Java Virtual Machine
Máquina virtual como suporte de execução
UCSD Pascal
Primeiras experiências de execução de aplicações sobre máquinas
abstratas (década de 1970).
Outros exemplos
C#, Python, Perl, Lua e Ruby
.NET da Microsoft
Código fonte C# compilado para o formato CIL (Common Intermediate
Language) e executado sobre a máquina virtual CLR (Common Language
Runtime).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
157 / 166
Perspectivas
Sumário
Introdução
Máquinas virtuais
Virtualização e segurança
Exemplos de Máquinas Virtuais
Perspectivas
Dúvidas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
158 / 166
Perspectivas
Utilização de máquinas virtuais
Soluções domésticas e corporativas
Alternativa concreta para uso em sistemas.
Pesquisas em andamento
Permitirão utilizar os melhores recursos das mais variadas plataformas
operacionais sem a necessidade de investir em equipamentos especı́ficos.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
159 / 166
Perspectivas
Melhorar o suporte a virtualização
Aprimoramento
Questões de segurança, mobilidade e desempenho dos hipervisores.
Principais campos de pesquisas
I
Processadores;
I
Memória;
Entrada/saı́da;
I
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
160 / 166
Perspectivas
Pesquisas: Processadores
I
AMD e Intel, já disponibilizaram tecnologias;
I
Virtualização sobre a plataforma x86 ocorra de forma mais natural e
tranqüila.
I
Estas tecnologias vêm simplificando o desenvolvimento dos novos
hipervisores.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
161 / 166
Perspectivas
Pesquisas: Memória
I
Várias técnicas têm permitido que a virtualização da memória seja
mais eficiente.
I
Pesquisas futuras devem levar aos sistemas operacionais convidados
a gerenciar a memória juntamente com o hipervisor (gerência
cooperativa).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
162 / 166
Perspectivas
Pesquisas: Entrada/saı́da
I
Os dispositivos deverão ser projetados para fornecer suporte à
virtualização com alto desempenho.
I
O próprio dispositivo deverá suportar a multiplexação, de forma a
permitir o acesso simultâneo por vários sistemas virtuais.
I
A responsabilidade pelo acesso aos dispositivos deverá passar do
hipervisor para o sistema convidado.
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
163 / 166
Perspectivas
Pesquisas em segurança
I
Garantir que as propriedades básicas dos hipervisores sejam providas
corretamente pelas implementações;
I
Construir métodos confiáveis para descobrir a presença de rootkits
baseados em máquinas virtuais;
I
De forma contraditória, criar técnicas para impedir a detecção de
ambiente convidados, que serão úteis na construção de honeypots
virtuais;
I
Trazer para o desktop o conceito de sandboxing (execução isolada
de aplicações).
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
164 / 166
Dúvidas
Sumário
Introdução
Máquinas virtuais
Virtualização e segurança
Exemplos de Máquinas Virtuais
Perspectivas
Dúvidas
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
165 / 166
Dúvidas
Contato
Marcos Aurelio Pchek Laureano
Centro Universitário Franciscano – UNIFAE
Programa de Pós-Graduação em Informática.
Pontifı́cia Universidade Católica do Paraná
[email protected]
Carlos Alberto Maziero
Programa de Pós-Graduação em Informática.
Pontifı́cia Universidade Católica do Paraná
[email protected]
Marcos Laureano e Carlos Maziero
Virtualização: Conceitos e Aplicações em Segurança
1 de setembro de 2008
166 / 166
Download

Apresentação do mini-curso