Ataques de computação em nuvem

No mundo da computação em nuvem, vários ataques podem ser empregados contra um alvo. Muitos deles são variações ou são os mesmos que você já viu, mas existem alguns com uma roupagem nova. Muitos dos ataques que exploraremos aqui podem ser executados contra qualquer um dos modelos de serviço em nuvem mencionados anteriormente sem qualquer variação.

Session Riding

Também conhecido como Cross-Site Request Forgery (CSRF), este ataque pode ser potencialmente realizado contra ambientes que têm uma aplicação web presente. Vamos examinar como este tipo de ataque funciona para comprometer um sistema.

CSRF é um ataque concebido para atrair uma vítima para apresentar uma solicitação, que é de natureza maliciosa, para executar alguma tarefa como o usuário. Uma vez que a solicitação é enviada inadvertidamente pelo usuário, o pedido é executado com os privilégios e o contexto do usuário, o que significa que, dependendo do acesso que eles têm, o pedido poderia causar danos graves. O que faz este ataque ainda mais eficaz é que a maioria das aplicações aceitam este tipo de ataque mantêm o controle de informações sobre o cliente. Armado com essas informações e sem saber que o usuário foi tentado a executar o pedido, o aplicativo não terá como determinar se o pedido é malicioso. Ele assumirá que é legítimo, uma vez que parece ter origem no mesmo lugar.

Então, que mal pode o ataque realizar? Normalmente, a parte atacante irá tentar alterar as informações no servidor para torná-lo mais fácil de comprometer ou voltar mais tarde. Os atacantes não se beneficiariam de usar um CSRF para recuperar informações porque o pedido é executado pela vítima e as respostas retornariam a elas.

Outra variação e versão mais avançada desse ataque é um ataque CSRF armazenado. Neste tipo de ataque o pedido forjado é armazenado no servidor. Um invasor pode armazenar a solicitação em um site encontrando um site que aceita entrada HTML e envia uma solicitação como uma tag <img> ou outra tag e, em alguns casos, até mesmo como uma forma de ataque XSS armazenado.

Vamos dar uma olhada em como o ataque funciona na prática. Tenha em mente que esta forma de ataque tem inúmeras opções e variações com as quais pode-se implantar. O formulário que usaremos é simples e tomará a seguinte forma:

  1. Criar uma URL ou script de exploração
  2. Enganar a vítima na execução da ação
  3. Executar um comando GET

Se o aplicativo explorado foi desenvolvido para usar solicitações GET para transferir parâmetros e executar ações, a resposta pode ter este formato:

GET http://<endereço>?<Ação> HTTP/1.1

Um atacante vendo que este tipo de ataque funciona poderia então criar um ataque que faz algo mais malicioso. Com um pouco de esforço o atacante poderia simplesmente alterar a parte de ação do pedido para executar uma ação mais agressiva e mais ousada, como transferir dinheiro da conta da vítima para a conta do atacante.

A chave para fazer com que esse ataque seja bem-sucedido para a parte atacante é encontrar uma maneira de fazer a vítima executar a solicitação quando eles estiverem conectados à conta.

CSRF ou session riding, não é exclusivo para ambientes de nuvem. Podem ocorrem em ambientes onde existem aplicações web não-cloud. Nada delineia os dois ambientes. As mesmas tecnologias podem existir em ambas as situações, que consistem em servidores web e aplicativos hospedados neles.

Ataques Side Channel

Este tipo de ataque é exclusivo para a nuvem e potencialmente muito devastador, mas requer muita habilidade e um pouco de sorte. Esta forma de ataque tenta quebrar a confidencialidade de uma vítima indiretamente explorando o fato de que eles estão usando recursos compartilhados na nuvem.

Para executar este ataque com sucesso, o atacante deve ter algumas coisas no lugar:

Uma máquina virtual colocada no mesmo local físico que a vítima. Por definição, isso é muito difícil de fazer porque a nuvem é projetada para ocultar os detalhes do lado físico das coisas do cliente. No entanto, usando ferramentas como traceroute e consultas DNS, é possível localizar um sistema de destino com cerca de 50 por cento de precisão.

Uma vez que a VM é colocada no mesmo servidor que as VMs da vítima, a parte atacante pode iniciar suas ações.

Assim colocado, o invasor pode explorar o fato de que eles e seu alvo estão no mesmo servidor compartilhando recursos, incluindo memória, processador, cache e a própria rede. Nessa situação, o invasor pode usar scripts e aplicativos para determinar se as informações confidenciais estão em algum lugar ao alcance de serem interceptadas.

Felizmente, ataques deste tipo são muito difíceis de executar e têm muito poucos casos de sucesso nesta natureza.

A pesquisa foi publicada pela Universidade da Carolina do Norte em Chapel Hill sobre a mecânica e efeitos de ataques de side channel. Eles publicaram vários artigos sobre como o ataque funciona, como eles conduziram sua pesquisa, e muitos mais cenários potenciais do que é possível mencionar aqui.

Ataques de Assinatura Wrapping

Outro tipo de ataque não é exclusivo de um ambiente em nuvem, mas é, no entanto, um método perigoso de comprometer a segurança de um aplicativo da web. Basicamente, o ataque envolvendo assinatura depende da exploração de uma técnica usada em serviços da web.

No Simple Object Access Protocol (SOAP) usado por Web Services, solicitações e respostas podem ser assinadas usando uma assinatura XML. As mensagens contêm um cabeçalho de segurança com um elemento de assinatura incluído que referencia como a mensagem foi assinada. Na prática, as mensagens são tipicamente em partes e são referenciadas por um ID, e assim para validar a assinatura o destinatário deve encontrar o elemento na solicitação que tem o ID correspondente. Um ataque de wraping de assinatura XML explora essencialmente o fato de que o elemento de assinatura não transmite nenhuma informação sobre onde o(s) elemento(s) referenciado(s) está(ão) na árvore do documento.

Um ataque de wrapping de assinatura XML funcionaria da seguinte maneira. Um usuário mal-intencionado pode tomar uma solicitação válida, copiar o corpo SOAP e inseri-lo como parte de um cabeçalho na solicitação. O usuário mal-intencionado alteraria livremente o corpo SOAP mas preservaria o mesmo ID. O destinatário da mensagem deve procurar a URI de referência como parte do processo de validação da assinatura e atingir o elemento de corpo SOAP copiado primeiro. Isto verificaria corretamente uma vez que não foi alterado. Finalmente, o destinatário verificará se o ID do corpo SOAP foi realmente referenciado na assinatura.

O resultado desse ataque é que um invasor pode alterar uma mensagem sem invalidá-la. Isso significa que o sistema ou aplicativo aceitaria a mensagem como correta, mesmo que ela tenha sido alterada.

Então, o que é SOAP?

SOAP foi projetado para permitir que serviços e aplicativos se comuniquem independentemente de seu sistema operacional. Especificamente, permite o uso de HTTP e XML sobre os vários protocolos.

O benefício de protocolos como HTTP e XML é que eles são universais e fornecem suporte em todos os principais sistemas operacionais e dispositivos. Com a adição de SOAP, um aplicativo em um computador pode conversar com um aplicativo em outro computador e entender como codificar os cabeçalhos HTTP e XML para que os dois possam passar informações confiáveis para frente e para trás. Uma coisa a ter em mente com SOAP, no entanto, é que é frequentemente emparelhado com HTTP, mas não está de forma alguma vinculado a este protocolo.

Na verdade, o SOAP especificamente define o formato XML que as aplicações usam para se comunicar através da web. É devido aos protocolos tais como o SOAP que as plataformas dissimilares através da web podem se comunicar e estabelecer um padrão.

Outros tipos de ataques contra a nuvem

O que tentei trazer aqui sobre tecnologias em nuvem são os ataques que são únicos ou que mudaram em relação à nuvem. Há outros ataques com certeza, mas já cobrimos vimos eles em outras postagens, por isso não vamos falar novamente aqui para manter as coisas simples.

Os ataques que você pode visualizar em outras postagens que também são aplicáveis à nuvem incluem o seguinte:

  • Service hijacking usando sniffing de rede;
  • Session hijacking usando ataques XSS;
  • Ataques a DNS;
  • SQL Injection;
  • Ataques de Cryptanalysis;
  • Denial-of-service (DoS) e DoS Distribuídos (DDoS);

Estes não são os únicos tipos de ataques que podem ser implementados por um invasor contra um serviço em nuvem. Ataques como estouro de buffer, engenharia social, ataques nas aplicações, validação de entrada, MitM, sequestro de sessão e outros também representam uma ameaça dependendo das condições e o que realmente está presente em um ambiente específico.

Sugestões de livros:

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *