Академический Документы
Профессиональный Документы
Культура Документы
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/283274571
CITATION READS
1 254
8 authors, including:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Marco Antonio Torrez Rojas on 19 May 2016.
1
Análise de Segurança para Soluções de Computa-
ção em Nuvem
Esses três tipos de modelos de serviço caracterizam em linhas gerais o que pode
ser oferecido em cada camada de abstração de serviços da nuvem, permitindo inclusive a
construção de modelos mais detalhados que permitam uma classificação mais específica
dos diversos serviços possíveis dentro de cada modelo (veja, por exemplo, a taxonomia
descrita em [11]). Além disso, esses modelos podem ser combinados de diferentes for-
mas, o mesmo ocorrendo para o conjunto de recursos necessário para disponibilizá-los
(Figura 1.1).
A gerência diz respeito a quem controla a nuvem, ou seja, quem organiza e admi-
nistra os serviços. Assim, em nuvens privadas a gerência é feita pela própria instituição
que se utiliza de seus serviços, enquanto em nuvens públicas a gerência é realizada por
terceiros; já no caso de nuvens híbridas/comunitárias, a gerência pode ser própria ou de
terceiros. A propriedade indica quem fornece o serviço de nuvem: em uma nuvem pú-
blica, o serviço é fornecido por terceiros, enquanto nuvens públicas, híbridas e comunitá-
rias podem ser fornecidas tanto por terceiros ou usando recursos próprios. A localização
refere-se ao posicionamento da parte física da nuvem, como, por exemplo, a sala-cofre na
qual está localizado o hardware sob o qual as camadas da nuvem são construídas. Como
tecnologias de nuvem em geral fornecem um elevado grau de transparência na locali-
zação dos recursos subjacentes, nuvens computacionais podem ser colocadas tanto em
ambientes externos como internos à organização (ou mesmo uma combinação dos dois),
independentemente do seu tipo.
Finalmente, no tocante à segurança, com uma nuvem privada a organização man-
tém seus dados limitados ao acesso interno, garantindo um elevado nível de segurança
pois a gerência e utilização da nuvem são realizadas pela própria organização. Ao utili-
zar uma nuvem híbrida a organização permite que sua nuvem privada comunique-se com
uma nuvem (pública ou privada) sob gerência de outrem, tornando o nível de segurança
um pouco mais baixo devido à troca de dados com uma entidade cujas políticas de segu-
rança são possivelmente desconhecidas [1]. Já a nuvem pública é o tipo de nuvem que
possui nível de segurança mais baixo, pois está aberta a qualquer perfil de usuário que
conheça a localização do serviço.
Figura 1.2: Diversas combinações para oferecer serviços de nuvem. Adaptado de [4].
Conforme observado na Figura 1.2, a arquitetura de referência do NIST define
cinco atores principais (cada ator sendo uma entidade representando uma pessoa ou uma
organização que participa do processo ou realiza alguma tarefa):
Em resposta a um pedido do governo dos Estados Unidos para acelerar a adoção governa-
mental da computação em nuvem [17], o NIST elaborou um guia voltado para segurança
e privacidade cujo propósito declarado é [18]: “fornecer uma visão geral sobre os desafios
de segurança e privacidade envolvidos na computação em nuvem”.
Esse guia [18] afirma que as organizações que utilizam uma abordagem de com-
putação em nuvens privadas possuem um maior nível de controle sobre os dados. Por este
motivo, o documento é focado em abordagens de computação em nuvens públicas. De
uma forma geral, ele fornece uma visão ampla dos serviços de nuvem, discutindo bene-
fícios e problemas neste modelo do ponto de vista de segurança, indicando pontos chave
de segurança e privacidade, e fornecendo recomendações sobre terceirização de dados
para um provedor de nuvem qualquer. A Figura 1.3 apresenta as questões de segurança
elencadas pelo documento e a sua classificação de acordo com diferentes aspectos.
As questões 1 e 2 da Figura 1.3 tratam da governança e conformidade. O termo
governança1 refere-se ao conjunto de políticas, funções, responsabilidades e processos
que devem ser estabelecidos para orientar, direcionar e controlar como a organização usa
tecnologias para atingir as metas corporativas, ou seja, um conjunto de normas estabele-
cidas para atingir um determinado objetivo. Já a conformidade indica se a organização
atende às normas, leis e regulamentos em questão.
A questão 3 abrange diversos tópicos. O primeiro deles são as ameaças internas,
ou seja, de usuários internos ou inquilinos maliciosos, os quais representam um risco so-
1 http://www.gartner.com/it-glossary/it-governance/
Figura 1.3: Questões de segurança em nuvens computacionais elencadas pelo NIST.
bre os dados hospedados na nuvem. Outro refere-se à propriedade dos dados na nuvem
e potenciais problemas de violação de propriedade intelectual. Há ainda uma discus-
são sobre a dificuldade em gerenciar a visibilidade dos inquilinos sobre os controles de
segurança utilizados na nuvem, dado que, ao mesmo tempo que tal visibilidade é essen-
cial para que usuários avaliem os riscos aos quais seus sistemas hospedados na nuvem
estão expostos, ela também facilita ataques por inquilinos maliciosos. São ainda discuti-
das questões relativas aos dados “adicionais” que surgem quando uma entidade adota o
serviço de nuvem, como informações bancárias usadas no pagamento pelos serviços do
provedor de nuvem, as quais também devem ser protegidas por este último.
As questões sobre arquitetura (item 4), discutem os sistemas de software utiliza-
dos na computação em nuvem. A descrição desse ponto de segurança se inicia alertando
que a introdução de monitores de máquinas virtuais (hypervisors) aumenta a superfície de
ataque na computação em nuvem, em comparação com o modelo tradicional de data cen-
ters. Além disso, o tráfego de dados que fica restrito a redes virtuais pode não ser visível
para ferramentas de segurança tradicionais de rede, como firewalls, sistemas de detecção/-
prevenção de intrusão (IDS/IPS), entre outros, potencialmente reduzindo sua efetividade.
Assim, torna-se necessário o uso de ferramentas especialmente adaptadas pra monitorar
essas redes virtuais. Outra questão levantada refere-se ao fato de que os dados sobre as
imagens de máquinas virtuais e serviços da nuvem podem conter informações relevantes
para atacantes e, portanto, necessitam de cuidados especiais. Finalmente, discute-se a
segurança do navegador web do cliente, a ferramenta básica para acesso aos serviços da
nuvem.
A discussão sobre gerenciamento de identidades e controle de acesso (questão 5)
tem como foco o uso de autenticação via SAML (Security Assertion Markup Language)
e XACML (eXtensible Access Control Markup Language) para controle de acesso, des-
crevendo uma linguagem para políticas de acesso e também um formato para mensagens
de requisição e resposta.
A questão 6, relativa a isolamento de software, discute ameaças que são deriva-
das diretamente do fato de nuvens apresentarem a característica de multi-tenancy (multi-
inquilinos), i.e., diversos usuários compartilhando o mesmo equipamento físico. Assim,
são discutidos problemas de interferências negativas entre VMs, especialmente se uma
VM for capaz de escapar ao ambiente a ela reservado pelo monitor de máquinas virtuais.
No contexto da proteção dos dados (questão 7), é dado destaque às diferenças
entre o modelo multi-tenancy, no qual os dados de diferentes usuários são colocados em
um único repositório, e o modelo multi-instâncias no qual cada usuário usa e administra
um repositório de dados separado. Além disso, é abordada a questão da exclusão segura
dos dados (eliminação lógica e física), essencial para garantir a confidencialidade dos
mesmos e a privacidade dos usuários da nuvem.
Já a discussão sobre disponibilidade (questão 8) aborda as ameaças indiretas pro-
venientes do compartilhamento de um mesmo fornecedor de nuvem com uma organização
que tem um grande potencial de sofrer ataques de negação de serviço (Denial of Service -
DoS). Afinal, esses ataques podem afetar a qualidade dos serviços providos na nuvem em
questão, afetando todos os inquilinos da mesma.
A última questão abordada é a da resposta a incidentes, tópico no qual é destacado
o papel fundamental do provedor de nuvem em detectar a ocorrência de ataques e agir de
acordo, além de prover acesso a dados detalhados de tais incidentes para permitir que os
inquilinos afetados também possam participar deste processo.
Além do levantamento de questões de segurança, listadas na Figura 1.3, que afe-
tam os serviços da nuvem, o guia também apresenta recomendações para cada ponto
chave (questão) definido. As recomendações são agrupadas de acordo com as questões
discutidas:
De uma forma geral, pode-se dizer que o guia do NIST [18] discute as princi-
pais questões de segurança com as quais os fornecedores de nuvem devem se preocupar,
além de estabelecer as recomendações necessárias para garantir a segurança e a privaci-
dade dos serviços destes pontos de segurança. De fato, o documento é considerado um
dos mais completos guias de segurança em computação em nuvem, sendo um dos mais
referenciados por diversos autores (e.g., [6–8, 19], para citar alguns).
A CSA (Cloud Security Alliance) é uma organização sem fins lucrativos, fundada no
final de 2008 em uma iniciativa para reforçar a segurança da computação em nuvem.
Seus membros fundadores são principalmente representantes industriais, corporações e
associações (e.g., DMTF, ITU, OWASP, Dell, HP e eBay) [20]. Um dos seus principais
objetivos é incentivar a adoção de boas práticas para promover a segurança nos ambientes
de computação em nuvem. A discussão a seguir sobre as recomendações resultantes do
trabalho da CSA toma com base a sua versão 3.0 [3], por ser este o documento mais
recente disponível no momento em que este texto foi elaborado.
O texto do guia se inicia com uma nota editorial que descreve brevemente os
passos necessários para verificar se uma organização está pronta para a transição para o
modelo em nuvem. Esta nota editorial consiste em alguns itens: identificação e avalia-
ção dos ativos para a implantação do modelo em nuvem, mapeamento dos recursos para
verificar modelos de implantação possíveis (público, privado, híbrido ou comunitário),
avaliação de potenciais provedores de nuvem, entre outros. No Guia CSA, as questões
de segurança são chamadas de domínios de segurança. Porém, no presente documento
manteremos o termo “questão” para fins de padronização e para facilitar comparações.
O documento está dividido em três seções: (i) arquitetura da nuvem; (ii) gover-
nança da nuvem e (iii) operações na nuvem. Ao todo, o documento identifica treze ques-
tões de segurança nessas seções, apresentado diversos subtópicos dentro de cada uma
dessas seções. A Figura 1.4 sumariza essa estrutura, apresentando as questões e suas
respectivas subdivisões.
A discussão sobre segurança se inicia com colocações relativas à forma de se
governar a nuvem. Com relação a governança e o gerenciamento de risco empresarial
(questão 1), discute-se a necessidade de atenção com os processos organizacionais da
segurança da informação. É dado especial destaque aos acordos de níveis de serviço (Ser-
vice Level Agreements – SLAs), especificando-se que requisitos de segurança devem ser
especificados nesse documento e reforçadas por um contrato. No tópico gerenciamento
de risco, é advertido no documento para não avaliar somente o fornecedor da nuvem, mas
também os terceiros com quem o provedor está envolvido (i.e., para quem o provedor de
nuvem terceiriza serviços). As questões 2 e 3 discutem a conformidade com regulamen-
tações governamentais, normas da própria organização, aspectos legais (e.g., propriedade
intelectual, responsabilidades), entre outras, estabelecendo como estas regras podem in-
fluenciar a segurança interna da organização. A questão 4, descreve diversos aspectos
relacionados à manipulação dos dados, como segurança, localização, gerenciamento da
informação, entre outros, estabelecendo os modos em que os dados devem ser gerencia-
dos para evitar vulnerabilidades que possam expor os dados armazenados. Já a discussão
sobre portabilidade e interoperabilidade (questão 5) inicia com uma especificação de pos-
síveis razões para migrar os dados para o modelo de nuvem. Neste tópico, o documento
ressalta que a computação em nuvem ainda carece de uma padronização de diversos fato-
res, causando uma dificuldade para a interoperabilidade de serviços, e consequentemente,
a dificuldade de migrar serviços de um provedor de nuvem para outro. Por outro lado, é
importante notar a contribuição das plataformas de nuvem Open Source para mitigar esse
problema, já que elas que contribuem para o aumento da interoperabilidade entre prove-
dores através da divulgação de seus códigos e adoção de interfaces padronizadas (e.g.,
Open Cloud Computing Interface - OCCI, Virtual Infrastructure Modeling Language -
VXDL).
Figura 1.4: Questões de segurança em nuvens computacionais elencadas pela CSA.
A ENISA (European Network and Information Security Agency) é uma organização que
visa [1]: “Aumentar a capacidade da União Européia, dos estados membros da União
Européia e da comunidade de negócios em prevenir, tratar e responder a problemas de
segurança da informação e redes.”
O documento se inicia com uma especificação dos benefícios de computação em
nuvem sob o prisma da segurança. Em seguida, é realizada a descrição de um processo de
análise e avaliação de riscos com base em três cenários de caso de uso: (i) computação em
nuvem em pequenas e médias empresas; (ii) impacto da computação em nuvem na resili-
ência de serviço e (iii) computação em nuvem para administração pública (eGovernment).
Essa análise é baseada na probabilidade de cenários de incidentes com uma estimativa de
impacto nos negócios e níveis de risco (baixo, médio ou alto).
A lista de questões de segurança contém não apenas riscos que são específicos
para o modelo de computação em nuvem, mas também riscos que não o são [7]. Para
maior concisão, neste documento são listadas apenas as questões de segurança direta-
mente ligadas à nuvem, enquanto os problemas não relacionados foram omitidos.
As questões de segurança (ou riscos, como definidos no documento da ENISA)
relevantes para computação em nuvem estão apresentadas na Figura 1.5. Ao contrário
dos guias apresentados nas subseções 1.2.1.1 e 1.2.1.2, a ENISA define as questões de
segurança especificamente e, por esse motivo, não existem subtópicos.
A lista de questões políticas e organizacionais se inicia com a discussão da questão
do lock-in (questão 1), relatando a situação de falta de portabilidade entre fornecedores
de nuvem em cada categoria de serviço na nuvem (IaaS, PaaS e SaaS). Após isto, gover-
nança (questão 2), conformidade (questão 3) e ameaças indiretas causadas por inquilinos
que estão utilizando um mesmo fornecedor (questão 4) são discutidas. É destacado que
desafios de disponibilidade podem ser resultado de problemas dentro do próprio provedor
da nuvem (questões 5 e 6) ou terceiros em que o provedor confia (questão 7).
A lista de questões técnicas se inicia com ameaças resultantes da exaustão de re-
cursos (questão 8), como: incapacidade de fornecer recursos (estabelecidos no SLA ou
adicionais) aos clientes, indisponibilidade de serviços, entre outros. A questão 9 trata
de falhas nos mecanismos que isolam recursos compartilhados entre usuários (falhas no
hypervisor). Em seguida são apresentadas as vulnerabilidades que causam ou podem vir
Figura 1.5: Questões de segurança em nuvens computacionais elencadas pela ENISA.
Para constatar as diferenças e resumir as questões elencadas nos guias do NIST, CSA
e ENISA, a Tabela 1.2 apresenta um comparativo considerando questões políticas, or-
ganizacionais e legais, enquanto a Tabela 1.3 resume as questões técnicas listadas nas
subseções do NIST, CSA e ENISA. Especificamente, essas tabelas verificam se as ques-
tões são ou não abordadas nos documentos: em caso positivo a coluna é marcada com
“Abordado”; caso contrário, a marcação é feita com “n.a.” (não abordado).
A Tabela 1.2 usa como parâmetros de comparação aqueles definidos em [7], que
apresenta tópicos fundamentais para garantir a segurança da computação em nuvem: go-
vernança e gerenciamento de risco; conformidades e auditoria; aspectos legais (eletrô-
nicos e contratos); ameaças internas; tratamento dos dados; relatório de incidentes; ge-
renciamento de correções; e vistorias. Embora bastante amplos, cabe observar a lista de
parâmetros utilizados nas comparações realizadas não fornecem a noção de qual docu-
mento é o mais completo, pois representam apenas uma pequena parcela dos tópicos que
são abordados nos mesmos. Assim, os parâmetros podem variar em função das neces-
sidades de segurança, dos objetivos das organizações, entre outras variáveis. De fato, a
principal diferença encontrada entre os documentos foi na questão 5.1 da Tabela 1.2, rela-
tiva ao tratamento dos dados dos usuários: enquanto a CSA e ENISA se preocupam com
a segurança dos dados que o usuário pretende armazenar na nuvem, o NIST dá ênfase
na segurança dos dados do próprio usuário, como suas informações pessoais que podem
ser alvos de ataques. Já com relação à questão 2.2 da Tabela 1.2, conformidades de lo-
calização dos dados, embora a ENISA não faça uma discussão direta sobre o assunto,
indiretamente o mesmo é tratado.
Tabela 1.3: Comparativo Guias NIST, CSA e ENISA quanto a questões técnicas.
Questão Técnica Subtópicos NIST CSA ENISA
1 - Disponibilidade 1.1 - Interrupções Abordado Abordado Abordado
1.2 - Exaustão de recursos n.a. Abordado Abordado
1.3 - Ameaças de disponibilidades por ataques de Abordado n.a Abordado
DoS
1.4 - Ameaças por compartilhamento de dados Abordado Abordado Abordado
2 - Portabilidade 2.1 - Portabilidade de dados Abordado Abordado Abordado
2.2 - Portabilidade de imagens de VMs n.a. Abordado Abordado
2.3 - Portabilidade de aplicações Abordado Abordado Abordado
3 - Gerenciamentos de Dados 3.1 - Isolamento Abordado Abordado Abordado
3.2 - Backup e recuperação Abordado Abordado Abordado
3.3 - Exclusão Abordado Abordado Abordado
3.4 - Cifração Abordado Abordado Abordado
3.5 - Gerenciamento de chaves Abordado Abordado Abordado
3.6 - Verificação de integridade Abordado Abordado n.a.
4 - Identidade e Gerencia- 4.1 - Provisionamento e desprovisionamento de n.a. Abordado Abordado
mento de Acesso identidade
4.2 - Federação de identidade Abordado Abordado Abordado
4.3 - Autenticação Abordado Abordado Abordado
4.4 - Autorização e controle de acesso Abordado Abordado Abordado
5 - Segurança de Aplicação 5.1 - Proteção do Cliente Abordado Abordado Abordado
5.2 - Proteção do Servidor Abordado Abordado Abordado
5.3 - Proteção da Imagem da VM Abordado Abordado Abordado
5.4 - Proteção dos Arquivos de Log n.a. Abordado Abordado
6 - Virtualização 6.1 - Proteção do Hypervisor Abordado Abordado Abordado
6.2 - Proteção do Sistema Operacional Visitante Abordado Abordado Abordado
6.3 - Proteção da Rede Virtual Abordado Abordado Abordado
1. Inicialização: inclui tarefas que uma organização deve realizar para projetar/pla-
nejar a solução de virtualização, identificando os requisitos, desenvolvendo uma
política de virtualização, identificando plataformas e aplicações que podem ser vir-
tualizadas, entre outras tarefas.
4. Operação e manutenção: esta fase inclui as tarefas de segurança que uma orga-
nização deve realizar constantemente, como revisão de logs, detecção de ataques,
entre outras operações de monitoramento.
5. Descarte: esta fase reforça as tarefas que ocorrem quando uma solução de vir-
tualização está sendo removida, incluindo preservação das informações de acordo
com os requisitos legais, sanitização adequada dos dados, e descarte apropriado dos
equipamentos.
Para cada uma dessas fases do ciclo de vida de soluções de virtualização, são
definidos os cuidados e considerações que devem ser levados em consideração visando
garantir a segurança dos dados armazenados na infraestrutura virtualizada. O documento
ainda expõe que essas fases representam apenas uma abordagem geral para a utilização
segura do recurso de virtualização, e que existem diversas outras opções complementares
que podem ser utilizadas em cada uma das etapas definidas.
A PCI DSS (Payment Card Industry - Data Security Standard) é uma organização pro-
prietária de segurança da informação que presta serviços para empresas que realizam
operações com cartões de crédito nos Estados Unidos (Visa, Mastercard, American Ex-
press, entre outras). O objetivo dessa organização é garantir a segurança da informação
nas tecnologias que estas transações utilizam, dentre elas a virtualização. O guia [24] é
dividido em quatro partes, como apresenta a Tabela 1.5.
O público alvo do guia são os provedores de serviços que utilizam ou irão utilizar
as tecnologias de virtualização em seus ambientes. Assim, o documento provê um guia
suplementar para a utilização da virtualização, definindo alguns riscos de segurança e
fornecendo recomendações.
Após introduzir os conceitos gerais de virtualização e seus componentes, o guia
apresenta os riscos de segurança proporcionados pelo ambiente de virtualização. O pri-
meiro risco elencado é proveniente das vulnerabilidades no ambiente físico em que é
aplicada a virtualização, ressaltando que os sistemas virtuais estão sujeitos aos mesmos
ataques e vulnerabilidades que existem na infraestrutura física. Afinal, uma aplicação
que tem falhas em sua configuração ou é vulnerável a exploits ainda terá as mesmas fa-
lhas e vulnerabilidades quando for instalada uma implementação virtual. Por outro lado,
o hypervisor cria uma nova superfície de ataque, pois proporciona um único ponto de
acesso a todo ambiente virtual: se ele for comprometido, todas as VMs hospedadas na-
quele hypervisor também o serão. Por exemplo, tal vulnerabilidade pode ser causada por
uma simples má configuração, um erro muito comum. Outras vulnerabilidades desta-
cadas no documento são: isolamento deficiente, reduzido controle de acesso a recursos
físicos, falha em aplicar técnicas de endurecimento (hardening) da segurança e correções.
O documento conclui ainda que é crítico que o acesso ao hypervisor seja restrito somente
aos administradores da rede, e que tarefas como revisões e monitoramentos devem ser
realizadas constantemente como se estivessem sendo operadas em um ambiente físico.
Outro ponto destacado no guia refere-se ao aumento da complexidade dos siste-
mas devido à virtualização. Especificamente, as configurações virtuais podem ser clas-
sificadas como sistemas e redes. Por exemplo: VMs podem transmitir dados umas às
outras por meio do hypervisor, como também sobre uma conexão de rede virtual e/ou por
meio de aplicações de segurança de redes virtuais, como um firewall. Enquanto as con-
figurações virtuais oferecem diversos benefícios, essas abstrações adicionais de software
causam um aumento na complexidade total do sistema, exigindo um cuidado maior em
seu gerenciamento e na elaboração de políticas de segurança para as mesmas.
O documento apresenta ainda os riscos decorrentes da presença de mais de uma
função por sistema físico. Uma preocupação neste contexto é que, se uma função de um
ambiente virtual particular está comprometida, ela poderá comprometer outras funções
no mesmo ambiente físico. Um exemplo ilustrativo desse problema é um cenário em que
uma VM comprometida utiliza os mecanismos da camada virtual de comunicação para
lançar ataques contra outras VMs no mesmo host ou até contra o hypervisor. As tecno-
logias de virtualização devem ser capazes de mitigar alguns riscos caso sejam capazes de
reforçar a separação entre diferentes funções. Entretanto, ao menos até que tais meca-
nismos adquiram um nível de maturidade adequado, o risco associado com a alocação de
múltiplas funções ou componentes em um único sistema físico ainda deve ser conside-
rado. Outro ponto abordado são os riscos decorrentes da mistura de VMs com diferentes
níveis de confiança em um host em particular. O documento destaca que esse é um grande
desafios quando se planeja a virtualização de um sistema, pois identificar as configurações
apropriadas para a potencialmente grande variedade de tecnologias de virtualização é uma
tarefa complexa. Em especial, o risco de hospedar VMs de diferentes níveis de confiança
no mesmo host precisa ser cuidadosamente avaliado. Afinal, uma VM com baixo nível de
confiança tipicamente tem um nível baixo de segurança se comparada a uma VM de alto
nível de confiança. Portanto, estas VMs com baixo nível de confiança podem ser mais
fáceis de se comprometer, servindo como base para ataque a VMs com níveis superiores
de confiança.
A falta de separação de tarefas para as VMs é também abordado no guia como um
fator que requer atenção, dada a dificuldade de se definir papéis granulares (e.g., separação
da administração de rede e de servidor), e políticas de acesso em um sistema distribuído
e virtualizado. O risco advindo de uma definição inapropriada de papéis e políticas é
significante, pois o acesso impróprio ao hypervisor potencialmente fornece amplo acesso
a componentes importantes da infraestrutura.
O guia discorre também sobre as imagens de VM e snapshots. Por meio delas,
obtém-se uma maneira rápida de abortar ou restaurar sistemas virtuais em múltiplos hosts
em um período curto de tempo. Por outro lado, esta conveniência é acompanhada de
riscos de segurança, pois imagens e snapshots de VMs podem conter dados importan-
tes presentes no sistema no momento que a imagem foi criada (e.g., chaves criptográficas
presentes na memória), exigindo-se atenção especial na sua preparação e armazenamento.
Além do acesso a informações sensíveis, se as imagens não estiverem propriamente pro-
tegidas contra modificações, um atacante que ganhe acesso às mesmas pode inserir vulne-
rabilidades ou malwares na imagem. A imagem comprometida pode então ser replicada
para uso em todo o ambiente, resultando em um comprometimento rápido de todos os
hosts. Preocupações semelhantes aplicam-se também a VMs em estado de espera (i.e.,
que tiveram seu processamento temporariamente suspenso): embora não estejam ativas,
elas ainda podem abrigar dados importantes como credenciais de autenticação, chaves de
cifração, ou informações críticas de configuração, as quais devem ser protegidas contra
acesso indevido.
Também é dado destaque aos riscos decorrentes da imaturidade das soluções de
monitoramento atuais. Embora seja amplamente reconhecida a necessidade por ferra-
mentas para geração de logs e monitoramento em ambientes virtualizados, é igualmente
reconhecido que as ferramentas para realizar tais tarefas nesses ambientes não evoluí-
ram no passo adequado. Especificamente, se comparadas às ferramentas tradicionais para
monitorar uma rede física, as ferramentas para sistemas virtuais podem não fornecer o
mesmo nível de eficácia para as comunicações ou o fluxo de tráfego entre as VMs em
uma rede virtual, que ficam “invisíveis” aos sistemas de monitoramento. Portanto, o de-
senvolvimento de ferramentas especializadas de monitoramento e de geração de logs para
ambientes virtuais é uma necessidade bastante atual.
Finalmente, a última categoria de riscos abordada pelo documento refere-se ao
vazamento de informações entre segmentos virtuais da rede, fazendo com que tais dados
sejam levados para fora de locais conhecidos, contornando os controles que deveriam
ser a eles aplicados. O vazamento de informações no plano de controle ou plano de
gerenciamento pode ser explorado para permitir o vazamento de informações no plano de
dados, ou para influenciar rotas de rede para passar por controles de segurança de rede.
Após a discussão sobre riscos, o documento trata das recomendações gerais para
garantir a segurança de ambientes virtualizados. Um primeiro ponto levantado diz res-
peito à avaliação dos riscos associados com as tecnologias de virtualização, esclarecendo
que as entidades devem saber avaliar cuidadosamente os riscos de se virtualizar cada com-
ponente antes de selecionar e implementar uma solução de virtualização. Em seguida, o
guia trata da restrição de acesso físico aos hosts, discorrendo sobre os cuidados neces-
sários para evitar que um atacante ganhe acesso físico a um host que hospeda múltiplas
VMs. Similarmente a um ambiente físico, a defesa em profundidade é uma prática co-
mum para assegurar os dados e outros ativos. Outra recomendação é isolar as funções
de segurança, fazendo com que as funções de segurança implementadas na VM sigam o
mesmo processo de separação existente no ambiente físico. É especialmente recomen-
dado que este requisito seja implementado em ambientes virtualizados, pois esta medida
dificulta significantemente as chances de um atacante comprometer os componentes de
um sistema virtual. As recomendações passam então para uma avaliação adequada do hy-
pervisor, discutindo os cuidados necessários na configuração desse componente vital no
ambiente virtual, para o uso de ferramentas eficazes de monitoramento e geração de logs,
entre outros aspectos relevantes. O guia termina com medidas para avaliar os riscos no
ambiente virtualizado, processo que envolve identificar o ambiente e seus componentes
(incluindo hypervisors, redes, consoles de gerenciamento, etc.), mapear as vulnerabilida-
des existentes no sistema e definir as medidas cabíveis contra potenciais ameaças.
A Red Hat é uma empresa norte americana reconhecida por produtos voltados tanto para
empresas quanto para usuários finais, incluindo sua distribuição de GNU/Linux, o Red
Hat Linux e uma distribuição própria do OpenStack. Uma característica marcante da
empresa é a elaboração de guias e manuais visando o uso seguro de seus produtos [25].
Neste sentido, a Red Hat elaborou um guia de segurança em virtualização para dar suporte
a seus produtos de virtualização. A Tabela 1.6 apresenta a estrutura do documento, que é
discutido a seguir.
A Tabela 1.7 apresenta uma comparação com base em itens de segurança comuns entre
os guias de virtualização apresentados.
Tabela 1.7: Comparativo guias virtualização: NIST, Red Hat e PCI.
Aspectos NIST Red Hat PCI
1 – Segurança do hypervisor (monitoramento/logs/configuração/restri- Abordado Abordado Abordado
ções de acesso administrativo)
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 desktop Abordado n.a. Abordado
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.
A análise da Tabela 1.7 mostra que o documento que aborda mais tópicos é o da
PCI, seguido pelo NIST, enquanto o mais básico dentre eles é o da Red Hat. Os pontos
críticos em comum abordados pelos guias são os de maior importância na virtualização,
como: segurança do hypervisor, segurança dos guests e segurança da infraestrutura vir-
tual. O hypervisor é destacado nos documentos como um componente fundamental na
virtualização, pois tem a função de coordenar as VMs e permitir acesso destas ao hard-
ware físico. Portanto, se esse componente for comprometido, a chance de todas as VMs
naquele host também o serem é grande. Segundo os três guias, os guests devem estar com
uma configuração semelhante a um SO físico, pois, além de compartilharem as mesmas
vulnerabilidades, ainda existem riscos provenientes do ambiente virtual. Portanto, dada
a complexidade adicionada pela camada de virtualização, deve ser dedicado cuidado es-
pecial para garantir a segurança das VMs. A infraestrutura virtual, outro ponto destacado
pelos três guias, envolve garantir a segurança da rede virtual, a qual deve estar com os
canais de comunicação seguros. Embora não sejam cobertos em detalhes em todos os
documentos, mas principalmente no guia da PCI, outros aspectos importantes para garan-
tir um alto nível de segurança são: imagens e snapshots; imaturidade das ferramentas de
geração de logs e monitoramento; e mistura de VMs com diferentes níveis de confiança
em um mesmo host.
Esse documento da CSA, ainda que descreva em alto nível as ameaças relaciona-
das, serve de guia para os atuais e futuros esforços despendidos na identificação e solução
dos principais problemas de segurança em computação em nuvem, viabilizando, assim, a
diminuição das barreiras para a implantação e a utilização deste novo modelo de serviço.
A CSA [3] estabelece ainda treze áreas críticas de segurança a serem considera-
das na implementação e implantação de serviços de computação em nuvem (definidas
na subseção 1.2.1.2, agrupando essas áreas em três grandes domínios de segurança que
abrangem o projeto, a gestão e a operação de serviços.
Outros trabalhos da Tabela 1.8 também tiveram grande importância na compre-
ensão dos aspectos principais da segurança em serviços de computação em nuvem, em
especial: [1, 36]. Estes documentos tiveram e têm papel fundamental no entendimento
dos riscos a serem considerados pelos consumidores de serviços de computação em nu-
vem ao selecionar um provedor.
Considerando aspectos de segurança de computação em nuvem como ameaças,
riscos e domínios de segurança, abordados na literatura mencionada, é possível construir
uma base sólida dos fundamentos e pontos chave de segurança a serem avaliados nas
soluções de TI que envolvam este modelo de serviço. Tomando como base estes funda-
mentos, aliados aos aspectos levantados nos guias da seção 1.2, é possível ainda propor
um arcabouço para análise de segurança destas soluções, conforme discutido a seguir.
1.3.4. Análise de segurança de uma nuvem computacional
Os desafios advindos da computação em nuvem têm sido enfrentados por meio de es-
forços provenientes dos ambientes corporativo e acadêmico, promovendo, muitas vezes,
a sinergia entre seus interesses. O documento da CSA [32] fornece uma base para a
TI corporativa na análise dos riscos envolvidos na contratação e utilização de serviços
de computação em nuvem, e pode servir de base para trabalhos de pesquisa importantes
na análise de segurança deste modelo de serviço (e.g., [38]). Esse trabalho propõe uma
análise da segurança em serviços de computação em nuvem baseada em três seções prin-
cipais: Categorias de segurança, segurança nos diferentes modelos de serviço e dimensões
de segurança. A Figura 1.8 ilustra o modelo organizacional proposto.
1.4.1. Componentes
Na versão Havana, a plataforma OpenStack é composta em seu repositório padrão por
nove componentes, listados na Tabela 1.11 juntamente com uma breve descrição.
• Novos recursos focados nas aplicações, como clusters globais para o armazena-
mento de objetos e qualidade de serviço por meio de drivers de armazenamento em
bloco para garantir o desempenho das aplicações.
• Melhorias no Keystone, com a adição de recursos como cifração fim a fim em todos
os drivers de armazenamento em bloco (provendo maior segurança dos dados em
repouso), suporte a SSL (Secure Socket Layer) em todas APIs e o armazenamento
dos dados de autorização e credenciais em backends separados.
1. Criação da VM: esta etapa envolve três estágios distintos para a disponibilização da
VM para o usuário:
4. Exclusão da VM: uma vez que o usuário não deseja mais utilizar a VM, é necessário
que a plataforma realize a exclusão segura dos dados do usuário. Nesta etapa,
o usuário faz uma requisição via Horizon ou API para o Nova, para que a VM
instanciada seja excluída.
• Identity Service API: lida com tokens de autenticação que permitem o acesso à
Compute API.
• Object Storage API: utilizada para gerenciar contas, containers e objetos do sis-
tema Object Storage.
• Orchestration API: provê uma linguagem modelo para orquestração dos serviços
do OpenStack.
1.4.4. Funcionamento
Sendo o projeto OpenStack prover uma plataforma IaaS, existem diversas maneiras de se
utilizar os serviços de rede, armazenamento, máquinas virtuais, entre outros, oferecidos
pela plataforma. Para facilitar o gerenciamento dessa miríade de possibilidades, para cada
serviço disponibilizado existe um processo específico. Assim, com o objetivo de ilustrar
o funcionamento do OpenStack tendo em vista analisar sua segurança, apresenta-se aqui
um caso de uso simples da plataforma: a criação de uma VM para o usuário, caso que é
explorado mais detalhadamente na subseção 1.4.5.
Conforme discutido na seção 1.4.2, a criação de uma VM é feita após o envio de
uma requisição do usuário, por meio do Horizon ou CLI. Do ponto de vista da segurança,
neste processo é essencial o serviço de identidade na nuvem, pois, caso contrário, pode
ocorrer o acesso indevido às VMs armazenadas. O Keystone é responsável por permitir
ou negar qual usuário deve ter acesso a um determinado serviço, fazendo isso com base
no papel atribuído a seu tenant. Mais precisamente, um tenant é definido pelo projeto
gerenciado por um determinado cliente da nuvem, criando um container que agrupa e
isola recursos e/ou objetos de identidade que pertencem aos usuários daquele projeto.
Assim, delimita-se o escopo de um usuário a uma porção de recursos pertinentes a seu
papel dentro dos projetos dos quais ele faz parte. A Figura 1.13 ilustra a requisição de
um serviço na nuvem (disponibilização de uma VM para um usuário), com o objetivo
de esclarecer como ocorre o processo de requisições e respostas entre o usuário e os
componentes, para que o usuário obtenha acesso aos serviços que está requisitando.
O processo de requisição para criação de uma VM (Figura 1.13) envolve cinco
componentes do OpenStack. Tudo se inicia com o usuário enviando suas credenciais para
o Keystone, que o autentica e em seguida gera e envia um token temporário para o usuário.
Com o token, o usuário envia para o Keystone a requisição dos serviços e endpoints que
deseja utilizar. Após a analisar a requisição, o Keystone retorna os serviços e endpoints
permitidos, de acordo com o projeto do qual o usuário faz parte. Assim, o usuário recebe a
permissão para requisitar a criação de uma instância ao Nova por meio da apresentação de
tal token. Para saber se pode ou não satisfazer à requisição de um usuário qualquer, o Nova
autentica o token apresentado pelo usuário junto ao Keystone. Caso o token seja válido,
o Nova então requisita uma imagem ao Glance, que repete o processo de validação junto
ao Keystone, e em seguida, envia o token em uma requisição ao Neutron para a conexão
de uma interface virtual na rede. O Neutron repete o processo de autenticação junto ao
Keystone e retorna a mensagem de sucesso ao Nova, que a replica para o usuário.
Observa-se neste processo que o elemento central para acessar os componentes do
OpenStack é o token temporário gerado para o usuário, o qual é autenticado a cada vez que
um novo componente se envolve no processo de requisição do serviço. Tal fato permite
Figura 1.13: Solicitação de uma VM no OpenStack Havana.
exemplificar a importância do Keystone para que seja garantida a segurança dos diversos
processos envolvidos no uso da nuvem, indo de ações simples como uma requisição de
criação de VM, até processo mais complexos como configuração de uma infraestrutura
completa de máquinas ligadas por uma rede virtual.
• Criação da VM: uma vez que as etapas anteriores tenham sido concluídas, a cria-
ção da VM é feita via API do Nova, passando como argumento o tipo da VM, o
identificador da imagem, o par de chaves e o grupo de segurança.
Como observado na Figura 1.15, o OpenStack não utiliza por padrão canais se-
guros de comunicação entre os seus componentes, e, com isso, é possível capturar as
informações de qualquer usuário na rede (desde que, obviamente, se tenha acesso ao trá-
fego interno da nuvem). Neste caso, o pacote se trata de uma autenticação da token do
usuário do Glance para o Keystone. O mesmo fato se repete nos pacotes filtrados da
comunicação com o Keystone, conforme observado na Figura 1.16. O mesmo resultado
pode ser observado na requisição de autenticação do Glance para o Keystone, que envia a
senha “semsenha” para o endereço do Keystone (192.168.0.100:5000/v2.0). Essa troca de
informações para autenticação também pode ser observada em pacotes de diversos com-
ponentes, comprovando que a plataforma não utiliza canais seguros de comunicação por
padrão entre os nós da plataforma.
Figura 1.17: Trecho de código que mostra como são tratadas as senhas no Keystone.
O problema com essa estratégia é que, caso esses hashes sejam descobertos (e.g.,
por meio da sua captura na rede, pelo roubo do banco de dados, ou mesmo pelo acesso
usuários internos maliciosos), a tarefa de descobrir a senha correspondente se resume a
usar tabelas pré-construídas com senhas comuns [51–53]. Isto permitiria ao atacante não
apenas se passar pelo usuário no OpenStack, mas também possivelmente reusar a senha
obtida em outros contextos, já que muitos usuários reutilizam a mesma senha para acessar
diferentes serviços. Para resolver esse problema, recomenda-se o uso de esquemas de
derivação de chaves, tais como PBKDF2 [52] ou Lyra [53]. O benefício de tais esquemas
é que eles exigem que a senha seja combinada com uma sequência de bits aleatórios
(denominada salt), o que impede o uso de tabelas pré-construídas, além de permitir a
parametrização o custo computacional de verificação das senhas (e, assim, o custo de
ataques de força bruta).
1.5. Considerações
A fundamentação sobre guias de segurança relacionados a nuvens computacionais e VMs
(seção 1.2) indica que já há um bom nível de conhecimento sobre aspectos de segurança
essenciais para se levar em consideração no contexto de computação em nuvem. Contudo,
a diversidade de serviços de nuvem, aliada aos diferentes modelos de serviço (SaaS/Pa-
aS/IaaS) e abordagens de implantação (Privada/Pública/Comunitária/Híbrida), tornam a
execução da análise de segurança nesses ambiente uma tarefa complexa. Deste modo,
é necessário avaliar cada solução de computação em nuvem de modo a identificar quais
questões de segurança são oriundas dos elementos que a compõem (e.g., vulnerabilida-
des do Xen) e quais são diretamente relacionadas à solução de computação. As questões
de segurança oriundas de elementos não específicos da nuvem tipicamente já apresentam
alguma abordagem de tratamento, antes mesmo de sua incorporação à nuvem (vide se-
ção 1.3). Entretanto, as questões intrínsecas da nuvem exigem o início de novos estudos
de segurança. Nesse sentido, o presente texto (seção 1.4) exemplificou este aspecto atra-
vés da análise do tráfego de controle no OpenStack (mais especificamente envolvendo o
componentes Nova e Keystone) e sobre o armazenamento das senhas do Keystone com
uma abordagem problemática.
Uma consideração importante oriunda deste estudo é que o OpenStack vem evo-
luindo constantemente, tanto em termos de recursos como aspectos de segurança. Esta
preocupação com segurança e suas implicações devem nortear tanto o desenvolvimento
de soluções de nuvens como a sua implantação. Entretanto, é essencial que os clientes da
nuvem preocupem-se não apenas com a escolha e verificação de recursos de segurança em
nuvem, mas também em habilitá-los e usá-los corretamente quando incorporem a nuvem
em seus ambientes.
Agradecimentos
Agradecemos o Centro de Inovação, Ericsson Telecomunicações S.A., Brasil pelo suporte
e financiamento do projeto correlacionado ao tema desse artigo.
Este trabalho foi parcialmente financiado pelo Conselho Nacional de Desenvolvimento
Científico e Tecnológico (CNPq) por meio da bolsa de produtividade 305350/2013-7.
Agradecemos a Universidade do Estado de Santa Catarina (UDESC) pelo suporte e finan-
ciamento do projeto correlacionado ao tema deste trabalho.
Referências
[1] ENISA, Cloud Computing: Benefits, Risks and Recommendations for Information
Security. ENISA Agency, European Network and Information Security, 2011.
[2] P. M. Mell and T. Grance, “SP 800-145. the NIST definition of cloud computing,”
National Institute of Standards & Technology, Gaithersburg, MD, United States,
Tech. Rep., 2011.
[3] CSA, “Security guidance for critical areas of focus in cloud computing
v3.0,” Cloud Security Alliance, Tech. Rep., 2011. [Online]. Available: https:
//downloads.cloudsecurityalliance.org/initiatives/guidance/csaguide.v3.0.pdf
[4] F. Liu, J. Tong, J. Mao, R. Bohn, J. Messina, L. Badger, and D. Leaf, NIST Cloud
Computing Reference Architecture: Recommendations of the National Institute of
Standards and Technology (Special Publication 500-292). USA: CreateSpace In-
dependent Publishing Platform, 2012.
[5] G. J. Popek and R. P. Goldberg, “Formal requirements for virtualizable third
generation architectures,” Commun. ACM, vol. 17, no. 7, p. 412–421, jul 1974.
[Online]. Available: http://doi.acm.org/10.1145/361011.361073
[12] G. P. Koslovski, P. V.-B. Primet, and A. S. Charão, “VXDL: virtual resources and
interconnection networks description language,” in Networks for Grid Applications,
ser. Lecture Notes of the Institute for Computer Sciences, Social Informatics and
Telecommunications Engineering, P. V.-B. Primet, T. Kudoh, and J. Mambretti, Eds.
Springer Berlin Heidelberg, jan 2009, no. 2, pp. 138–154.
[15] OpenStack, “OpenStack open source cloud computing software,” 2014. [Online].
Available: https://www.openstack.org/
[36] J. Heiser and M. Nicolett, “Assessing the security risks of cloud computing,”
Gartner Group, Technical Report G00157782, jun 2008. [Online]. Available:
https://www.gartner.com/doc/685308/assessing-security-risks-cloud-computing
[39] S. Subashini and V. Kavitha, “A survey on security issues in service delivery models
of cloud computing,” J. Netw. Comput. Appl., vol. 34, no. 1, p. 1–11, jan 2011.
[Online]. Available: http://dx.doi.org/10.1016/j.jnca.2010.07.006
[40] D. Zissis and D. Lekkas, “Addressing cloud computing security issues,” Future
Gener. Comput. Syst., vol. 28, no. 3, p. 583–592, mar 2012. [Online]. Available:
http://dx.doi.org/10.1016/j.future.2010.12.006
[41] X. Wen, G. Gu, Q. Li, Y. Gao, and X. Zhang, “Comparison of open-source cloud
management platforms: OpenStack and OpenNebula,” in 2012 9th International
Conference on Fuzzy Systems and Knowledge Discovery, may 2012, pp. 2457–2461.
[42] K. Jackson, Openstack Cloud Computing Cookbook. Packt Publishing Ltd, 2012.
[45] C. Cruzen, G. Cartee, and J. Wade, “Utilizing virtual missions to achieve real ope-
rations savings,” in 2011 IEEE Aerospace Conference, mar 2011, pp. 1–8.
[46] S. Al-Haj and E. Al-Shaer, “A formal approach for virtual machine migration plan-
ning,” in 2013 9th International Conference on Network and Service Management
(CNSM), oct 2013, pp. 51–58.
[47] M. Simonin, E. Feller, A. Orgerie, Y. Jegou, and C. Morin, “An autonomic and
scalable management system for private clouds,” in 2013 13th IEEE/ACM Interna-
tional Symposium on Cluster, Cloud and Grid Computing (CCGrid), may 2013, pp.
198–199.
[48] NIST, Federal Information Processing Standard (FIPS 197) – Advanced Encryption
Standard (AES), National Institute of Standards and Technology, November 2001,
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf.
[49] NIST, Federal Information Processing Standard (FIPS 180-4) – Secure Hash Stan-
dard, National Institute of Standards and Technology, U.S. Department of Com-
merce, March 2012.