980 likes | 1.18k Views
Segurança em Máquinas Virtuais no OpenStack . Comércio Eletrônico (2013/2) Prof. Dr. Charles Christian Miers Alunos: Bruno Bastos Rodrigues, Lucas da Cunha, Ramon Michels Ruppenthal. Objetivo Geral/Específicos.
E N D
Segurança em Máquinas Virtuais no OpenStack Comércio Eletrônico (2013/2) Prof. Dr. Charles Christian Miers Alunos: Bruno Bastos Rodrigues, Lucas da Cunha, Ramon MichelsRuppenthal
Objetivo Geral/Específicos • Objetivo Geral: apresentar preocupações e soluções de segurança inerentes à virtualização de recursos dentro do contexto de nuvem, utilizando como estudo de caso a plataforma OpenStack Grizzly. • Objetivos Específicos: • Entendimento dos conceitos básicos envolvidos; • Elencar as principais questões de segurança relacionadas à virtualização; • Testes práticos na plataforma OpenStack em pontos específicos.
Introdução a Computação em Nuvem • Definição (NIST): • “É um modelo que permite um acesso universal e adequado à rede sob-demanda para um conjunto compartilhado de recursos computacionais configuráveis (por exemplo: rede, servidores, armazenamento, aplicações, serviços) que podem ser rapidamente fornecidos e disponibilizados com um mínimo de esforço de gestão ou interação com o fornecedor do serviço” • Porque utilizar Computação em Nuvem?
Introdução Computação em Nuvem • NIST disponibiliza definições de Nuvem que são aceitas como referência mundial. Adaptado de: (MELL e GRANCE, 2009).
Modelos de Implantação Adaptado de: (LINKHEAD, 2010).
Arquitetura de Referência NIST Adaptado de: (MELL e GRANCE, 2009)
Virtualização de Recursos Conceitos Tipos de Virtualização Soluções de Virtualização
Virtualização • O conceito surgiu em 1967 pela IBM com a criação do primeiro hypervisor(POPEK; GOLDBERG, 1973). • O que é? Abstração de um conjunto de recursos (computacionais e/ou de comunicação) • É possível virtualizar diversos componentes... Fonte: (REDES E SERVIDORES, 2011)
Aproveitamento de Recursos Ociosos Fonte: vmware.com
Virtualização de Hardware • Muito utilizada em mainframes; • Partições lógicas (LPAR) dividem os recursos do hardware; Fonte: www.ibm.com
Containers • Também chamada de virtualização de S.O. • O kernel e algumas ferramentas devem ser modificadas; • Para cada instância, cria um ambiente virtual isolado (container) executado sobre um único kernel que garante o isolamento; • Consome bem menos recursos.
Hypervisor • Hypervisor é uma camada de software que permite ao node executar diversas máquinas virtuais com a possibilidade de configuração e hardware diferentes do node, também é comumente chamado de VMM (Virtual Machine Monitor). • Exemplos: VMWare, Xen, KVM, LXC, PowerVM, etc.
Tipos de Hypervisors • Tipo 1: Bare-Metal(No Metal) • Tipo 2: Host (Hospedado em um SO)
Virtualização Total • Um ou mais sistemas operacionais (SOs) e os aplicativos que eles contêm são executados em cima do hardware virtual; • Cada instância de um sistema operacional e seus aplicativos é executada em uma MV separada chamada de sistema operacional hospedado. Fonte: www.datamotion.com (Figura)
Paravirtualização • Em vez de utilizar diretamente as instruções de hardware, os SOs virtualizados utilizam uma API (Application Programming Interface) exposta pelo Hypervisor para executar as instruções normais do sistema operacional hospedado (KOSLOVSKI, 2011). Fonte: www.datamotion.com (Figura)
Emulação • Máquina virtual simula um hardware com CPU diferente do hardware físico; • Hypervisor precisa converter instruções; • SO funciona sem modificações. Fonte: www.datamotion.com (Figura)
Virtualização Assistida por Hardware • Hardware auxilia no isolamento das máquinas virtuais; • Hardware se encarrega de partes ineficientes e/ou complexas da virtualização via software.
Plataformas de Virtualização • O OpenStack divide as plataformas em 3 grupos: • Grupo A: os drivers são totalmente suportados. Hypervisors: libvirtqemu/KVM em x86; • Grupo B:os driversnão foram totalmente testados. Hypervisors: XenAPI em x86; • Grupo C:os drivers foram minimamente testados ou não foram testados. Hypervisors: VMWare, baremetal, docker, Hyper-V, libvirt (LXC, Xen), PowerVM e ARM.
XEN • Xen: • Originário de um projeto de pesquisa da universidade de Cambridge, na Inglaterra em 2003 (BARHAM et al., 2003). Xen tem seus componentes divididos em dois Domínios: • Domínio 0 (Dom0): tem o maior privilégio em uma máquina, ou seja, é a única máquina virtual (por padrão) que possui acesso e controle direto sobre o hardware; • Domínio U (DomU): Os domínios hospedados em Xen são gerenciados (criados, destruídos, suspensos, reiniciados, etc.) através de interfaces administrativas disponibilizadas no Dom0.
Arquitetura Xen Adaptado de: (MENEZES, 2008)
KVM • KVM (Kernel-based Virtual Machine) foi criado em 2007 pela empresa RedHat e sua tecnologia é voltada ao Linux; • Os desenvolvedores do KVM criaram um método que transformou o próprio kernel do Linux em um MMV, assim, pôde-se simplificar a gestão e melhorar o desempenho em ambientes virtualizados (HABIB, 2008);
Arquitetura KVM Adaptado de: (HABBIB, 2008)
VMWare • VMware: • Criado em 1998 e em 2004 foi comprado pela EMC pelo valor de U$625 milhões (VMWARE, 2012b); • Teoricamente, qualquer SO (Sistema Operacional) que pode ser executado em uma arquitetura x86 pode funcionar como um SO hospedado no VMware.
Arquitetura VMWare Fonte: www.vmware.com
Projeto OpenStack • Sistema Operacional de Nuvem • Criação de nuvem pública / privada IaaS • Fundação OpenStack • + 1000 membros individuais • + 850 organizações • + 87 países • Início desenvolvimento em 2010 • Idealizado pela NASA (EUA) e Rackspace • Release atual: Havana • Linguagem: Python Fonte: (DIEDER, 2013)
Apoio da Comunidade ao OpenStack • Número mensal de participantes Fonte: (QYJOHN, 2012)
Visão Geral Fonte: (DIEDER, 2013)
Necessidade de Segurança no Ambiente de Nuvem • “Pelo fato da computação em nuvem ser um projeto emergente, além de trazer consigo vulnerabilidades de tecnologias que lhe deram origem, traz à luz também novas vulnerabilidade” (CASTRO et. al, 2012). • Componentes de rede; • Máquinas virtuais; • API’s; • Componentes WEB; • Entre outros.
Necessidade de Segurança nas VM’s • Necessidade de orquestrar instruções aos recursos físicos • Cada processador suporta um conjunto de instruções. • Algumas executam em modo privilegiado e outras em modo usuário.
Importância dos Guias de Segurança em Virtualização • Fornecem uma visão geral da segurança em virtualização; • Identificam as principais questões de segurança relacionadas; • Estabelecem normas, prioridades e medidas de prevenção.
Principais Guias Relacionados • NIST – Guide to Security for Full Virtualization Technologies • PCI Security Standards Council – Data Security Standards (DSS) Virtualization Guideline • Red Hat – Virtualization Security Guide
NIST • Subdivide as recomendações em 4 áreas: • Segurança do hypervisor; • Segurança do Guest; • Segurança da infraestrutura virtualizada; e • Segurança na virtualização de desktops. • Fornece um ciclo de planejamento e utilização para uma virtualização segura: • Iniciação; • Planejamento e projeto; • Implementação; • Operações e Manutenção; e • Disposição.
Recomendações por Áreas do NIST • Segurança do Hypervisor: • Instalar updates de segurança; • Restringir acesso administrativo; • Sincronizar a infraestrutura com um timeserver confiável; • Desabilitar serviços não utilizados; e • Monitoramento, análise de logs. • Segurança dos Guests • Seguir recomendações práticas para gerenciamento de S.O físico; • Instalar updates de segurança; • Backup de drivers virtuais regularmente; e • Utilizar diferentes soluções de autenticação.
Recomendações por Áreas do NIST • Segurança da infraestrutura virtual: • Isolamento de rede; • Isolamento de armazenamento; e • Isolamento de instruções. • Virtualização de Desktops: • Única diferença para virtualização de servidores é a capacidade de gerenciamento de imagens. • Servidores -> gerenciamento de imagens restrito • Desktop -> responsabilidade é do usuário
Fases de Planejamento e Utilização Segura da Virtualização • Planejamento e Projeto • Especificar características/ componentes relacionados; • Métodos de autenticação; • Mecanismos de cifragem, etc; • Operação e Manutenção • -Revisão de logs; • Detecção de ataques; • Monitoramento constante • Disposição/Remoção • -Preservação das informações; • Exclusão apropriada de dados; • Descarte apropriado de equipamentos, etc. • Iniciação • -Tarefas de organização; • - Ident. de requisitos; • - Ident. de plataformas; • Ident. de Aplicações, etc. • Implementação • Configuração dos equipamentos e componentes 1 2 3 4 5 Fases de Planejamento e Utilização Segura da Virtualização
RedHat • Subdivide as recomendações em 3 áreas: • Segurança do host/hypervisor; • Segurança dos Guests; e • Segurança de rede no ambiente virtualizado. • Apresenta diversas recomendações específicas para o RedHat Enterprise Linux.
Recomendações por Áreas • Segurança do host/hypervisor • Executar apenas serviços recomendados; • Limitar acesso apenas à usuários com necessidade de gerenciar o sistema; • Garantir que seja possível realizar auditorias; e • Utilizar canais seguros de comunicação • SSL/TLS; • Criar rede isolada de gerenciamento.
Recomendações por Áreas • Segurança dos Guests • Utilização de canais seguros de comunicação; • Garantir a segurança das aplicações; e • Cifragem de dados para que não sejam acessados fora do escopo de segurança dos guests. • Segurança de Rede • Utilização de protocolos seguros de comunicação; • Firewalls; • Políticas; e • Isolamento da rede de administradores dos guests.
PCI Security Standards • Subdivide suas seções em 3 áreas: • Visão geral de virtualização; • Riscos para ambientes virtualizados; e • Recomendações.
Recomendações por Áreas • Visão geral • Conceitos de virtualização (tipos/classes); • Componentes da virtualização. • Riscos para ambientes virtualizados • Vulnerabilidades no ambiente físico aplicado em um ambiente virtual; • Vulnerabilidades proporcionadas pelo hypervisor; • Aumento da complexidade dos sistemas virtualizados e redes; • Mais de uma função por sistema físico.
Recomendações por Áreas • Mistura de VM’s de diferentes níveis de confiança; • Falta de separação de funções; • VM’s em estado de espera; • Imagens e Snapshots; • Imaturidade das funções de monitoramento; • Vazamento de informações entre segmentos virtuais de rede.