Como desativar os metadados do AWS EC2?

Este artigo ensinará você sobre os metadados do EC2 e por que eles são importantes. Você também aprenderá a desabilitar metadados para se proteger de ataques como o SSRF.

A Amazon Web Services (AWS) tem um serviço Amazon Elastic Compute Cloud (Amazon EC2), que oferece capacidade de processamento escalável. Ao usar o Amazon EC2, você pode desenvolver e implantar aplicativos mais rapidamente sem fazer um investimento inicial em hardware.

Dependendo de suas necessidades, inicie tantos ou poucos servidores virtuais. Defina as configurações de rede e segurança e controle o armazenamento usando o Amazon EC2.

As informações sobre sua instância que podem ser personalizadas ou gerenciadas em uma instância em execução são conhecidas como metadados de instância. As categorias de metadados da instância incluem nome de host, eventos e grupos de segurança. Além disso, você pode acessar os dados do usuário especificados ao executar sua instância usando metadados de instância.

Você pode incluir um script curto ou especificar parâmetros ao configurar sua instância. Usando dados do usuário, você pode criar AMIs genéricas e alterar os arquivos de configuração de tempo de execução.

Você pode configurar instâncias novas ou existentes para realizar as seguintes tarefas usando as opções de metadados da instância:

  • Exigir que solicitações de metadados de instância sejam enviadas via IMDSv2
  • Coloque o limite de salto de resposta PUT.
  • Acesso aos metadados da instância de bloqueio
  Por que os telefones explodem? (E como evitá-lo)

É possível acessar metadados de uma instância ativa do EC2 usando uma das seguintes técnicas: IMDSv1sIMDSv2

O Serviço de Metadados da Instância é conhecido como IMDS. Como você pode supor, as metodologias são ligeiramente diferentes; O IMDSv1 emprega um método de solicitação/resposta, enquanto o IMDSv2 é orientado a sessão.

A AWS recomenda que você use o IMDSv2, que é o método preferencial. Por padrão, o AWS SDK usa chamadas IMDSv2 e você pode exigir que os usuários configurem um novo EC2 com IMDSv2 habilitado usando chaves de condição do IAM em uma política do IAM.

Use os seguintes URIs IPv4 ou IPv6 para visualizar todos os tipos de metadados de instância de uma instância em execução.

IPv4

enrolar http://169.254.169.254/latest/meta-data/

IPv6

enrolar http://[fd00:ec2::254]/mais recente/metadados/

Os endereços IP são endereços locais de link e são válidos apenas na instância.

Para visualizar os metadados da instância, você só pode usar o endereço local de link 169.254.169.254 . As solicitações aos metadados por meio do URI são gratuitas, portanto, não há cobranças adicionais da AWS.

Necessidade de desabilitar metadados

Nas configurações da AWS, o ataque SSRF é frequente e conhecido por todos. Os invasores que automatizam a verificação de vulnerabilidades e coletam credenciais do IAM de aplicativos online acessíveis publicamente foram encontrados pela Mandiant (uma empresa de segurança cibernética).

  Misture músicas do seu disco local ou SoundCloud [Web]

A implementação do IMDSv2 para todas as instâncias do EC2, que tem vantagens de segurança adicionais, reduziria esses riscos para sua empresa. A possibilidade de um inimigo roubar credenciais do IAM via SSRF diminuiria significativamente com o IMDSv2.

Usar o Server Side Request Forgery (SSRF) para obter acesso ao serviço de metadados do EC2 é uma das técnicas de exploração da AWS mais frequentemente ensinadas.

O serviço de metadados está acessível para a maioria das instâncias do EC2 em 169.254.169.254. Ele contém informações úteis sobre a instância, como seu endereço IP, nome do grupo de segurança etc.

Se uma função do IAM estiver anexada a uma instância do EC2, o serviço de metadados também conterá credenciais do IAM para autenticar como essa função. Podemos roubar essas credenciais dependendo da versão do IMDS em uso e dos recursos do SSRF.

Também vale a pena considerar que um adversário com acesso shell à instância do EC2 poderia obter essas credenciais.

Neste exemplo, um servidor web é executado na porta 80 da instância EC2. Esse servidor web possui uma vulnerabilidade SSRF simples, que nos permite enviar solicitações GET para qualquer endereço. Isso pode ser usado para enviar uma solicitação para http://169.254.169.254.

  Como adicionar ou remover contas de e-mail no Mail para Mac

Para desativar metadados

Ao bloquear o endpoint HTTP do serviço de metadados da instância, você pode impedir o acesso aos metadados da sua instância, independentemente de qual versão do serviço de metadados da instância você está usando.

Você pode reverter essa alteração a qualquer momento ativando o endpoint HTTP. Use o comando da CLI modify-instance-metadata-options e defina o parâmetro http-endpoint como disabled para desabilitar metadados para sua instância.

Para desabilitar os metadados, execute este comando:

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint desativado

desabilitando metadados

Você pode ver que depois de desabilitar meus metadados, se eu tentar acessá-los, recebo uma mensagem FORBIDDEN.

Se você quiser habilitar seus metadados novamente, execute este comando:

aws ec2 modify-instance-metadata-options –instance-id i-0558ea153450674 –http-endpoint ativado

habilitando metadados novamente

Conclusão

Os metadados podem ser úteis para extrair informações de grandes armazenamentos de dados. No entanto, também pode ser usado indevidamente para saber sobre a localização ou identidade de uma pessoa sem o seu conhecimento ou consentimento. Como ele registra todas as alterações feitas, incluindo exclusões e comentários, você precisa estar ciente de que pode conter informações que você não gostaria que outras pessoas pudessem ver. Como resultado, a remoção de metadados é fundamental para manter sua privacidade e anonimato online.

Você também pode explorar algumas terminologias de chave da AWS que aprimoram seu aprendizado da AWS.