Comércio Eletrônico (2013/2) Prof. Dr. Charles Christian Miers Alunos: Bruno Bastos Rodrigues,...

Preview:

Citation preview

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.

Recommended