Virtualiza˘c~ao: Conceitos e Aplica˘c~oes em...

of 166/166
Virtualiza¸c˜ ao: Conceitos e Aplica¸c˜ oes em Seguran¸ca Marcos Laureano e Carlos Maziero Centro Universit´ ario Franciscano – Unifae Pont´ ıficia Universidade Cat´ olica do Paran´ a ProgramadeP´os-Gradua¸c˜ ao em Inform´ atica 1 de setembro de 2008 Marcos Laureano e Carlos Maziero Virtualiza¸ ao: Conceitos e Aplica¸ oes em Seguran¸ ca 1 de setembro de 2008 1 / 166
  • date post

    21-Jan-2019
  • Category

    Documents

  • view

    222
  • download

    0

Embed Size (px)

Transcript of Virtualiza˘c~ao: Conceitos e Aplica˘c~oes em...

Virtualizacao: Conceitos e Aplicacoes emSeguranca

Marcos Laureano e Carlos Maziero

Centro Universitario Franciscano UnifaePontficia Universidade Catolica do Parana

Programa de Pos-Graduacao em Informatica

1 de setembro de 2008

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 1 / 166

Sumario

Introducao

Maquinas virtuais

Virtualizacao e seguranca

Exemplos de Maquinas Virtuais

Perspectivas

Duvidas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 2 / 166

Introducao

Sumario

Introducao

Maquinas virtuais

Virtualizacao e seguranca

Exemplos de Maquinas Virtuais

Perspectivas

Duvidas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 3 / 166

Introducao Origem Maquinas Virtuais

Origem Maquinas VirtuaisMotivacao

Decada de 60Tendencia dominante nos sistemas naquela epoca era fornecer a cadausuario um ambiente mono-usuario completo.

Decada de 80Com a popularizacao de plataformas de hardware baratas como o PC, avirtualizacao perdeu importancia.

Decada de 90Surgimento da linguagem Java motiva novas pesquisas com virtualizacao.O VMware torna-se uma alternativa de virtualizacao nos limitadosprocessadores da epoca.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 4 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisMaquina Real

I Formada por varios componentes fsicos que fornecem operacoespara o sistema operacional e suas aplicacoes.

I Formado basicamente por tres componentes:I Hardware.I Sistema Operacional.I Aplicacoes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 5 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisSistema de Computadores

HardwareSeu papel e executar as operacoes solicitadas pelas aplicacoes atraves dosistema operacional.

Sistema OperacionalRecebe as solicitacoes das operacoes (por meio das chamadas desistema) e controla o acesso ao hardware.

AplicacoesFornece funcionalidades para o usuario.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 6 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisNveis de Abstracao

Sistemas ConvencionaisSao caracterizados por nveis de abstracao crescentes e interfaces bemdefinidas entre eles.

Principal objetivo de um Sistema OperacionalOferecer uma visao abstrata, de alto nvel, dos recursos de hardware, quesejam mais simples de usar e menos dependente das tecnologiassubjacentes.

Em outras palavrasCriar uma interface homogenea para uso.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 7 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisNveis de abstracao em um sub-sistema de disco

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 8 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisInterfaces existentes entre componentes

I Conjunto de instrucoes (ISA Instruction Set Architecture)I Instrucoes de usuario (User ISA)I Instrucoes de sistema (System ISA)

I Chamadas de sistema (syscalls)

I Chamadas de bibliotecas (libcalls)

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 9 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisISA Instruction Set Architecture

ISAE a interface basica entre o hardware e o software.

User ISACompreende as instrucoes do processador e demais itens de hardwareacessveis aos programas do usuario (modo nao-privilegiado).

System ISACompreende as instrucoes do processador e demais itens de hardware,unicamente acessveis ao nucleo do sistema operacional (modoprivilegiado).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 10 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisSyscalls

I Conjunto de operacoes oferecidas pelo nucleo do sistema operacionalaos processos dos usuarios.

I Permitem um acesso controlado das aplicacoes:I Dispositivos perifericos;I Memoria;I Instrucoes privilegiadas do processador.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 11 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisLibcalls

I Oferecem um grande numero de funcoes para simplificar aconstrucao de programas.

I Chamadas de biblioteca encapsulam chamadas do sistemaoperacional (uso mais simples).

I Interface propria, denominada Interface de Programacao deAplicacoes (API Application Programming Interface):

I LibC do UNIX;I GTK+ (Gimp ToolKit);I SDL (Simple DirectMedia Layer).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 12 / 166

Introducao Arquitetura dos sistemas computacionais

Arquitetura dos sistemas computacionaisVisao conceitual da arquitetura de um sistema computacional

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 13 / 166

Introducao Compatibilidade entre interfaces de sistema

Compatibilidade entre interfaces de sistemaCompatibilidade

Programas e BibliotecasPara garantir a compatibilidade em uma determinada plataforma, enecessario que tenham sido compilados para ela, respeitando User ISA eSyscalls.

User ISA + syscallsE denominada Interface Binaria de Aplicacao (ABI Application BinaryInterface).

Sistema OperacionalSo podera executar sobre uma plataforma de hardware se tiver sidoconstrudo e compilado de forma a respeitar sua interface ISA(User/System ISA)

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 14 / 166

Introducao Compatibilidade entre interfaces de sistema

Compatibilidade entre interfaces de sistemaInterfaces de sistema ISA e ABI

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 15 / 166

Introducao Compatibilidade entre interfaces de sistema

Compatibilidade entre interfaces de sistemaFlexibilidade das interfaces

ISA e ABIInterfaces normalmente fixas ou pouco flexveis.

Diversos fabricantesIncompatibilidade entre diversos hardwares, sistemas operacionais eaplicacoes.

ConsequenciaUm sistema operacional somente funciona para o hardware projetado(ISA). Uma biblioteca so funciona para a ABI para qual foi projetada. Asaplicacoes devem respeitar o conjunto de ABIs/APIs pre-definidas.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 16 / 166

Introducao Compatibilidade entre interfaces de sistema

Compatibilidade entre interfaces de sistemaProblemas de compatibilidade entre interfaces

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 17 / 166

Introducao Compatibilidade entre interfaces de sistema

Compatibilidade entre interfaces de sistemaBaixa flexibilidade Problemas!

Baixa portabilidadeA rigidez das interfaces de sistema atuais dificulta a conectividade e amobilidade.

Barreiras de inovacaoDificuldade de interacao. Necessidade de manter compatibilidade com olegado (evolucao prejudicada).

Otimizacoes inter-componentesA rigidez das interfaces nao permitem interacao entre componentesdiferentes (isolamento).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 18 / 166

Introducao Compatibilidade entre interfaces de sistema

Compatibilidade entre interfaces de sistemaCompatibilidade entre sistemas

VirtualizacaoCamada, construda em software, que possibilita que servicos projetadospara uma interface possam executar sob outra.

Acomplamento entre interfaces distintasUm programa desenvolvido para a plataforma A possa executar sobreuma plataforma distinta B.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 19 / 166

Introducao Compatibilidade entre interfaces de sistema

Compatibilidade entre interfaces de sistemaAcoplamento entre interfaces distintas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 20 / 166

Maquinas virtuais

Sumario

Introducao

Maquinas virtuais

Virtualizacao e seguranca

Exemplos de Maquinas Virtuais

Perspectivas

Duvidas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 21 / 166

Maquinas virtuais Introducao

IntroducaoConceitos

Camada de virtualizacaoUtilizando os servicos de uma interface de sistema, e possvel construiroutra interface distinta.Esta camada e denominada hipervisor ou monitor de maquina virtual.

Maquina VirtualE a nova interface de sistema, vista atraves dessa camada devirtualizacao.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 22 / 166

Maquinas virtuais Introducao

IntroducaoUma maquina virtual

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 23 / 166

Maquinas virtuais Introducao

IntroducaoComponentes de um ambiente de maquina virtual

Sistema real, nativo ou hospedeiro (host system)Contem os recursos reais de hardware e software do sistema.

Sistema virtual ou sistema convidado (guest system)Que executa sobre o sistema virtualizado.Varios sistemas virtuais podem coexistir, executando simultaneamentesobre o mesmo sistema real.

Camada de virtualizacao, hipervisor, ou monitor (VMM Virtual Machine Monitor)Constroi as interfaces virtuais a partir da interface real.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 24 / 166

Maquinas virtuais Introducao

IntroducaoDefinicao de maquina virtual

OriginalmenteUma maquina virtual era definida como uma copia eficiente, isolada eprotegida de uma maquina real.

Definicao nos 1960-1970Uma abstracao de software que gerencia um sistema fsico (maquinareal).

Com o passar do anosO termo maquina virtual evoluiu e englobou um grande numero deabstracoes, como por exemplo a Java Virtual Machine (JVM), que naovirtualiza um sistema real.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 25 / 166

Maquinas virtuais Introducao

IntroducaoComplexidade

Arquitetura do hospedeiro diferente do convidadoE necessario usar as instrucoes da maquina real para simular as instrucoesda maquina virtual.

Recursos de hardware virtuaisE necessario mapear sobre os recursos existentes na maquina real.

Chamadas de SistemaDevem ser mapeadas em chamadas equivalentes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 26 / 166

Maquinas virtuais Introducao

IntroducaoPossibilidades de virtualizacao

Virtualizacao completaUm sistema operacional convidado e suasaplicacoes, desenvolvidas para uma plataforma dehardware A, sao executadas sobre uma plataformade hardware distinta B.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 27 / 166

Maquinas virtuais Introducao

IntroducaoPossibilidades de virtualizacao

Emulacao do sistema operacionalAs aplicacoes de um sistema operacional X saoexecutadas sobre outro sistema operacional Y , namesma plataforma de hardware.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 28 / 166

Maquinas virtuais Introducao

IntroducaoPossibilidades de virtualizacao

Traducao dinamicaAs instrucoes de maquina das aplicacoes saotraduzidas durante a execucao em outras instrucoesmais eficientes para a mesma plataforma.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 29 / 166

Maquinas virtuais Introducao

IntroducaoPossibilidades de virtualizacao

Replicacao de hardwareSao criadas varias instancias virtuais de um mesmohardware real, cada uma executando seu propriosistema operacional convidado e suas respectivasaplicacoes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 30 / 166

Maquinas virtuais Introducao

IntroducaoPossibilidades de virtualizacao

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 31 / 166

Maquinas virtuais Abstracao versus virtualizacao

Abstracao versus virtualizacao

Abstracao de recursosConsiste em fornecer uma interface de acesso homogenea e simplificadaao recursos do sistema.

VirtualizacaoConsiste em criar novas interfaces a partir das interfaces existentes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 32 / 166

Maquinas virtuais Abstracao versus virtualizacao

Virtualizacao versus abstracao de recursos

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 33 / 166

Maquinas virtuais Abstracao versus virtualizacao

Abstracao versus virtualizacaoAbstracao versus virtualizacao de um disco rgido

Detalhes de baixo nvelNa virtualizacao, os detalhes de baixo nvel da plataforma real nao saonecessariamente ocultos, como ocorre na abstracao de recursos.

AbstracaoProve as aplicacoes o conceito de arquivo, sobre o qual estas podemexecutar operacoes simples como read ou write.

VirtualizacaoFornece para a camada superior apenas um disco virtual, construdo apartir de um arquivo do sistema operacional real.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 34 / 166

Maquinas virtuais Abstracao versus virtualizacao

Abstracao versus virtualizacaoAbstracao versus virtualizacao de um disco rgido

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 35 / 166

Maquinas virtuais Propriedades dos hipervisores

Propriedades dos hipervisoresRequisitos basicos de um hipervisor

I Prover um ambiente de execucao aos programas essencialmenteidentico ao da maquina real;

I Programas executando sobre uma maquina virtual devem apresentar,no pior caso, leves degradacoes de desempenho;

I Deve ter controle completo sobre os recursos do sistema real (osistema hospedeiro).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 36 / 166

Maquinas virtuais Propriedades dos hipervisores

Propriedades dos hipervisoresPropriedades a serem satisfeitas por um hipervisor ideal

EquivalenciaUm hipervisor prove um ambiente de execucao quase identico ao damaquina real original.

Controle de recursosNenhum programa executando na maquina virtual deve possuir acesso arecursos que nao tenham sido explicitamente alocados a ele pelohipervisor.

EficienciaGrande parte das instrucoes do processador virtual deve ser executadadiretamente pelo processador da maquina real, sem intervencao dohipervisor. Outras instrucoes devem ser interpretadas pelo hipervisor.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 37 / 166

Maquinas virtuais Propriedades dos hipervisores

Propriedades dos hipervisoresOutras propriedades importantes

IsolamentoGarante que um software em execucao em uma maquina virtual naopossa ver, influenciar ou modificar outro software em execucao nohipervisor ou em outra maquina virtual.

GerenciabilidadeAdministracao de diversas instancias de maquinas virtuais sobre ummesmo supervisor e simplificada e centralizada.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 38 / 166

Maquinas virtuais Propriedades dos hipervisores

Propriedades dos hipervisoresOutras propriedades importantes

InspecaoO hipervisor tem acesso e controle sobre todas as informacoes do estadointerno da maquina virtual, como registradores do processador, conteudode memoria, eventos etc.

EncapsulamentoA inspecao possibilita salvar checkpoints de uma maquina virtual pararealizar rollback, analises post-mortem ou migracao de maquinas virtuais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 39 / 166

Maquinas virtuais Propriedades dos hipervisores

Propriedades dos hipervisoresOutras propriedades importantes

RecursividadePossibilidade de executar um hipervisordentro de uma maquina virtual, produzindoum novo nvel de maquinas virtuais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 40 / 166

Maquinas virtuais Suporte de Hardware

Suporte de HardwareTeorema de Popek e Goldberg

Para qualquer computador convencional de terceira geracao,um hipervisor pode ser construdo se o conjunto de instrucoessensveis daquele computador for um sub-conjunto de seuconjunto de instrucoes privilegiadas.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 41 / 166

Maquinas virtuais Suporte de Hardware

Suporte de HardwareConceitos (entendimento do teorema)

Computador convencional de terceira geracaoQualquer sistema de computacao convencional seguindo a arquitetura deVon Neumann, que suporte memoria virtual e dois modos de operacao:modo usuario e modo privilegiado.

Instrucoes sensveisSao aquelas que podem consultar ou alterar o status do processador, ouseja, os registradores que armazenam o status atual da execucao namaquina real.

Instrucoes privilegiadasAcessveis somente por meio de codigos executando em nvel privilegiado.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 42 / 166

Maquinas virtuais Suporte de Hardware

Suporte de HardwareConstrucao de hipervisores eficientes

MainframesDispoe de uma funcionalidade chamada execucao direta, que permite auma maquina virtual acessar nativamente o hardware para execucao deinstrucoes.

Micro-processadores de mercadoSuporte parcial. Processadores Intel Pentium IV (e anteriores) possui 17instrucoes sensveis que podem ser executadas em modo usuario semgerar excecoes (violacao do teorema).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 43 / 166

Maquinas virtuais Suporte de Hardware

Suporte de HardwareProcessador Pentium IV (e anteriores)

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 44 / 166

Maquinas virtuais Suporte de Hardware

Suporte de HardwareNovos Processadores

IntelTecnologia IVT (Intel Virtualization Technology).

AMDAMD-V (AMD Virtualization).

Dois modos possveis de operacao do processadorModos root e non-root.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 45 / 166

Maquinas virtuais Suporte de Hardware

Suporte de HardwareModos de operacao

rootEquivale ao funcionamento de um processador convencional, e se destinaa execucao de um hipervisor.

non-rootSe destina a execucao de maquinas virtuais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 46 / 166

Maquinas virtuais Suporte de Hardware

Suporte de HardwareProcessador IVT

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 47 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisClassificacao de Maquinas Virtuais

I Tipo de suporte (processo ou sistemas convidados)

I Similaridade entre interfaces (ISA);

I Tipo de virtualizacao;

I De acordo com uso;

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 48 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisDuas grandes famlias

Maquinas virtuais de aplicacao (Process Virtual Machines)Ambientes de maquinas virtuais destinados a suportar apenas umprocesso ou aplicacao convidada especfica.

Maquinas virtuais de sistema (System Virtual Machines)Ambientes de maquinas virtuais construdos para suportar sistemasoperacionais convidados completos e suas aplicacoes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 49 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisMaquinas virtuais de aplicacao e de sistema

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 50 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisSimilaridade entre interfaces (ISA)

Interfaces equivalentesA interface virtual oferecida ao ambiente convidado reproduz a interfacede hardware do sistema real.

Interfaces distintasA interface virtual nao tem relacao com a interface de hardware dosistema real, ou seja, implementa um conjunto de instrucoes distinto, aser interpretado pelo hipervisor.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 51 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisDe acordo com o tipo de virtualizacao

Virtualizacao dohardwareExporta o sistema fsicocomo hardware abstrato(semelhante ao sistemaoriginal).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 52 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisDe acordo com o tipo de virtualizacao

Virtualizacao do sistemaoperacionalExporta um sistema operacionalcomo abstracao de um sistemaespecfico.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 53 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisDe acordo com o tipo de virtualizacao

Virtualizacao de linguagens deprogramacaoCria uma aplicacao no topo dosistema operacional (computadoresfictcios projetados para umafinalidade especfica).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 54 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisEm acordo com o uso

Abstracao da ISAEmulacao completa da ISA. Instrucoes do sistema convidado traduzidaspara instrucoes 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) especfica.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 55 / 166

Maquinas virtuais Tipos de Maquinas Virtuais

Tipos de Maquinas VirtuaisEm acordo com o uso

Nvel de aplicacao ou virtualizacao de linguagens deprogramacaoObtida por meio da abstracao de uma camada de execucao.Independencia de hardware.

User level library interface (biblioteca de interface para usuario)Abstracao do topo do sistema operacional, para que as aplicacoespossam executar em outra plataforma.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 56 / 166

Maquinas virtuais Maquinas Virtuais de Aplicacao

Maquinas Virtuais de AplicacaoFuncionamento

Process Virtual MachineSuporta a execucao de um processo ou aplicacao individual.

hipervisor + aplicacaoCriado sobre demanda e visto como um unico processo.

PortantoSubmetido as mesmas condicoes e restricoes que os demais processosnativos.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 57 / 166

Maquinas virtuais Maquinas Virtuais de Aplicacao

Maquinas Virtuais de AplicacaoTipos

Sistemas operacionais multi-tarefasSuportam varios processos simultaneos. Cada processo recebe umprocessador virtual (simulado atraves de fatias de tempo do processadorreal), uma memoria virtual (atraves do espaco de enderecos mapeadopara aquele processo) e recursos fsicos (acessveis atraves de chamadasde sistema).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 58 / 166

Maquinas virtuais Maquinas Virtuais de Aplicacao

Maquinas Virtuais de AplicacaoTipos

Tradutores dinamicosAnalisa e otimiza um codigo executavel. Nao muda o conjunto deinstrucoes da maquina real usado pelo codigo, apenas reorganiza asinstrucoes de forma a acelerar sua execucao.

Depuradores de memoriaAs instrucoes do programa que manipulam acessos a memoria saoexecutadas de forma controlada, a fim de encontrar possveis erros.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 59 / 166

Maquinas virtuais Maquinas Virtuais de Aplicacao

Maquinas Virtuais de AplicacaoPopularidade

Interface binaria de aplicacao (ABI)Requerida pela aplicacao e diferente da oferecida pela maquina real.

DiferencasChamadas do sistema operacional ou as instrucoes de maquinadisponveis a aplicacao (user ISA).

Traducao dinamicaDurante a execucao das acoes requeridas pela aplicacao.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 60 / 166

Maquinas virtuais Maquinas Virtuais de Aplicacao

Maquinas Virtuais de AplicacaoDiferencas nas chamadas de sistema

HipervisorPrecisa apenas mapear as chamadasde sistema usadas pela aplicacaosobre as chamadas oferecidas pelosistema operacional da maquina real.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 61 / 166

Maquinas virtuais Maquinas Virtuais de Aplicacao

Maquinas Virtuais de AplicacaoHardware abstrato

Interface ISAUtilizada pela aplicacao nao corresponde a nenhum hardware existente.

Maquina abstrataHardware simplificado para execucao de aplicacoes (independencia dehardware).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 62 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaPrimeira abordagem para construcao de hipervisores

Maquina virtualSuporta um ou mais sistemas operacionais convidados, com suasrespectivas aplicacoes, que executam de forma isolada e independente.

Sistema convidadoTem a ilusao de executar sozinho sobre uma plataforma de hardwarepropria.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 63 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaFortemente isolados

InteracoesGeralmente atraves dos mecanismos de rede, como se estivessem emmaquinas fisicamente separadas.

Compartilhamento de recursosProvido pelo hipervisor. Exemplo: diretorios compartilhados no sistemade arquivos real, que podem ser acessados pelas maquinas virtuais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 64 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaO hipervisor

ISA virtualFornecido aos sistemas operacionais convidados.

Recursos virtualizadosCada sistema operacional convidado tem um conjunto de recursosvirtuais proprio, construdo a partir dos recursos fsicos existentes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 65 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaTipos de maquinas virtuais de sistema

Hipervisores nativos (ou de tipo I)O hipervisor executa diretamente sobre o hardwareda maquina real, sem um sistema operacionalsubjacente.Multiplexar os recursos de hardware (memoria,discos, interfaces de rede, etc) em recursosvirtualizados.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 66 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaTipos de maquinas virtuais de sistema

Hipervisores convidados (ou de tipo II)O hipervisor executa como um processo normalsobre um sistema operacional nativo subjacente.Utiliza os recursos oferecidos pelo sistemaoperacional nativo para oferecer recursos virtuais

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 67 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaArquiteturas de maquinas virtuais de sistema

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 68 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaVantagens

Hipervisores convidadosSao mais flexveis, pois podem ser facilmente instalados/removidos emmaquinas com sistemas operacionais previamente instalados.

Hipervisor nativoTem melhor desempenho que um hipervisor convidado, pois acessadiretamente o hardware real.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 69 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaNvel de virtualizacao oferecido pelo hipervisor

Virtualizacao de recursosA interface ISA de usuario e mantida, apenas asinstrucoes privilegiadas e os recursos (discos, etc)sao virtualizados.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 70 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaNvel de virtualizacao oferecido pelo hipervisor

Virtualizacao completaToda a interface do hardware e virtualizada,incluindo todas as instrucoes do processador e osdispositivos de hardware.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 71 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaNveis de virtualizacao: virtualizacao de recursos e virtualizacao completa

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 72 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaCategoria especial de hipervisor nativo

hipervisores embutidos nohardware (codesignedhypervisors)

Virtualizacao completa, onde ohipervisor e visto como parteintegrante do hardware da maquinareal, e implementa a interface desistema (ISA).As instrucoes do processador realsomente esta acessvel ao hipervisor.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 73 / 166

Maquinas virtuais Maquinas Virtuais de Sistema

Maquinas Virtuais de SistemaClassificacao de maquinas virtuais de sistema

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 74 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacao

I Virtualizacao total (full virtualization); normalmente associada a

I Traducao dinamica (dynamic translation);

I Paravirtualizacao (paravirtualization);

I Tecnicas complementares para melhoria de desempenho.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 75 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoVirtualizacao total

I Uma estrutura completa de hardware e virtualizada;

I O sistema convidado nao precisa sofrer qualquer tipo de alteracao;

I Monitor mais complexo;

I Compatibilidade garantida;

I Custo de virtualizacao maior.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 76 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoTraducao dinamica ou recompilacao dinamica

dynamic translation ou dynamic recompilationHipervisor analisa, reorganiza e traduz as sequencias de instrucoesemitidas pelo sistema convidado em novas sequencias de instrucoes.

Objetivos

I Adaptar as instrucoes geradas pelo sistema convidado a interfaceISA do sistema real;

I Detectar e tratar instrucoes sensveis nao-privilegiadas (que naogeram interrupcoes);

I Analisar, reorganizar e otimizar as sequencias de instrucoes geradaspelo sistema convidado (desempenho).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 77 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoUtilizacao em varios hipervisores

Maquina virtual JavaRecebe o nome de JIT Just-in-Time Bytecode Compiler

Processadores Intel/AMD 32 bitsSem suporte adequado a virtualizacao. O codigo convidado a serexecutado e analisado em busca de instrucoes sensveis, que saosubstitudas por chamadas a rotinas apropriadas dentro do hipervisor.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 78 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoOs passos da recompilacao dinamica

1. Desmontagem (disassembling);

2. Geracao de codigo intermediario (desnecessario se as instrucoes doconvidado forem as mesmas do sistema real);

3. Otimizacao;

4. Codificacao;

5. Caching (evitar traducao de codigos repetidos);

6. Execucao.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 79 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoParavirtualizacao

I Denali (2002) e Xen (2003);

I Modificacoes na interface de sistema do hardware virtual (systemISA);

I O sistema convidado sofre alteracoes (adaptado ao hipervisor);

I Menor portabilidade;

I Maior performance.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 80 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoRelacao entre a virtualizacao total e a paravirtualizacao

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 81 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoCompreendendo as diferencas

Virtualizacao totalHipervisor reserva um espaco de memoria separado para cada sistemaconvidado; no entanto, todos os sistemas convidados veem suasrespectivas areas de memoria iniciando no endereco 0000H .

ParavirtualizacaoHipervisor informa ao sistema convidado qual o espaco de memoriadisponvel. O acesso a memoria fornecida ocorre sem a interferencia dohipervisor

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 82 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoParavirtualizacao:hipervisores nativos visao da memoria por um sistema convidado

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 83 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoMelhoria de desempenho

Hipervisores nativos e convidadosNa pratica raramente sao usados em sua forma conceitual.

DesempenhoOtimizacoes sao inseridas para melhorar o desempenho das aplicacoesnos sistemas convidados.

Pontos cruciaisSao as operacoes de entrada/sada e as principais otimizacoes dizemrespeito as estas operacoes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 84 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoOtimizacoes

Hipervisores nativosO sistema convidado acessa diretamente ohardware

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 85 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoOtimizacoes em hipervisores convidados

1 abordagemO sistema convidado acessa diretamente osistema nativo.

2 abordagemO sistema convidado acessa diretamente ohardware (device driver).

3 abordagemO hipervisor acessa diretamente o hardware(device driver).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 86 / 166

Maquinas virtuais Estrategias de Virtualizacao

As estrategias de virtualizacaoOtimizacoes em sistemas de maquinas virtuais

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 87 / 166

Maquinas virtuais Estrategias de Virtualizacao

Desempenho de hipervisores nativos e convidados

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 88 / 166

Virtualizacao e seguranca

Sumario

Introducao

Maquinas virtuais

Virtualizacao e seguranca

Exemplos de Maquinas Virtuais

Perspectivas

Duvidas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 89 / 166

Virtualizacao e seguranca

Virtualizacao e segurancaUtilizacao de Maquinas Virtuais

Consolidacao de ServidoresReducao de custos em hardware, software e gerencia do parquetecnologico.

SegurancaVarios trabalhos de pesquisa e desenvolvimento comprovaram a eficaciada utilizacao de maquinas virtuais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 90 / 166

Virtualizacao e seguranca

Virtualizacao e segurancaCriterios basicos de seguranca

ConfidencialidadeInformacao somente esta visvel a sujeitos (usuarios e/ou processos)explicitamente autorizados.

DisponibilidadeInformacao deve estar prontamente disponvel sempre que for necessaria.

IntegridadeInformacao somente pode ser modificada por sujeitos explicitamenteautorizados e de formas claramente definidas.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 91 / 166

Virtualizacao e seguranca

Virtualizacao e segurancaOutros criterios de seguranca

AutenticidadeGarante que a informacao ou o usuario da mesma e autentico, ou seja,garante que a entidade envolvida e quem afirma ser.

Nao-repudioNao e possvel negar a existencia ou autoria de uma operacao que criou,modificou ou destruiu uma informacao.

AuditoriaImplica no registro das acoes realizadas no sistema, identificando ossujeitos e recursos envolvidos, as operacoes realizadas, seus horarios,locais e outros dados relevantes.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 92 / 166

Virtualizacao e seguranca Aplicacoes da virtualizacao em seguranca

Aplicacoes da virtualizacao em segurancaPropriedades de virtualizacao aplicadas em seguranca

I Isolamento

I Controle de Recursos

I Inspecao

I Encapsulamento

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 93 / 166

Virtualizacao e seguranca Aplicacoes da virtualizacao em seguranca

Aplicacoes da virtualizacao em segurancaIsolamento

ConfidencialidadeAo manter os ambientes virtuais isolados, o hipervisor prove aconfidencialidade de dados entre os sistemas convidados.

IntegridadeAplicacoes convidadas nao alteram dados de outras aplicacoes.

DisponibilidadePermite a contencao de erros de software no ambito da maquina virtual.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 94 / 166

Virtualizacao e seguranca Aplicacoes da virtualizacao em seguranca

Aplicacoes da virtualizacao em segurancaControle de Recursos

IntegridadePossibilidade de implementar mecanismos para verificar a consistencia deacessos e de seus resultados.

AuditoriaAcompanhamento e registro das atividades do sistema convidado.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 95 / 166

Virtualizacao e seguranca Aplicacoes da virtualizacao em seguranca

Aplicacoes da virtualizacao em segurancaInspecao

IntegridadeA visao privilegiada sobre o estado interno do sistema convidado permiteextrair informacoes, , permitindo implementar externamente mecanismoscomo antivrus e detectores de intrusao.

Baloes de ensaioInspecao aliada ao isolamento torna as maquinas virtuais um ambienteideal para estudo de aplicacoes maliciosas.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 96 / 166

Virtualizacao e seguranca Aplicacoes da virtualizacao em seguranca

Aplicacoes da virtualizacao em segurancaEncapsulamento

Integridade e DisponibilidadeA possibilidade de salvar/restaurar o estado do sistema convidado tornaviavel a implementacao de mecanismos de rollback.

DisponibilidadeMigracao on the fly de maquinas virtuais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 97 / 166

Virtualizacao e seguranca Aplicacoes da virtualizacao em seguranca

Aplicacao de Maquinas Virtuais em Seguranca

I Confinamento de aplicacoes;

I Deteccao de intrusao;

I Analise de programas maliciosos;

I Honeypots e honeynets;

I Rootkits;

I Consolidacao de servidores, planos de contingencia e migracao;

I Tolerancia a faltas.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 98 / 166

Virtualizacao e seguranca Confinamento de Aplicacoes

Confinamento de Aplicacoes

Em um sistema operacionalCada processo (servico) tem acesso a um conjunto de recursos parafuncionar.

Comprometimento da segurancaPor servicos mal configurados, erros nas regras de controle de acesso,vulnerabilidades no servico ou no sistema operacional.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 99 / 166

Virtualizacao e seguranca Confinamento de Aplicacoes

Confinamento de AplicacoesAlternativas

Ferramentas tradicionais de segurancaTrabalho de configuracao significativo. Essas ferramentas tambem saoprocessos, consumindo recursos e sendo passveis de falhas ou subversao

Maquina isolada (dedicada)Solucao cara.

Maquina virtualIsolamento da aplicacao sensvel do restante do sistema hospedeiro.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 100 / 166

Virtualizacao e seguranca Confinamento de Aplicacoes

Confinamento de AplicacoesIsolamento

Hipervisor convencionalPode ser usado para confinar uma aplicacao.

Servidores virtuaisTecnicas simplificadas e com baixo custo computacional.

Domnio virtualRecebe uma parcela dos recursos do sistema.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 101 / 166

Virtualizacao e seguranca Confinamento de Aplicacoes

Confinamento de AplicacoesServidores virtuais

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 102 / 166

Virtualizacao e seguranca Confinamento de Aplicacoes

Confinamento de AplicacoesImplementacoes disponveis

chrootTecnica mais antiga.

JailsAlternativa no sistema FreeBSD.

ZonesAlternativa no sistema Solaris.

Ambiente LinuxSistemas Virtuozzo/OpenVZ e Vservers/FreeVPS.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 103 / 166

Virtualizacao e seguranca Deteccao de intrusao

Deteccao de intrusaoIDS Intrusion Detection Systems

ObjetivoMonitorar uma rede ou sistema computacional, buscando detectarataques ou atividades maliciosas.

IDSs de maquina (HIDS Host-based IDS)Monitoram um computador para identificar atividades maliciosas locais.

IDSs de rede (NIDS Network-based IDS)Monitoram o trafego de uma rede, para identificar ataques aoscomputadores a ela conectados.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 104 / 166

Virtualizacao e seguranca Deteccao de intrusao

Deteccao de intrusaoLimitacoes

Sistemas NIDS

I Eficacia diminui na medida em que o trafego da rede aumenta.

I Protocolos de rede cifrados torna o conteudo dos pacotes opaco.

Sistemas HIDSE um processo local, que pode ser desativado ou subvertido por umataque bem-sucedido.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 105 / 166

Virtualizacao e seguranca Deteccao de intrusao

Deteccao de intrusaoMaquinas virtuais protegendo sistemas HIDS

Propriedade de inspecaoHipervisor pode extrair informacoes de um sistema convidado eencaminha-las para analise por um detector de intrusao executando nosistema nativo, ou em outra maquina virtual.

Propriedade de isolamentoAssegura a integridade das informacoes coletadas e do proprio detectorde intrusao.

Propriedade de controle de recursosPermite ao hipervisor intervir no sistema convidado, para interromperatividades consideradas suspeitas pelo detector de intrusao.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 106 / 166

Virtualizacao e seguranca Deteccao de intrusao

Deteccao de intrusaoPossibilidades com maquinas virtuais

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 107 / 166

Virtualizacao e seguranca Deteccao de intrusao

Deteccao de intrusaoProjetos

ReVirt

I Uma camada entre o hipervisor e o sistema hospedeiro recebe asmensagens de syslog do convidado e registro no hospedeiro.

I Realiza checkpoints regulares do sistema convidado.

VMI IDS Virtual Machine Introspection Intrusion DetectionSystem

I Hipervisor nativo, executando diretamente sobre o hardware.

I IDS executa em uma das maquinas virtuais e observa dados obtidosdas demais maquinas virtuais.

I Somente o estado global da maquina virtual e analisado (naoconsidera processos isolados).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 108 / 166

Virtualizacao e seguranca Deteccao de intrusao

Deteccao de intrusaoProjetos

VMIDS Virtual Machine Intrusion Detection System

I Hipervisor convidado modificado, que extrai informacoes do sistemaconvidado e as submete a um detector de intrusao executando nosistema hospedeiro.

I Analise e bloqueio de sequencias de chamadas de sistema.

I Cada processo convidado pode ser analisado separadamente.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 109 / 166

Virtualizacao e seguranca Analise de programas maliciosos

Analise de programas maliciososDois tipos de programas prejudiciais

IntencionaisProgramas escritos para se infiltrar em um sistema (sem conhecimento deseus usuarios).

Nao-intencionaisProgramas normais contendo erros de programacao ou de configuracaoque permitam a manipulacao nao-autorizada das informacoes de umsistema.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 110 / 166

Virtualizacao e seguranca Analise de programas maliciosos

Analise de programas maliciososClassificacao dos Programas Prejudiciais

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 111 / 166

Virtualizacao e seguranca Analise de programas maliciosos

Analise de programas maliciososClassificacao dos Programas Prejudiciais

VrusHabilidade de se auto-replicar e infectar partes do sistema operacional oudos programas de aplicacao

WormCapaz de propagar a si proprio em uma rede.

Cavalo de TroiaRealiza acoes escondidas visando roubar informacoes ou provocar danos.

RootkitOcultar a presenca de um invasor.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 112 / 166

Virtualizacao e seguranca Analise de programas maliciosos

Analise de programas maliciososObjetivos

Estatica

I Observacao do conteudo (codigo binario).

I Cada vez mais difcil de realizar, devido ao emprego de tecnicas dedissimulacao e cifragem.

DinamicaObservacao do comportamento.

I Objetivos;

I Metodos de propagacao;

I Evidencias que possam indicar sua presenca;

I Formas de deteccao e remocao.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 113 / 166

Virtualizacao e seguranca Analise de programas maliciosos

Analise de programas maliciososMaquinas virtuais para analise dinamica

I Nao e necessario dedicar uma maquina real limpa para cadaanalise;

I Salvar e restaurar estados da maquina virtual, permitindo desfazeros efeitos de uma intrusao;

I Comparacao entre os estados antes de depois da intrusao permitecompreender melhor seus efeitos no sistema;

I A verificacao de informacoes de baixo nvel atraves da capacidade deinspecao do hipervisor;

I A traducao dinamica de instrucoes pode ser usada para instrumentaro fluxo de instrucoes executado pelo malware.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 114 / 166

Virtualizacao e seguranca Analise de programas maliciosos

Analise de programas maliciososFerramentas e dificuldades

Anubis, CWSandbox e JoeboxAnalise dinamica automatizada de programas suspeitos.

Dificuldades

I Erros de projeto e/ou implementacao nos hipervisores;

I Virtualizacao de plataformas (Intel x86) e uma tarefa complexa;

I Possibilidade de detectar o ambiente virtual.

VaultVerificacao da integridade de um sistema por troca de mensagens(malwares convencionais).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 115 / 166

Virtualizacao e seguranca Honeypots e honeynets

Honeypots e honeynetsHoneypots

ArmadilhaServem para atrair e estudar o trafego de rede malicioso.

Baixa interatividadeInteracao com emulacao de servicos de redes.

Alta interatividadeExpoem sistemas e servicos reais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 116 / 166

Virtualizacao e seguranca Honeypots e honeynets

Honeypots e honeynetsHoneynets

Colecao de honeypotsAlta interatividade com diferentes sistemas operacionais, configuracoes eservicos de rede (custo implantacao e operacao).

Honeynet virtualE simplesmente uma honeynet construda com maquinas virtuais ao invesde computadores reais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 117 / 166

Virtualizacao e seguranca Honeypots e honeynets

Honeypots e honeynetsHoneynet virtual

Totalmente virtualTodos os computadores envolvidos sao maquinas virtuais.

HbridaComposta por honeypots virtuais e maquinas reais para as funcoes defirewall, deteccao de intrusao e logging.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 118 / 166

Virtualizacao e seguranca Rootkits

RootkitsComplexidade

Primeiros rootkitsConsistiam em substituir alguns comandos do sistema por versoes com amesma funcionalidade (ocultar atividades).

PosteriormenteRootkits mais elaborados que substituem bibliotecas do sistema com amesma finalidade.

VMBR VM-based rootkitsAvancos no suporte de hardware a virtualizacao possibilitaram odesenvolvimento de rootkits baseado em maquinas virtuais.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 119 / 166

Virtualizacao e seguranca Rootkits

RootkitsVMBR VM-based rootkits

Simplicidade conceitualAo ser instalado, ele se tornaum hipervisor, virtualizandotodo o hardware da maquinae transformando o sistemaoperacional invadido em umsistema convidado

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 120 / 166

Virtualizacao e seguranca Rootkits

RootkitsMais conhecidos

SubvirtUma prova de conceito.

VitriolUsa a tecnologia VT-x dos processadores Intel.

BluePillUsa a tecnologia equivalente SVM, da AMD.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 121 / 166

Virtualizacao e seguranca Rootkits

RootkitsFuncionamento

Semelhante a um hipervisor nativoModificam a sequencia de inicializacao da maquina afetada, carregandoprimeiro o seu codigo e posteriormente o sistema operacional original, emum ambiente convidado.

VMBR torna-se incontornavelEle pode interceptar todos os acessos ao hardware e inspecionar todo oestado interno do sistema operacional.

Teoricamente indetectavelVarios pesquisadores afirmam ser possvel detectar anomalias em umsistema virtualizado.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 122 / 166

Virtualizacao e seguranca Consolidacao de servidores, planos de contingencia e migracao

Consolidacao de servidores

ConceitoTransferir servicos em maquinas fsicas para maquinas virtuais, paradiminuir o numero de equipamentos da organizacao.

Recursos fsicosPodem ser dinamicamente alocados aos sistemas operacionais de acordocom suas necessidades, proporcionando balanceamento de carga dinamicoe um melhor controle de uso dos recursos dos servidores .

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 123 / 166

Virtualizacao e seguranca Consolidacao de servidores, planos de contingencia e migracao

Consolidacao de servidoresVantagens

I Aumentar a produtividade da infra-estrutura;

I Simplificar a gerencia do ambiente;

I Aumentar a seguranca;

I Diminuir o consumo de energia;

I Economizar recursos humanos, fsicos e financeiros.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 124 / 166

Virtualizacao e seguranca Consolidacao de servidores, planos de contingencia e migracao

Planos de contigencia

Visa assegurarA disponibilidade de sistemas crticos e facilitar a continuidade dasoperacoes durante uma crise.

Maquinas virtuaisPodem ser salvas na forma de arquivos, checkpoints dos servidorescrticos podem ser salvos em equipamentos distintos.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 125 / 166

Virtualizacao e seguranca Consolidacao de servidores, planos de contingencia e migracao

Migracao

Stop-and-copyConsiste em suspender a maquina virtual, transferir o conteudo de suamemoria para o hipervisor de destino e retomar a execucao em seguida.

Demand-migration

I A maquina virtual e suspensa apenas durante a copia das estruturasde memoria do nucleo para o hipervisor de destino.

I A execucao da maquina virtual e retomada e o restante das paginasde memoria da maquina virtual e transferido sob demanda.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 126 / 166

Virtualizacao e seguranca Consolidacao de servidores, planos de contingencia e migracao

Migracao

Pre-copy

I Consiste basicamente em copiar para o hipervisor de destino todasas paginas de memoria da maquina virtual enquanto esta executa.

I A maquina virtual e suspensa e as paginas modificadas depois dacopia inicial sao novamente copiadas no destino.

I A maquina pode retomar sua execucao no destino.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 127 / 166

Virtualizacao e seguranca Tolerancia a faltas

Tolerancia a faltas

IsolamentoPode ser usado para restringir a propagacao de erros de software nossistemas.

Drivers construdos por terceirosPrincipal causa de falhas de um sistema operacional.

Projeto Isolation KernelA execucao de drivers e realizada no sistema convidado (nucleo Linux), eo resultado da execucao e devolvido ao sistema hospedeiro.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 128 / 166

Exemplos de Maquinas Virtuais

Sumario

Introducao

Maquinas virtuais

Virtualizacao e seguranca

Exemplos de Maquinas Virtuais

Perspectivas

Duvidas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 129 / 166

Exemplos de Maquinas Virtuais VMware

VMwareA maquina virtual mais conhecida

Interface x86Prove uma implementacao completa desta interface ao sistemaconvidado.

Traducao dinamicaO hipervisor tem que emular certas instrucoes para representarcorretamente um processador virtual (execucao de varios sistemasoperacionais distintos).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 130 / 166

Exemplos de Maquinas Virtuais VMware

VMwareVersoes

Hipervisor convidado

I VMware Workstation: primeira versao comercial da maquina virtual,lancada em 1999, para ambientes desktop;

I VMware Fusion: versao experimental para o sistema operacionalMac OS com processadores Intel;

I VMware Player: versao gratuita do VMware Workstation, com asmesmas funcionalidades mas limitado a executar maquinas virtuaiscriadas previamente com versoes comerciais;

I VMWare Server: conta com varios recursos do VMwareWorkstation, mas e voltado para pequenas e medias empresas;

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 131 / 166

Exemplos de Maquinas Virtuais VMware

VMwareVersoes

Hipervisor nativoVMware ESX Server: para servidores de grande porte, possui um nucleoproprietario chamado vmkernel e utiliza o Red Hat Linux para proveroutros servicos, tais como a gerencia de usuarios.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 132 / 166

Exemplos de Maquinas Virtuais VMware

VMwareEstrategias de virtualizacao

VMware WorkstationUtiliza as estrategias de virtualizacao total e traducao dinamica.

VMware ESX ServerImplementa ainda a paravirtualizacao.

Abordagem hbridaImplementada na interface do hipervisor com as maquinas virtuais porquestoes de desempenho.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 133 / 166

Exemplos de Maquinas Virtuais VMware

VMwareAbordagem hbrida

Excecao e gerenciamento de memoriaRealizados por acesso direto ao hardware.

Entrada/sadaUsa o sistema hospedeiro

Alocacao de memoria para uso exclusivo em cada maquinavirtualGarante que nao ocorra nenhuma colisao de memoria entre o sistemaconvidado e o real.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 134 / 166

Exemplos de Maquinas Virtuais VMware

VMwareVMware Workstation

InterrupcoesIntercepta todas as interrupcoes do sistema convidado. Entrada/sadasao remetidas para o sistema hospedeiro, para que sejam processadascorretamente.

ExcecoesGeradas pelas aplicacoes no sistema convidado (como as chamadas desistema, por exemplo) sao remetidas para o sistema convidado.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 135 / 166

Exemplos de Maquinas Virtuais FreeBSD Jails

FreeBSD JailsConfinamento de processos

FreeBSDOferece um mecanismo de confinamento de processos denominado Jails.

Jails ou celasSao domnios de execucao distintos, cada cela contem um subconjuntode processos e recursos (arquivos, conexoes de rede) que pode sergerenciado de forma autonoma.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 136 / 166

Exemplos de Maquinas Virtuais FreeBSD Jails

FreeBSD JailsLimitacao dos processos

DomniosCriados a partir de um diretorio previamente preparado no sistema dearquivos e com diversas limitacoes, mesmo executando com privilegios deadministrador.

I Reconfigurar o nucleo (atraves da chamada sysctl, por exemplo);

I Carregar/retirar modulos do nucleo;

I Mudar configuracoes de rede (interfaces e rotas);

I Montar/desmontar sistemas de arquivos;

I Criar novos devices;

I Realizar modificacoes de configuracoes do nucleo em tempo deexecucao;

I Acessar recursos que nao pertencam ao seu proprio domnio.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 137 / 166

Exemplos de Maquinas Virtuais FreeBSD Jails

FreeBSD JailsVirtualizacao parcial

Somente partes do sistema hospedeiro

I Arvore de diretorios (cada domnio tem sua propria visao do sistemade arquivos);

I Espacos de nomes (cada domnio mantem seus propriosidentificadores de usuarios, processos e recursos de IPC);

I Interfaces de rede (cada domnio tem sua interface virtual, comendereco IP proprio).

Demais recursosSao preservadas, ou melhor, podem ser usadas diretamente demandadoum custo computacional muito baixo, mas exige que todos os sistemasconvidados executem sobre o mesmo nucleo.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 138 / 166

Exemplos de Maquinas Virtuais Xen

XenHipervisor nativo

Interface x86Paravirtualizada, permitindo executar sistemas operacionais como Linux eWindows especialmente modificados para executar sobre o hipervisor.

Versoes recentesUtilizam o suporte de virtualizacao disponvel nos processadores (sistemasconvidados nao sofrem modificacoes, mas perdem desempenho).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 139 / 166

Exemplos de Maquinas Virtuais Xen

XenModificacoes nos convidados

I O mecanismo de entrega de interrupcoes passa a usar um servico deeventos oferecido pelo hipervisor; o nucleo convidado deve registrarum vetor de tratadores de excecoes junto ao hipervisor;

I as operacoes de entrada/sada de dispositivos sao feitas atraves deuma interface simplificada, independente de dispositivo, que usabuffers circulares de tipo produtor/consumidor;

I o nucleo convidado pode consultar diretamente as tabelas desegmentos e paginas da memoria usada por ele e por suas aplicacoes,mas as modificacoes nas tabelas devem ser solicitadas ao hipervisor;

I o nucleo convidado deve executar em um nvel de privilegio inferiorao do hipervisor;

I o nucleo convidado deve implementar uma funcao de tratamento daschamadas de sistema de suas aplicacoes, para evitar que elas tenhamde passar pelo hipervisor antes de chegar ao nucleo convidado.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 140 / 166

Exemplos de Maquinas Virtuais Xen

XenDrivers

HipervisorDeve dispor dos drivers adequados para acessar os dispositivos dehardware.

Nucleos convidadosNao precisam de drivers especficos, pois eles acessam dispositivosvirtuais atraves de uma interface simplificada.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 141 / 166

Exemplos de Maquinas Virtuais Xen

XenO hipervisor Xen

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 142 / 166

Exemplos de Maquinas Virtuais User-Mode Linux

User-Mode LinuxAmbiente Linux

Nucleo do LinuxPortado de forma a poder executar sobre si mesmo, como um processodo proprio Linux.

Hipervisor convidadoUser space separado e isolado na forma de uma maquina virtual.

HardwareOs dispositivos de hardware sao virtualizados a partir dos servicosprovidos pelo sistema hospedeiro.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 143 / 166

Exemplos de Maquinas Virtuais User-Mode Linux

User-Mode LinuxUtilizacao

Uma maquina virtualCapaz de executar todos os servicos e aplicacoes disponveis para osistema hospedeiro.

CustoProcessamento e memoria menor que aquele imposto por outroshipervisores mais complexos.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 144 / 166

Exemplos de Maquinas Virtuais User-Mode Linux

User-Mode Linux

ConfinamentoProcessos em execucao na maquina virtual nao tem acesso direto aosrecursos do sistema hospedeiro.

Chamadas de SistemaImplementada pelo uso de uma thread de rastreamento e interceptadaspelo ptrace para garantir a distincao de privilegios e controle do contextodo sistema convidado.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 145 / 166

Exemplos de Maquinas Virtuais QEMU

QEMUVirtualizacao completa

Sistema HospedeiroNao requer alteracoes ou otimizacoes, pois utiliza a traducao dinamicapara prover a virtualizacao.

Hipervisor recursivoE possvel chamar o QEMU a partir do proprio QEMU

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 146 / 166

Exemplos de Maquinas Virtuais QEMU

QEMUDois modos de operacao

Emulacao total do sistemaEmula um sistema completo e pode ser utilizado para executar diferentessistemas operacionais.

Emulacao no modo de usuarioDisponvel apenas para o sistema Linux. O emulador pode executarprocessos Linux compilados em diferentes plataformas.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 147 / 166

Exemplos de Maquinas Virtuais QEMU

QEMUMMU Memory Management Unit

Emulacao de um sistema completoImplementa a MMU totalmente em software, para garantir o maximo deportabilidade.

Em modo usuarioSimula uma MMU simplificada atraves da chamada de sistema mmap dosistema hospedeiro.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 148 / 166

Exemplos de Maquinas Virtuais QEMU

QEMUKQEMU ou QEMU Accelerator

ModuloInstalado no nucleo do sistema hospedeiro que possibilita ao hipervisorobter um otimo desempenho.

Chamadas de sistemasEmitidas pelos processos convidados sao executadas diretamente sobre osistema hospedeiro (nao ocorre interpretacao).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 149 / 166

Exemplos de Maquinas Virtuais QEMU

QEMUKQEMU ou QEMU Accelerator

Dispositivos de entrada/sada e o enderecamento de memoriaDo sistema convidado sao associados diretamente aos do sistemahospedeiro.

Processos convidadosPassam a executar diretamente no modo usuario do sistema hospedeiro.

Modo nucleo do sistema convidadoE utilizado apenas para virtualizar o processador e os perifericos.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 150 / 166

Exemplos de Maquinas Virtuais QEMU

QEMUVirtualBox

Maquina virtualConstrudo sobre o hipervisor QEMU.

Hipervisor convidadoSimilar ao VMware Workstation em muitos aspectos.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 151 / 166

Exemplos de Maquinas Virtuais Valgrind

ValgrindFerramenta de Depuracao

Uso da memoria RAM e problemas correlatosFugas de memoria (memory leaks), acessos a enderecos invalidos, padroesde uso dos caches e outras operacoes envolvendo o uso da memoria RAM.

Hipervisor de aplicacaoVirtualiza o processador atraves de tecnicas de traducao dinamica.Traduz o codigo executavel do mesmo para um formato interno.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 152 / 166

Exemplos de Maquinas Virtuais Valgrind

ValgrindFerramenta de Depuracao

Apos a conversaoO codigo e instrumentado, atraves da insercao de instrucoes pararegistrar e verificar operacoes.

Processador virtualExecucao do codigo, ate 50 vezes mais lento que o codigo original.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 153 / 166

Exemplos de Maquinas Virtuais JVM Java Virtual Machine

JVM Java Virtual MachineJava

Linguagem de programacaoBaseada em maquina virtual.

Codigo fonteE compilado em um codigo binario independente de plataforma(bytecode).

bytecode JavaNao corresponde a instrucoes de nenhum processador real.

JVM Java Virtual MachineE o responsavel por interpretar o bytecode Java.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 154 / 166

Exemplos de Maquinas Virtuais JVM Java Virtual Machine

JVM Java Virtual MachineVantagens

PortabilidadePara que uma aplicacao Java possa executar sobre uma determinadaplataforma, basta que a maquina virtual Java esteja disponvel.

Navegador WebPermite que codigo Java seja associado a paginas Web, na forma depequenas aplicacoes denominadas applets.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 155 / 166

Exemplos de Maquinas Virtuais JVM Java Virtual Machine

JVM Java Virtual MachineMaquina virtual Java

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 156 / 166

Exemplos de Maquinas Virtuais JVM Java Virtual Machine

JVM Java Virtual MachineMaquina virtual como suporte de execucao

UCSD PascalPrimeiras experiencias de execucao de aplicacoes sobre maquinasabstratas (decada de 1970).

Outros exemplosC#, Python, Perl, Lua e Ruby

.NET da MicrosoftCodigo fonte C# compilado para o formato CIL (Common IntermediateLanguage) e executado sobre a maquina virtual CLR (Common LanguageRuntime).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 157 / 166

Perspectivas

Sumario

Introducao

Maquinas virtuais

Virtualizacao e seguranca

Exemplos de Maquinas Virtuais

Perspectivas

Duvidas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 158 / 166

Perspectivas

Utilizacao de maquinas virtuais

Solucoes domesticas e corporativasAlternativa concreta para uso em sistemas.

Pesquisas em andamentoPermitirao utilizar os melhores recursos das mais variadas plataformasoperacionais sem a necessidade de investir em equipamentos especficos.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 159 / 166

Perspectivas

Melhorar o suporte a virtualizacao

AprimoramentoQuestoes de seguranca, mobilidade e desempenho dos hipervisores.

Principais campos de pesquisas

I Processadores;

I Memoria;

I Entrada/sada;

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 160 / 166

Perspectivas

Pesquisas: Processadores

I AMD e Intel, ja disponibilizaram tecnologias;

I Virtualizacao sobre a plataforma x86 ocorra de forma mais natural etranquila.

I Estas tecnologias vem simplificando o desenvolvimento dos novoshipervisores.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 161 / 166

Perspectivas

Pesquisas: Memoria

I Varias tecnicas tem permitido que a virtualizacao da memoria sejamais eficiente.

I Pesquisas futuras devem levar aos sistemas operacionais convidadosa gerenciar a memoria juntamente com o hipervisor (gerenciacooperativa).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 162 / 166

Perspectivas

Pesquisas: Entrada/sada

I Os dispositivos deverao ser projetados para fornecer suporte avirtualizacao com alto desempenho.

I O proprio dispositivo devera suportar a multiplexacao, de forma apermitir o acesso simultaneo por varios sistemas virtuais.

I A responsabilidade pelo acesso aos dispositivos devera passar dohipervisor para o sistema convidado.

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 163 / 166

Perspectivas

Pesquisas em seguranca

I Garantir que as propriedades basicas dos hipervisores sejam providascorretamente pelas implementacoes;

I Construir metodos confiaveis para descobrir a presenca de rootkitsbaseados em maquinas virtuais;

I De forma contraditoria, criar tecnicas para impedir a deteccao deambiente convidados, que serao uteis na construcao de honeypotsvirtuais;

I Trazer para o desktop o conceito de sandboxing (execucao isoladade aplicacoes).

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 164 / 166

Duvidas

Sumario

Introducao

Maquinas virtuais

Virtualizacao e seguranca

Exemplos de Maquinas Virtuais

Perspectivas

Duvidas

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 165 / 166

Duvidas

Contato

Marcos Aurelio Pchek LaureanoCentro Universitario Franciscano UNIFAEPrograma de Pos-Graduacao em Informatica.Pontifcia Universidade Catolica do [email protected]

Carlos Alberto MazieroPrograma de Pos-Graduacao em Informatica.Pontifcia Universidade Catolica do [email protected]

Marcos Laureano e Carlos Maziero Virtualizacao: Conceitos e Aplicacoes em Seguranca 1 de setembro de 2008 166 / 166