Download Untangling the Web of Cloud Security Threats
Download Untangling the Web of Cloud Security Threats
A adoção da nuvem vem crescendo não só entre empresas menores, que estão buscando alternativas mais em conta para sua infraestrutura física, mas também entre as maiores, que olham pelo lado da flexibilidade. Contudo, um dos desafios que as organizações enfrentam, especialmente as que estão acabando de migrar para a nuvem, é a falta de familiaridade com a forma como ela é operada e difere de um sistema on-premises. O setup na nuvem envolve não só uma implantação simples; pelo contrário, ele combina diversos serviços de diversos provedores, muitas vezes em conjunto com data centers físicos.
Este desafio chega até o campo da segurança: a falta de familiaridade com as configurações do ambiente e de proteção adequada para os deploys na nuvem trazem riscos. Muitos fatores podem levar à exposição de workloads e aplicações a riscos, incluindo erros em configurações, uso inadequado de tecnologia, falta de experiência na operação e proteção de sistemas em nuvem ou até mesmo deslizes por parte de desenvolvedores e engenheiros de nuvem. Os componentes destes sistemas se conectam de muitas formas, fazendo com que seja difícil mapear potenciais vetores de ataques. Para o pessoal de ITsec que está ainda tentando se inteirar das plataformas e serviços em nuvem, a segurança é um desafio particularmente complexo.
Em nosso white paper chamado “Untangling the Web of Cloud Security Threats” (sem tradução), trazemos exemplos de ameaças e riscos que as organizações, tipicamente, enfrentam na hora de migrar para a nuvem ou quando usam seus serviços. Independente do serviço ou plataforma, o que mais temos ouvido é que os erros de configuração continuam a ser um dos grandes problemas em segurança de nuvem, afetando tanto empresas que adquirem os serviços de cloud quanto os usuários dos programas que estão nela instalados.
World-Writable Amazon S3 Buckets
A Amazon Web Services (AWS) surgiu como um dos principais players do setor de nuvem, devido a suas várias ofertas. Entre os produtos no portfólio da AWS, o Amazon Simple Storage Service (Amazon S3) é talvez o mais popular; sua infraestrutura está sendo usada por empresas como Netflix, Reddit e Pinterest.
Uma das tendências consistentes que vimos ao estudar os buckets do Amazon S3 é que muitas organizações os deixam graváveis em todo o mundo — uma configuração incorreta que permite que usuários não autorizados gravem no bucket. Um exemplo bem relatado envolveu o L.A. Times, que anteriormente tinha uma lista de controle de acesso à rede (ACL) configurada para permitir acesso público de gravação ao bucket que hospedava sua página sobre homicídios. Isso permitiu que um invasor adicionasse um minerador de criptomoeda ao código JavaScript.
A telemetria coletada dos dados da Akamai para a infraestrutura da Trend MicroTM Smart Protection NetworkTM também mostrou que ataques em vários sites com buckets graváveis em todo o mundo ocorreram durante a maior parte de 2019 — com alguns ataques envolvendo a injeção de código malicioso e, eventualmente, o roubo de dados de formulários do site. Outro problema que encontramos foram os arquivos classificados como maliciosos que estavam sendo hospedados nos buckets do Amazon S3. Muitos deles usam o endereçamento tradicional por path. Isso significa que o bucket está usando um nome de host genérico do Amazon S3, em contraste com o esquema hospedado virtual, em que o nome do bucket está incluído no hostname.
Isso representa um problema para os filtros de segurança, uma vez que o bloqueio do hostname de um website mal-intencionado que usa o esquema de endereçamento tradicional por path invariavelmente também bloqueia outros sites não-maliciosos.
Um segundo grande serviço disponível na nuvem é a computação, atualmente focada na tecnologia de contêineres. Como o segmento geral de nuvem, os contêineres também tiveram uma alta taxa de adoção nos últimos anos. Softwares como Docker, Kubernetes e AWS Lambda ajudaram a impulsionar a tecnologia de contêineres, oferecendo implementações em nuvem leves e eficientes para organizações que procuram otimizar suas operações de desenvolvimento. No entanto, lapsos ou erros na configuração são comuns, colocando os sistemas em risco de ataques que tiram proveito dessas configurações incorretas.
Docker
Os usuários do Docker foram afetados pela proliferação de contêineres maliciosos que fornecem mineradores de criptomoeda, frequentemente como resultado de contêineres Docker expostos à Internet. Esses mineradores podem causar impactos significativos no desempenho da máquina infectada e até causar perdas monetárias devido à utilização extrema da CPU em deploys na nuvem com base em instâncias de dimensionamento automático.
Existem várias técnicas para um invasor injetar um minerador em um servidor Docker exposto. A maneira mais simples é instalar o minerador de criptomoedas diretamente a partir de uma imagem que contém o código. Outro método comum é usar imagens-base amplamente usadas, como o Ubuntu, para instalar o software de mineração durante a sequência de inicialização.
AWS Lambda
AWS Lambdas são processos orientados a eventos serverless que fornecem soluções leves e econômicas para aplicações sem padrões de utilização definidos. Um equívoco comum é que os Lambdas são protegidos pelo fato de um invasor não conseguir recuperar diretamente os nomes das funções. Esse equívoco geralmente pode levar à implementação de funções sem autenticação adequada.
No entanto, os invasores podem encontrar os Lambdas através de vários métodos — por exemplo, usando um sniffer para ouvir o tráfego da rede ou examinando o código-fonte dos sites que usam o Lambda e executam um gateway de API. Sem uma autenticação segura do Lambda, informações confidenciais correm o risco de serem expostas.
Além disso, devido à maneira como os desenvolvedores os codificam, muitas funções do Lambda baseadas em Python imprimem um rastreamento de stack quando recebem argumentos incorretos, o que pode levar o invasor a adquirir conhecimento dos detalhes técnicos da implementação do Lambda.
Kubernetes
Kubernetes é uma plataforma de orquestração de contêiner de código aberto usada para gerenciar workloads de contêiner. Usando Shodan, encontramos 32.000 instâncias de servidores Kubernetes expostas à Internet em janeiro de 2019. Semelhante a outras instâncias de configuração incorreta, um serviço Kubernetes ou qualquer um de seus componentes acessível ao público na Internet pode ser explorado com propósitos maliciosos.
Kubeletes
O Kubernetes usa a API do seu subcomponente Kubeletes para gerenciar os contêineres em cada node. Nas iterações antigas do Kubernetes anteriores à versão 1.10, o Kubelet expunha a porta de dados 10255 e a porta de controle 10250. Ambas as portas podem ser exploradas. Embora o abuso da porta de controle seja mais aparente — por exemplo, ele pode ser usado para instalar mineradores de criptomoeda — a porta 10255 pode conter informações potencialmente sensíveis.
etcd
O Etcd é um armazenamento de valores-chave distribuído e replicado que atua como o principal armazenamento de dados do Kubernetes. Ele é responsável por armazenar as configurações das instalações do Kubernetes, além de fornecer o backend de armazenamento para a descoberta de serviços. Além do Kubernetes, outras aplicações, como CoreDNS e Rook, usam o etcd. Dado seu uso como armazenamento de dados, um etcd exposto ao público pode potencialmente vazar dados confidenciais, incluindo credenciais usadas para servidores e aplicações. Encontramos mais de 2.400 servidores etcd expostos usando o Shodan, representando uma mistura de Kubernetes e outro software.
Gerenciamento Inadequado de Credenciais
O uso de credenciais, embora muitas vezes esquecido, é um dos aspectos mais importantes da computação em nuvem. Como as organizações não podem proteger fisicamente um sistema em nuvem como conseguem com um data center, a necessidade de uma forte segurança de credenciais se torna ainda maior. Um desafio quando se trata de proteger credenciais é que muitos processos geralmente precisam acessar dados e outros recursos que exigem autenticação. Isso significa que os usuários precisam proteger os dados e as credenciais da exposição.
Um erro comum cometido pelos programadores é que eles inadvertidamente vazam informações de credenciais em repositórios públicos como o GitHub. Às vezes, dados confidenciais como chaves de API são encontrados em trechos de código publicados online, que podem ser usados por um invasor para potencialmente assumir a conta para a qual as credenciais são usadas. As contas comprometidas podem ser usadas para diversas finalidades maliciosas, como o roubo de dados de clientes, que podem ser vendidos ilegalmente.
Outra questão que descobrimos é que muitos programadores inexperientes costumam seguir tutoriais fraudulentos da nuvem, muitos dos quais incentivam a codificação das credenciais dentro do próprio código. Isso se torna um problema se e quando o código for publicado em um repositório, onde estiver acessível para qualquer pessoa.
À medida que a adoção de serviços em nuvem cresce, as organizações precisam estar totalmente informadas sobre as ameaças que enfrentam e estar adequadamente preparadas para proteger seus sistemas em nuvem. Os benefícios da nuvem não podem ser alcançados sem uma implementação de segurança robusta em vigor. As ameaças que analisamos em nossa pesquisa não cobrem todas as ameaças e riscos em potencial na nuvem, mas incluímos alguns dos mais significativos. Isso é especialmente importante para o pessoal da TI e de segurança que precisa entender tanto a estrutura da nuvem quanto as estratégias necessárias para protegê-la.
Leia nosso relatório completo, “Untangling the Web of Cloud Security Threats”, que oferece uma visão detalhada das ameaças discutidas aqui e fornece recomendações sobre como se defender delas.
Like it? Add this infographic to your site:
1. Click on the box below. 2. Press Ctrl+A to select all. 3. Press Ctrl+C to copy. 4. Paste the code into your page (Ctrl+V).
Image will appear the same size as you see above.