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
 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.
4
Adaptado de: (MELL e GRANCE, 2009).
Modelos de Implantação
5
Adaptado de: (LINKHEAD, 2010).
Modelos de Serviço
6
Arquitetura de Referência NIST
7
Adaptado de: (MELL e GRANCE, 2009)
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
 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: (REDES E SERVIDORES, 2011)
Aproveitamento de Recursos
Ociosos
12
Fonte: vmware.com
Tipos de Virtualização
13
Virtualização de Hardware
 Muito utilizada em mainframes;
 Partições lógicas (LPAR) dividem os recursos do
hardware;
14
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.

15
Virtualização por Software
16
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.
17
Tipos de Hypervisors
 Tipo 1: Bare-Metal (No Metal)
 Tipo 2: Host (Hospedado em um SO)
18
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.
19
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).
20
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.
21
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.
22
Plataformas de Virtualização
 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.
23
Os 3 Principais Hypervisors para o
OpenStack
24
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.
25
Arquitetura Xen
26
Adaptado de: (MENEZES, 2008)
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
Arquitetura KVM
28
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.
29
Arquitetura VMWare
30
Fonte: www.vmware.com
Introdução da plataforma
OpenStack
31
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
32
Fonte: (DIEDER, 2013)
Apoio da Comunidade ao OpenStack
 Número mensal de participantes
33
Fonte: (QYJOHN, 2012)
Visão Geral
34
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.
35
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.
36
Guias para Segurança em
Virtualização
37
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.
38
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
39
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:





40
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.
41
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
42
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;
Iniciação
- Revisão de logs;
- Detecção de ataques;
- Monitoramento constante
Disposição/Remoção
Implementação
-Tarefas de organização;
- Ident. de requisitos;
- Ident. de plataformas;
-Ident. de Aplicações, etc.
1
Operação e Manutenção
-Configuração dos
equipamentos e componentes
2
3
4
- Preservação das
informações;
- Exclusão apropriada de
dados;
- Descarte apropriado de
equipamentos, etc.
5
Fases de Planejamento e Utilização Segura da Virtualização
43
Red Hat
 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 Red Hat Enterprise Linux.
44
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.
45
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.
46
PCI Security Standards
 Subdivide suas seções em 3 áreas:
 Visão geral de virtualização;
 Riscos para ambientes virtualizados; e
 Recomendações.
47
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.
48
Recomendações por Áreas
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.
 Mistura
49
Comparativo
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
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
Abordado
Abordado
Abordado
Abordado
N.A
Abordado
Abordado
Abordado
Abordado
N.A
N.A
N.A
9 – Isolamento de Rede
10 – Proteção da Imagem da
VM
11 – Segurança dos dados da
VM
12 - Segurança das API’s do
hypervisor
51
Análise das Vulnerabilidades dos
Hypervisors
 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 (710);
 Vetor de acesso: rede, rede local, apenas local;
 Complexidade de acesso: baixa, média e alta;
 Autenticação: nenhuma, única, múltipla.
52
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
(LAUNCHPAD, 2013)
CVE (Common Vulnerabilities and
Exposures)
 É uma lista de problemas comuns de segurança
pertinentes a diversos sistemas
 Metas:
 Enumerar todos os problemas de segurança
publicamente conhecidos
 Padronizar os tipos de problemas
 Ser publico, aberto compartilhável, sem restrições
de distribuição
54
(CVE MITRE, 2013)
Qemu/KVM - Bugs
55
Fonte: (LAUNCHPAD, 2013).
Qemu/KVM - Vulnerabilidades
56
Fonte: (CVE MITRE, 2013).
Xen - Bugs
57
Fonte: (LAUNCHPAD, 2013).
Xen - Vulnerabilidades
58
Fonte: (CVE MITRE, 2013).
VMWare - Bugs
59
Fonte: (LAUNCHPAD, 2013).
VMWare - Vulnerabilildades
60
Fonte: (CVE MITRE, 2013).
Considerações sobre o Comparativo
61
Fonte: (GONZALEZ et. al., 2012).
Estudo de Caso com o
OpenStack
62
Objetivo do Estudo de Caso
 Compreensão geral da plataforma;
 DevStack, Arquitetura
 Nova
 Realizar a criação de uma VM;
 Monitoramento
 Verificar a comunicação entre os componentes;
 Verificar se a imagem requisitada no Glance está
cifrada
 Soluções para possíveis problemas encontrados.
 Opções de segurança SELinux sVirt
63
Arquitetura
64
Adaptado de (PEPPLE, 2012)
Nova
 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.
65
Fonte: (PEPPLE, 2012)
Instalação do OpenStack
 Abordagem para desenvolvedores
 Instalaçã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.
66
Configuração do DevStack
 Hypervisor utilizado pelo DevStack:
 Qemu
 Abordagem multi-node
Compute
Controller
67
Criação de uma VM
por CLI
 1 – Verificar os grupos de segurança
 2 – Habilitar ping/ssh
 3 – Adicionar Regras
 4 – Gerar Chave
 5 – Listar os tipos de imagens
 6 – Listar as imagens
 7 – Criar a VM
68
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
 Objetivo: Verificação da comunicação interna
(autenticação no Keystone) e da requisição da
imagem no Glance.
 Procedimento: filtragem pelas portas
 IP_HOST:9292 (Glance)
 IP_HOST:5000 (Keystone)
73
Monitoramento
74
Monitoramento
Glance autenticando no Keystone
75
Monitoramento
Glance autenticando no Keystone
76
Monitoramento
Glance buscando a imagem no MySQL
77
Monitoramento
Glance buscando a imagem no MySQL
78
Considerações Parciais
 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)
79
Correção
 Configurar Glance.conf para cifrar os metadados
da imagem.
 Etc/Glance/Glance.conf
80
Imagens Cifradas
81
Correção
 Configurar Keystone.conf para utilizar tokens
PKI, comunicando-se com SSL e certificadas
com X509.
 etc/Keystone/Keystone.conf
82
Fonte: http://docs.openstack.org/developer/keystone/configuration.html#generatingssl-certificates
Certificados + SSL
Somente no release Folsom o recurso foi adicionado
83
Fonte: (OSSG, 2013) OpenStack Security Group
Gerando Certificados no Keystone
84
Resultado
85
Resultado
86
sVirt (SELinux) + virsh (Libvirt)
Isolamento de VM’s
87
Isolamento com sVirt
88
Fonte: (IBM, 2013)
Gerenciamento do Ciclo de Vida das VMs
com o virsh
89
Considerações Finais
VM-N
 Vulnerabilidades de virtualização de nuvem
possuem alta complexidade
 Virtualização = abstração de software
 Virtualização na nuvem = 2x abstração
VM-1
VM-2
Hypervisor
Nuvem
Hardware
 No CVE => Maioria das vulnerabilidades provenientes de erros de
programação
 Rápida evolução da plataforma, consequentemente da sua
segurança.
90
Considerações Finais
 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.
91
Considerações Finais
 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.
92
Referências
 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.
93

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
 PEPPLE, K. (2012). OpenStack Folsom Architecture. Disponível em:





94
http://ken.pepple.info/openstack/2012/09/25/openstack-folsomarchitecture/
Red Hat. (2013). Virtualization Security Guide. Disponível em:
https://access.redhat.com/site/documentation/enUS/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 OpenSource Cloud Management Platforms: OpenStack and
OpenNebula. In 9th International Conference on Fuzzy Systems and
Knowledge Discovery, FSKD '12, pages 2457- 2461. 2012.
Download

20131125_OpenStackVM_Final_Comentado