NATHALIA VIALI CUARELI · 2017-04-24 · sistemas, este trabalho apresenta conceitos sobre...
Transcript of NATHALIA VIALI CUARELI · 2017-04-24 · sistemas, este trabalho apresenta conceitos sobre...
NATHALIA VIALI CUARELI
DETECÇÃO DE ANOMALIAS DE SEGURANÇA EM
AMBIENTES CLOUD COMPUTING
LONDRINA - PR
2016
NATHALIA VIALI CUARELI
DETECÇÃO DE ANOMALIAS DE SEGURANÇA EM
AMBIENTES CLOUD COMPUTING
Trabalho de Conclusão de Curso apresentado
ao Curso de Bacharelado em Ciência da
Computação do Departamento de Computação
da Universidade Estadual de Londrina, como
requisito parcial para a obtenção do título de
Bacharel em Ciência da Computação.
Orientador: Prof. Dr. Mario Lemes Proença Jr.
LONDRINA - PR
2016
NATHALIA VIALI CUARELI
DETECÇÃO DE ANOMALIAS DE SEGURANÇA EM
AMBIENTES CLOUD COMPUTING
Trabalho de Conclusão de Curso apresentado ao
Curso de Bacharelado em Ciência da
Computação do Departamento de Computação da
Universidade Estadual de Londrina, como
requisito parcial para a obtenção do título de
Bacharel em Ciência da Computação.
BANCA EXAMINADORA
____________________________________
Prof. Dr. Mario Lemes Proença Jr.
Universidade Estadual de Londrina
_____________________________________
Prof. Dr. Daniel dos Santos Kaster
Universidade Estadual de Londrina
_____________________________________
Prof. Dr. Evandro Baccarin
Universidade Estadual de Londrina
Londrina-PR, 21 de Fevereiro de 2017.
Este trabalho é dedicado à todas as pessoas que vão em busca de seus sonhos.
O difícil fazemos agora, o impossível levará algum tempo.
AGRADECIMENTOS
Começo meus agradecimentos com as palavras de Dalai Lama a todos
aqueles que irei agradecer posteriormente, e como lembrete a mim: “Desenvolver força,
coragem e paz interior demanda tempo. Não espere resultados rápidos e imediatos, sob o
pretexto de que decidiu mudar. Cada ação que você executa permite que essa decisão se torne
efetiva dentro de seu coração. Porque cérebros brilhantes também podem produzir grandes
sofrimentos. É preciso primeiramente educar os corações”.
Agradeço e dedico então este trabalho primeiramente aos meus pais,
Doralice e Ricardo, meus alicerces pela vida, por todo apoio e compreensão. Com vocês eu
aprendi que acreditar não significa estar livre de momentos difíceis, mas que temos força para
enfrentá-los sabendo que não estamos sozinhos. Eu amo vocês. Quaisquer palavras bonitas
que eu venha a escrever aqui não serão suficientes.
Aos meus amigos de universidade: Rodrigo Furuta, Daniel Frossard,
Emmanuel Galo, Rogian Villa, Jean Santini, e aos demais companheiros de batalha que me
fizeram rir quando eu queria chorar: sem vocês não sei o que seria de mim, nossa graduação é
merecida. Tive sorte de ter em meu caminho pessoas que me deram apoio e estrutura, e aqui
me refiro também àquelas que não chegaram ao fim e que não citei, mas que tiveram coragem
para seguir outras vontades. Nunca deixem suas esperanças serem abaladas por palavras
pessimistas.
Às minhas irmãs: Marcella Berg e Beatriz Coelho, que entenderam meus
tantos porquês de não poder acompanhá-las em todos os eventos sociais dos fins de semana.
Sempre haverá um arco-íris nos iluminando, portanto sejamos capazes de permitir nossa
felicidade apesar de. Sei que posso contar com vocês sempre. Vocês sabem que podem contar
comigo.
À todos os professores que fizeram parte da minha grade de graduação em
Ciência da Computação, incluindo meu orientador Prof. Dr. Mario Lemes Proença Jr., pela
atenção e paciência a mim direcionadas durante todo meu processo de aprendizado.
Para terminar, a todos os demais amigos e familiares que me ensinaram que
viver, no fim, é administrar elementos, e que não há idealidade no viver.
“Porque metade da vida de um ser humano
envolve sobreviver ao mundo. A outra metade
envolve descobrir um significado para sua
existência. Para o primeiro, existe o trabalho,
o instinto e a evolução natural. Para o
segundo, existe o amor, a fé e o sonho.”
(Raphael Draccon)
CUARELI, N. V. Detecção de Anomalias de Segurança em Ambientes Cloud Computing.
82p. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) –
Universidade Estadual de Londrina, Londrina-PR, 2016.
RESUMO
Devido à crescente necessidade de maior agilidade nos processos de troca de informação, as
redes de computadores estão constantemente se expandindo tanto em magnitude quanto na
complexidade de seu gerenciamento. Apesar disso, ainda há poucos resultados no campo do
monitoramento da segurança em nuvens computacionais, o que se deve principalmente às
características do ambiente, como a virtualização. Visando a melhoria da segurança nestes
sistemas, este trabalho apresenta conceitos sobre gerência em ambientes virtualizados e tipos
de anomalias, identificando métodos utilizados em trabalhos recentes para detecção de
intrusão.
Palavras-chave: detecção de anomalia, computação em nuvem, gerenciamento de rede.
CUARELI, N. V. Security Anomaly Detection in Cloud Computing Environments. 82p.
Final Project (Bachelor of Science in Computer Science) – State University of Londrina,
Londrina-PR, 2016.
ABSTRACT
Due to the increasingly need of more agility in information exchange, computer networks are
continuously expanding both in magnitude and complexity of the management processes.
However, there are still just a few results in field of cloud computing security monitoring,
which happens mainly because of the environment characteristics, like virtualization. Aiming
to improve security on cloud computing, this article presents the concepts of virtualized
environment management and types of anomalies, in addition to identifying methods used in
recent studies to detect intrusions.
Keywords: anomaly detection, cloud computing, network management.
LISTA DE ILUSTRAÇÕES
Figura 1 – Diagrama esquemático da Cloud Computing .......................................................... 36
Figura 2 – Arquitetura de referência da computação em nuvem .............................................. 46
LISTA DE TABELAS
Tabela 1 – Resumo das abordagens propostas para a defesa contra os ataques em SaaS,
juntamente com seus prós e contras ......................................................................................... 54
Tabela 2 – Resumo das abordagens propostas para a defesa contra os ataques em PaaS,
juntamente com seus prós e contras ......................................................................................... 59
Tabela 3 – Resumo das abordagens propostas para a defesa contra os ataques em IaaS,
juntamente com seus prós e contras ......................................................................................... 63
Tabela 4 – Resumo das abordagens propostas para IDS, juntamente com os seus prós e
contras .................................................................................................................................. 66/67
LISTA DE ABREVIATURAS E SIGLAS
ID Identificador
IP Internet Protocol
TCP Transmission Control Protocol
UDP User Datagram Protocol
SDI ou IDS Sistemas de Detecção de Intrusão / Intrusion Detection System
DoS Negação de Serviço
DDoS Negação de Serviço Distribuída
SYN Syncronize
ACK Acknowledgement
HTTP Hypertext Transfer Protocol
RFC Request for Comments
CDN Redes de Distribuição de Conteúdo / Content Delivery Network
TI Tecnologia da Informação
CSA Cloud Security Alliance
API Application Programming Interface
HP Hewlett-Packard (empresa)
VM Máquina Virtual
EUA Estados Unidos da América
NIST Instituto Nacional de Padrões e Tecnologia dos EUA
IaaS Infrastructure as a Service
PaaS Platform as a Service
SaaS Software as a Service
SQL Structured Query Language
IBM International Business Machines (empresa)
SOAP Simple Object Access Protocol
XML Extensible Markup Language
SOA Service-Oriented Architecture
URL Uniform Resource Locator / Web Address
SSL Secure Sockets Layer
RSA Algoritmo de Criptografia nomeado por seus autores
XSS Cross-site Scripting
FTP File Transfer Protocol
AVG Anti-Virus Guard (empresa)
VMM Virtual Machine Manager / Gerenciador da Máquina Virtual
ISP Internet Service Provider
SO Sistema Operacional
SPI Software/Platform/Infrastructure
ANN Artificial Neural Network
NIDS Sistema de Detecção de Intrusão baseado em Rede
HIDS Sistema de Detecção de Intrusão baseado em Host
HIPS Sistema de Detecção de Intrusão baseado em Hypervisor
SUMÁRIO
1 INTRODUÇÃO .......................................................................................................... 25
2 DETECÇÃO DE ANOMALIAS............................................................................... 28
2.1 Definição de Anomalias de Segurança .................................................................. 28
2.1.1 Coleta de dados .................................................................................................................. 28
2.1.2 Identificação de eventos suspeitos ..................................................................................... 29
2.1.3 Validação das informações ................................................................................................ 29
2.1.4 Escalonamento de eventos ................................................................................................. 29
2.2 Sistemas de Detecção de Intrusão (SDI) ............................................................... 30
2.3 Tipos Frequentes de Anomalias ............................................................................. 31
2.3.1 Denial of service ................................................................................................................ 31
2.3.2 Distributed denial of service .............................................................................................. 32
2.3.3 Port scan ............................................................................................................................ 33
2.3.4 Flash crowd ....................................................................................................................... 33
3 CLOUD COMPUTING ............................................................................................. 36
3.1 Vulnerabilidades e Riscos da Nuvem .................................................................... 37
3.1.1 Abuso e uso indevido da cloud .......................................................................................... 38
3.1.2 Aplicativos e interfaces inseguras ..................................................................................... 39
3.1.3 Internos mal-intencionados ................................................................................................ 39
3.1.4 Violação de host ................................................................................................................ 39
3.1.5 Perda ou vazamento de dados ............................................................................................ 40
3.1.6 Desvio de tráfego ou serviços ............................................................................................ 40
3.1.7 Perfil de risco desconhecido .............................................................................................. 40
3.2 Entendendo as Vulnerabilidades Específicas da Cloud ......................................... 40
4 ESTUDO DOS ARTIGOS......................................................................................... 46
4.1 Classificação dos Ataques de Segurança na Cloud ............................................... 46
4.1.1 Ataques de segurança na camada de nuvem SaaS ............................................................. 47
4.1.1.1 Ataques DoS/DDoS ......................................................................................................................... 47
4.1.1.2 Ataques de autenticação ................................................................................................................... 49
4.1.1.3 SQL-injection................................................................................................................................... 51
4.1.1.4 Cross-site scripting (XSS) ................................................................................................................ 51
4.1.1.5 Ataque de ‘envolvimento’ de assinatura XML ................................................................................ 52
4.1.2 Ataques de segurança na camada de nuvem PaaS ............................................................. 54
4.1.2.1 Ataques de phishing ......................................................................................................................... 55
4.1.2.2 Ataque de redefinição de senha ....................................................................................................... 56
4.1.2.3 Ataques man-in-the-middle ............................................................................................................. 57
4.1.2.4 Ataque de injeção de malware na nuvem ........................................................................................ 58
4.1.3 Ataques de segurança na camada de nuvem IaaS ..............................................................59
4.1.3.1 Malicious insider ............................................................................................................................. 61
4.1.3.2 Ataques de canal lateral (Cross VM attacks) ................................................................................... 61
4.1.3.3 Ataques de escalonamento (Stepping-stone) ................................................................................... 62
4.2 Detecção e Prevenção de Anomalias ..................................................................... 64
4.2.1 Abordagens da detecção de intrusão ..................................................................................64
5 CONCLUSÃO............................................................................................................. 69
REFERÊNCIAS ..................................................................................................................... 73
25
1 INTRODUÇÃO
Atualmente, várias tarefas de rotina tornaram-se mais fáceis e rápidas de
serem executadas graças aos computadores ligados à Internet. Com a tecnologia avançando,
não se faz necessário enfrentar uma fila de banco em um dia cheio para fazer uma
transferência, ou escrever uma carta, a qual poderia demorar dias para chegar ao destinatário,
para se comunicar com outra pessoa. Cada vez mais estamos preferindo atividades que
circulam pelas redes e, consequentemente, o volume de dados envolvido no processo é cada
vez maior.
A cada ano, o aumento da popularidade de determinados serviços e o baixo
custo da banda acarreta numa elevação considerável no tráfego que passa pelas redes.
Naturalmente, estas devem promover, acima das facilidades, segurança aos usuários com
modelos de detecção de anomalias que sejam apropriados ao tipo de rede utilizada e que não
prejudiquem o funcionamento desta [1], já que a probabilidade de clientes e serviços serem
vítimas de ataques também aumenta, proporcionalmente degradando a qualidade dos serviços
prestados.
A computação em nuvem é uma tecnologia amplamente utilizada nesta área,
uma vez que oferece grande flexibilidade e capacidade computacional. Está disponível em um
modelo de serviço utilitário, garantindo aos usuários acesso a recursos os quais dificilmente
poderiam ser utilizados em infraestruturas computacionais tradicionais, devido a seus altos
custos [2].
Apesar dos benefícios desta tecnologia, é crescente a preocupação com a
segurança de aplicações e informações nestes ambientes, uma vez que novas vulnerabilidades
são encontradas constantemente e modelos de defesa rotineiros mostram-se insuficientes na
prevenção desses ataques (cada vez mais numerosos e indesejáveis), o que faz com que as
questões relativas a segurança sejam o principal obstáculo para a adoção da computação em
nuvem [3]. É por isso que mecanismos de detecção de intrusão para o bloqueio de acesso não
autorizado aos recursos estão ganhando maior atenção.
Diante deste cenário, este trabalho tem como objetivo apresentar os
conceitos envolvidos pela detecção de anomalias em ambientes virtualizados, dos quais faz-se
necessário o conhecimento para a aplicação de qualquer técnica, ferramenta, framework,
método ou sistema que busque promover a segurança dos mesmos.
Além disso, foi feita uma busca por artigos recentes, visando o objetivo
específico de responder qual tipo de ataque e qual método de detecção de anomalia estão
sendo utilizados em cada proposta de autor selecionado e se a validação da proposta traz
melhoria (procura resolver, evitar ou diminuir os problemas) na segurança de ambientes
cloud.
Este trabalho está estruturado da seguinte forma: no Capítulo 2 serão
apresentados exemplos reais de falhas na segurança da nuvem, e no Capítulo 3 serão
abordados os conceitos de detecção de anomalias em redes, juntamente com os diferentes
tipos de anomalias a serem discutidas. O Capítulo 4 mostrará a necessidade da aplicação de
algoritmos/SDI na segurança da cloud e, após contextualizar o problema, no Capítulo 5 serão
apresentados os artigos selecionados (relacionando as técnicas utilizadas e as ameaças
enfrentadas em cada um) a fim de responder às questões levantadas acima. Finalmente, no
Capítulo 6 serão apresentadas as conclusões.
27
2 DETECÇÃO DE ANOMALIAS
Segurança é um processo contínuo que deve proteger o usuário de ataques,
com objetivo de dar às pessoas mais liberdade para aproveitar as vantagens das redes de
computadores sem medo de comprometimento de direitos e/ou interesses. Como a ideia
básica de uma comunicação envolve sempre compartilhamento de informação, os
mecanismos de segurança devem envolver elementos como:
i) confidencialidade: evitando divulgação não autorizada dos dados;
ii) integridade: impedindo modificação não autorizada dos dados;
iii) disponibilidade: fornecendo somente a quem deve o acesso aos dados.
Com a diversidade de softwares e devido à imensa quantidade de
computadores conectados, a segurança é prejudicada por aquilo que chamamos
vulnerabilidades. As vulnerabilidades do sistema são problemas no software ou hardware de
um usuário ou servidor que possibilitam acesso não permitido. Elas existem não só no sistema
computacional, mas também nas políticas de segurança e em falhas humanas.
2.1 Definição de Anomalias de Segurança
As anomalias ou invasões podem ser consideradas violações nas políticas ou
acidentes na segurança dos computadores de uma rede. O conceito de detecção de intrusão foi
inicialmente apresentado por James Anderson em 1980 e se tornou referência às linhas de
pesquisa que o sucederam [4]. Tal detecção visa identificar intrusos, através de quatro passos,
introduzidos nas seções a seguir.
2.1.1 Coleta de dados
A coleta de dados envolve o acesso ao tráfego para armazenamento de
informações úteis, ou simplesmente inspeção das mesmas. Os erros que ocorrem na coleta
podem vir de má configuração ou má aplicação de filtros para prevenção de eventos
indesejáveis, ou até mesmo da combinação de conexões entre equipamentos sem o
conhecimento prévio da tecnologia utilizada.
29
2.1.2 Identificação de eventos suspeitos
Como todo tráfego é monitorado, neste passo há obtenção de informações
do tráfego observáveis, reconhecendo as anomalias comuns à rede. Têm-se três tipos de
tráfego:
i) tráfego normal: é o esperado para a rede;
ii) tráfego suspeito: traz características incomuns, mas sem maiores danos;
iii) tráfego malicioso: informações que trazem impacto negativo à
segurança.
Aqui, um tipo de gerenciamento de rede que está crescendo em diferentes
aplicações é a análise do fluxo IP, a qual fornece uma ampla gama de informações
observáveis, tais como o número de bytes e pacotes, protocolos, endereços IP, números de
porta, entre outros [5].
2.1.3 Validação das informações
Atribui-se ao evento ocorrido uma “categoria de incidente preliminar”. Essa
categoria define um evento como advertência, ou algo que necessite de uma melhor
investigação, servindo para alertar ao analista a falha de segurança. Os eventos podem se
encaixar em sete tipos de categorias: acesso sem autorização do administrador; acesso de
usuário sem autorização; tentativas de acesso sem autorização; ataque de negação de serviço
com sucesso; prática de segurança ruim ou violação da política; reconhecimento ou provas de
explorações; infecção por vírus.
Todas as categorias podem ser indicações de atividade maliciosa, porém
quando um evento for classificado na primeira ou segunda, um grau mais baixo de confiança
deve ser depositado nos dados coletados, uma vez que o invasor pode tê-los mudado antes da
coleta.
2.1.4 Escalonamento de eventos
É o último passo, o qual encaminha os eventos detectados aos usuários que
decidirão sobre os mesmos (clientes ou gerentes da instituição). Aqui nem todas as
advertências devem ser encaminhadas, apenas se houver certeza de que o incidente ocorreu.
2.2 Sistemas de Detecção de Intrusão (SDI)
É sempre importante pensar nos passos que caracterizam um ataque, porém
também é importante levar-se em conta que alguns intrusos são mais inteligentes que quem
possa ter implementado a segurança e a prevenção pode eventualmente falhar. Reconhecer a
invasão é validar a conectividade e verificar novamente a aplicação em busca de
vulnerabilidades.
Para que o invasor tenha acesso aos dados de um servidor, ele precisa
utilizar a linguagem ou regras do mesmo fornecendo, por exemplo, pacotes válidos de TCP ou
UDP. Então, existem passos para que o invasor realmente possa tirar proveito de uma vítima,
explicitados a seguir [6]:
i) Exploração: É um passo que penetra nos serviços do alvo através de
violação, chegando ao servidor por acesso legítimo ou não, com uma senha e login roubados,
com ganho de vantagens sem interrupção dos serviços;
ii) Reforço: É um processo de proveito ao acesso sem autorização. O intruso
instala meios de se comunicar com o mundo externo, através de backdoors, ganhando
capacidade adicional de dados;
iii) Consolidação: Ocorre quando o invasor já se comunica com a backdoor
do servidor alvo;
iv) Saque: Envolve o roubo de informações em si, com construção de uma
base de ataque por parte do invasor.
Para a detecção, há chances em cada passo do invasor. No reconhecimento
de pacotes válidos e na exploração, o invasor pode se revelar nas diferenças entre seu tráfego
e o tráfego comum do usuário, pois há execução de um serviço de descoberta por um longo
tempo. Já no reforço, a invasão causa atividade suspeita nos servidores, e pode ser
acompanhada pelo monitoramento e identificada. Apenas na consolidação e no saque a
probabilidade de detecção se torna baixa, pois o intruso tem controle total na comunicação de
sua base com a máquina alvo.
Hoje em dia, há várias maneiras para proteger as redes de computadores
contra as ameaças externas, mas algumas destas maneiras não podem parar invasores que
tenham acesso autenticado, como se fossem o usuário comum. Sendo assim, é importante o
monitoramento de dados para que se possa analisar as atividades do usuário e permitir a
detecção da invasão.
31
Para tal, torna-se necessária a criação de ferramentas que se baseiem no
tráfego ou nas operações que ocorrem no sistema. Essas ferramentas são os SDI, que nada
mais são do que sistemas automatizados que procuram por indícios de intrusão que ocorreram
ou estejam ocorrendo na rede.
Os SDI vão depender das estatísticas e de quanto em quanto tempo as
detecções são realizadas: detecções em tempo real analisam os dados quando eles chegam;
detecções em lote analisam os dados quando um conjunto deles é coletado e chega em
tamanho determinado; e detecções periódicas analisam os dados em tempos pré-determinados.
Também pode haver diferentes locais de atuação para o SDI, sendo definido por sua
arquitetura: distribuído na rede, numa máquina específica, ou nos dois locais ao mesmo
tempo. Os modelos de detecção mais comuns são os baseados em anomalias.
2.3 Tipos Frequentes de Anomalias
2.3.1 Denial of service
Consiste em tentativas de fazer com que computadores tenham dificuldades
ou sejam impedidos de executar suas tarefas. O atacante faz com que a máquina receba tantos
pacotes ou tantas requisições a tal ponto que a mesma não consegue dar conta e se
sobrecarrega, “negando serviço”.
Os tipos mais comuns de DoS podem utilizar características do protocolo
TCP/IP. Neste caso, um ataque bem comum é o SYN Flooding, onde o computador tenta
estabelecer conexão TCP por uma flag chamada SYN (Syncronize), e o servidor atende ao
pedido, solicitando uma flag chamada ACK (Acknowledgement). Outro tipo de ataque comum
é o UDP Packet Storm, em que um computador solicita constantemente envio de pacotes de
resposta de uma máquina remota. O servidor se sobrecarrega e não consegue executar suas
funções, recusando novos pedidos.
Um último tipo, menos frequente, é o envio de pacotes para máquinas
vulneráveis encontradas em redes rastreadas, que explora falhas do sistema operacional ou
softwares e, por alguma razão, fazem os mesmos interromperem suas atividades.
2.3.2 Distributed denial of service
Ataques DDoS nada mais são do que ataques DoS em larga escala, ou seja,
uma combinação de negação de serviço e intrusão distribuída. É o tipo de ataque mais comum
na internet e, para que se torne complicado descobrir qual é a máquina principal do ataque,
utiliza até milhares de computadores para atacar um determinado alvo. O objetivo aqui é
unicamente de tornar uma página ou processo indisponível para o usuário final.
Dá-se em três partes: uma parte de intrusão em massa, para obter acesso
root (acesso privilegiado a máquinas vulneráveis); uma parte para instalação dos softwares
DoS (daemons) para preparo da rede de ataque; e uma parte final onde se dá o lançamento de
pacotes (floods) contra uma máquina alvo, efetivando o ataque.
Primeiramente, atacantes DDoS tentavam acessar e controlar computadores
que agiam como servidores na internet. Mas com o aumento na velocidade de conexão e
acesso, os computadores de usuários domésticos passaram a ser de interesse, uma vez que são
milhares e mais fáceis de serem controlados. Para efetuar o processo, o atacante cria
malwares com a intenção de disseminar programas de ataque DoS e assim, quando uma
máquina é infectada, esta passa a estar disponível para ataques em grande escala e assim por
diante acontece com várias máquinas, criando-se uma botnet, em outras palavras, uma rede
formada por computadores infectados que pode ser controlada remotamente (através de um
host “mestre”) pelo atacante.
Um dos grandes problemas em se detectar bots é que estes passam a maior
parte do tempo dormentes, apenas esperando instruções, então não causam problemas ao
usuário. Inclusive alguns são inteligentes a ponto de só trabalhar quando o computador não
estiver sendo utilizado (assim o usuário não sente problemas de performance, por exemplo).
Quando um computador passa a fazer parte de uma botnet, este se torna um “zumbi” [7].
Feita a escolha do alvo, o atacante envia o IP para o mestre (assim como
maiores orientações), que o distribui para todos os zumbis. Assim se dá execuções de ordens
que saturam e paralisam um serviço, uma vez que são bombardeados por um volume
exorbitante de pacotes. Para tornar alguns ataques ainda mais eficientes, o IP de origem dos
pacotes em utilização pode ser alterado para uma sequência falsa, dificultando qualquer
descoberta de origem da ação.
33
2.3.3 Port scan
O conceito de port scan é normalmente relacionado ao uso de softwares
maliciosos que procuram brechas a serem exploradas. Consiste em enviar uma mensagem a
uma determinada porta de um determinado servidor e esperar por uma resposta. Os dados
recebidos fornecem ao atacante, caso a porta esteja disponível, a melhor maneira de invadir o
sistema, uma vez que localiza as vulnerabilidades entre máquinas que se encontram na rede.
Os padrões para TCP/IP são publicados em uma série de documentos,
chamados solicitações de comentários ou RFCs (são uma série progressiva de relatórios,
propostas e padrões de protocolos que descrevem os trabalhos internos do padrão TCP/IP e da
internet). Quando se inicia uma negociação para conexão TCP entre máquinas, um pacote
com a flag SYN é ativado e deve ser respondido com as flags SYN+ACK ativadas. Ou seja,
quando há resposta a porta se encontra aberta e, dependendo da porta, se sabe quais serviços
se encontram ativos nela.
A partir disto, os port scanners podem ser classificados em vários tipos. O
mais comum deles são os chamados backdoors, os quais geralmente são disseminados em
conjunto com ferramentas úteis para que o usuário não suspeite, e podem até ser
comercializados como soluções de “administração remota”.
2.3.4 Flash crowd
Flash crowd é um grande aumento de tráfego em websites específicos que
causa sobrecarga de servidor e grande pressão nas ligações de rede que levam até o mesmo.
Tem como consequências: aumento de perda de pacotes e congestionamento. São
interpretados como acessos legítimos, portanto só podem ser detectados a partir de um maior
entendimento sobre as características dos usuários e arquivos de referência, ou padrões no
tráfego do site.
Quanto às características de usuários e arquivos de referência, podem ser
comparadas referências vindas do servidor, referências vindas de cada usuário e referências de
clusters, analisadas em solicitações de acesso por segundo. Os clusters nada mais são do que
agrupamentos que armazenam uma coleção de prefixos de rede exclusivos de clientes
individuais a partir de tabelas de roteamento. Quando o servidor enfrenta uma carga
inesperadamente pesada, rastreia os IPs diferentes e rapidamente pode rejeitar os pedidos de
acesso, uma vez que a legitimidade do pedido é de extrema importância. No caso, a localidade
da referência é o que faz o pedido ser aceito, e então permite uma redução na carga do
servidor através da cache.
Quanto aos padrões no tráfego, seu volume geral determina os recursos que
um servidor deve manter para que o site se mantenha em operação até certo nível. Se a carga
do servidor for excedida ao nível máximo de tolerância (pré-definido pela capacidade), o
servidor desacelera e pode desligar. A observação destes padrões pode determinar quando o
site poderá ser acessado por um número grande de usuários e quanto tempo o servidor terá
para tomar medidas de defesa. No caso, observa-se os traços HTTP (Hypertext Transport
Protocol) do site.
Flash Crowds têm como maior objetivo atacar redes de distribuição de
conteúdo (CDNs), uma vez que são essas redes que suprem uma grande fração de conteúdos
da internet hoje em dia e prometem proteger os servidores contra este tipo de ataque. Mais
especificamente, já que um pequeno número de objetos é responsável por uma grande
percentagem de pedidos durante um evento flash, as CDNs fazem com que IPs de primeiro
acesso se percam entre muitos dados de caches, e então sejam enviados por engano ao
servidor de origem, o que dá ao atacante o que ele precisa.
35
3 CLOUD COMPUTING
O termo Cloud Computing, ou computação em nuvens, se refere à utilização
de aplicações, programas ou ferramentas, em qualquer lugar e independente de plataforma,
por meio da Internet, sem que estes estejam instalados localmente num computador,
facilitando a vida dos usuários, uma vez que todo o processamento e armazenamento de uma
determinada tarefa são feitos num servidor [8].
Figura 1 - Diagrama esquemático da Cloud Computing. Fonte: [9]
Uma nova pesquisa sobre uso corporativo de Cloud Computing, divulgada
pela CompTIA, associação da indústria da tecnologia da informação, revela que mais de 90%
das empresas dos EUA estão usando alguma forma de cloud, indicando que a nuvem tornou-
se de fato parte fundamental da nova TI. O estudo, chamado 5th Annual Trends in Cloud
Computing [10], também constatou que mais empresas estão contando com a computação na
nuvem para processos de negócios diários: 59% para o armazenamento; 48% para
continuidade de negócios e recuperação de desastres; e 44% para segurança.
E as tecnologias de virtualização continuarão sendo importantes áreas de
crescimento nos departamentos de Tecnologia da Informação (TI) das organizações [11]. Esta
37
outra constatação é parte de um recente estudo divulgado pela Zenoss, empresa norte-
americana de gestão de sistemas de código aberto. Para a companhia, que ouviu 204
profissionais de TI, os resultados da análise são surpreendentes.
Mas a Figura 1 mostra que a esquematização de uma nuvem é muito mais
que apenas um conjunto (embora massivo) de servidores interligados. Requer uma
infraestrutura de gerenciamento desse grande fluxo de dados que incluem funções para
aprovisionamento e compartilhamento de recursos computacionais e monitoração do
desempenho.
De modo geral, existem poucos trabalhos que tratam da detecção de
anomalias ou intrusões para ambientes de nuvens. E como os arquivos são guardados na web
e os programas são colocados na nuvem computacional – e não nos computadores em si –
tornando-se acessíveis de qualquer lugar, a idéia de que “tudo é de todos” nem sempre é algo
bem visto. Na área acadêmica, por exemplo, o monitoramento de nuvens computacionais
também apresentava poucos resultados concretos até 2010 [12].
Infelizmente, nada está totalmente a salvo. Quando os serviços em cloud
ficam offline ou softwares e sites falham, criam-se enormes problemas de confiabilidade da
parte dos usuários que precisam destes serviços para atividades diárias. Algumas empresas de
computação em nuvem fazem bom trabalho convencendo clientes de que seus dados estão
seguros, mesmo que este não seja o caso.
3.1 Vulnerabilidades e Riscos da Nuvem
A vulnerabilidade é um fator de risco proeminente. A ISO 27005 define o
risco como "o potencial de uma determinada ameaça explorar as vulnerabilidades de um ativo
ou grupo de ativos e assim causar danos à organização", medindo-o em termos tanto da
probabilidade de um evento quanto de sua consequência [13]. No caso da cloud computing e
suas vulnerabilidades, a probabilidade de um evento ser prejudicial é representada pela
frequência com que acontecem eventos de perda de dados, e sua consequência é representada
pela magnitude de perda provável que influencia no custo final de um evento prejudicial [14].
Um evento de perda ocorre quando um agente de ameaça (como um hacker)
explora com êxito uma vulnerabilidade. A frequência com que isso acontece depende de
como os agentes de ameaça tentam explorar a vulnerabilidade. Esta frequência é determinada
tanto pela motivação dos agentes (o que eles podem ganhar com um ataque, quanto esforço é
necessário, qual é o risco para tal) e quanto acesso ou contato os agentes têm das metas de
ataque. Assim, a vulnerabilidade deve ser sempre descrita em termos de resistência a um
determinado tipo de ataque.
Também se pode descrever a vulnerabilidade do computador, isto é, bugs
relacionados à segurança não fechados com patches criados pelo fornecedor, como um
enfraquecimento ou remoção de uma certa resistência a ataques. Uma vulnerabilidade de
buffer-overflow, por exemplo, enfraquece a resistência do sistema à execução de código
arbitrário [14]. Se os invasores podem explorar essa vulnerabilidade depende de suas
capacidades.
Do ponto de vista do cliente da nuvem, o lado que lida com a provável
magnitude da perda futura não é alterado de modo algum pela computação em nuvem: as
consequências e o custo final de, diga-se, uma violação de confidencialidade, são exatamente
os mesmos se a violação ocorreu dentro de uma nuvem ou de uma infraestrutura de TI
convencional.
Portanto, procura-se mudanças no lado da frequência do evento de perda. A
computação em nuvem pode alterar a probabilidade de ocorrência de um evento prejudicial.
Como será mostrado mais adiante, a computação em nuvem causa mudanças significativas no
fator de vulnerabilidade. Naturalmente, mudar para uma infraestrutura em cloud pode mudar
o nível de acesso e motivação dos atacantes, bem como o esforço e risco.
Existem várias ameaças significativas que devem ser consideradas antes de
adotar o paradigma da computação em nuvem. Jim Reavis, diretor executivo da CSA (Cloud
Security Alliance), uma entidade não governamental dedicada à segurança em cloud
computing, divulgou uma lista de sete itens de segurança na nuvem que devem ser observados
com mais atenção [15]. A lista foi elaborada por ele e 29 consultorias e fornecedores do
serviço, e as observações são descritas a seguir.
3.1.1 Abuso e uso indevido da cloud
Alguns provedores de nuvem procuram felicitar seus usuários incluindo
largura de banda e capacidade de armazenamento ilimitada em seus serviços. Outros chegam
a oferecer períodos experimentais limitados livres. Essas “facilidades” acabam dando
oportunidade de acesso legítimo a pessoas mal-intencionadas, e o impacto de tais ações inclui
lançamento de pontos de ataque para quebra de senhas em potencial e execução de comandos
maliciosos do tipo botnet.
39
3.1.2 Aplicativos e interfaces inseguras
Usuários precisam usar interfaces e aplicativos para acessar e manipular
seus dados ou ferramentas em cloud, o que faz com que a disponibilidade dos serviços em um
ambiente de nuvem seja dependente da segurança desses APIs. Se o provedor da nuvem se
baseia em um conjunto fraco de APIs, sem controle de acesso, criptografia e monitoramento
de atividades, por exemplo, terá uma variedade de problemas de segurança relacionados com
confidencialidade e integridade da prestação de serviço.
3.1.3 Internos mal-intencionados
Ataques internos podem ser realizados por funcionários na equipe da
empresa provedora. Insiders, como são chamados, podem roubar dados confidenciais de
usuários, obtendo facilmente senhas, chaves criptográficas e arquivos. Estes ataques podem
envolver vários tipos de informações e uso indevido de recursos de TI, como o nível de acesso
concedido ao funcionário pela empresa, com pouco ou nenhum risco de detecção, danificando
o valor financeiro, bem como a reputação da marca de uma ou mais organizações.
De acordo com Archie Reed, tecnólogo selecionado pela HP e também
membro da CSA, as empresas contratantes dos serviços de cloud computing têm interesse em
colher os frutos dos benefícios oferecidos pela nuvem, tais como custo, disponibilidade e
flexibilidade, mas se esquecem de considerar o risco de criar brechas para perda de dados e
queda de finanças e produtividade [16].
3.1.4 Violação de host
Devido à virtualização da nuvem, os provedores residem os APIs do usuário
em máquinas virtuais dentro de infraestruturas compartilhadas. As VMs são geridas por
hypervisor (hardware físico), a fim de fornecer memória virtual, assim como políticas de
escalonamento de CPU [16]. Como o hypervisor é a principal fonte para gerir uma plataforma
de nuvem virtualizada, os ataques são focados no mesmo, e o invasor pode passar a ter
controle de todas as máquinas virtuais e até do próprio host. Aqui devem existir acordos para
garantir as melhores práticas possíveis na configuração dos servidores.
3.1.5 Perda ou vazamento de dados
A perda de dados pode ocorrer devido a falhas operacionais ou uso
inconsistente de chaves de criptografia. As falhas referem-se a supressão ou alteração de
registros sem uma cópia de segurança do conteúdo original, que pode ocorrer
intencionalmente ou não. E o uso inconsistente de chaves pode resultar em perda ou acesso
não autorizado de dados por usuários ilegais, que podem destruir informações sensíveis e
confidenciais. Vale lembrar que perda de propriedade intelectual pode gerar implicações
financeiras e consequências legais à empresa responsável pela cloud.
3.1.6 Desvio de tráfego ou serviços
O desvio de tráfego ou serviços refere-se ao acesso não autorizado, ganho
pelo atacante, para controlar contas de usuários, tais como fraude ou exploração de
vulnerabilidades de software. Por exemplo, se um atacante ganha acesso a credenciais de
usuário, ele pode espionar suas atividades/transações, manipular seus dados, retornar
informações falsas e redirecioná-lo a sites ilegítimos, permitindo-lhe comprometer a
confiabilidade, integridade e disponibilidade dos serviços oferecidos pela cloud. Segundo
Reavis, não existe um nível aceitável de controle de phishing na nuvem [15].
3.1.7 Perfil de risco desconhecido
É importante ao usuário saber sobre as versões, práticas de segurança,
atualizações no código e tentativas de intrusão aos softwares que utiliza. Enquanto adota os
serviços de cloud, estas características podem ser muito bem divulgadas pela empresa, que
devem explicar aos clientes como e onde seus dados e registros relacionados são
armazenados.
3.2 Entendendo as Vulnerabilidades Específicas da Cloud
O Instituto Nacional de Padrões e Tecnologia dos EUA (NIST) capta bem o
que significa fornecer serviços de TI utilizando economias de escala, como aplicações e
serviços web, virtualização de servidores, entre outras bases fortes da computação em nuvem,
41
fornecendo uma linha base para discussão do que é a cloud computing e qual a melhor forma
de usá-la.
Sua definição enumera cinco características essenciais da cloud [17]:
i) Auto-atendimento sob demanda, no qual os usuários podem solicitar e
gerenciar serviços, sem interação humana com o provedor dos mesmos, utilizando, por
exemplo, uma interface de portal web;
ii) Acesso de rede como onipresente, onde os serviços em nuvem são
acessados através da rede (geralmente a Internet), utilizando mecanismos e protocolos padrão;
iii) Agrupamento de recursos, utilizando uma infraestrutura homogênea que
é compartilhada entre todos os usuários do serviço;
iv) Rápida elasticidade, pois recursos podem ser rapidamente
provisionados e lançados com o mínimo esforço; e
v) Serviço medido, onde o uso dos recursos do serviço é constantemente
medido, apoiando otimização do uso dos recursos e relatórios de uso do serviço para o cliente.
Ele também lista três modelos de serviço e quatro modelos de implantação
em nuvem, explicados respectivamente [18]:
i) Infraestrutura como serviço (IaaS): é usada para fornecer rede que
conecte usuários e servidores e também forneça máquinas virtuais para iniciar, parar, acessar
e configurar servidores virtuais ou blocos de armazenamento (ex.: Amazon EC);
ii) Plataforma como serviço (PaaS): neste modelo, uma plataforma é
fornecida aos usuários, tipicamente incluem sistemas operacionais, linguagens de
programação, ambientes de execução, bancos de dados e servidores web (ex.: Microsoft
Azure, VMware);
iii) Software como serviço (SaaS): Este modelo fornece software sob
demanda para usuários sem setups de aplicativos (ex.: Gmail, Adobe);
iv) Nuvem pública: é baseada em ofertas de grande escala para o público
em geral, e sua infraestrutura fica localizada nas instalações do provedor, que também
gerencia o serviço (os usuários de nuvens públicas são considerados não confiáveis e,
portanto, não estão vinculados à organização como funcionários);
v) Nuvem privada: funcionam a serviço de uma única organização, onde
os recursos não são compartilhados por outras entidades, sendo mais caras e mais seguras
quando comparadas às nuvens públicas;
vi) Nuvem comunitária: envolve a partilha da infraestrutura de computação
entre organizações de uma mesma comunidade, as quais possuem as mesmas características
de implantação;
vii) Nuvem híbrida: é uma combinação que aproveita as capacidades de
cada modelo de implementação em nuvem, onde organizações podem hospedar aplicativos
críticos em nuvens privadas e aplicativos com preocupações de segurança relativamente
menores em nuvens públicas (cada parte de uma nuvem híbrida é conectada a outra por um
gateway, controlando as aplicações e os dados que fluem de cada parte a outra).
Com base nessa visão mais abstrata da computação em nuvem, tem-se uma
definição do que constitui uma vulnerabilidade específica da mesma. Uma vulnerabilidade é
específica de cloud se [14]:
i) é intrínseca ou predominante a um tipo de computação em nuvem;
ii) têm sua causa raiz em uma das características de nuvem essenciais do
NIST;
iii) é causada quando as inovações em nuvem tornam os controles de
segurança impossíveis de implementar; ou
iv) prevalece em ofertas de estado-da-arte pré estabelecidos da nuvem.
As principais tecnologias da computação em nuvem, como aplicativos e
serviços da web, virtualização e criptografia, possuem vulnerabilidades que são intrínsecas à
tecnologia ou prevalecentes nas implementações da tecnologia de ponta. Três exemplos de
tais vulnerabilidades são a fuga de máquina virtual, sessão de hijacking, e criptografia
insegura ou obsoleta.
Primeiro, a possibilidade de que um invasor possa escapar com êxito de um
ambiente virtualizado reside na própria natureza da virtualização. Em segundo lugar, as
tecnologias de aplicação web devem superar o problema que, por design, o protocolo HTTP é
um protocolo stateless (sem estado), enquanto que os aplicativos web requerem alguma noção
de estado de sessão.
Muitas técnicas implementam o tratamento de sessões e muitas
implementações de manipulação de sessão são vulneráveis a sessões de sequestro. Se as
vulnerabilidades da sessão de hijacking são intrínsecas às tecnologias de aplicação web ou são
apenas prevalecentes em muitas implementações atuais é discutível.
Finalmente, os avanços da criptoanálise podem tornar qualquer mecanismo
criptográfico ou algoritmo inseguro à medida que novos métodos de quebra são descobertos;
43
lembrando que a ampla aceitação da computação em nuvem é dependente do uso da
criptografia para proteger a confidencialidade e a integridade dos dados na nuvem.
Como observado anteriormente, o NIST descreve quatro características
essenciais da nuvem: auto-atendimento on-demand, acesso à rede onipresente, agrupamento
de recursos, elasticidade rápida e serviço medido. Seguem-se exemplos de vulnerabilidades
com causas raiz em uma ou mais destas características [14]:
i) Acesso não autorizado à interface de gerenciamento: o serviço de auto-
atendimento on-demand característico da nuvem requer uma interface de gerenciamento
acessível aos usuários do serviço da nuvem, ou seja, a probabilidade de que o acesso não
autorizado possa ocorrer é muito maior do que para sistemas tradicionais onde a
funcionalidade de gerenciamento é acessível somente a alguns administradores;
ii) Vulnerabilidades do protocolo Internet: o acesso à rede onipresente
característica da nuvem significa que os serviços são acessados via rede usando protocolos
padrão que, na maioria dos casos, utilizam a Internet, que deve ser considerada não confiável;
são vulnerabilidades que permitem ataques man-in-the-middle, por exemplo;
iii) Vulnerabilidade de recuperação de dados: as características de
agrupamento e elasticidade da nuvem implicam que os recursos alocados para um usuário
serão realocados para um usuário diferente em um momento posterior, o que significa que
para recursos de memória ou armazenamento, pode ser possível recuperar dados escritos por
um usuário anterior; e
iv) Medição/evasão de faturamento: dados de medição para
armazenamento, processamento ou contas de usuários ativos são usados para otimizar a
entrega de serviços, bem como o faturamento; vulnerabilidades relevantes incluem
manipulação de tais dados.
Vulnerabilidades em controles de segurança padrão devem ser consideradas
específicas da nuvem se as inovações da mesma causarem diretamente dificuldades na
implementação dos controles. Essas vulnerabilidades também são conhecidas como desafios
de controle.
Primeiro, as redes virtualizadas oferecem controles de rede insuficientes.
Dada a natureza dos serviços em nuvem, o acesso administrativo à infraestrutura de rede IaaS
é tipicamente limitado, portanto, controles padrão como o zoneamento de rede baseado em IP
não podem ser aplicados. Além disso, as técnicas padrão, como a varredura de
vulnerabilidades baseada em rede, geralmente são proibidas por provedores IaaS porque, por
exemplo, as varreduras amigáveis não podem ser distinguidas da atividade do invasor.
O segundo desafio está em pobres procedimentos de gerenciamento de
chaves. Conforme observado em um estudo recente da Agência Européia de Segurança de
Redes e Informações [19], as infraestruturas de computação em nuvem exigem gerenciamento
e armazenamento de muitos tipos diferentes de chaves, já que as máquinas virtuais não
possuem hardware fixo e seu conteúdo é geralmente distribuído geograficamente, sendo mais
difícil aplicar controles padrão - como o armazenamento de módulo de segurança de hardware
(HSM).
Por fim, as métricas de segurança não são adaptadas às infraestruturas em
nuvem. Atualmente, não há métricas de segurança específicas padronizadas para a nuvem que
os clientes possam usar para monitorar o status de segurança de seus recursos.
Embora a computação em nuvem seja relativamente jovem, já existem
inúmeras ofertas de cloud no mercado. Assim, pode-se complementar os três indicadores de
vulnerabilidade específicos da nuvem apresentados anteriormente com o quarto e último
indicador: se uma vulnerabilidade é predominante em ofertas de nuvem de última geração, ela
também deve ser considerada como específica da nuvem. Exemplos de tais vulnerabilidades
incluem vulnerabilidades de injeção e esquemas de autenticação fraca.
As vulnerabilidades de injeção são exploradas manipulando entradas de
serviços ou aplicativos para interpretar e executar partes delas contra as intenções do
programador. Exemplos de vulnerabilidades de injeção incluem injeção SQL, na qual a
entrada contém código SQL erroneamente executado no back-end do banco de dados; injeção
de comando, na qual a entrada contém comandos que são erroneamente executados através do
sistema operacional; e scripts entre sites, nos quais a entrada contém código JavaScript
erroneamente executado pelo navegador da vítima.
Além disso, muitos mecanismos de autenticação amplamente utilizados são
fracos. Por exemplo, nomes de usuários e senhas para autenticação são fracos devido ao
comportamento inseguro do usuário (escolha de senhas fracas, reutilização de senhas, etc.) e
limitações inerentes aos mecanismos de autenticação que podem ter fraquezas e permitir, por
exemplo, interceptação de credenciais e repetição.
45
4 ESTUDO DOS ARTIGOS
Os artigos estudados foram selecionados de quatro bibliotecas digitais de
trabalhos científicos: IEEE Xplore, Science Direct, Google Scholar e ACM Digital Library. A
princípio foram analisados 100 artigos, os quais foram encontrados nessas três bibliotecas por
meio de uma busca ordenada por relevância, com as palavras-chave “cloud computing”,
“security attacks”, “detection anomaly” e “intrusion detection”, filtradas pelos anos de 2008
até 2015, totalizando 7 anos.
4.1 Classificação dos Ataques de Segurança na Cloud
A principal motivação desta pesquisa era determinar os potenciais ataques
ao ambiente cloud e seu possível impacto nos serviços provenientes da nuvem. Foram
mapeadas vulnerabilidades específicas para cada componente da arquitetura de referência
proposta pela IBM [14] na Figura 2, dando uma visão geral de quais vulnerabilidades podem
ser relevantes para determinados serviços.
Figura 2 - Arquitetura de referência da computação em nuvem. Fonte: [14]
47
4.1.1 Ataques de segurança na camada de nuvem SaaS
De acordo com Gartner [20], o SaaS é um "software detido, administrado
remotamente por um ou mais provedores". Além disso, a Gartner estima que mais de 75% dos
orçamentos de TI das empresas são usados para comprar, executar e reparar sistemas e
infraestruturas de software.
Muitas considerações de segurança são semelhantes em SaaS como em
serviços web. Os usuários preferem usar serviços SaaS devido à segurança e
confidencialidade dos dados em nuvem, já que a criptografia pode ser feita em dados
terceirizados para obter confidencialidade e segurança.
Os problemas potenciais com este modelo de entrega de serviços incluem
questões de segurança relacionadas a dados como: quem possui os dados, backup de dados,
acesso aos dados, localidade de dados, gerenciamento de identidades de disponibilidade de
dados e autenticação, etc. Os ataques de segurança ocorrem principalmente devido ao
comportamento dos usuários legítimos.
Segundo o relatório de pesquisa da Forrester, 70% das falhas de segurança
são causadas por fontes internas. Estes riscos de segurança podem ser significativamente
reduzidos através da imposição de verificações de segurança.
4.1.1.1 Ataques DoS/DDoS
Os ataques DoS são tentativas maliciosas de tornar os recursos do sistema
ou da rede indisponíveis para os usuários. As infraestruturas em cloud são partilhadas por
milhões de usuários, tornando mais difícil resolver este tipo de ataque devido ao seu potencial
de ter um impacto muito maior, e novas fraquezas se abrem à medida que cresce o uso de data
centers virtualizados e serviços de nuvem [21]. Invasores modernos não precisam mais atacar
a infraestrutura completa. Como tal, as botnets desempenham um papel importante na
propagação desses ataques.
Os aplicativos que possuem recursos mais intensivos rodando na nuvem
com baixa largura de banda podem atrair ataques. Um exemplo é como o Twitter foi
esmagado por ataques DoS em 2009. Para abordar esta questão [22], uma análise abrangente
do sistema deve ser realizada para fornecer detecção de intrusão e prevenção, a fim de se
defender contra ataques DDoS. Este mecanismo leva um estudo completo e conciso dos
sistemas para impedir os sistemas de tais ataques.
Diferentes cenários de ataque DoS:
SOAP (Simple Object Access Protocol): o SOAP permite a
comunicação entre diferentes serviços web. Esse protocolo usa HTTP e XML (Extensible
Markup Language). Isso implica que atacantes DDoS podem derrubar serviços web usando
HTTP ou XML. Este tipo de ataque é chamado HX-DoS, é fácil de implementar e é muito
eficaz. A técnica SOA-Based Traceback Approach [23] é usada para rastrear a origem desses
ataques usando SOA. Outra abordagem é CLASSIE [24], a qual junta vários métodos para
defender serviços de ataques HX-DoS. Nesta técnica, os métodos Reconstruct e Drop são
usados para decidir qual pacote foi afetado e deve ser descartado;
Timing: às vezes os atacantes escolhem o momento para lançar ataques
procurando atingir uma finalidade específica pessoal. A situação é chamada de flash crowd,
quando um servidor carrega uma grande carga de trabalho. Assim, os algoritmos de detecção
devem ser capazes de detectar o ataque DDoS no mesmo momento [25];
Isolamento: em uma plataforma baseada em nuvem, é uma tarefa difícil
para os provedores distribuir o mesmo conjunto de recursos de rede e técnicas de isolamento
para todos os inquilinos. Como resultado, é difícil para os administradores de rede alocar
eficientemente a rede e isolar técnicas entre todos os inquilinos. Assim mais uma
vulnerabilidade em ataques DoS resulta no design do mecanismo de compartilhamento de
largura de banda. Por outro lado, o isolamento do desempenho da rede também é parte
integrante de qualquer sistema virtual [26], então os clientes da nuvem podem exigir seu
isolamento físico.
Os autores em [27] investigam o impacto de ataques DoS em sistemas
baseados em hypervisor. Eles mostram que os sistemas de rede virtualizados são mais
vulneráveis em comparação com as suas contrapartes não virtualizadas, uma vez que mesmo
um pequeno ataque pode afetar a maior parte dos sistemas de VMs e afetar o desempenho de
acesso à memória.
Outras questões relativas a estes ataques DDoS são para diferenciar as
mensagens legítimas e ilegítimas de usuários, já que usuários legítimos também degradam o
desempenho dos serviços. Polimorfismo e evasão são provavelmente as questões mais
técnicas relativas aos ataques DDoS [28]. Neste cenário, vários vetores de ataque são
enviados para a configuração da vítima, a fim de conhecer as fraquezas na infraestrutura e
aumentar a eficiência dos ataques DoS em termos de atraso e probabilidade.
49
4.1.1.2 Ataques de Autenticação
O objetivo principal da autenticação é permitir que somente pessoas
autorizadas acessem o sistema de processamento de dados de acordo com a política do
provedor da nuvem. Em essência, o mecanismo e os métodos usados para autenticar o sistema
são alvos freqüentes por atacantes, e há sempre certas classes de aplicativos em nuvem onde
muitos usuários ainda utilizam mecanismos mais simples e não sofisticados de nome de
usuário e senha para verificarem suas contas.
Como exemplo, a empresa LastPass [29], que armazena e gerencia senhas
no ambiente cloud, afirmou que seus sistemas haviam sido afetados a partir de um hack bem-
sucedido deste tipo. Especialistas em segurança descobriram comportamento incomum em
seus sistemas, pois havia mais dados saindo em comparação com os dados recebidos. Devido
a essas atividades, a empresa presumiu que se tratava de uma atividade de hacking
relacionada a credenciais de log. Felizmente nenhum dado foi roubado, mas a empresa
aprimorou seus algoritmos de criptografia e introduziu medidas adicionais para proteger
dados confidenciais em seu servidor.
Os principais ataques de autenticação incluem:
i) Fraude de clientes, malicious insider;
ii) Ataques de key logger;
iii) Ataques man-in-the-middle;
iv) Ataques de detecção de senha, phishing ou sequestro de sessão.
Deve-se notar que a identidade é a parte central de qualquer sistema cloud
computing virtualizado. Ele é usado para identificar os usuários, serviços, servidores, nuvens
e outras entidades a serem identificadas pelo sistema para acessar esse sistema. Para isso, um
conjunto de informações está sempre associado a uma entidade específica. O cenário de
autenticação de aplicações baseadas em SaaS deve ocorrer da seguinte maneira [30]:
i) O usuário requer autenticar-se enquanto acessa as informações do
provedor SaaS. Como a plataforma SaaS é baseada na web, portanto, algum tipo de
criptografia feita no URL ou um cookie;
ii) Através de uma chamada de serviço web direta, as informações são
autenticadas no diretório de usuário do cliente;
iii) O diretório de usuário do cliente responde com algum tipo de
autorização e informações de autenticação;
iv) Finalmente, com base no cenário de autenticação e consultas de
autorização, o pedido resultante será preenchido ou negado.
Os provedores de nuvem devem fornecer um conjunto conciso e consistente
de sistemas de gerenciamento de identidade. Os padrões existentes (como SPML, SAML,
OAuth e XACML) são usados para proteger identidades federadas entre diferentes conjuntos
de entidades e entre diferentes domínios e plataformas de nuvem [31].
A tecnologia compartilhada coloca uma carga pesada sobre os clientes
devido ao mecanismo de autenticação tradicional. Para abordar esta questão, os autores em
[32] propõem a abordagem hierárquica de Autenticação Baseada em Identidade (IBA), que é
um tamanho de chave e identidade curto baseados para permitir a criptografia de arquivos
apenas uma vez e armazenar a correspondente cifra-texto na nuvem. O primeiro protocolo de
autenticação RFID baseado em nuvem [33] foi proposto para proteger os canais de back-end e
oferecer aos leitores acesso anônimo para preservar a privacidade da tag/reader para os
servidores de banco de dados.
Os autores em [34] investigam os mecanismos de autenticação existentes,
tais como SSO. A autenticação de usuários através de mecanismos como cURL e SSL é muito
eficaz, pois fornece soluções eficientes para proteger os usuários em redes inseguras. Como
resultado, os usuários podem ser protegidos de ataques man-in-the-middle, fornecendo um
conjunto de pacotes de criptografia e certificados de servidor que são verificados e confiáveis.
O processo de criptografia é feito através de algoritmos RSA quando os usuários criam
agentes SSO e as informações são passadas por solicitações HTTP. No entanto, os autores não
forneceram como o SSO pode acessar os serviços em nuvem a partir do dispositivo móvel ou
outro compatível com a nuvem.
A autenticação baseada em assinatura digital XML pode ser outra opção
para proteger o sistema da fraqueza inerente de autenticação online e baseada na web [35].
MiLAMoB [36] é mais um mecanismo de autenticação que autentica os usuários com o nome
do dispositivo do cliente. Uma maneira de proteger o sistema contra uso não autorizado é usar
mecanismos de autenticação de vários níveis também. Na realidade, o sistema de autenticação
multinível [37][38] exige meios alternativos de autenticação, além de fornecer a senha e o
nome do usuário. Algumas abordagens utilizam assinaturas digitais com impressão digital. No
entanto, alguns destes tipos de métodos podem ser dispendiosos.
51
4.1.1.3 SQL injection
As duas ameaças mais comuns usadas para roubar informações de usuário a
partir de aplicações web são SQL-injection e Cross-site Scripting (XSS). Estes métodos são
usados para roubar dados, inserindo código malicioso em um SQL padrão que altera a
natureza da consulta de entrada do próprio usuário para se infiltrar no aplicativo web. Como
resultado, os atacantes ganham acesso ao banco de dados e executam seu próprio comando
SQL para que ele possa ser usado para invadir, alterar e excluir o projeto de banco de dados
padrão [39].
Eventualmente, a maior parte dos ataques de injeção SQL ocorreram através
das sequências de caracteres submetidas pelo usuário que têm duas partes: a primeira parte
contém a suposição que contém as informações para encerrar com segurança o comando que é
executado pelo código, e a segunda parte é o código hostil que os atacantes querem executar
no servidor virtual. Além disso, os dados de entrada do usuário, incluindo a interface URL e
AJAX também são vulneráveis. Entretanto, a consulta SQL em si é mais vulnerável aos
invasores.
Existem vários pontos onde as vulnerabilidades podem existir e nos quais os
atacantes podem inserir o código malicioso no SQL, como resultado eles obtem o acesso não
autorizado aos dados e tornam-se capazes de roubar informações importantes. Por esta razão
que existem alguns comandos básicos ou dois a três diferentes comandos possíveis.
Em alguns casos, os servidores web mal interpretam os dados do hacker
como dados do usuário legítimo. Assim, os atacantes podem ter acesso ao servidor SQL,
conhecer o funcionamento interno do site e facilmente fazer alterações neles [39][40].
4.1.1.4 Cross-site scripting (XSS)
Como discutido acima, o Cross-site scripting é uma das técnicas de hacking
de camada de aplicação mais comuns. Estes injetam scripts maliciosos em conteúdo da web,
portanto, também são um tipo de ataque por injeção [41]. À medida que a nuvem fornece um
ambiente compartilhado, os invasores tentam inserir scripts maliciosos em JavaScript e
HTML como aplicativo dinâmico ao lado do navegador, a fim de coletar informações
importantes das máquinas de diferentes usuários. Neste cenário de ataque [42], às vezes os
usuários inserem um URL certo, mas não verificam os selos de segurança por exemplo, e os
hackers atacam o URL redirecionando para seu próprio site, a fim de roubar credenciais.
Desta forma, o XSS fornece maneiras de extravasar dados e permitir ataques DoS.
À medida que a infraestrutura distribuída em nuvem é usada para fornecer
vários serviços aos usuários, esses ambientes de nuvem distribuídos são afetados por ataques
XSS. Uma vez que os dados da nuvem estão localizados em sites de terceiros, é fácil inserir
código mal-intencionado por meio de pop-ups.
O artigo [43] propõe um método de verificação de modelos para defesa
contra XSS. Esse método encontra bugs no aplicativo de comércio eletrônico e apresenta
exemplos de contador para esses ataques. Um comportamento operacional normal do site é
coletado e verificado para detectar comportamentos ilegais. Possui um algoritmo de
modelagem automática para o HTML.
Ambos os ataques Cross-site scripting e SQL-injection estão se tornando
ameaças sérias, e são ataques muito famosos na web 2.0, quase sessenta e quatro milhões de
ataques cibernéticos mal-intencionados bloqueados pela empresa de hospedagem FireHost
[44] de nuvem segura em 2012 foram deste tipo [39].
4.1.1.5 Ataque de ‘envolvimento’ de assinatura XML
Neste cenário, os atacantes podem segmentar os componentes através de
mensagens SOAP [42]. A mensagem SOAP é gerada pelo servidor quando o usuário envia
uma solicitação através de seu navegador virtual. Esta mensagem contém as informações
estruturais que são usadas para comunicação entre o navegador do cliente e o servidor. No
caso de qualquer falha no protocolo de segurança do servidor web, os invasores podem atacar
este protocolo usando assinatura XML alterada, causando a autenticação da mensagem SOAP
digitalmente fraudulenta. Desta forma, um invasor tem várias solicitações de serviço web
arbitrárias ao autenticá-lo como um usuário legítimo.
No sistema UNWRAP [45], a estrutura de elementos das mensagens SOAP
foi construída usando ontologia para anexá-la a um cabeçalho. Desta forma, os autores
validam o ataque no início do processo de verificação da mensagem, gravando as SOAP como
um log. Em etapas posteriores, se ocorrer alguma falha na segurança, o log é verificado e se
recupera do efeito da execução bem-sucedida.
Os ataques a protocolos [46] usando a assinatura XML também podem
afetar os serviços da cloud. O pior cenário ocorre quando esses ataques quebram a arquitetura
de segurança entre o navegador e as nuvens, o que faz com que consequentemente, o atacante
53
também possa explorar os recursos importantes das VMs, como o clipboard compartilhado
(recurso que permite que os dados sejam compartilhados entre as VMs). Se a máquina host
for comprometida, todas as máquinas virtuais estarão em risco.
Em 2011, pesquisadores da Universidade de Ruhr Bochum [29]
encontraram um buraco de segurança na criptografia dos modelos EC2 e S3 da Amazon.
Existia uma falha no protocolo de segurança de serviços web que permitiam aos invasores
ignorar a camada de segurança de mensagens SOAP assinadas digitalmente. As interfaces de
controle que eram usadas para gerenciar os recursos da nuvem poderiam ser sequestradas
pelos invasores e, desta forma, os atacantes seriam capazes de criar, modificar e excluir as
imagens da máquina e alterar até a senha administrativa.
Os autores em [35] apresentam algoritmos baseados em assinatura digital
XML. O objetivo deste algoritmo é reforçar o mecanismo contra o XML wrapping e outros
ataques. Esta abordagem visou fornecer a assinatura digital em vez de usar mecanismo
tradicional para autenticar o sistema. O gerenciamento esquemático do XML inclui o
mecanismo de criptografia e descriptografia que é usado para se defender normalmente contra
um ataque.
Criptografia, credenciais de aplicativo e administração externa são recursos
vitais para proteger aplicativos baseados em SaaS. Uma solução é implementar criptografia de
nível de arquivo e de bloco. Além disso, é melhor implementar essas abordagens de
criptografia no nível da camada de aplicativo. Os scanners automatizados [47] também podem
ser usados para detectar vulnerabilidades mais comuns, além da verificação manual. Nesse
caso, vários scanners de aplicativos web são úteis para detectar qualquer vulnerabilidade,
como ataques de injeção de cross-site scripting e SQL. Além disso, novas abordagens são
necessárias para superar os ataques maliciosos, uma vez que as abordagens existentes não são
eficientes para proteger completamente as aplicações web.
A Tabela 1 fornece o resumo da literatura de abordagens para se defender
contra ataques na camada SaaS, juntamente com suas vantagens e desvantagens.
Tabela 1 - Resumo das abordagens propostas para a defesa contra os ataques em SaaS,
juntamente com seus prós e contras.
4.1.2 Ataques de segurança na camada de nuvem PaaS
Na prática, o modelo PaaS baseia-se no modelo SOA (Service-Oriented
Architecture). Nesse modelo, existem problemas que podem resultar em ataques dirigidos à
nuvem PaaS e esses ataques incluem injeção /problemas relacionados a validação de entradas,
man-in-the-middle, phishing e malwares.
55
4.1.2.1 Ataques de phishing
Os ataques de phishing são normalmente mensagens de e-mail fraudulentas
que direcionam para sites fraudulentos. No ambiente de nuvem PaaS, esses atalhos afetam
tanto a empresa quanto os usuários. Esses atacantes convencem os clientes a revelar seus
dados mais importantes como senha ou outras informações sensíveis usando páginas web
falsas, e-mails ou blogs. É um tipo de ataque de engenharia social, e os usuários da Internet
sofrem com ele [48], uma vez que podem ser fáceis de detectar a menos que as vítimas
percebam tarde que suas contas foram comprometidas.
Navegadores famosos da web fornecem plugins para se defender contra
esses ataques, mas uma solução completa do lado do cliente não está sendo aplicada até agora.
Os usuários do Facebook são frequentemente alvo de ataques de phishing [49].
O phishing visa as vulnerabilidades que ocorrem devido ao fator humano.
Os usuários são normalmente o elemento mais fraco no domínio de segurança porque muitos
ataques se espalham por meio da exploração dos pontos fracos dos usuários finais. Não há
uma abordagem sequer que ultrapasse completamente os problemas de tais ataques. Desta
forma, várias técnicas podem ajudar a mitigar tais problemas.
O trabalho [50] investiga as técnicas de mitigação propostas e apresenta
algumas técnicas de alto nível, tais como: detecção, defesa ofensiva, correção e prevenção.
Em agosto de 2012 [29], os atacantes destruíram a biblioteca digital do escritor técnico Mat
Honan usando o ataque de engenharia social ao apagar remotamente os dados de seu iPad,
MacBook e iPod. Então, para fornecer autenticação forte e autorização de IDs de clientes, a
Apple desativou temporariamente a facilidade do cliente para alterar a senha por meio do
telefone. Mas os clientes ainda podem usar o sistema online "iForgot". Da mesma forma, o
serviço ao cliente da Amazon também desativou a alteração do cartão de crédito e endereço
de e-mail por telefone.
O e-mail de phishing é um dos problemas desafiadores do mundo de hoje.
Até agora, não há uma solução completa para resolver esse problema [51]. O Sistema
Inteligente de Criptografia e Decodificação de Email Baseado na Nuvem (ICLEEDS) [52] é
um novo framework para melhorar a segurança das mensagens de e-mail baseadas na nuvem.
O ponto focal do método é criptografar a mensagem de e-mail da caixa de correio do usuário
antes de enviá-la. Esse sistema de criptografia de aprendizado inteligente ajuda os sistemas a
melhorar e proteger os e-mails dos usuários de qualquer ataque, como phishing, retransmissão
de mensagens anteriores, etc. No entanto, não há informações detalhadas sobre a
implementação no ambiente real.
Para um ambiente baseado em nuvem, é necessário propor algoritmos de
criptografia e decodificação auto-adaptativos e auto-inclinados. A configuração TLS estava
indo bem para todos os tipos de aplicações web até os primeiros ataques de phishing
detectados em 2004 [53].
O trabalho em [54] projeta e implementa uma análise de segurança baseada
em rede forense. O método usa o armazenamento em nuvem para coletar dados de tráfego e,
utilizando análise forense de ataques de phishing, armazená-lo e processá-lo na plataforma de
cloud para encontrar atividade maliciosa.
4.1.2.2 Ataque de redefinição de senha
É o processo pelo qual os atacantes tentam todas as combinações de
caracteres possíveis para recuperar a senha de um usuário dos demais dados. O processo de
criptografia forte faz o conteúdo criptografar, no entanto, isso não significa que ele não
poderá ser recuperado novamente. Ele pode ser descriptografado para seu próprio conteúdo
original, aplicando alguns esforços, como recursos computacionais, ferramentas e técnicas.
A compra de supercomputadores de alta performance para decifrar
informações criptografadas não é uma decisão sábia: pode funcionar para uma tarefa
específica, mas é onerosa em termos de carga financeira. Mas, alguém poderia ir à nuvem da
Amazon para comprar ou alugar uma máquina de grande magnitude para realizar tais ataques
[55].
Com a cloud, os usuários finais têm acesso a máquinas muito poderosas
para executar suas tarefas computacionais, máquinas muito melhores do que as que operam na
infraestrutura tradicional, o que transforma o sequestro de contas através de credenciais
roubadas uma tarefa bem menos onerosa. Através dessas credenciais, os invasores podem
acessar informações importantes.
Por exemplo, em julho de 2012, um grupo de hackers autodenominados
"UGNazi" explorou grandes falhas no processo de recuperação de senhas do Gmail e dos
sistemas de correio de voz da AT&T. Como resultado, eles ganharam acesso à conta pessoal
do gmail do CEO da CloudDare. Da mesma forma, houve outro caso relatado pelo serviço de
armazenamento em nuvem Dropbox em julho de 2012, em que os hackers roubaram as senhas
57
e nomes de usuários de servidores terceirizados para acessar as contas dos usuários do
Dropbox [29].
Os ataques à credencial de login das aplicações web são o tipo mais comum
de ataque de força bruta. HTTP é um protocolo stateless e, para manter o estado, o aplicativo
web garante que o identificador de sessão tenha sido enviado pelo navegador com cada
solicitação. Esse identificador de sessão provavelmente está armazenado no cookie HTTP ou
no URL.
Em ataques brutos, o atacante tenta adivinhar o identificador de sessão de
outro usuário e, uma vez que usuários costumam pegar as palavras fáceis ou frase como
senhas, basta os atacantes tentarem fazer login no sistema usando uma grande lista de palavras
e frases como uma senha em potencial. Este método é chamado de "ataque de lista de
palavras" ou um "ataque de dicionário".
4.1.2.3 Ataques man-in-the-middle
Este é um tipo de ataque de espionagem em que os atacantes tentam inserir-
se na comunicação entre duas partes (entre dois clientes, por exemplo, ou verificadores).
Desta forma, eles interceptam e modificam a comunicação. O tráfego de rede normalmente
viaja entre dois computadores que se comunicam entre si através da Internet. Durante a
transmissão de mensagens entre os computadores, os atacantes interceptam mensagens em
uma troca de chaves públicas e retransmitem esta mensagem, substituindo sua própria chave
pública de uma maneira que os usuários originais ainda parecem estar se comunicando entre
si.
Outro exemplo popular desse ataque é quando o cliente e o servidor estão se
comunicando uns com os outros em uma transação HTTP: o invasor divide esta conexão TCP
em duas novas partes, um entre cliente e atacante e outro entre atacante e servidor. Ao omitir
as chaves, o processo de atestado seria aberto para ataques man-in-the-middle.
Como exemplo, os usuários mal-intencionados podem esperar que o
processo de atestado seja concluído e, em seguida, reinicializar uma máquina para o estado
não confiável sem o conhecimento de servidores remotos [56]. Várias ferramentas têm sido
inventadas com mecanismo de criptografia forte para defender contra esses tipos de ataques,
tais como: Dsniff, Cain, Ettercap, Wsniff, Airjack, etc [57].
Os autores em [58] também propuseram um esquema para garantir a
migração de máquinas virtuais. Se o protocolo de migração tiver sido criptografado durante a
migração, então ele é suscetível ao ataque man-in-the-middle [59], que permite que o estado
arbitrário na VM seja modificado. Esse método torna o gerenciador da máquina virtual
(VMM) responsável por todas as necessidades de processos de migração ao vivo, como
localizar e descriptografar todas as páginas de origem. Primeiro, o método descriptografa as
chaves e hash através da chave de plataforma pública da máquina de origem. Depois, ele
compara os valores de hash das páginas de origem antes da descriptografia. Como resultado,
esta plataforma baseada em sessão/baseada em chaves de protocolo visa defender os ataques
man-in-the-middle.
Estes ataques também podem ser evitados, implicando nas medidas de
segurança convencionais, APIs seguras e fazendo backups frequentes [60]. Além disso, a fim
de evitar o acesso não autorizado, a autenticação e autorização de pessoal a nós confiáveis são
necessárias.
4.1.2.4 Ataque de injeção de malware na nuvem
Em ataques de injeção de malware, os invasores inserem códigos mal-
intencionados em uma página web, fazendo com que a página infecte por malware os usuários
da rede que nela naveguem. Normalmente ocorre comprometendo o FTP, que injeta o
malware no servidor de nuvem e pode perturbar a funcionalidade dos serviços. Nesse caso, o
código aparece como um serviço de instância válido em execução na nuvem.
Em maio de 2009, o Departamento do Tesouro dos Estados Unidos
descobriu que um código malicioso estava presente em seu site e, segundo notícias, fechou
quatro sites públicos do Bureau of Engraving and Printing, uma agência governamental que
projeta e produz uma variedade de produtos de segurança nacional. Investigações posteriores
identificaram a causa devida a um terceiro: o principal responsável pela pesquisa de
tecnologias Anti-Virus Guard (AVG) descobriu que as páginas afetadas estavam vulneráveis a
esse tipo de ataque.
A Tabela 2 fornece o resumo da literatura de abordagens para defender
contra ataques na camada PaaS, juntamente com suas vantagens e desvantagens.
59
Tabela 2 - Resumo das abordagens propostas para a defesa contra os ataques em PaaS,
juntamente com seus prós e contras.
4.1.3 Ataques de segurança na camada de nuvem IaaS
Nesta camada, os atacantes obtêm e mantêm operações de máquinas virtuais
hospedeiras abrindo a possibilidade de atacar outras VMs ou fazer um ataque ao hypervisor.
Como exemplo, o DKSM [61] é uma abordagem para contornar tais mecanismos de
segurança que dependem do SO para resolver o hiato semântico. Ele introduz dois modelos de
ataque: um muda a semântica da estrutura do kernel e outro faz mudanças a sintaxe. A mesma
configuração na nuvem, como tecnologias de virtualização, softwares vulneráveis e recursos
físicos compartilhados, atrai atacantes para ataques a várias VMs comprometidas.
Como discutido anteriormente, o hypervisor é um vetor de ataque que pode
ser explorado como uma plataforma de lançamento para outros ataques, como o abuso do
poder de computação [62]. Desta forma, executar uma VM mal-intencionada é o mesmo que
mover o código mal-intencionado para o sistema de rede em uma única máquina física e
ignorar qualquer sistema de detecção de intrusão sobre a infraestrutura de rede. A VM
instalada está logicamente conectada a uma rede virtual para atender a muitos usuários.
Devido ao ambiente compartilhado de infraestrutura em nuvem, os modelos
de ataque podem ser apresentados também na rede virtual, já que a migração de aplicativos
em execução com seus dados e estados são vulneráveis a violações de segurança e ataques. Às
vezes, os atacantes subvertem as tabelas de página.
Como resultado, podem usar o código existente, perturbar e alterar a rotina
normal que manipula as atualizações da tabela de página com parâmetros mal-intencionados.
A imagem virtual é reconstruída na máquina de destino, depois que um invasor recebeu com
êxito as páginas de memória. Conseqüentemente, isso pode ser usado para lançar ataques de
spoofing, substituindo o conteúdo direcionado [63].
Existem dois tipos de tráfego entre VMs, descritos a seguir:
Tráfico interno: é a comunicação na qual as VMs interagem em um
grupo de usuários. O tráfego interno pode conter qualquer informação confidencial, e essas
informações devem ser protegidas de usuários mal-intencionados. Desta forma, a política de
segurança deve ser independente da gestão de uma nuvem híbrida e políticas devem ser
estabelecidas e aplicadas pelo grupo de usuários. Da mesma forma, o grupo de usuários deve
assumir a responsabilidade da comunicação interna e é independente da flexibilidade dos
serviços da cloud;
Tráfico externo: neste modo de comunicação, a VM acessa outros
grupos de usuários que residem no mesmo provedor de serviço de internet (ISP) da nuvem.
Esta é uma comunicação entre grupos de usuários, e o ISP gerencia e controla o tráfego entre
os grupos. A política de segurança é estabelecida e é executada pelo ISP, e é responsável por
problemas externos de segurança de tráfego.
Além disso, as principais ameaças de segurança para o ambiente de
computação IaaS incluem as preocupações de segurança no nível de virtualização: segurança
do hypervisor, segurança da rede virtual, armazenamento virtual etc. Alguns dos principais
ataques de segurança na camada IaaS são descritos a seguir.
61
4.1.3.1 Malicious insider
Esse tipo de ataque ocorre de cliente para servidor quando a pessoa,
empregado ou pessoal que sabe como o sistema é executado e pode implantar códigos
maliciosos para destruir tudo no sistema de nuvem. A indústria está bem consciente da
ameaça de ataques internos, uma vez que esta ameaça é muito mais perigosa no ambiente de
cloud porque pode ganhar muita informação importante a partir dos dados da nuvem.
Também é muito importante conhecerem o alcance dos ataques internos e seus efeitos para
melhor se defenderem contra tais ameaças [64]. No entanto, esses tipos de ameaças não
ganham muita atenção porque as empresas normalmente se concentram em ameaças externas
em vez de prestar atenção às ameaças internas.
Os ataques internos são geralmente planejados com antecedência. No
ambiente de nuvem, a natureza elástica das VMs IaaS permite a realocação frequente de
máquinas físicas ou de outras máquinas virtuais. Durante esta migração, potenciais ameaças e
vulnerabilidades também podem ser introduzidas devido à hypervisors comprometidos. O
trabalho em [65] usa aprendizagem baseada em regras, que identificou com êxito as
atividades do insider. Nenhuma implementação prática é fornecida para detectar essas
ameaças no mundo real.
O artigo [66] apresenta uma outra abordagem para detectar membros
maliciosos no ambiente em nuvem. Os autores mostram que os insiders também podem ser
detectados com base em seu padrão comportamental. Seu modelo usa mapeamento sequencial
para detectar qualquer atividade de padrão malicioso para um determinado perfil. No entanto,
este modelo não fornece arquitetura de segurança completa para todo o ambiente de nuvem. O
sistema é implementado apenas para a camada SaaS e não para PaaS e IaaS.
O trabalho [67] investiga as ameaças de modificação maliciosa através de
insiders observando um banco de dados relacional. O esforço foi feito construindo um gráfico
de modificações usuais de insiders, observando-se através de quais atividades os dados são
autorizados ou não a ser modificados pelas tentativas de terceiros. Além disso, o status atual
das ameaças internas e seu impacto no ambiente cloud também foi identificado em [68].
4.1.3.2 Ataques de canal lateral (Cross VM attacks)
Um ataque frequentemente negligenciado no software de criptografia é o
ataque de canal lateral. São informações recuperadas do software criptográfico que não é o
texto simples nem o texto cifrado, geradas da virtualização do sistema operacional. Os dois
passos principais dos ataques de canal lateral são:
i) Posicionamento: atacante e VM violada residem na mesma máquina
física; e
ii) Extração: informações confidenciais, arquivos e documentos são
extraídos após a colocação com êxito de códigos maliciosos na máquina VM alvo.
O Cross-VM também pode explorar a natureza do multi-usuário. Ele permite
que os diferentes clientes de várias VMs possam co-residir na mesma máquina física e
possam explorar recursos virtuais e físicos compartilhados [26]. Na virtualização do sistema
operacional [69], vários SO’s convidados são executados em um único sistema operacional
hospedado que têm visibilidade e controle do sistema operacional de cada hóspede. Desta
forma, os atacantes podem obter o controle de todas as máquinas de convidado,
comprometendo a segurança das máquinas host.
Por outro lado, a virtualização baseada em aplicativos apresenta o topo do
sistema operacional host. Esse tipo de configuração permite que cada VM tenha seu próprio
sistema operacional convidado relacionado às aplicações. Neste caso, o hypervisor
comprometido pode comprometer todo o SO convidado. Essas vulnerabilidades no nível de
virtualização ou hypervisor permitem que os invasores lancem os ataques cruzados do canal e
DoS laterais da VM.
4.1.3.3 Ataques de escalonamento (Stepping-stone)
Os ataques de escalonamento através de VMs hospedadas são críticos na
infraestrutura IaaS. Esses ataques usam as VMs comprometidas para atacar hosts externos.
Desta forma, os prestadores dos serviços também podem ser considerados como atacantes.
Para proteger esse cenário, a nuvem IaaS deve fornecer uma resposta ativa contra esses tipos
de ataques. Da mesma forma, os provedores devem implementar algum tipo de controle para
prevenção de botnet e rastreio dos atacantes.
A Tabela 3 fornece o resumo da literatura de abordagens para se defender
contra ataques na camada IaaS, juntamente com suas vantagens e desvantagens.
As técnicas de detecção e prevenção de intrusões podem ser aplicadas a diferentes camadas de
modelos de computação em nuvem. Por exemplo, essas técnicas podem ser adaptadas da
camada de virtualização/rede (IaaS) para a camada de sistema operacional (SaaS), ou até
mesmo de camadas de aplicativos (PaaS).
63
Tabela 3 - Resumo das abordagens propostas para a defesa contra os ataques em IaaS,
juntamente com seus prós e contras.
4.2 Detecção e Prevenção de Anomalias
Na Seção 5.1, foram exploradas certas vulnerabilidades que cada camada de
nuvem sofre. Essas vulnerabilidades são introduzidas por diferentes erros de programação e
configuração de aplicativos de internet e web, redes de comunicação sem fio do usuário ou
dos provedores de serviços. Desta forma, o Sistema de Detecção de Intrusão (IDS) também é
um componente essencial, um mecanismo defensivo para proteger a rede e sistemas de
computador contra vários ataques em diferentes modelos de serviço.
Há uma evolução contínua na arquitetura empresarial atual. Portanto,
métodos tradicionais remanescentes não podem fornecer uma solução ótima, pois as regras do
firewall precisam ser modificadas para cada atualização trivial nas empresas, por exemplo. O
sistema de detecção de intrusão é o procedimento que monitora o tráfego de rede para detectar
quaisquer vulnerabilidades contra aplicativos ou sistemas de destino. Basicamente, o sistema
IDS contém uma variedade de abordagens para detectar o tráfego suspeito de diferentes
maneiras [70][71].
O papel do IDS no ambiente de nuvem é muito importante porque fornece
uma camada adicional para protegê-lo de ataques e outras vulnerabilidades de mau
funcionamento. No ambiente multi-usuário da nuvem, o IDS fornece a melhor maneira de se
defender contra ataques conhecidos e desconhecidos.
A Tabela 4 apresenta idéias sobre diferentes técnicas de IDS usadas na
cloud computing. Cada uma das técnicas é comparada com base em camadas de
software/plataforma/infraestrutura (SPI), métodos, tipos, prós e contras.
4.2.1 Abordagens da detecção de intrusão
Os tipos mais comuns de técnicas IDS são [72]:
Detecção baseada em Assinatura Digital: A detecção baseada em
assinatura compara trechos de arquivos, formados por um conjunto de regras predefinido, a
um sistema já conhecido de arquivos maliciosos. Desta forma, os pacotes maliciosos são
detectados através de procura no tráfego da rede. A assinatura é formada por estes trechos de
arquivo e caracterizando os atacantes, detecta as ameaças e previne da ocorrência de falsos
positivos [71];
65
Detecção baseada em anomalia: A técnica de detecção de anomalias
encontra na linha de base da rede um comportamento que a identifique. Esta linha de base é
especificada pelo administrador da rede com base em monitoramento. Este sistema detecta
comportamentos anormais, significativamente diferentes da linha de base, identificando
atividades suspeitas e procurando portas e protocolos utilizados, indicando como alertas à
administração quaisquer atividades maliciosas [71][72];
Detecção baseada em Rede Neural Artificial: Neste tipo de IDS, os
estados internos do programa são monitorados a fim de derrotar os arquivos maliciosos.
Utiliza ANN (Rede Neural Articial) como técnica de reconhecimento de padrões;
Detecção baseada em Fuzzy Logic: Este método baseia-se na técnica de
mineração de dados por regras pré-definidas para tentar detectar o comportamento de intrusão
no tráfego de rede.
Há também alguns tipos principais de IDS que são usados em nuvem:
Sistema de detecção de intrusão baseado em rede (NIDS): o NIDS
observa, examina e analisa o tráfego de e para todos os dispositivos na rede. Ele pode analisar
todos os tráfegos de entrada e saída e detectar vários tipos de instâncias. Uma vez que os
ataques forem detectados a partir deste método, o sistema ativo imediatamente toma as
medidas necessárias para enfrentar os ataques [71][72]. A responsabilidade do provedor de
nuvem é gerenciar e implantar o NIDS no ambiente de nuvem. Esses tipos de NIDS podem
ser úteis para detectar alguns tipos de ataques em VMs e hypervisor. No entanto, o NIDS não
pode detectar ataques dentro de redes virtuais. Além disso, o tráfego de rede dentro e fora do
ambiente de nuvem não pode ser decifrado para análise;
Sistemas de detecção de intrusão baseados em host (HIDS): Esse
método é executado na rede de host individuais ou de dispositivos. A máquina host pode ser
analisada e observar através do HIDS. Os pacotes de entrada e de saída são mostrados no
monitor e alertas de acesso não autorizado são disparados para os usuários ou administradores
sobre qualquer atividade suspeita. No ambiente de nuvem, o HIDS implantado na VM pode
ser monitorado e gerenciado pelos clientes; o HIDS implantado no hypervisor é monitorado
pelos provedores de nuvem. É da responsabilidade dos provedores que eles assegurem que
estão fornecendo IDS adequado em seu lado [73][74];
Sistema de detecção de intrusão baseado em hypervisor (HIPS):
Hypervisor ou gerenciador da máquina virtual implementam a camada abstrata entre o host
subjacente e o sistema operacional convidado. Esta camada fornece a segurança, de modo que
o kernel se torne livre de vulnerabilidades. Desta forma, o HIPS examina as métricas do
sistema a partir de instâncias de nuvem do hypervisor e detecta possíveis padrões de mau uso.
Este método de detecção permite monitorar e analisar a comunicação entre VMs e dentro das
redes virtuais. Esta abordagem é eficaz no ambiente de nuvem, no entanto, como este método
é novo, então levará algum tempo para amadurecer e mais algum tempo para ser totalmente
adotado pelos provedores e clientes da nuvem [75].
67
69
5 CONCLUSÃO
O número de trabalhos científicos feitos nos últimos anos mostra que a
cloud computing ainda está em constante desenvolvimento; à medida que novos trabalhos são
desenvolvidos, vulnerabilidades adicionais específicas da nuvem certamente surgirão,
enquanto outras se tornarão menos problemáticas.
As próprias diferenças de finalidade nos serviços da nuvem (Software como
um Serviço - SaaS, Plataforma como um Serviço - PaaS e Infraestrutura como um Serviço -
IaaS) dificultam que sejam encontradas soluções a curto prazo de maneira eficiente para todos
os contextos. Nos trabalhos listados nas Tabelas 1, 2 e 3, diferentes autores trabalham com
diferentes abordagens em um mesmo ambiente, muitas vezes de maneiras extremamente
distintas, ou seja, muitas vezes nem mesmo eles conseguem aproveitar técnicas uns dos outros
para auxiliar em sua melhoria ou na melhoria do serviço de cloud como um todo.
É importante saber classificar os problemas para poder resolvê-los, e
nenhum método resolve todos, já que há variações em suas condições e causas, como uso
indevido da cloud, infraestrutura insegura, softwares com vazamento de dados, entre outros.
A característica forte dos sistemas de cloud, sua forma multidisciplinar de sistema, é também
uma das causas mais importantes nas aberturas de segurança, pois estes precisam não somente
tratar o ambiente virtual via software, mas também cuidar de hardware, infraestrutura, e ainda
se atentar à potenciais falhas humanas.
Esta multidisciplinaridade também fomenta a formação de técnicas que não
são puramente de segurança em redes, exigindo profissionais que tenham conhecimento além
do que era, até então, exigido na área, como programação. Alguns profissionais,
principalmente os mais experientes, precisarão de tempo para adquirir conhecimento técnico
suficiente de outras disciplinas para aplicar nas tecnologias de nuvem.
Alguns exemplos utilizados ao longo deste trabalho mostram também que,
mesmo empresas grandes e que possuem muitos recursos (financeiros, humanos e estruturais)
podem sofrer ataques nestes serviços, reforçando a necessidade de estudos apropriados sobre
a tecnologia e salientando que mesmo que um serviço de cloud tenha suas ações de segurança
em dia, isso não impede de alguma outra forma de segurança ser falha e necessitar de atenção
e cuidados.
Ainda, como visto, na Tabela 4 deste trabalho, as IDS não possuem um alvo
padrão para todos os requisitos de segurança necessários da nuvem, deixando em aberto
possibilidades de ataques por indivíduos mal intencionados e exigindo a construção de
sistemas através de pesquisas mais específicas e aprofundadas em cada área.
Como cada modelo de entrega de serviços em nuvem é diferente de outros
modelos de serviço da mesma forma, as técnicas IDS usadas para cada modelo de serviços em
nuvem também são diferentes. Em SaaS, os usuários simplesmente dependem de seus
provedores para implantar seus serviços, portanto é responsabilidade dos provedores de
nuvem SaaS desenvolver IDS para a segurança. Os usuários podem ter a opção de obter
alguns logs e pesquisadores podem implantar algum tipo de monitoramento e alerta
aduaneiro.
Em PaaS, as IDS são implantadas fora dos aplicativos, assim sendo, a
maioria acaba implementada pelo provedor também. Como essa camada é responsável por
fornecer ambientes de execução de sofware sem a necessidade de compra de servidores por
parte dos clientes (e também pode ser um serviço multi-usuário), implementar fortes técnicas
de criptografia que protejam os usuários de interrupções em seus serviços se torna essencial.
Os usuários ainda devem poder configurar suas aplicações de forma a garantir acesso apenas a
pessoas autorizadas e pesquisadores podem criar plataformas adicionais que mantenham
logons em um local centralizado, a fim de monitorar e alertar sobre possíveis ataques e ajudar
o provedor.
O IaaS é considerado um modelo mais flexível para IDS.
Consequentemente, o IDS pode ser executado de várias maneiras, como: na máquina virtual
(a implantação de IDs nas máquinas virtuais pode permitir monitorar os sistemas e alertar e
detectar qualquer comportamento incomum das máquinas, dessa forma, os próprios clientes
alertam os administradores sobre qualquer comportamento incomum); no hypervisor ou
sistema host (como o hypervisor fornece a camada abstrata, ele pode permitir monitorar
qualquer coisa que viaje entre o hypervisor e máquinas virtuais, agindo como um local central
para a IDS no ambiente IaaS); e na rede virtual (para monitorar o tráfego de rede entre VMs e
a máquina host e entre as próprias VMs). Os usuários têm mais opções para executar seu
próprio IDS sobre essa camada, e os pesquisadores têm mais campo para estudos.
Também é possível perceber, após a leitura dos artigos apresentados nas
tabelas, que quase não existem métricas predefinidas para avaliação de técnicas de segurança
estudadas em nuvem, e isso se torna um problema, uma vez que vários trabalhos avaliam suas
técnicas de forma própria ou de forma diferente dos procedimentos descritos, fazendo com
que mesmo a comparação superficial de técnicas seja dificultada ou, até mesmo,
impossibilitada.
71
Os desafios de controle tipicamente destacam situações nas quais métodos
de segurança bem sucedidos são ineficazes em alguma das configurações da nuvem. De fato,
muitos esforços atuais - como o desenvolvimento de métricas de segurança e esquemas de
certificação e o movimento em direção a componentes de rede virtualizados com recursos
completos – ainda oferecerão oportunidades empolgantes para uma colaboração maior, de
trabalho remoto e global.
Trabalhos futuros da área precisarão tentar encontrar técnicas que
funcionem em mais de um tipo de serviço, para que quando houver expansão dos sistemas
não necessite reformular ou incluir muitos processos de segurança aos que já existirem,
focando em características comuns. Podem, por exemplo, focar em anomalias que tenham
maior impacto (financeiro, gerencial ou social) em cada tipo de serviço, já que os trabalhos
nessa área ainda são muito esparsos.
Além disso, estes trabalhos devem poder ser comparáveis e possuir mais
resultados experimentais, evidenciando a necessidade, desde já, da criação de métricas que
possam avaliar de forma satisfatória cada uma das técnicas envolvidas na tecnologia de cloud,
visando sempre à melhoria dos serviços disponibilizados em rede.
73
REFERÊNCIAS
[1] Fernandes Jr, G., Rodrigues, J. and Proença Jr, M. (2015). “Autonomous Profile-based
Anomaly Detection System Using Principal Component Analysis and Flow Analysis”.
Applied Soft Computing, volume 34, pages 513-525.
[2] Krutz, R. and Vines, R. (2010). “Cloud Security: A Comprehensive Guide to Secure
Cloud Computing”. John Wiley & Sons.
[3] Foster, I., Zhao, Y., Raicu, I. and Lu, S. (2008). “Cloud Computing and Grid
Computing 360-degree Compared”. In: Grid Computing Environments Workshop,
GCE '08, pages 1-10.
[4] Anderson, James P. (1980). “Computer Security Threat Monitoring and Surveillance”.
Disponível em: <https://archive.org/details/ComputerSecurityThreatMonitoringAnd
Surveillance>. Acesso em: 30 de julho de 2015.
[5] Assis, M., Rodrigues, J. and Proença Jr, M. (2014). “A Seven-dimensional Flow
Analysis to Help Autonomous Network Management”. Information Sciences, volume
278, pages 900-913.
[6] Li, Zhuowei. (2005). “Theoretical Basis for Intrusion Detection”. In: Information
Assurance Workshop, IAW '05, pages 184-192.
[7] Kawakani, Cláudio T. (2014). "Segurança de Computadores e Aprendizado de
Máquina". Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação),
Universidade Estadual de Londrina, Londrina, Paraná, pages 1-64.
[8] Zanutto, Bruno G. "Segurança em Cloud Computing". Universidade Federal de São
Carlos, Sorocaba, São Paulo, pages 1-6.
[9] Orloff, Jeff. (2012). "Evite Vulnerabilidades e Ameaças na Nuvem". IBM
developersWorks, Sequoia Media Services Inc.. Disponível em:
<https://www.ibm.com/developerworks/br/cloud/library/cl-cloudthreats/>. Acesso em:
30 de julho de 2015.
[10] CompTIA. “5th
Annual Trends in Cloud Computing”, October 2014. Disponível em:
<http://www.comptia.org/resources/5th-annual-trends-in-cloud-computing>. Acesso
em: 30 de julho de 2015.
[11] Zenoss. “2010 Virtualization and Cloud Computing Survey”. Disponível em:
<http://www.zenoss.com/documents/wp_2010_virtualization_and_cloud_survey.pdf>.
Acesso em: 31 de julho de 2015.
[12] Shao, J., Wei, H., Wang, Q. and Mei, H. (2010). “A Runtime Model Based
Monitoring Approach for Cloud”. In: IEEE 3rd
International Conference on Cloud
Computing, CLOUD '10, pages 313-320.
[13] ISO/IEC 27005:2007. "Information Security Risk Management". Int'l Org.
Standardization, 2007.
[14] Grobauer, B., Walloschek, T. and Stocker, E. (2011). "Understanding Cloud
Computing Vulnerabilities". In: Security & Privacity IEEE Magazine, volume 9, pages
50-57.
[15] CSA. "Security Guidance for Critical Areas of Focus in Cloud Computing v2.1".
Disponível em: <https://cloudsecurityalliance.org/csaguide.pdf>. Acesso em: 08 de
agosto de 2016.
[16] Bamiah, Mervat A. and Brohi, Sarfraz N. (2011). "Seven Deadly Threats and
Vulnerabilities in Cloud Computing". In: International Journal of Advanced
Engineering Sciences and Technologies (IJAEST), volume 9, pages 87-90.
[17] Mell, P. and Grance, T. (2009). "Effectively and Securely Using the Cloud Computing
Paradigm (v0.25)". In: US Nat'l Inst. Standards and Technology.
[18] Ahirwar, Mahendra K., Ahirwar, Manish K. and Chourasia, U. (2014). "Anomaly
Detection in the Services Provided by Multi Cloud Architectures: A Survey". In:
International Journal of Research in Engineering and Technology (IJRET), volume 3,
issue 9, pages 196-200.
[19] ENISA (European Network and Information Security Agency). "Cloud Computing:
Benefits, Risks and Recommendations for Information Security". 2009.
[20] Gartner. "Cloud Access Security Brokers Defined". Disponível em:
<https://www.cloudlock.com/cloud-access-security-broker/>. Acesso em: 08 de agosto
de 2016.
[21] Khan, S. (2016). "Network forensics: Review, Taxonomy and Open Challenges". In:
J. Newt. Comp. Appl. 66, pages 214-235.
[22] Szefer, J. (2011). "Eliminating the Hypervisor Attack Surface for a More Secure
Cloud". In: Proceedings of the 18th
ACM Conference on Computer and
Communications Security, 2011, ACM.
[23] Yang, L. (2012). "Defense of DDoS Attack for Cloud Computing". In: Proceedings of
the Computer Science and Automation Engineering (CSAE), IEEE International
Conference On, 2012, IEEE.
[24] Anitha, E. and Malliga, S. (2013). "A Packet Marking Approach to Project Cloud
Environment against DDoS Attacks". In: Proceedings of the 2013 International
Conference on Information Communication and Embedded Systems (ICICES), IEEE.
[25] Lin, C. H. (2010). "A Detection Scheme for Flooding Attack on Application Layer
based on Semantic Concept". In: Proceedings of the Computer Symposium (ICS), 2010
International, IEEE.
[26] Xiao, Z. and Xiao, Y. (2013). "Security and Privacy in Cloud Computing". In:
Commun. Surv. Tutor, IEEE 15 (2), pages 843-859.
[27] Shea, R. and Liu, J. (2012). "Understanding the Impact of Denial of Service Attacks
on Virtual Machines". In: Proceedings of the 2012 IEEE 20th
International Workshop
on Quality of Service, 2012, IEEE Press.
[28] Hamdi, M. (2012). "Security of Cloud Computing, Storage and Networking". In:
Proceedings of the Collaboration Technologies and Systems (CTS), 2012 International
Conference On, IEEE.
[29] Barron, C., Yu, H. and Zhan, J. (2013). "Cloud Computing Security Case Studies and
Research". In: Proceedings of the World Congress of Engineering, 2013.
[30] Corporation, P. S. (2008). "SaaS Security and Privacy".
75
[31] Bouayad, A. (2012). "Cloud Computing: Security Challenges". In: Proceedings of the
Information Science and Technology (CIST), 2012 Colloquium In, IEEE.
[32] Kang, L. and Zhang, X. (2010). "Identity-based Authentication in Cloud Storage
Sharing". In: Proceedings of the Multimedia Information Networking and Security
(MINES), 2010 International Conference On, IEEE.
[33] Xie, W. (2013). "Cloud-based RFID Authentication". In: Proceedings of the RFID,
2013 IEEE International Conference On, IEEE.
[34] Revar, A. G. and Bhavsar, M. D. (2011). "Securing User Authentication Using Single
Sign-on in Cloud Computing". In: Proceedings of the Engineering (NUiCONE), 2011
Nirma University International Conference On, IEEE.
[35] Sawesi, K. G. A., Saudi, M. M. and Jali, M. Z. (2013). "Designing a New E-
Commerce Authentication Framework for a Cloud-based Environment". In:
Proceedings of the Control and System Graduate Research Colloquium (ICSGRC),
2013 IEEE 4th
IEEE.
[36] Lomotey, R. K. and Deters, R. (2013). "SaaS Authentication Middleware for Mobile
Consumers of IaaS Cloud". In: Services (SERVICES), 2013 IEEE 9th
World Congress
On, IEEE.
[37] Dinesha, H. and Agrawal, V. (2012). "Multi-level Authentication Technique for
Accessing Cloud Services". In: Proceedings of the Computing, Communication and
Applications (ICCCA), 2012 International Conference On, IEEE.
[38] Yassin, A. A. (2012). "Anonymous Password Authentication Scheme by Using
Digital Signature and Fingerprint in Cloud Computing". In: Proceedings of the Cloud
and Green Computing (CGC), 2012 International Conference On, IEEE.
[39] Bhadauria, R. (2011). "A Survey on Security Issues in Cloud Computing". In: arXiv
preprint arXiv: 1109.5388, 2011.
[40] Azeez, A. (2010). "Multi-tenant SOA Middleware for Cloud Computing". In:
Proceedings of the Cloud Computing (CLOUD), 2010 IEEE 3rd
International
Conference On, IEEE.
[41] Rodero-Merino, L. (2012). "Building Safe PaaS Clouds: a Survey on Security in
Multitenant Software Platforms". In: Comput. Secur. 31 (1), pages 96-108.
[42] Qaisar, S. and Khawaja, K. F. (2012). "Cloud Computing: Network/Security Threats
and Countermeasures". In: Interdiscip. J. Contemp. Res. Bus. 3 (9), pages 1323-1329.
[43] Sun, Y. and He, D. (2012). "Model Checking for the Defense Against Cross-site
Scripting Attacks". In: Proceedings of the Computer Science & Service System (CSSS),
2012 International Conference On, IEEE.
[44] FireHost. (2013). "Cross-site Scripting Attacks Up 160% in Final Quarter of 2012".
Disponível em: <https://www.armor.com/resources/newsroom/cross-site-scripting-
attacks-up-160-percent-in-final-quarter-of-2012-reveals-firehost>. Acesso em: 04 de
novembro de 2016.
[45] Nasridinov, A., Byun, J. Y. and Park, Y. H. (2012). "UNWRAP: An Approach on
Wrapping-attack tolerant SOAP Messages". In: Proceedings of the Cloud and Green
Computing (CGC), 2012 2nd
International Conference On, IEEE.
[46] Dawoud, W., Takounal, I. and Meinel, C. (2010). "Infrastructure as a Service
Security: Challenges and Solutions". In: Proceedings of rhe Informatics and Systems
(INFOS), 2010 7th
International Conference On, IEEE.
[47] Brunette, G. and Mogull R. (2009). "Security Guidance for Critical Areas of Focus in
Cloud Computing v2.1". In: Cloud Secur. Alliance, pages 1-76.
[48] Li, T. (2011). "LARX: Large-scale Anti-phishing by Retrospective Data-exploring
based on a Cloud Computing Platform". In: Proceedings of the Computer
Communications and Networks (ICCCN), 2011 Proceedings of 20th
International
Conference On, IEEE.
[49] Telegraph. (2009). "Facebook Users Targeted by Hackers in Successful Phishing
Attack". Disponível em:
<http://www.telegraph.co.uk/technology/facebook/5326971/Facebook-users-targeted-
by-hackers-in-successful-phishing-attack.html>. Acesso em: 04 de novembro de 2016.
[50] Khonji, M., Iraqi, Y. and Jones, A. (2013). "Phishing Detection: a Literature
Survey". In: Commun. Surv. Tutor. IEEE 15 (4), pages 2091-2121.
[51] Almomani, A. (2013). "A Survey of Phishing Email Filtering Techniques". In:
Commun. Surv. Tutor. IEEE 15 (4), pages 2070-2090.
[52] Ayodele, T. and Adeegbe, D. (2013). "Cloud-based Emails Boundaries and
Vulnerabilities". In: Proceedings of the Science and Information Conference (SAI),
2013, IEEE.
[53] Jensen, M. (2009). "Technical Security Issues in Cloud Computing". In: Proceedings
of the Cloud Computing, CLOUD '09, 2009 IEEE International Conference On, IEEE.
[54] Chen, Z. (2013). "Cloud Computing-based Forensic Analysis for Collaborative
Network Security Management System". In: Tsinghua Sci. Technol. 18 (1), pages 40-
50.
[55] Ristenpart, T. (2009). "Hey, You, Get Out of my Cloud: Exploring Information
Leakage in Third-party Compute Clouds". In: Proceedings of the 16th
ACM Conference
on Computer and Communications Security, 2009, ACM.
[56] Garfinkel, T. (2003). "Terra: a Virtual Machine-based Platform for Trusted
Computing". In: ACM SIGOPS Operating Systems Review, ACM.
[57] Bhadauria, R. and Sanyal, S. (2012). "Survey on Security Issues in Cloud Computing
and Associated Mitigation Techniques". In: arXiv preprint arXiv: 1204.0764, 2012.
[58] Zhang, F. (2008). "PALM: Security Preserving VM Live Migration for Systems with
VMM-enforced Protection". In: Proceedings of the Trusted Infrastructure Technologies
Conference, APTC `08, Third Asia-Pacific, 2008, IEEE.
[59] Bryan Williams, T. C. (2010). "Virtualization System Security". IBM.
[60] Zhang, Y. (2011). "Homealone: Co-residency Detection in the Cloud via Side-
channel Analysis". In: Proceedings of the Security and Privacy (SP), 2011 IEEE
Symposium On, IEEE.
[61] Ibrahim, A. S. (2011). "Cloudsec: a Security Monitoring Appliance for Virtual
Machines in the IaaS Cloud Model". In: Proceedings of the Network and System
Security (NSS), 2011 5th
International Conference On, IEEE.
77
[62] Turnbull, L. and Shropshire, J. (2013). "Breakpoints: An Analysis of Potential
Hypervisor Attack Vectors". In: Proceedings of the Southeastcon, 2013, IEEE.
[63] Wang, Z. and Jiang, X. (2010). "Hypersafe: A Lightweight Approach to Provide
Lifetime Hypervisor Control-flow Integrity". In: Proceedings of the Security and
Privacy (SP), 2010 IEEE Symposium On, IEEE.
[64] Duncan, A. J., Creese, S. and Goldsmith, M. (2012). "Insider Attacks in Cloud
Computing". In: Proceedings of the Trust, Security and Privacy in Computing and
Communications (TrustCom), 2012 IEEE 11th
International Conference On, IEEE.
[65] Khorshed, M. T., Ali, A. S. and Wasimi, S. A. (2011). "Monitoring Insiders Activities
in Cloud Computing using Rule-based Learning". In: Proceedings of the Trust, Security
and Privacy in Computing and Communications (TrustCom), 2011 IEEE 10th
International Conference On, IEEE.
[66] Nkosi, L., Tarwireyi, P. and Adigun, M. O. (2013). "Insider Threat Detection Model
for the Cloud". In: Proceedings of the Information Security for South Africa, 2013,
IEEE.
[67] Yaseen, Q. and Panda, B. (2010). "Malicious Modification Attacks by Insiders in
Relational Databases: Prediction and Prevention". In: Proceedings of the Social
Computing (SocialCom), 2010 IEEE 2nd
International Conference On, IEEE.
[68] Rocha, F., Gross, T. and van Moorsel, A. (2013). "Defense-in-depth Against
Malicious insiders in the Cloud". In: Proceedings of the Cloud Engineering (IC2E),
2013 IEEE International Conference On, IEEE.
[69] Modi, C. (2013). "A Survey on Security Issues and Solutions at Different Layers of
Cloud Computing". In: J. Supercomput. 63 (2), pages 561-592.
[70] Oktay, U., Aydin, M. A and Sahingoz O. K. (2013). "A Circular Chain Intrusion
Detection Model for Cloud Computing-based on improved AdjointVM Approach". In:
Proceedings of the Computational Intelligence and Informatics (CINTI), 2013 IEEE
14th
International Symposium On, IEEE.
[71] Araújo, J. D. and Abdelouahab, Z. (2012). "Virtualization in Intrusion Detection
Systems: a Study on Different Approaches for Cloud Computing Environments". In:
IJCSNS 12 (11), page 10.
[72] Oktay, U. and Sahingoz O. K. (2013). "Proxy Network Intrusion Detection System for
Cloud Computing". In: Proceedings of the Technological Advances in Electrical,
Electronics and Computer Engineering (TAEECE), 2013 International Conference On,
IEEE.
[73] Bharadwaja, S. (2011). "Collabra: a Xen Hypervisor-based Collaborative Intrusion
Detection System". In: Proceedings of the Information Technology: New Generations
(ITNG), 2011 8th
International Conference On, IEEE.
[74] Nikolai, J. and Wang, Y. (2014). "Hypervisor-based Cloud Intrusion Detection
System". In: Proceedings of the Computing, Networking and Communications (ICNC),
2014 International Conference On, IEEE.
[75] Iqbal, S., Kiah, L. M., Dhaghigui, B., Hussain, M., Khan S., Khan, M. K. and Choo,
K. R. (2016). "On Cloud Security Attacks: A Taxonomy and Intrusion Detection and
Prevention as a Service". In: Journal of Network and Computer Applications 74
(2016), pages 98-120, Elsevier Ltd.
[76] Garg, S. and Saran, H. (2008). "Anti-DDoS Virtualized Operating System". In:
Proceedings of the Availability, Reliability and Security, ARES '08, 2008 3rd
International Conference On, IEEE.
[77] Chen, Q. (2011). "CBF: A Packet Filtering Method for DDoS Attack Defense in
Cloud Environment". In: Proceedings of the Dependable, Autonomic and Secure
Computing (DASC), 2011 IEEE 9th
International Conference On, IEEE.
[78] Katkamwar, N. S., Puranik, A. G. and Deshpande, P. (2012). "Securing Cloud
Servers Against Flooding-based DDoS Attacks". In: Int. J. Appl. Innov. Eng. Manag.
(IJAIEM) 1 (3), pages 50-55.
[79] Harnik, D., Pinkas, B. and Shulman-Peleg, A. (2010). "Side-channels in Cloud
Services: Deduplication in Cloud Storage". In: Secur. Priv. IEEE 8 (6), pages 40-47.
[80] Saxena, A. (2013). "Detecting SQL-injection Vulnerabilities in Sales Force
Applications". In: Proceedings of the Advances in Computing, Communications and
Informatics (ICACCI), 2013 International Conference On, IEEE.
[81] Chonka, A. and Abawajy, J. (2012). "Detecting and Mitigating HX-DoS Attacks
Against Cloud Web Services". In: Proceedings of the Network-based Information
Systems (NBiS), 2012 15th
International Conference On, IEEE.
[82] Karnwal, T., Thandapanii, S. and Gnanasekaran, A. (2013). "A Filter Tree Approach
to Protect Cloud Computing Against XML-DDoS and HTTP-DDoS Attacks". In:
Intelligent Informatics, Springer, pages 459-469.
[83] Ferguson, E., Weber, J. and Hasan, R. (2012). "Cloud-based Content Fetching: Using
Cloud Infrastructure to Obfuscate Phishing Scam Analysis". In: Proceedings of the
Services (SERVICES), 2012 IEEE 8th
World Congress On, IEEE.
[84] Volokyta, A., Kokhanevych, I. and Ivanov, D. (2012). "Secure Virtualization in
Cloud Computing".
[85] Kourai, K., Azumi, T. and Chiba, S. (2012). "A Self-protection Mechanism Against
Stepping-stone Attacks, for IaaS Clouds". In: Proceedings of the Ubiquitous
Intelligence & Computing and 9th
International Conference on Autonomic & Trusted
Computing (UIC/ATC), 2012 9th
International Conference On, IEEE.
[86] Godfrey, M. and Zulkernine, M. (2013). "A Server-side Solution to Cache-based
Side-channel Attacks in the Cloud". In: Proceedings of the Cloud Computing
(CLOUD), 2013 IEEE 6th
International Conference On, IEEE.
[87] Nkosi, L., Tarwireyi, P. and Adigun, M. O. (2013). "Detecting a Malicious Insider in
the Cloud Environment using Sequential Rule Mining". In: Proceedings of the Adaptive
Science and Technology (ICAST), 2013 International Conference On, IEEE.
[88] Shi, J. (2011). "Limiting Cache-based Side-channel in Multi-tenant Cloud using
Dynamic Page Coloring". In: Proceedings of the Dependable Systems and Networks
Workshops (DSN-W), 2011 IEEE/IFIP 41st International Conference On, IEEE.
[89] Fiebig, S. (2013). "Detecting VM Live Migration using a Hybrid External Approach".
In: CLOSER, 2013.
[90] Xia, Y. (2012). "Defending Against VM Rollback Attack". In: Proceedings of the
Dependable Systems and Networks Workshops (DNS-W), 2012 IEEE/IFIP 42nd
International Conference On, IEEE.
79
[91] Duncan, A. (2013). "Cloud Computing: Insider Attacks on Virtual Machines during
Migration". In: Proceedings of the Trust, Security and Privacy in Computing and
Communications (TrustCom), 2013 12th
IEEE International Conference On, IEEE.
[92] Lin, W. and Lee, D. (2012). "Traceback Attacks in Cloud-Pebbletrace Botnet". In:
Proceedings of the Distributed Computing Systems Workshops (ICDCSW), 2012 32nd
International Conference On, IEEE.
[93] Yu, S., Gui, X. and Lin, J. (2013). "An Approach with Two-stage Mode to Detect
Cache-based Side-channel Attacks". In: Proceedings of the Information Networking
(ICOIN), 2013 International Conference On, IEEE.
[94] Alqahtani, S. M., Balush, M. A. and John R. (2014). "An Intelligent Intrusion
Detection System for Cloud Computing (SIDCC)". In: Proceedings of the 2014
International Conference on Computational Science and Computational Intelligence
(CSCI), IEEE.
[95] Alqahtani, S. M., Balush, M. A. and John R. (2014). "An Intelligent Intrusion
Prevention System for Cloud Computing (SIPCC)". In: Proceedings of the 2014
International Conference on Computational Science and Computational Intelligence
(CSCI), IEEE.
[96] Chung, C. J. (2013). "NICE: Network Intrusion Detection and Countermeasure
Selection in Virtual Network Systems". In: IEEE Trans. Dependable Secur. Comput.,
page 1.
[97] Mohamed, H. (2013). "A Collaborative Intrusion Detection and Prevention System in
Cloud Computing". In: Proceedings of the AFRICON, 2013, IEEE.
[98] Meng, Y., Li, W. and Kwok, L. F. (2013). "Design of Cloud-based Parallel Exclusive
Signature Matching Model in Intrusion Detection". In: Proceedings of the High
Performance Computing and Communications & 2013 IEEE International Conference
on Embedded and Ubiquitous Computing (HPCC-EUC), 2013 IEEE 10th
International
Conference On, IEEE.
[99] VivinSandar, S. and Shenai, S. (2012). "Economic Denial of Sustainability (edos) in
Cloud Services using HTTP and XML-based DDoS Attacks". In: Int. J. Comput. Appli.
41 (20), pages 11-16.
[100] Hamad, H. and Al-Hoby, M. (2012). "Managing Intrusion Detection as a Service in
Cloud Networks". In: Int. J. Comp. Appli. 41 (1), pages 35-40.
[101] Bradai, A. and Afifi, H. (2012). "Enforcing Trust-based Intrusion Detection in
Cloud Computing Using Algebraic Methods". In: Proceedings of the Cyber-Enabled
Distributed Computing and Knowledge Discovery (CyberC), 2012 International
Conference On, IEEE.
[102] Yassin, W. (2012). "A Cloud-based Intrusion Detection Service Framework". In:
Proceedings of the Cyber Security, Cyber Warfare and Digital Forensic (CyberSec),
2012 International Conference On, IEEE.
[103] Gupta, S. (2012). "A Fingerprinting System Calls Approach for Intrusion Detection
in a Cloud Environment". In: CASoN.
[104] Houmansadr, A., Zonouz, S. A. and Berthier, R. (2011). "A Cloud-based Intrusion
Detection and Response System for Mobile Phones". In: Proceedings of the Dependable
Systems and Networks Workshops (DSN-W), 2011 IEEE/IFIP 41st International
Conference On, IEEE.
[105] Lee, J. H. (2011). "Multi-level Intrusion Detection System and Log Management in
Cloud Computing". In: Proceedings of the Advanced Communication Technology
(ICACT), 2011 13th
International Conference On, IEEE.
[106] Kwon, H. (2011). "Self-similarity based Lightweight Intrusion Detection Method for
Cloud Computing". In: Intelligent Information and Database Systems, Springer, pages
353-362.
[107] Arshad, J., Townend, P. and Xu, J. (2011). "An Abstract Model for Integrated
Intrusion Detection and Severity Analysis for Clouds". In: Int. J. Cloud Appl. Comput.
(IJCAC) 1 (1), pages 1-16.
[108] Jia, T. and Wang, X. (2011). "The Research and Design of Intelligent IPS Model
based on Dynamic Cloud Firewall Linkage". In: Int. J. Digit. Content Technol. Appl. 5
(3), pages 304-309.
[109] Vieira, K. (2010). "Intrusion Detection for Grid and Cloud Computing". In: IT Prof.
12 (4), pages 38-43.
[110] Lo, C. C., Huang, C. C. and Ku, J. (2010). "A Cooperative Intrusion Detection
System Framework for Cloud Computing Networks". In: Proceedings of the Parallel
Processing Workshops (ICPPW), 2012 39th
International Conference On, IEEE.
[111] Bakshi, A. and Yogesh, B. (2010). "Securing Cloud from DDoS Attacks Using
Intrusion Detection System in Virtual Machine". In: Proceedings of the Communication
Software and Networks, ICCSN '10, 2010 2nd
International Conference On, IEEE.
[112] Mazzariello, C., Bifulco, R. and Canonico, R. (2010). "Integrating a Network IDS
into an Open Source Cloud Computing Environment". In: Proceedings of the
Information Assurance and Security (IAS), 2010 6th
International Conference On,
IEEE.
[113] Dastjerdi, A. V., Bakar, K. A. and Tabatabaei, S. G. H. (2009). "Distributed
Intrusion Detection in Clouds Using Mobile Agents". In: Proceedings of the Advanced
Engineering Computing and Applications in Sciences, ADVCOMP '09, 2009 3rd
International Conference On, IEEE.
[114] Roschke, S., Cheng, F. and Meinel, C. (2009). "An Extensible and Virtualization-
compatible IDS Management Architecture". In: Proceedings of the Information
Assurance and Security, IAS '09, 2009 5th
International Conference On, IEEE.
[115] Liu, F. (2009). "The Design and Application of Xen-based Host System Firewall and
Its Extension". In: Proceedings of the Electronic Computer Technology, 2009
International Conference On, IEEE.
[116] Guan, Y. and Bao, J. (2009). "A CP Intrusion Detection Strategy on Cloud
Computing". In: Proceedings of the 2009 International Symposium on Web
Information Systems and Applications, WISA '09, 2009.