Comércio Eletrônico (2013/2)
Prof. Dr. Charles Christian Miers
Alunos: Bruno Bastos Rodrigues,
Lucas da Cunha,
Ramon Michels Ruppenthal
Segurança em Máquinas Virtuais no OpenStack
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.
2
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?
•
3
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). 4
Adaptado de: (LINKHEAD, 2010).
Modelos de Implantação
5
Modelos de Serviço
6
Arquitetura de Referência NIST
Adaptado de: (MELL e GRANCE, 2009)7
Como aproveitar ao máximo os recursos de hardware?
8
Virtualização de Recursos de Hardware!!!
9
Virtualização de Recursos
Conceitos
Tipos de Virtualização
Soluções de Virtualização
10
Virtualização
Fonte: (REDES E SERVIDORES, 2011)
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...
11
Fonte: vmware.com
Aproveitamento de Recursos Ociosos
12
Tipos de Virtualização
13
Fonte: www.ibm.com
Virtualização de Hardware
14
Muito utilizada em mainframes;Partições lógicas (LPAR) dividem os recursos do
hardware;
Containers
15
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.
Virtualização por Software
16
Hypervisor
17
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
18
Tipo 1: Bare-Metal (No Metal)Tipo 2: Host (Hospedado em um SO)
Virtualização Total
Fonte: www.datamotion.com (Figura)
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.
19
Paravirtualização
Fonte: www.datamotion.com (Figura)
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).
20
Emulação
Fonte: www.datamotion.com (Figura)21
Máquina virtual simula um hardware com CPU diferente do hardware físico;
Hypervisor precisa converter instruções;SO funciona sem modificações.
Virtualização Assistida por Hardware
22
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
23
O OpenStack divide as plataformas em 3 grupos:Grupo A: os drivers são totalmente suportados.
Hypervisors: libvirt qemu/KVM em x86;Grupo B: os drivers nã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.
Os 3 Principais Hypervisors para o OpenStack
24
XENXen:
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.
25
Adaptado de: (MENEZES, 2008)
Arquitetura Xen
26
KVM KVM (Kernel-based Virtual Machine) foi criado em
2007 pela empresa Red Hat 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);
27
Adaptado de: (HABBIB, 2008)
Arquitetura KVM
28
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.
29
Fonte: www.vmware.com
Arquitetura VMWare
30
Introdução da plataforma OpenStack
31
Projeto OpenStack
Fonte: (DIEDER, 2013)
Sistema Operacional de NuvemCriação de nuvem pública / privada IaaSFundação OpenStack+ 1000 membros individuais+ 850 organizações+ 87 paísesInício desenvolvimento em 2010Idealizado pela NASA (EUA) e RackspaceRelease atual: HavanaLinguagem: Python
32
Fonte: (QYJOHN, 2012)
Apoio da Comunidade ao OpenStackNúmero mensal de participantes
33
Visão Geral
Fonte: (DIEDER, 2013)34
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.
35
Necessidade de Segurança nas VM’sNecessidade 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.
36
Guias para Segurança em Virtualização
37
Importância dos Guias de Segurança em Virtualização
38
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
39
NIST – Guide to Security for Full Virtualization Technologies
PCI Security Standards Council – Data Security Standards (DSS) Virtualization Guideline
Red Hat – Virtualization Security Guide
NIST
40
Subdivide as recomendações em 4 áreas:Segurança do hypervisor;Segurança do Guest;Segurança da infraestrutura virtualizada; eSeguranç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; eDisposição.
Recomendações por Áreas do NIST
41
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; eMonitoramento, análise de logs.
Segurança dos GuestsSeguir recomendações práticas para gerenciamento de
S.O físico;Instalar updates de segurança;Backup de drivers virtuais regularmente; eUtilizar diferentes soluções de autenticação.
Recomendações por Áreas do NIST
42
Segurança da infraestrutura virtual:Isolamento de rede;Isolamento de armazenamento; eIsolamento 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 restritoDesktop -> responsabilidade é do usuário
Fases de Planejamento e Utilização Segura da Virtualização
43
Fases de Planejamento e Utilização Segura da Virtualização
Iniciação-Tarefas de organização;- Ident. de requisitos;- Ident. de plataformas;-Ident. de Aplicações, etc.
Planejamento e Projeto- Especificar características/ componentes relacionados;-Métodos de autenticação;-Mecanismos de cifragem, etc;
Implementação-Configuração dos equipamentos e componentes
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.
1 2 3 4 5
Red Hat
44
Subdivide as recomendações em 3 áreas:Segurança do host/hypervisor;Segurança dos Guests; eSegurança de rede no ambiente virtualizado.
Apresenta diversas recomendações específicas para o Red Hat Enterprise Linux.
Recomendações por Áreas
45
Segurança do host/hypervisorExecutar apenas serviços recomendados;Limitar acesso apenas à usuários com
necessidade de gerenciar o sistema;Garantir que seja possível realizar auditorias; eUtilizar canais seguros de comunicação
SSL/TLS;Criar rede isolada de gerenciamento.
Recomendações por Áreas
46
Segurança dos GuestsUtilização de canais seguros de comunicação;Garantir a segurança das aplicações; eCifragem 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; eIsolamento da rede de administradores dos guests.
PCI Security Standards
47
Subdivide suas seções em 3 áreas:Visão geral de virtualização;Riscos para ambientes virtualizados; eRecomendações.
48
Visão geralConceitos de virtualização (tipos/classes);Componentes da virtualização.
Riscos para ambientes virtualizadosVulnerabilidades 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
Recomendações por Áreas
49
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.
50
Pontos Abordados NIST RED HAT PCI
1 – Segurança do hypervisor. (Monitoramento/logs/Configuração/ restrições de acesso administrativo)
Abordado Abordado Abordado
2 – Segurança da infraestrutura virtual
Abordado Abordado Abordado
3 - Mistura de VM’s de diferentes níveis de confiança no mesmo host
N.A N.A Abordado
4 - Segurança em virtualização de servidores
Abordado Abordado Abordado
5 - Segurança em virtualização de desktops
Abordado N.A Abordado
Comparativo
Comparativo
51
Pontos Abordados NIST RED HAT PCI
6 - Vazamento de informações entre segmentos virtuais de rede.
Abordado N.A Abordado
7 - Imaturidade das funções de monitoramento
N.A N.A Abordado
8 – Segurança na geração de Imagens e Snapshots
N.A N.A Abordado
9 – Isolamento de Rede Abordado Abordado Abordado
10 – Proteção da Imagem da VM
Abordado N.A Abordado
11 – Segurança dos dados da VM
Abordado Abordado Abordado
12 - Segurança das API’s do hypervisor
N.A N.A N.A
Análise das Vulnerabilidades dos Hypervisors
52
Fontes de análise: LaunchPad (Bugs) Parâmetros:
Status: nova, confirmada, em triagem, em progresso e corrigida, incompleto, correção enviada, correção liberada, não será corrigido.
Importance (Relevância ou Importância): lista de espera, indefinida, baixa, média, alta e crítica.
CVE (Vulnerabilidades)Parâmetros:
Severidade: baixa (0-3), média (4-6), alta e média (4-10), alta (7-10);
Vetor de acesso: rede, rede local, apenas local;Complexidade de acesso: baixa, média e alta;Autenticação: nenhuma, única, múltipla.
(LAUNCHPAD, 2013)
LaunchPad LaunchPad: estrutura para que a comunidade submeta bugs; Categorização dos bugs listados; Cada tipo de bug possui uma equipe especializada; e OSSG (OpenStack Security Group) --> VMT (Vulnerability Management
Team)
53
(CVE MITRE, 2013)
CVE (Common Vulnerabilities and Exposures)
54
É uma lista de problemas comuns de segurança pertinentes a diversos sistemas
Metas:Enumerar todos os problemas de segurança
publicamente conhecidosPadronizar os tipos de problemasSer publico, aberto compartilhável, sem restrições
de distribuição
Qemu/KVM - Bugs
Fonte: (LAUNCHPAD, 2013).55
Qemu/KVM - Vulnerabilidades
Fonte: (CVE MITRE, 2013).56
Xen - Bugs
Fonte: (LAUNCHPAD, 2013).57
Xen - Vulnerabilidades
Fonte: (CVE MITRE, 2013).58
Fonte: (LAUNCHPAD, 2013).
VMWare - Bugs
59
Fonte: (CVE MITRE, 2013).
VMWare - Vulnerabilildades
60
Considerações sobre o Comparativo
Fonte: (GONZALEZ et. al., 2012).61
Estudo de Caso com o OpenStack
62
Objetivo do Estudo de Caso
63
Compreensão geral da plataforma;DevStack, ArquiteturaNova
Realizar a criação de uma VM;Monitoramento
Verificar a comunicação entre os componentes;Verificar se a imagem requisitada no Glance está
cifradaSoluções para possíveis problemas encontrados.
Opções de segurança SELinux sVirt
Adaptado de (PEPPLE, 2012)
Arquitetura
64
Fonte: (PEPPLE, 2012)
Nova
65
Infraestrutura computacional (codinome Nova):Gerenciador da infraestrutura computacional de uma nuvem
OpenStack
Controla todas as necessidades de recursos computacionais, rede, autorização, e escalabilidade da nuvem.
Instalação do OpenStack
66
Abordagem para desenvolvedoresInstalação por scripts
Multi-node, Single-node, em VM
Não recomendada para uso em produção!Scripts facilitam a instalação porém limitam a
personalização.
Configuração do DevStack
67
Hypervisor utilizado pelo DevStack:QemuAbordagem multi-node
ComputeController
Criação de uma VMpor CLI
68
1 – Verificar os grupos de segurança2 – Habilitar ping/ssh3 – Adicionar Regras4 – Gerar Chave5 – Listar os tipos de imagens6 – Listar as imagens7 – Criar a VM
Processo de Criação de uma VM
69
Processo de Criação de uma VM
70
Processo de Criação de uma VM
71
Processo de Criação de uma VM
72
Monitoramento
73
Objetivo: Verificação da comunicação interna (autenticação no Keystone) e da requisição da imagem no Glance.
Procedimento: filtragem pelas portasIP_HOST:9292 (Glance)IP_HOST:5000 (Keystone)
Monitoramento
74
MonitoramentoGlance autenticando no Keystone
75
MonitoramentoGlance autenticando no Keystone
76
MonitoramentoGlance buscando a imagem no MySQL
77
MonitoramentoGlance buscando a imagem no MySQL
78
Considerações Parciais
79
Comunicação interna realizada por padrão de forma insegura.Credenciais passadas em texto as claras.
Imagem requisitada para criação da VM não é cifrada
Solução: PKI + Certification Authority (CA) para validar a PKI de uma entidade (usuario, sistema, componente, entre outros)
Correção
80
Configurar Glance.conf para cifrar os metadados da imagem.
Etc/Glance/Glance.conf
Imagens Cifradas
81
Correção
Fonte: http://docs.openstack.org/developer/keystone/configuration.html#generating-ssl-certificates
82
Configurar Keystone.conf para utilizar tokens PKI, comunicando-se com SSL e certificadas com X509.
etc/Keystone/Keystone.conf
Fonte: (OSSG, 2013) OpenStack Security Group83
Certificados + SSL
Somente no release Folsom o recurso foi adicionado
Gerando Certificados no Keystone
84
Resultado
85
Resultado
86
sVirt (SELinux) + virsh (Libvirt)Isolamento de VM’s
87
Fonte: (IBM, 2013)
Isolamento com sVirt
88
Gerenciamento do Ciclo de Vida das VMs com o virsh
89
Considerações Finais
90
Hardware
Nuvem
Hypervisor
VM-2VM-1
VM-NVulnerabilidades de virtualização de nuvem
possuem alta complexidade
Virtualização = abstração de softwareVirtualização na nuvem = 2x abstração
No CVE => Maioria das vulnerabilidades provenientes de erros de programação
Rápida evolução da plataforma, consequentemente da sua segurança.
Muitas vezes a segurança da plataforma depende da sua configuração adequada.As configurações de segurança não são habilitadas
por padrão tanto para o DevStack e a para instalação tradicional.
Habilitar o protocolo SSL proporciona segurança na comunicação interna na plataforma.
Considerações Finais
91
Considerações Finais
92
Compreensão da importância da virtualização no contexto de nuvem, dos diversos tipos de virtualização, sua segurança.
Visão geral do funcionamento da plataforma/hypervisors e da segurança por meio dos guias.
Referências
93
DIEDER, MARCELO. Como Gerenciar uma Nuvem Pública ou Privada Utilizando o OpenStack. Fórum Internacional de Software Livre (FISL) 14ª edição. Porto Alegre, Brasil. 2013.
GONZALEZ, M.; MIERS, C.; ROJAS, M.A.; REDÍGOLO, F.; CARVALHO, T.; NÄSLUND, M.; POURZANDI, M. A Quantitative Analysis of Current Security Concerns and Solutions for Cloud Computing. Journal of Cloud Computing (JoCCASA), vol. 1, 2012.
LAUNCHPAD (2013). OpenStack. Disponível em: https://launchpad.net/openstack.
MELL, P.; GRANCE, T. The NIST Definition of Cloud Computing. National Institute of Standards and Technology (NIST), Information Technology Laboratory. Gaithersburg, Maryland – USA. 2011.
PCI Security Standards Council. (2011). Data Security Standard (PCI DSS). Virtualization Special Interest Group. Disponível em: https://www.pcisecuritystandards.org/documents/Virtualization_InfoSupp_v2.pdf
Referências
94
PEPPLE, K. (2012). OpenStack Folsom Architecture. Disponível em: http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/
Red Hat. (2013). Virtualization Security Guide. Disponível em: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Security_Guide/
RITA DE C. C. DE CASTRO; LUIZA DOMINGOS; GLAUCIVÂNIA LUZ; CLAUDIO PEREIRA; MARCELO GOMES. Gestão de Vulnerabilidades em Cloud Computing: Um Cenário da Nuvem Pública. Universidade Estadual do Ceará (UECE). 2012.
SLIPETSKYY, R. Security Issues In OpenStack. Master thesis in Security and Mobile Computing, Departament of Telematics, Norwegian University of Science and Technology (NUST). Junho de 2011.
VMWare. (2013). VMWare Virtualization. Disponível em: http://www.vmware.com/virtualization/
WEN, X.; GU, G.; LI, Q.; GAO, Y.; ZHANG, X. Comparison of Open-Source Cloud Management Platforms: OpenStack and OpenNebula. In 9th International Conference on Fuzzy Systems and Knowledge Discovery, FSKD '12, pages 2457- 2461. 2012.