Upload
voxuyen
View
216
Download
0
Embed Size (px)
Citation preview
Segurança na Nuvem
Diogo Reis – Duarte Petiz – Pedro Seruca
DCC/FCUP
O que é realmente Computação
na Nuvem?
Definição mais aceite criada pela NIST (National Institute of Standards and Technology)
Computação na nuvem é um novo paradigma de computação que envolve terceirização de dados e computação.
Com:
Consumo “self-service” – Automático;
Acedido pela Internet;
Recursos escaláveis, infinitos e elásticos;
Sem custos iniciais – O cliente paga aquilo que consome
CONSUMA O QUE QUISERER, QUANDO QUISER, NO LOCAL QUE QUISER E PAGA AQUILO QUE USAR.
Arquiteturas
Web Browser do Cliente
Software as a Service (SaaS)
Ex: Google Docs
Platform as a Service (PaaS)
Ex: Windows Azure
Infrastructure as a Service (IaaS)
Ex: Amazon EC2
ImplementaçõesNem todos os utilizadores devem ter o mesmo acesso à nuvem dentro de uma organização. Como tal foram criados 4 tipos diferentes de nuvens:
Private Cloud:
• A infraestrutura pertence à organização ou a um provedor.
Public Cloud:
A infraestrutura pertence ao provedor.
Serviços disponíveis a múltiplos utilizadores.
Baixo custo e altamente escalável.
Community Cloud:
A infraestrutura é partilhada por diversas organizações.
Destinado a comunidades que partilhem os mesmos interesses.
Hybrid Cloud:
É a junção dos modelos Public e Private.
Uma nuvem privada pode ver os seus recursos aumentados utilizando uma reserva
de recursos de uma nuvem pública.
Interfaces de Acesso
Como o utilizador não possui acesso físico sobre a nuvem necessita de uma
interface para aceder à mesma.
É essencial que existam mecanismos robustos de segurança para que o
acesso não seja comprometido.
Tipicamente o utilizador acede à nuvem utilizando um serviço web baseado
em SOAP (Simple Object Protocol) ou através de uma aplicação web REST.
Intervenientes
Provedor da Nuvem: é a entidade que fornece e distribui as infraestruturas da nuvem.
Provedor do Serviço: é a entidade que utiliza as infraestruturas da nuvem para fornecer aplicações e serviços aos consumidores finais.
Consumidor do Serviço: é a entidade que utiliza os serviços hospedados na infraestrutura da nuvem.
Estas classes (intervenientes) formam pares de interação.
Torna-se assim possível estudar as superfícies de ataque ao observar os pares de interação.
Intervenientes
Superfícies de Ataque
A: Interface cliente-
servidor.
B: Interface de
comunicação do
utilizador com o
serviço.
C: Superfície entre os
serviços e a
infraestrutura da
nuvem.
D: Controlo por parte
do provedor da
cloud.
E: Interface de
controlo da nuvem
F: Exposição do utilizador
à cloud.
Problemas e Ameaças à Nuvem
A Cloud Security Alliance (CSA) referencia 9 principais ameaças à computação na
nuvem:
Violação de dados
Perda de dados
Ataque/sequestro de contas
APIs inseguras
Negação de serviço (DoS)
Insiders maliciosos
Abuso dos serviços da Cloud
Due Diligence insuficiente
Problemas/vulnerabilidades em tecnologias partilhadas
Por que será que o
conceito da computação
na nuvem divide
opiniões?
Problemas e Ameaças à Nuvem
Funcionários da Cloud
Informação de Eventos Relevantes (Logs)
Funcionários do Cliente
Informação de Passwords/Autenticação
Poder sobre o Controlo das VMs
Provedor de Serviço (PODEROSO)
Tem acesso às VMs, pode até mesmo copiar VMs
Consegue monitorizar detalhadamente a rede e sabe padrões de aplicações
É quem apresenta a conta ao utilizador. Será que o valor é mesmo real?
Insiders Maliciosos
Motivações: Vender as informações à concorrência;
Essencialmente dinheiro/poder;
Problemas e Ameaças à Nuvem
Os provedores da Cloud de forma a albergar
um grande número de clientes e otimizar
recursos vendem os seus serviços através de
virtualização partilhada de hardware.
Realocação eficaz sem a necessidade de
alterações ao hardware dos servidores da
nuvem.
Problemas/vulnerabilidades em tecnologias partilhadas
Múltiplos utilizadores
independentes a
partilhar a mesma
infraestrutura física.
Então um atacante
pode estar na
mesma máquina
física que a vitima.
Então como é que
um atacante
descobre a máquina
da vitima?
Problemas com Múltiplos Vizinhos
Para se tornar vizinho da vitima o atacante precisa de determinar a
localização da vitima através de uma estratégia de
mapear/cartografar a infraestrutura da nuvem e da rede.
Utilização de heurísticas para determinar coabitação de duas VMs.
Esta estratégia tira partido de
ferramentas como por
exemplo:
Wget, Traceroute, Nmap,
hping
Utilizadores podem escolher regiões
Ex: Us ou Europa
Tipo de Instância (Tamanho)
Ex: Grande, Média, Pequena
Instâncias têm um IP
Instâncias do mesmo tipo poderão ter
regiões de IP semelhantes
O atacante tem de estudar bem o sistema e combinar
várias vulnerabilidades!
Problemas com Múltiplos Vizinhos
Quando o invasor conseguir ser vizinho pode realizar ataques DoS ou obter
informação da vitima através de ataques de canais laterais (Side Channels).
Estes problemas podem ser mitigados se o provedor:
Atribuir endereços IP aleatórios às instancias.
Restringir ferramentas de mapeamento da rede.
Utilizar técnicas de deteção de vizinhos e saber se o isolamento foi violado.
Após o atacante descobrir a localização do alvo basta adquirir um serviço que
utilize várias máquinas virtuais de forma a aumentar a janela de oportunidade de
coabitação.
Instâncias lançadas após as instâncias da vitima existe 40% de probabilidade de serem
vizinhas.*
* T. Ristenpart, E. Tromer, H. Shacham, and S. Savage, “Hey, you, get off of my cloud: exploring information leakage in third-party compute clouds,” in Proceedings of the 16th ACM conference on Computer and communications security, pp. 199–212, ACM, 2009.
Canais Laterais
É um tipo de ataque passivo
O atacante escuta informação do meio
físico e posteriormente usa esta
informação para atacar outras máquinas
virtuais presentes no mesmo meio físico.
O ataque mais vulgar deste tipo é a
escuta dos tempos de utilização do CPU
Caches permitem que um atacante saiba
a carga computacional de outras
instâncias.
Extração de bits por um canal lateral
Será assim tão perigoso?
Canais Laterais
Este tipo de ataque por vezes é considerado inofensivo.
• Y. Zhang, A. Juels, M. K. Reiter, e T. Ristenpart demonstraramem
2012 que é possível extrair Private Keys a partir deste tipo de
ataque.
Através das Private Keys conseguem por sua vez proceder a outro tipo de ataques à vitima.
Como evitar? DESSINCRONIZAR
Para evitar este tipo de ataques é limitar os recursos
partilhados, cache wiping, inserção de atrasos aleatórios,
ajustar a perceção do tempo de cada instância
Os recursos da nuvem são utilizados mais tempo como
desvantagem.
Não é fácil e requer antevisão de todos os canais.
Problemas do Poder das 3ªs Partes
A nuvem funciona como uma caixa preta,
nada dentro da nuvem é visível para os
clientes.
É a base das inseguranças que o cliente tem
quanto à privacidade e integridade dos seus
dados.
Uma das componentes da nuvem são humanos: CORROMPIVEIS
Funcionários do provedor, Funcionários do Cliente e o Provedor da Cloud.
Estes funcionários tem poderes consoante a sua hierarquia dentro do provedor.
Estes poderes podem ser utilizados para a boa gestão e funcionamento do provedor, mas também podem ser utilizados para o oposto.
Problemas do Poder das 3ªs Partes
Caso uma organização entre em conflito com o
seu provedor surge um grave problema.
O provedor poderá quebrar toda a ética e
vender ou libertar informação das organizações
para atacantes interessados, ou simplesmente
conceder-lhes acesso ao meio.
A confiança é um fator fulcral na escolha de um provedor de serviços na nuvem.
A necessidade de confiança e de proteção de integridade fez com que fossem criadas
soluções de segurança.
CONFIANÇA
Soluções de Segurança
Foram criadas soluções de segurança ao nível de hardware como de
software que visassem proteger ao máximo as organizações.
Proteção de dados
• ProtectV
• AES256
Controlo dos dados à distancia
Trusted Hardware
• Trusted Platform Module
Proteção dos Dados
Uma vez que o cliente ao utilizar a computação na nuvem estará sempre
dependente do provedor necessitará de um meio que separe os dados e
os torne inacessíveis, ou pelo menos ilegíveis, contra terceiros.
É assim usado criptografia e encriptação de dados, aumentando a
segurança do cliente.
• Consegue-se assim proteger a integridade de uma organização.
ProtectV
Solução comercial desenvolvida pela SafeNet.
Inteiramente compatível com AWS EC2 e o VMWare.
Encripta máquinas virtuais e volumes de armazenamento conectados.
Com o ProtectV nenhuma máquina pode ser ligada sem a devida
autenticação (key) do ProtectV StartGuard.
ProtectV
A SafeNet ProtectV e a KeySecure fornecem criptografia dos dados
garantindo:
Servidores físicos protegidos da mesma forma que VMs
Encripta toda a VM, backup e snapshots associados.
Separa a administração da encriptação da administração de
armazenamento eliminando assim o acesso a dados sensíveis.
Torna rapidamente os dados ilegíveis em caso de ataque, devido ao
sistema de exclusão de chave (key deletion)
AES256
O AES256 (Advanced Encryptation Standart) é uma especificação para encriptação de dados estabelecida pelo NIST (National Institute of StandartsTechnology).
A chave é expandida pelo algoritmo de Rijndael.
O AES atua sobre um array bidimensional de bytes com um total de 4x4 posições e atua sobre um número de turnos.
Cada turno tem 5 estágios, sendo o 5º um novo AddRoundKey.
AddRoundKey: Cada byte do estado é associado à subchave própria do turno respetivo (RoundKey).
SubBytes: Cada byte é substituído por outro de acordo com uma tabela de referencia.
ShiftRows: Cada fila do estado é deslocada uma certo número de posições.
MixColumns: Combina os quatro bytes de cada coluna usando uma transformação linear.
Esta técnica é atualmente utilizada pela DropBox para cifrar os ficheiros dos seus utilizadores.
Controlo dos Dados à Distancia
Desenvolveram-se protocolos que garantem que o cliente consiga
certificar-se à distância de que os seus dados não foram adulterados
por algum agente malicioso.
Provable Data Possession (PDP).
Proof of Retrievability (PoR).
Proof of PossessionO utilizador pode
agora eliminar o
ficheiro
Provable Data Possession
Este sistema de controlo de dados à distancia usa uma técnica de verificação local (spot checking).
De forma a reduzir o trafego de rede o cliente recolhe amostras de dados de blocos aleatórios e compara-os com a sua cópia local.
Se apenas 1% dos dados forem corrompidos por agentes maliciosos através de uma amostra aleatória de 460 blocos é possível detetar com 99% de probabilidade essa corrupção. *
A vulnerabilidade deste sistema está no tamanho dos dados corrompidos.
• Para dados corrompidos muito pequenos (ex: 1 bit) é difícil detetar corrupção.
• Uma solução é introdução de Error Correction Code(ECC).
Um exemplo de uma implementação dessas é o RobustDynamic Provable Data Possession (R-DPD)
?
* G. Ateniese, R. Burns, R. Curtmola, J. Herring, L. Kissner, Z. Peterson, and D. Song, “Provable data possession at untrusted stores,” in Proceedings of the 14th ACM conference on Computer and communications security, pp. 598–609, Acm, 2007.
O utilizador tem de
guardar sempre
alguns pedaços dos
ficheiros.
Proof of Retrievability Neste sistema é o provedor de serviço que comprova ao cliente
que possui os dados dele através de um protocolo servidor/arquivo.
• Baseado num sistema criptográfico simétrico
Apenas existe uma chave de verificação que é armazenada no próprio ficheiro de forma a melhorar e a verificar a integridade do mesmo.
• Ao juntar a chave ao ficheiro os atacantes não conseguem encontrar
a chave uma vez que os blocos são todos iguais.
• Assim o utilizador consegue verificar se os seus ficheiros foram, ou não,
adulterados.
Trusted Hardware
Partindo da ideia de que os atacantes conseguem controlar algum
software, mas não componentes de hardware dentro da própria
estrutura da nuvem foram criados criptoprocessadores seguros,
chamados de Trusted Platform Module.
• São capazes de armazenar chaves criptográficas.
• Atuam como raiz para dar confiança remota aos clientes.
Conseguem assim saber se estão ligados à verdadeira máquina remota.
Trusted Platform Module
E na Nuvem?Problema Agentes internos com acesso root podem comprometer as VMs dos clientes
Solução Possivel?: Encriptar as máquinas virtuais? Mas mais cedo ou mais tarde estas
terão de de ser descriptografadas para correrem!
Solução Possivel?: Apenas permitir que nós (máquinas) com software confiável para
descriptografar a VM!
Problema Como determinar que o Cloud Control Operation é seguro?
Solução Possivel?: TPM?
O TPM pode ser uma Solução para dar confiança ao Utilizador!
Conclusão
A computação em nuvem faz com que uma organização
ganhe um grande desempenho e reduza os custos de
hardware.
O maior obstáculo que se pode encontrar na computação em
nuvem é a segurança, sendo a privacidade e integridade dos
dados a chave da discussão.
O Facto de não existir nenhum standard para as infraestruturas
da nuvem faz com que a implementação de técnicas de
segurança standard e protocolares se tornem difíceis.
Os sistemas de segurança continuarão a evoluir de forma a
fortalecer a segurança da nuvem.
Mesmo existindo alguns problemas ao nível da segurança o
conceito de computação na nuvem vai continuar a evoluir e a
expandir-se.
A segurança de hoje, é a insegurança de amanha!
Obrigado pela atenção!
Thanks!