Você está na página 1de 94

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 - Instituto Nacional de Padrões e Tecnologia):
 “É 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...

Fonte: (REDES E SERVIDORES, 2011)


11
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.

Fonte: www.datamotion.com (Figura)


19
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

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’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:
 Iniciação;
 Planejamento e projeto;
 Implementação;
 Operações e Manutenção; e
 Disposição.

40
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/
Operação e Manutenção
componentes relacionados;
-Métodos de autenticação; - Revisão de logs;
-Mecanismos de cifragem, - Detecção de ataques;
etc; - Monitoramento constante

Iniciação Implementação Disposição/Remoção


-Tarefas de organização; -Configuração dos - Preservação das
- Ident. de requisitos; equipamentos e componentes informações;
- Ident. de plataformas; - Exclusão apropriada de
-Ident. de Aplicações, etc. dados;
- Descarte apropriado de
equipamentos, etc.

1 2 3 4 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
 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.

49
Comparativo
Pontos Abordados NIST RED HAT PCI

1 – Segurança do hypervisor.
(Monitoramento/logs/
Abordado Abordado Abordado
Configuração/ restrições de
acesso administrativo)
2 – Segurança da
Abordado Abordado Abordado
infraestrutura virtual
3 - Mistura de VM’s de
diferentes níveis de N.A N.A Abordado
confiança no mesmo host

4 - Segurança em
Abordado Abordado Abordado
virtualização de servidores

5 - Segurança em
Abordado N.A Abordado
virtualização de desktops

50
Comparativo
Pontos Abordados NIST RED HAT PCI

6 - Vazamento de
informações entre Abordado N.A Abordado
segmentos virtuais de rede.

7 - Imaturidade das funções


N.A N.A Abordado
de monitoramento

8 – Segurança na geração de
N.A N.A Abordado
Imagens e Snapshots

9 – Isolamento de Rede Abordado Abordado Abordado


10 – Proteção da Imagem da
Abordado N.A Abordado
VM
11 – Segurança dos dados da
Abordado Abordado Abordado
VM
12 - Segurança das API’s do
N.A N.A N.A
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 (7-
10);
 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

Fonte: (CVE MITRE, 2013).


56
Xen - Bugs

57 Fonte: (LAUNCHPAD, 2013).


Xen - Vulnerabilidades

Fonte: (CVE MITRE, 2013).


58
VMWare - Bugs

59 Fonte: (LAUNCHPAD, 2013).


VMWare - Vulnerabilildades

60 Fonte: (CVE MITRE, 2013).


Considerações sobre o Comparativo

Fonte: (GONZALEZ et. al., 2012).


61
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

Fonte: http://docs.openstack.org/developer/keystone/configuration.html#generating-
82
ssl-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 VM-1 VM-2
possuem alta complexidade Hypervisor
Nuvem
 Virtualização = abstração de software
 Virtualização na nuvem = 2x abstração
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.
 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

93
Referências
 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.

94

Você também pode gostar