Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 de setembro de 2008
1 de setembro de 2008
1 / 166
Sumrio a
Introduo ca Mquinas virtuais a Virtualizao e segurana ca c Exemplos de Mquinas Virtuais a Perspectivas Dvidas u
1 de setembro de 2008
2 / 166
Introduo ca
Sumrio a
Introduo ca Mquinas virtuais a Virtualizao e segurana ca c Exemplos de Mquinas Virtuais a Perspectivas Dvidas u
1 de setembro de 2008
3 / 166
Introduo ca
Dcada de 60 e
Tendncia dominante nos sistemas naquela poca era fornecer a cada e e usurio um ambiente mono-usurio completo. a a
Dcada de 80 e
Com a popularizao de plataformas de hardware baratas como o PC, a ca virtualizao perdeu importncia. ca a
Dcada de 90 e
Surgimento da linguagem Java motiva novas pesquisas com virtualizao. ca O VMware torna-se uma alternativa de virtualizao nos limitados ca processadores da poca. e
1 de setembro de 2008
4 / 166
Introduo ca
Formada por vrios componentes f a sicos que fornecem operaes co para o sistema operacional e suas aplicaes. co Formado basicamente por trs componentes: e
Hardware. Sistema Operacional. Aplicaoes. c
1 de setembro de 2008
5 / 166
Introduo ca
Hardware
Seu papel executar as operaes solicitadas pelas aplicaes atravs do e co co e sistema operacional.
Sistema Operacional
Recebe as solicitaes das operaes (por meio das chamadas de co co sistema) e controla o acesso ao hardware.
Aplicaoes c
Fornece funcionalidades para o usurio. a
1 de setembro de 2008
6 / 166
Introduo ca
Sistemas Convencionais
So caracterizados por n a veis de abstrao crescentes e interfaces bem ca denidas entre eles.
Em outras palavras
Criar uma interface homognea para uso. e
1 de setembro de 2008
7 / 166
Introduo ca
1 de setembro de 2008
8 / 166
Introduo ca
1 de setembro de 2008
9 / 166
Introduo ca
ISA
E a interface bsica entre o hardware e o software. a
User ISA
Compreende as instrues do processador e demais itens de hardware co acess veis aos programas do usurio (modo no-privilegiado). a a
System ISA
Compreende as instrues do processador e demais itens de hardware, co unicamente acess veis ao ncleo do sistema operacional (modo u privilegiado).
1 de setembro de 2008
10 / 166
Introduo ca
Conjunto de operaes oferecidas pelo ncleo do sistema operacional co u aos processos dos usurios. a Permitem um acesso controlado das aplicaes: co
Dispositivos perifricos; e Memria; o Instruoes privilegiadas do processador. c
1 de setembro de 2008
11 / 166
Introduo ca
Oferecem um grande nmero de funes para simplicar a u co construo de programas. ca Chamadas de biblioteca encapsulam chamadas do sistema operacional (uso mais simples). Interface prpria, denominada Interface de Programao de o ca Aplicaes (API Application Programming Interface): co
LibC do UNIX; GTK+ (Gimp ToolKit); SDL (Simple DirectMedia Layer).
1 de setembro de 2008
12 / 166
Introduo ca
1 de setembro de 2008
13 / 166
Introduo ca
Programas e Bibliotecas
Para garantir a compatibilidade em uma determinada plataforma, e necessrio que tenham sido compilados para ela, respeitando User ISA e a Syscalls.
Sistema Operacional
S poder executar sobre uma plataforma de hardware se tiver sido o a constru e compilado de forma a respeitar sua interface ISA do (User/System ISA)
1 de setembro de 2008
14 / 166
Introduo ca
1 de setembro de 2008
15 / 166
Introduo ca
ISA e ABI
Interfaces normalmente xas ou pouco ex veis.
Diversos fabricantes
Incompatibilidade entre diversos hardwares, sistemas operacionais e aplicaoes. c
Consequncia e
Um sistema operacional somente funciona para o hardware projetado (ISA). Uma biblioteca s funciona para a ABI para qual foi projetada. As o aplicaoes devem respeitar o conjunto de ABIs/APIs pr-denidas. c e
1 de setembro de 2008
16 / 166
Introduo ca
1 de setembro de 2008
17 / 166
Introduo ca
Baixa portabilidade
A rigidez das interfaces de sistema atuais diculta a conectividade e a mobilidade.
Barreiras de inovao ca
Diculdade de interao. Necessidade de manter compatibilidade com o ca legado (evoluo prejudicada). ca
Otimizaoes inter-componentes c
A rigidez das interfaces no permitem interao entre componentes a ca diferentes (isolamento).
1 de setembro de 2008
18 / 166
Introduo ca
Virtualizao ca
Camada, constru em software, que possibilita que servios projetados da c para uma interface possam executar sob outra.
1 de setembro de 2008
19 / 166
Introduo ca
1 de setembro de 2008
20 / 166
Mquinas virtuais a
Sumrio a
Introduo ca Mquinas virtuais a Virtualizao e segurana ca c Exemplos de Mquinas Virtuais a Perspectivas Dvidas u
1 de setembro de 2008
21 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Conceitos
Camada de virtualizao ca
Utilizando os servios de uma interface de sistema, poss construir c e vel outra interface distinta. Esta camada denominada hipervisor ou monitor de mquina virtual. e a
Mquina Virtual a
E a nova interface de sistema, vista atravs dessa camada de e virtualizao. ca
1 de setembro de 2008
22 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Uma mquina virtual a
1 de setembro de 2008
23 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Componentes de um ambiente de mquina virtual a
1 de setembro de 2008
24 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Denio de mquina virtual ca a
Originalmente
Uma mquina virtual era denida como uma cpia eciente, isolada e a o protegida de uma mquina real. a
1 de setembro de 2008
25 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Complexidade
Chamadas de Sistema
Devem ser mapeadas em chamadas equivalentes.
1 de setembro de 2008
26 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Possibilidades de virtualizao ca
Virtualizao completa ca
Um sistema operacional convidado e suas aplicaes, desenvolvidas para uma plataforma de co hardware A, so executadas sobre uma plataforma a de hardware distinta B.
1 de setembro de 2008
27 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Possibilidades de virtualizao ca
1 de setembro de 2008
28 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Possibilidades de virtualizao ca
Traduo dinmica ca a
As instrues de mquina das aplicaes so co a co a traduzidas durante a execuo em outras instrues ca co mais ecientes para a mesma plataforma.
1 de setembro de 2008
29 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Possibilidades de virtualizao ca
Replicao de hardware ca
So criadas vrias instncias virtuais de um mesmo a a a hardware real, cada uma executando seu prprio o sistema operacional convidado e suas respectivas aplicaes. co
1 de setembro de 2008
30 / 166
Mquinas virtuais a
Introduo ca
Introduo ca
Possibilidades de virtualizao ca
1 de setembro de 2008
31 / 166
Mquinas virtuais a
Abstrao de recursos ca
Consiste em fornecer uma interface de acesso homognea e simplicada e ao recursos do sistema.
Virtualizao ca
Consiste em criar novas interfaces a partir das interfaces existentes.
1 de setembro de 2008
32 / 166
Mquinas virtuais a
1 de setembro de 2008
33 / 166
Mquinas virtuais a
Abstrao ca
Prov `s aplicaes o conceito de arquivo, sobre o qual estas podem ea co executar operaes simples como read ou write. co
Virtualizao ca
Fornece para a camada superior apenas um disco virtual, constru a do partir de um arquivo do sistema operacional real.
1 de setembro de 2008
34 / 166
Mquinas virtuais a
1 de setembro de 2008
35 / 166
Mquinas virtuais a
Prover um ambiente de execuo aos programas essencialmente ca idntico ao da mquina real; e a Programas executando sobre uma mquina virtual devem apresentar, a no pior caso, leves degradaes de desempenho; co Deve ter controle completo sobre os recursos do sistema real (o sistema hospedeiro).
1 de setembro de 2008
36 / 166
Mquinas virtuais a
Equivalncia e
Um hipervisor prov um ambiente de execuo quase idntico ao da e ca e mquina real original. a
Controle de recursos
Nenhum programa executando na mquina virtual deve possuir acesso a a recursos que no tenham sido explicitamente alocados a ele pelo a hipervisor.
Ecincia e
Grande parte das instrues do processador virtual deve ser executada co diretamente pelo processador da mquina real, sem interveno do a ca hipervisor. Outras instrues devem ser interpretadas pelo hipervisor. co
1 de setembro de 2008
37 / 166
Mquinas virtuais a
Isolamento
Garante que um software em execuo em uma mquina virtual no ca a a possa ver, inuenciar ou modicar outro software em execuo no ca hipervisor ou em outra mquina virtual. a
Gerenciabilidade
Administrao de diversas instncias de mquinas virtuais sobre um ca a a mesmo supervisor simplicada e centralizada. e
1 de setembro de 2008
38 / 166
Mquinas virtuais a
Inspeo ca
O hipervisor tem acesso e controle sobre todas as informaes do estado co interno da mquina virtual, como registradores do processador, contedo a u de memria, eventos etc. o
Encapsulamento
A inspeo possibilita salvar checkpoints de uma mquina virtual para ca a realizar rollback, anlises post-mortem ou migrao de mquinas virtuais. a ca a
1 de setembro de 2008
39 / 166
Mquinas virtuais a
Recursividade
Possibilidade de executar um hipervisor dentro de uma mquina virtual, produzindo a um novo n de mquinas virtuais. vel a
1 de setembro de 2008
40 / 166
Mquinas virtuais a
Suporte de Hardware
Suporte de Hardware
Teorema de Popek e Goldberg
Para qualquer computador convencional de terceira gerao, ca um hipervisor pode ser constru se o conjunto de instrues do co sens veis daquele computador for um sub-conjunto de seu conjunto de instrues privilegiadas. co
1 de setembro de 2008
41 / 166
Mquinas virtuais a
Suporte de Hardware
Suporte de Hardware
Conceitos (entendimento do teorema)
Instruoes privilegiadas c
Acess veis somente por meio de cdigos executando em n privilegiado. o vel
1 de setembro de 2008
42 / 166
Mquinas virtuais a
Suporte de Hardware
Suporte de Hardware
Construo de hipervisores ecientes ca
Mainframes
Dispe de uma funcionalidade chamada execuo direta, que permite a o ca uma mquina virtual acessar nativamente o hardware para execuo de a ca instruoes. c
Micro-processadores de mercado
Suporte parcial. Processadores Intel Pentium IV (e anteriores) possui 17 instruoes sens c veis que podem ser executadas em modo usurio sem a gerar excees (violao do teorema). co ca
1 de setembro de 2008
43 / 166
Mquinas virtuais a
Suporte de Hardware
Suporte de Hardware
Processador Pentium IV (e anteriores)
1 de setembro de 2008
44 / 166
Mquinas virtuais a
Suporte de Hardware
Suporte de Hardware
Novos Processadores
Intel
Tecnologia IVT (Intel Virtualization Technology).
AMD
AMD-V (AMD Virtualization).
1 de setembro de 2008
45 / 166
Mquinas virtuais a
Suporte de Hardware
Suporte de Hardware
Modos de operao ca
root
Equivale ao funcionamento de um processador convencional, e se destina ` execuo de um hipervisor. a ca
non-root
Se destina ` execuo de mquinas virtuais. a ca a
1 de setembro de 2008
46 / 166
Mquinas virtuais a
Suporte de Hardware
Suporte de Hardware
Processador IVT
1 de setembro de 2008
47 / 166
Mquinas virtuais a
Tipo de suporte (processo ou sistemas convidados) Similaridade entre interfaces (ISA); Tipo de virtualizao; ca De acordo com uso;
1 de setembro de 2008
48 / 166
Mquinas virtuais a
1 de setembro de 2008
49 / 166
Mquinas virtuais a
1 de setembro de 2008
50 / 166
Mquinas virtuais a
Interfaces equivalentes
A interface virtual oferecida ao ambiente convidado reproduz a interface de hardware do sistema real.
Interfaces distintas
A interface virtual no tem relao com a interface de hardware do a ca sistema real, ou seja, implementa um conjunto de instrues distinto, a co ser interpretado pelo hipervisor.
1 de setembro de 2008
51 / 166
Mquinas virtuais a
Virtualizao do ca hardware
Exporta o sistema f sico como hardware abstrato (semelhante ao sistema original).
1 de setembro de 2008
52 / 166
Mquinas virtuais a
1 de setembro de 2008
53 / 166
Mquinas virtuais a
1 de setembro de 2008
54 / 166
Mquinas virtuais a
Abstrao da ISA ca
Emulao completa da ISA. Instrues do sistema convidado traduzidas ca co para instrues do sistema nativo. co
1 de setembro de 2008
55 / 166
Mquinas virtuais a
1 de setembro de 2008
56 / 166
Mquinas virtuais a
hipervisor + aplicao ca
Criado sobre demanda e visto como um unico processo.
Portanto
Submetido `s mesmas condies e restries que os demais processos a co co nativos.
1 de setembro de 2008
57 / 166
Mquinas virtuais a
1 de setembro de 2008
58 / 166
Mquinas virtuais a
Tradutores dinmicos a
Analisa e otimiza um cdigo executvel. No muda o conjunto de o a a instruoes da mquina real usado pelo cdigo, apenas reorganiza as c a o instruoes de forma a acelerar sua execuo. c ca
Depuradores de memria o
As instrues do programa que manipulam acessos ` memria so co a o a executadas de forma controlada, a m de encontrar poss veis erros.
1 de setembro de 2008
59 / 166
Mquinas virtuais a
Diferenas c
Chamadas do sistema operacional ou as instrues de mquina co a dispon veis ` aplicao (user ISA). a ca
Traduo dinmica ca a
Durante a execuo das aes requeridas pela aplicao. ca co ca
1 de setembro de 2008
60 / 166
Mquinas virtuais a
Hipervisor
Precisa apenas mapear as chamadas de sistema usadas pela aplicao ca sobre as chamadas oferecidas pelo sistema operacional da mquina real. a
1 de setembro de 2008
61 / 166
Mquinas virtuais a
Interface ISA
Utilizada pela aplicao no corresponde a nenhum hardware existente. ca a
Mquina abstrata a
Hardware simplicado para execuo de aplicaes (independncia de ca co e hardware).
1 de setembro de 2008
62 / 166
Mquinas virtuais a
Mquina virtual a
Suporta um ou mais sistemas operacionais convidados, com suas respectivas aplicaes, que executam de forma isolada e independente. co
Sistema convidado
Tem a iluso de executar sozinho sobre uma plataforma de hardware a prpria. o
1 de setembro de 2008
63 / 166
Mquinas virtuais a
Interaoes c
Geralmente atravs dos mecanismos de rede, como se estivessem em e mquinas sicamente separadas. a
Compartilhamento de recursos
Provido pelo hipervisor. Exemplo: diretrios compartilhados no sistema o de arquivos real, que podem ser acessados pelas mquinas virtuais. a
1 de setembro de 2008
64 / 166
Mquinas virtuais a
ISA virtual
Fornecido aos sistemas operacionais convidados.
Recursos virtualizados
Cada sistema operacional convidado tem um conjunto de recursos virtuais prprio, constru a partir dos recursos f o do sicos existentes.
1 de setembro de 2008
65 / 166
Mquinas virtuais a
1 de setembro de 2008
66 / 166
Mquinas virtuais a
1 de setembro de 2008
67 / 166
Mquinas virtuais a
1 de setembro de 2008
68 / 166
Mquinas virtuais a
Hipervisores convidados
So mais ex a veis, pois podem ser facilmente instalados/removidos em mquinas com sistemas operacionais previamente instalados. a
Hipervisor nativo
Tem melhor desempenho que um hipervisor convidado, pois acessa diretamente o hardware real.
1 de setembro de 2008
69 / 166
Mquinas virtuais a
Virtualizao de recursos ca
A interface ISA de usurio mantida, apenas as a e instrues privilegiadas e os recursos (discos, etc) co so virtualizados. a
1 de setembro de 2008
70 / 166
Mquinas virtuais a
Virtualizao completa ca
Toda a interface do hardware virtualizada, e incluindo todas as instruoes do processador e os c dispositivos de hardware.
1 de setembro de 2008
71 / 166
Mquinas virtuais a
1 de setembro de 2008
72 / 166
Mquinas virtuais a
1 de setembro de 2008
73 / 166
Mquinas virtuais a
1 de setembro de 2008
74 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Virtualizao total (full virtualization); normalmente associada ` ca a Traduo dinmica (dynamic translation); ca a Paravirtualizao (paravirtualization); ca Tcnicas complementares para melhoria de desempenho. e
1 de setembro de 2008
75 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Virtualizao total ca
Uma estrutura completa de hardware virtualizada; e O sistema convidado no precisa sofrer qualquer tipo de alterao; a ca Monitor mais complexo; Compatibilidade garantida; Custo de virtualizao maior. ca
1 de setembro de 2008
76 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Traduo dinmica ou recompilao dinmica ca a ca a
Objetivos
Adaptar as instruoes geradas pelo sistema convidado ` interface c a ISA do sistema real; Detectar e tratar instrues sens co veis no-privilegiadas (que no a a geram interrupes); co Analisar, reorganizar e otimizar as seqncias de instrues geradas ue co pelo sistema convidado (desempenho).
1 de setembro de 2008
77 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Utilizao em vrios hipervisores ca a
1 de setembro de 2008
78 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Os passos da recompilao dinmica ca a
1. Desmontagem (disassembling); 2. Gerao de cdigo intermedirio (desnecessrio se as instrues do ca o a a co convidado forem as mesmas do sistema real); 3. Otimizao; ca 4. Codicao; ca 5. Caching (evitar traduo de cdigos repetidos); ca o 6. Execuo. ca
1 de setembro de 2008
79 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Paravirtualizao ca
Denali (2002) e Xen (2003); Modicaes na interface de sistema do hardware virtual (system co ISA); O sistema convidado sofre alteraes (adaptado ao hipervisor); co Menor portabilidade; Maior performance.
1 de setembro de 2008
80 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Relao entre a virtualizao total e a paravirtualizao ca ca ca
1 de setembro de 2008
81 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Compreendendo as diferenas c
Virtualizao total ca
Hipervisor reserva um espao de memria separado para cada sistema c o convidado; no entanto, todos os sistemas convidados vem suas e respectivas reas de memria iniciando no endereo 0000H . a o c
Paravirtualizao ca
Hipervisor informa ao sistema convidado qual o espao de memria c o dispon vel. O acesso a memria fornecida ocorre sem a interferncia do o e hipervisor
1 de setembro de 2008
82 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Paravirtualizao:hipervisores nativos viso da memria por um sistema convidado ca a o
1 de setembro de 2008
83 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Melhoria de desempenho
Desempenho
Otimizaes so inseridas para melhorar o desempenho das aplicaes co a co nos sistemas convidados.
Pontos cruciais
So as operaes de entrada/sa e as principais otimizaes dizem a co da co respeito as estas operaes. co
1 de setembro de 2008
84 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Otimizaoes c
Hipervisores nativos
O sistema convidado acessa diretamente o hardware
1 de setembro de 2008
85 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Otimizaoes em hipervisores convidados c
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).
1 de setembro de 2008
86 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
As estratgias de virtualizao e ca
Otimizaoes em sistemas de mquinas virtuais c a
1 de setembro de 2008
87 / 166
Mquinas virtuais a
Estratgias de Virtualizao e ca
1 de setembro de 2008
88 / 166
Virtualizao e segurana ca c
Sumrio a
Introduo ca Mquinas virtuais a Virtualizao e segurana ca c Exemplos de Mquinas Virtuais a Perspectivas Dvidas u
1 de setembro de 2008
89 / 166
Virtualizao e segurana ca c
Virtualizao e segurana ca c
Utilizao de Mquinas Virtuais ca a
Consolidao de Servidores ca
Reduo de custos em hardware, software e gerncia do parque ca e tecnolgico. o
Segurana c
Vrios trabalhos de pesquisa e desenvolvimento comprovaram a eccia a a da utilizao de mquinas virtuais. ca a
1 de setembro de 2008
90 / 166
Virtualizao e segurana ca c
Virtualizao e segurana ca c
Critrios bsicos de segurana e a c
Condencialidade
Informao somente est vis a sujeitos (usurios e/ou processos) ca a vel a explicitamente autorizados.
Disponibilidade
Informao deve estar prontamente dispon sempre que for necessria. ca vel a
Integridade
Informao somente pode ser modicada por sujeitos explicitamente ca autorizados e de formas claramente denidas.
1 de setembro de 2008
91 / 166
Virtualizao e segurana ca c
Virtualizao e segurana ca c
Outros critrios de segurana e c
Autenticidade
Garante que a informao ou o usurio da mesma autntico, ou seja, ca a e e garante que a entidade envolvida quem arma ser. e
No-repdio a u
No poss negar a existncia ou autoria de uma operao que criou, a e vel e ca modicou ou destruiu uma informao. ca
Auditoria
Implica no registro das aes realizadas no sistema, identicando os co sujeitos e recursos envolvidos, as operaes realizadas, seus horrios, co a locais e outros dados relevantes.
1 de setembro de 2008
92 / 166
Virtualizao e segurana ca c
1 de setembro de 2008
93 / 166
Virtualizao e segurana ca c
Condencialidade
Ao manter os ambientes virtuais isolados, o hipervisor prov a e condencialidade de dados entre os sistemas convidados.
Integridade
Aplicaoes convidadas no alteram dados de outras aplicaes. c a co
Disponibilidade
Permite a conteno de erros de software no mbito da mquina virtual. ca a a
1 de setembro de 2008
94 / 166
Virtualizao e segurana ca c
Integridade
Possibilidade de implementar mecanismos para vericar a consistncia de e acessos e de seus resultados.
Auditoria
Acompanhamento e registro das atividades do sistema convidado.
1 de setembro de 2008
95 / 166
Virtualizao e segurana ca c
Integridade
A viso privilegiada sobre o estado interno do sistema convidado permite a extrair informaes, , permitindo implementar externamente mecanismos co como antiv e detectores de intruso. rus a
Bales de ensaio o
Inspeo aliada ao isolamento torna as mquinas virtuais um ambiente ca a ideal para estudo de aplicaes maliciosas. co
1 de setembro de 2008
96 / 166
Virtualizao e segurana ca c
Integridade e Disponibilidade
A possibilidade de salvar/restaurar o estado do sistema convidado torna vivel a implementao de mecanismos de rollback. a ca
Disponibilidade
Migrao on the y de mquinas virtuais. ca a
1 de setembro de 2008
97 / 166
Virtualizao e segurana ca c
Connamento de aplicaes; co Deteco de intruso; ca a Anlise de programas maliciosos; a Honeypots e honeynets; Rootkits; Consolidao de servidores, planos de contingncia e migrao; ca e ca Tolerncia a faltas. a
1 de setembro de 2008
98 / 166
Virtualizao e segurana ca c
Connamento de Aplicaes co
Connamento de Aplicaoes c
Em um sistema operacional
Cada processo (servio) tem acesso a um conjunto de recursos para c funcionar.
Comprometimento da segurana c
Por servios mal congurados, erros nas regras de controle de acesso, c vulnerabilidades no servio ou no sistema operacional. c
1 de setembro de 2008
99 / 166
Virtualizao e segurana ca c
Connamento de Aplicaes co
Connamento de Aplicaoes c
Alternativas
Mquina virtual a
Isolamento da aplicao sens do restante do sistema hospedeiro. ca vel
1 de setembro de 2008
100 / 166
Virtualizao e segurana ca c
Connamento de Aplicaes co
Connamento de Aplicaoes c
Isolamento
Hipervisor convencional
Pode ser usado para connar uma aplicao. ca
Servidores virtuais
Tcnicas simplicadas e com baixo custo computacional. e
1 de setembro de 2008
101 / 166
Virtualizao e segurana ca c
Connamento de Aplicaes co
Connamento de Aplicaoes c
Servidores virtuais
1 de setembro de 2008
102 / 166
Virtualizao e segurana ca c
Connamento de Aplicaes co
Connamento de Aplicaoes c
Implementaes dispon co veis
chroot
Tcnica mais antiga. e
Jails
Alternativa no sistema FreeBSD.
Zones
Alternativa no sistema Solaris.
Ambiente Linux
Sistemas Virtuozzo/OpenVZ e Vservers/FreeVPS.
1 de setembro de 2008
103 / 166
Virtualizao e segurana ca c
Deteco de intruso ca a
Deteco de intruso ca a
IDS Intrusion Detection Systems
Objetivo
Monitorar uma rede ou sistema computacional, buscando detectar ataques ou atividades maliciosas.
1 de setembro de 2008
104 / 166
Virtualizao e segurana ca c
Deteco de intruso ca a
Deteco de intruso ca a
Limitaoes c
Sistemas NIDS
Eccia diminui na medida em que o trfego da rede aumenta. a a Protocolos de rede cifrados torna o contedo dos pacotes opaco. u
Sistemas HIDS
E um processo local, que pode ser desativado ou subvertido por um ataque bem-sucedido.
1 de setembro de 2008
105 / 166
Virtualizao e segurana ca c
Deteco de intruso ca a
Deteco de intruso ca a
Mquinas virtuais protegendo sistemas HIDS a
Propriedade de inspeo ca
Hipervisor pode extrair informaes de um sistema convidado e co encaminh-las para anlise por um detector de intruso executando no a a a sistema nativo, ou em outra mquina virtual. a
Propriedade de isolamento
Assegura a integridade das informaes coletadas e do prprio detector co o de intruso. a
1 de setembro de 2008
106 / 166
Virtualizao e segurana ca c
Deteco de intruso ca a
Deteco de intruso ca a
Possibilidades com mquinas virtuais a
1 de setembro de 2008
107 / 166
Virtualizao e segurana ca c
Deteco de intruso ca a
Deteco de intruso ca a
Projetos
ReVirt
Uma camada entre o hipervisor e o sistema hospedeiro recebe as mensagens de syslog do convidado e registro no hospedeiro. Realiza checkpoints regulares do sistema convidado.
1 de setembro de 2008
108 / 166
Virtualizao e segurana ca c
Deteco de intruso ca a
Deteco de intruso ca a
Projetos
1 de setembro de 2008
109 / 166
Virtualizao e segurana ca c
Intencionais
Programas escritos para se inltrar em um sistema (sem conhecimento de seus usurios). a
No-intencionais a
Programas normais contendo erros de programao ou de congurao ca ca que permitam a manipulao no-autorizada das informaes de um ca a co sistema.
1 de setembro de 2008
110 / 166
Virtualizao e segurana ca c
1 de setembro de 2008
111 / 166
Virtualizao e segurana ca c
V rus
Habilidade de se auto-replicar e infectar partes do sistema operacional ou dos programas de aplicao ca
Worm
Capaz de propagar a si prprio em uma rede. o
Cavalo de Tria o
Realiza aes escondidas visando roubar informaes ou provocar danos. co co
Rootkit
Ocultar a presena de um invasor. c
1 de setembro de 2008
112 / 166
Virtualizao e segurana ca c
Esttica a
Observao do contedo (cdigo binrio). ca u o a Cada vez mais dif de realizar, devido ao emprego de tcnicas de cil e dissimulao e cifragem. ca
Dinmica a
Observao do comportamento. ca Objetivos; Mtodos de propagao; e ca Evidncias que possam indicar sua presena; e c Formas de deteco e remoo. ca ca
1 de setembro de 2008
113 / 166
Virtualizao e segurana ca c
No necessrio dedicar uma mquina real limpa para cada a e a a anlise; a Salvar e restaurar estados da mquina virtual, permitindo desfazer a os efeitos de uma intruso; a Comparao entre os estados antes de depois da intruso permite ca a compreender melhor seus efeitos no sistema; A vericao de informaes de baixo n atravs da capacidade de ca co vel e inspeo do hipervisor; ca A traduo dinmica de instrues pode ser usada para instrumentar ca a co o uxo de instrues executado pelo malware. co
1 de setembro de 2008
114 / 166
Virtualizao e segurana ca c
Diculdades
Erros de projeto e/ou implementao nos hipervisores; ca Virtualizao de plataformas (Intel x86) uma tarefa complexa; ca e Possibilidade de detectar o ambiente virtual.
Vault
Vericao da integridade de um sistema por troca de mensagens ca (malwares convencionais).
1 de setembro de 2008
115 / 166
Virtualizao e segurana ca c
Honeypots e honeynets
Honeypots e honeynets
Honeypots
Armadilha
Servem para atrair e estudar o trfego de rede malicioso. a
Baixa interatividade
Interao com emulao de servios de redes. ca ca c
Alta interatividade
Expem sistemas e servios reais. o c
1 de setembro de 2008
116 / 166
Virtualizao e segurana ca c
Honeypots e honeynets
Honeypots e honeynets
Honeynets
Coleo de honeypots ca
Alta interatividade com diferentes sistemas operacionais, conguraes e co servios de rede (custo implantao e operao). c ca ca
Honeynet virtual
E simplesmente uma honeynet constru com mquinas virtuais ao invs da a e de computadores reais.
1 de setembro de 2008
117 / 166
Virtualizao e segurana ca c
Honeypots e honeynets
Honeypots e honeynets
Honeynet virtual
Totalmente virtual
Todos os computadores envolvidos so mquinas virtuais. a a
H brida
Composta por honeypots virtuais e mquinas reais para as funes de a co rewall, deteco de intruso e logging. ca a
1 de setembro de 2008
118 / 166
Virtualizao e segurana ca c
Rootkits
Rootkits
Complexidade
Primeiros rootkits
Consistiam em substituir alguns comandos do sistema por verses com a o mesma funcionalidade (ocultar atividades).
Posteriormente
Rootkits mais elaborados que substituem bibliotecas do sistema com a mesma nalidade.
1 de setembro de 2008
119 / 166
Virtualizao e segurana ca c
Rootkits
Rootkits
VMBR VM-based rootkits
Simplicidade conceitual
Ao ser instalado, ele se torna um hipervisor, virtualizando todo o hardware da mquina a e transformando o sistema operacional invadido em um sistema convidado
1 de setembro de 2008
120 / 166
Virtualizao e segurana ca c
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.
1 de setembro de 2008
121 / 166
Virtualizao e segurana ca c
Rootkits
Rootkits
Funcionamento
Teoricamente indetectvel a
Vrios pesquisadores armam ser poss detectar anomalias em um a vel sistema virtualizado.
1 de setembro de 2008
122 / 166
Virtualizao e segurana ca c
Consolidao de servidores ca
Conceito
Transferir servios em mquinas f c a sicas para mquinas virtuais, para a diminuir o nmero de equipamentos da organizao. u ca
Recursos f sicos
Podem ser dinamicamente alocados aos sistemas operacionais de acordo com suas necessidades, proporcionando balanceamento de carga dinmico a e um melhor controle de uso dos recursos dos servidores .
1 de setembro de 2008
123 / 166
Virtualizao e segurana ca c
Consolidao de servidores ca
Vantagens
Aumentar a produtividade da infra-estrutura; Simplicar a gerncia do ambiente; e Aumentar a segurana; c Diminuir o consumo de energia; Economizar recursos humanos, f sicos e nanceiros.
1 de setembro de 2008
124 / 166
Virtualizao e segurana ca c
Planos de contigncia e
Visa assegurar
A disponibilidade de sistemas cr ticos e facilitar a continuidade das operaoes durante uma crise. c
Mquinas virtuais a
Podem ser salvas na forma de arquivos, checkpoints dos servidores cr ticos podem ser salvos em equipamentos distintos.
1 de setembro de 2008
125 / 166
Virtualizao e segurana ca c
Migrao ca
Stop-and-copy
Consiste em suspender a mquina virtual, transferir o contedo de sua a u memria para o hipervisor de destino e retomar a execuo em seguida. o ca
Demand-migration
A mquina virtual suspensa apenas durante a cpia das estruturas a e o de memria do ncleo para o hipervisor de destino. o u A execuo da mquina virtual retomada e o restante das pginas ca a e a de memria da mquina virtual transferido sob demanda. o a e
1 de setembro de 2008
126 / 166
Virtualizao e segurana ca c
Migrao ca
Pre-copy
Consiste basicamente em copiar para o hipervisor de destino todas as pginas de memria da mquina virtual enquanto esta executa. a o a A mquina virtual suspensa e as pginas modicadas depois da a e a cpia inicial so novamente copiadas no destino. o a A mquina pode retomar sua execuo no destino. a ca
1 de setembro de 2008
127 / 166
Virtualizao e segurana ca c
Tolerncia a faltas a
Tolerncia a faltas a
Isolamento
Pode ser usado para restringir a propagao de erros de software nos ca sistemas.
1 de setembro de 2008
128 / 166
Sumrio a
Introduo ca Mquinas virtuais a Virtualizao e segurana ca c Exemplos de Mquinas Virtuais a Perspectivas Dvidas u
1 de setembro de 2008
129 / 166
VMware
VMware
A mquina virtual mais conhecida a
Interface x86
Prov uma implementao completa desta interface ao sistema e ca convidado.
Traduo dinmica ca a
O hipervisor tem que emular certas instrues para representar co corretamente um processador virtual (execuo de vrios sistemas ca a operacionais distintos).
1 de setembro de 2008
130 / 166
VMware
VMware
Verses o
Hipervisor convidado
VMware Workstation: primeira verso comercial da mquina virtual, a a lanada em 1999, para ambientes desktop; c VMware Fusion: verso experimental para o sistema operacional a Mac OS com processadores Intel; VMware Player: verso gratuita do VMware Workstation, com as a mesmas funcionalidades mas limitado a executar mquinas virtuais a criadas previamente com verses comerciais; o VMWare Server: conta com vrios recursos do VMware a Workstation, mas voltado para pequenas e mdias empresas; e e
1 de setembro de 2008
131 / 166
VMware
VMware
Verses o
Hipervisor nativo
VMware ESX Server: para servidores de grande porte, possui um ncleo u proprietrio chamado vmkernel e utiliza o Red Hat Linux para prover a outros servios, tais como a gerncia de usurios. c e a
1 de setembro de 2008
132 / 166
VMware
VMware
Estratgias de virtualizao e ca
VMware Workstation
Utiliza as estratgias de virtualizao total e traduo dinmica. e ca ca a
Abordagem h brida
Implementada na interface do hipervisor com as mquinas virtuais por a questes de desempenho. o
1 de setembro de 2008
133 / 166
VMware
VMware
Abordagem h brida
Entrada/sa da
Usa o sistema hospedeiro
1 de setembro de 2008
134 / 166
VMware
VMware
VMware Workstation
Interrupoes c
Intercepta todas as interrupes do sistema convidado. Entrada/sa co da so remetidas para o sistema hospedeiro, para que sejam processadas a corretamente.
Exceoes c
Geradas pelas aplicaes no sistema convidado (como as chamadas de co sistema, por exemplo) so remetidas para o sistema convidado. a
1 de setembro de 2008
135 / 166
FreeBSD Jails
FreeBSD Jails
Connamento de processos
FreeBSD
Oferece um mecanismo de connamento de processos denominado Jails.
Jails ou celas
So dom a nios de execuo distintos, cada cela contm um subconjunto ca e de processos e recursos (arquivos, conexes de rede) que pode ser o gerenciado de forma autnoma. o
1 de setembro de 2008
136 / 166
FreeBSD Jails
FreeBSD Jails
Limitao dos processos ca
Dom nios
Criados a partir de um diretrio previamente preparado no sistema de o arquivos e com diversas limitaes, mesmo executando com privilgios de co e administrador. Recongurar o ncleo (atravs da chamada sysctl, por exemplo); u e Carregar/retirar mdulos do ncleo; o u Mudar conguraes de rede (interfaces e rotas); co Montar/desmontar sistemas de arquivos; Criar novos devices; Realizar modicaes de conguraes do ncleo em tempo de co co u execuo; ca Acessar recursos que no pertenam ao seu prprio dom a c o nio.
1 de setembro de 2008
137 / 166
FreeBSD Jails
FreeBSD Jails
Virtualizao parcial ca
Demais recursos
So preservadas, ou melhor, podem ser usadas diretamente demandado a um custo computacional muito baixo, mas exige que todos os sistemas convidados executem sobre o mesmo ncleo. u
1 de setembro de 2008
138 / 166
Xen
Xen
Hipervisor nativo
Interface x86
Paravirtualizada, permitindo executar sistemas operacionais como Linux e Windows especialmente modicados para executar sobre o hipervisor.
Verses recentes o
Utilizam o suporte de virtualizao dispon nos processadores (sistemas ca vel convidados no sofrem modicaes, mas perdem desempenho). a co
1 de setembro de 2008
139 / 166
Xen
Xen
Modicaes nos convidados co
O mecanismo de entrega de interrupes passa a usar um servio de co c eventos oferecido pelo hipervisor; o ncleo convidado deve registrar u um vetor de tratadores de excees junto ao hipervisor; co as operaes de entrada/sa de dispositivos so feitas atravs de co da a e uma interface simplicada, independente de dispositivo, que usa buers circulares de tipo produtor/consumidor; o ncleo convidado pode consultar diretamente as tabelas de u segmentos e pginas da memria usada por ele e por suas aplicaes, a o co mas as modicaes nas tabelas devem ser solicitadas ao hipervisor; co o ncleo convidado deve executar em um n de privilgio inferior u vel e ao do hipervisor; o ncleo convidado deve implementar uma funo de tratamento das u ca chamadas de sistema de suas aplicaes, para evitar que elas tenham co de passar pelo hipervisor antes de chegar ao ncleo convidado. u
Marcos Laureano e Carlos Maziero Virtualizao: Conceitos e Aplicaes em Segurana ca co c 1 de setembro de 2008 140 / 166
Xen
Xen
Drivers
Hipervisor
Deve dispor dos drivers adequados para acessar os dispositivos de hardware.
Ncleos convidados u
No precisam de drivers espec a cos, pois eles acessam dispositivos virtuais atravs de uma interface simplicada. e
1 de setembro de 2008
141 / 166
Xen
Xen
O hipervisor Xen
1 de setembro de 2008
142 / 166
User-Mode Linux
User-Mode Linux
Ambiente Linux
Ncleo do Linux u
Portado de forma a poder executar sobre si mesmo, como um processo do prprio Linux. o
Hipervisor convidado
User space separado e isolado na forma de uma mquina virtual. a
Hardware
Os dispositivos de hardware so virtualizados a partir dos servios a c providos pelo sistema hospedeiro.
1 de setembro de 2008
143 / 166
User-Mode Linux
User-Mode Linux
Utilizao ca
Custo
Processamento e memria menor que aquele imposto por outros o hipervisores mais complexos.
1 de setembro de 2008
144 / 166
User-Mode Linux
User-Mode Linux
Connamento
Processos em execuo na mquina virtual no tm acesso direto aos ca a a e recursos do sistema hospedeiro.
Chamadas de Sistema
Implementada pelo uso de uma thread de rastreamento e interceptadas pelo ptrace para garantir a distino de privilgios e controle do contexto ca e do sistema convidado.
1 de setembro de 2008
145 / 166
QEMU
QEMU
Virtualizao completa ca
Sistema Hospedeiro
No requer alteraes ou otimizaes, pois utiliza a traduo dinmica a co co ca a para prover a virtualizao. ca
Hipervisor recursivo
E poss chamar o QEMU a partir do prprio QEMU vel o
1 de setembro de 2008
146 / 166
QEMU
QEMU
Dois modos de operao ca
1 de setembro de 2008
147 / 166
QEMU
QEMU
MMU Memory Management Unit
Em modo usurio a
Simula uma MMU simplicada atravs da chamada de sistema mmap do e sistema hospedeiro.
1 de setembro de 2008
148 / 166
QEMU
QEMU
KQEMU ou QEMU Accelerator
Mdulo o
Instalado no ncleo do sistema hospedeiro que possibilita ao hipervisor u obter um timo desempenho. o
Chamadas de sistemas
Emitidas pelos processos convidados so executadas diretamente sobre o a sistema hospedeiro (no ocorre interpretao). a ca
1 de setembro de 2008
149 / 166
QEMU
QEMU
KQEMU ou QEMU Accelerator
Processos convidados
Passam a executar diretamente no modo usurio do sistema hospedeiro. a
1 de setembro de 2008
150 / 166
QEMU
QEMU
VirtualBox
Mquina virtual a
Constru sobre o hipervisor QEMU. do
Hipervisor convidado
Similar ao VMware Workstation em muitos aspectos.
1 de setembro de 2008
151 / 166
Valgrind
Valgrind
Ferramenta de Depurao ca
Hipervisor de aplicao ca
Virtualiza o processador atravs de tcnicas de traduo dinmica. e e ca a Traduz o cdigo executvel do mesmo para um formato interno. o a
1 de setembro de 2008
152 / 166
Valgrind
Valgrind
Ferramenta de Depurao ca
Aps a converso o a
O cdigo instrumentado, atravs da insero de instrues para o e e ca co registrar e vericar operaes. co
Processador virtual
Execuo do cdigo, at 50 vezes mais lento que o cdigo original. ca o e o
1 de setembro de 2008
153 / 166
Linguagem de programao ca
Baseada em mquina virtual. a
Cdigo fonte o
E compilado em um cdigo binrio independente de plataforma o a (bytecode).
bytecode Java
No corresponde a instrues de nenhum processador real. a co
1 de setembro de 2008
154 / 166
Portabilidade
Para que uma aplicao Java possa executar sobre uma determinada ca plataforma, basta que a mquina virtual Java esteja dispon a vel.
Navegador Web
Permite que cdigo Java seja associado a pginas Web, na forma de o a pequenas aplicaes denominadas applets. co
1 de setembro de 2008
155 / 166
1 de setembro de 2008
156 / 166
UCSD Pascal
Primeiras experincias de execuo de aplicaes sobre mquinas e ca co a abstratas (dcada de 1970). e
Outros exemplos
C#, Python, Perl, Lua e Ruby
.NET da Microsoft
Cdigo fonte C# compilado para o formato CIL (Common Intermediate o Language) e executado sobre a mquina virtual CLR (Common Language a Runtime).
1 de setembro de 2008
157 / 166
Perspectivas
Sumrio a
Introduo ca Mquinas virtuais a Virtualizao e segurana ca c Exemplos de Mquinas Virtuais a Perspectivas Dvidas u
1 de setembro de 2008
158 / 166
Perspectivas
Pesquisas em andamento
Permitiro utilizar os melhores recursos das mais variadas plataformas a operacionais sem a necessidade de investir em equipamentos espec cos.
1 de setembro de 2008
159 / 166
Perspectivas
Aprimoramento
Questes de segurana, mobilidade e desempenho dos hipervisores. o c
1 de setembro de 2008
160 / 166
Perspectivas
Pesquisas: Processadores
AMD e Intel, j disponibilizaram tecnologias; a Virtualizao sobre a plataforma x86 ocorra de forma mais natural e ca tranqila. u Estas tecnologias vm simplicando o desenvolvimento dos novos e hipervisores.
1 de setembro de 2008
161 / 166
Perspectivas
Pesquisas: Memria o
Vrias tcnicas tm permitido que a virtualizao da memria seja a e e ca o mais eciente. Pesquisas futuras devem levar aos sistemas operacionais convidados a gerenciar a memria juntamente com o hipervisor (gerncia o e cooperativa).
1 de setembro de 2008
162 / 166
Perspectivas
Pesquisas: Entrada/sa da
Os dispositivos devero ser projetados para fornecer suporte ` a a virtualizao com alto desempenho. ca O prprio dispositivo dever suportar a multiplexao, de forma a o a ca permitir o acesso simultneo por vrios sistemas virtuais. a a A responsabilidade pelo acesso aos dispositivos dever passar do a hipervisor para o sistema convidado.
1 de setembro de 2008
163 / 166
Perspectivas
Pesquisas em segurana c
Garantir que as propriedades bsicas dos hipervisores sejam providas a corretamente pelas implementaes; co Construir mtodos conveis para descobrir a presena de rootkits e a c baseados em mquinas virtuais; a De forma contraditria, criar tcnicas para impedir a deteco de o e ca ambiente convidados, que sero uteis na construo de honeypots a ca virtuais; Trazer para o desktop o conceito de sandboxing (execuo isolada ca de aplicaes). co
1 de setembro de 2008
164 / 166
Dvidas u
Sumrio a
Introduo ca Mquinas virtuais a Virtualizao e segurana ca c Exemplos de Mquinas Virtuais a Perspectivas Dvidas u
1 de setembro de 2008
165 / 166
Dvidas u
Contato
1 de setembro de 2008
166 / 166