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