
Previna ataques SSRF no AWS EC2 por meio de atualizações automatizadas para o mais seguro Instance Metadata Service v2 (IMDSv2).
Previna ataques SSRF no AWS EC2 por meio de atualizações automatizadas para o Serviço de Metadados de Instância v2 (IMDSv2) mais seguro.
Finalidade e funcionalidade
As equipes de engenharia podem ter uma grande variedade de infraestrutura de computação na AWS que precisam proteger contra certas vulnerabilidades que aproveitam o serviço de metadados. O serviço de metadados é necessário para ser executado nas instâncias se qualquer IAM for usado ou se houver alguma informação de dados do usuário que a instância possa precisar ao inicializar. Limitar a superfície de ataque de suas instâncias é crucial para evitar a capacidade de pivotar em seu ambiente, roubando informações fornecidas pelo próprio serviço. Numerosos ataques famosos no passado aproveitaram este serviço específico para explorar uma função anexada à instância ou despejar dados sensíveis acessíveis através do serviço de metadados. O Metabadger pode ajudar a identificar onde e como você está usando o serviço de metadados da instância, além de fornecer a capacidade de reduzir qualquer alavancagem de ataque indesejada para diminuir sua postura geral de risco ao operar no EC2.
O uso desta ferramenta pode impactar sua infraestrutura de computação AWS, pois nem todos os serviços e aplicações podem funcionar sem o serviço de metadados ou na versão 2. Tome cuidado ao implantar isso em seu ambiente de produção e tenha um plano de reversão em vigor caso algo pareça fora do comum. O Metabadger vem com a capacidade integrada de reverter para a versão 1 padrão do serviço usando a flag -v1; você pode usar isso para reverter rapidamente suas instâncias para o padrão. Idealmente, você deve executar esta ferramenta e atualizar sua versão de metadados em ambientes não produtivos como um campo de provas antes de aplicá-la.
Passo 1
Inicialmente, queremos descobrir o uso geral do serviço de metadados em uma região AWS específica. O Metabadger avaliará o status atual do seu uso na região onde suas credenciais apontam no arquivo /.aws/credentials ou na função atual que está sendo assumida. Você também pode especificar a flag --region ao executar o comando discover-metadata se quiser mudar para outra região além da atualmente configurada. Depois de ter uma boa ideia de qual versão suas instâncias estão executando e se o serviço está ativado ou desativado, você poderá criar um plano de ação muito mais definido para endurecer o serviço. Observe que você pode encontrar o significado específico de cada opção de metadados definida aqui.
Passo 2
Uma das áreas que deve ser avaliada ao fazer a transição para a v2 do serviço é o uso de funções IAM. O Metabadger permite identificar instâncias em uma região que já podem estar usando uma função IAM. O comando discover-role-usage produzirá uma lista de instâncias que possuem funções anexadas a elas. Se você tiver muitas instâncias usando funções, tome cuidado ao atualizar o serviço para v2 para garantir que a funcionalidade geral de suas cargas de trabalho não seja impactada.
Passo 3
Após concluir sua descoberta e avaliação iniciais, você pode agora criar uma abordagem escalonada para endurecer sua infraestrutura de computação para usar a v2 do serviço de metadados ou desativá-lo onde não for utilizado. O comando harden-metadata permite atualizar todas as instâncias em uma região específica por padrão. Você também pode passar tags de instância usando a flag --tags ou um arquivo de entrada contendo um CSV de instâncias para as quais deseja aplicar uma configuração. Depois de fazer as atualizações apropriadas para a v2 e desativar o serviço onde não é usado, você pode reavaliar usando os itens do Passo 1 para confirmar que seu ambiente está bloqueado. Se você tiver certas instâncias que não deseja atualizar, pode excluí-las via a flag --exclusion por tag ou ID de instância.
O Metabadger requer uma função IAM ou credenciais com as seguintes permissões:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Ao fazer alterações no Instance Metadata Service, você deve ter cuidado e seguir orientações adicionais da AWS sobre como atualizar com segurança para a versão 2. O Metabadger foi projetado para auxiliá-lo neste processo para proteger ainda mais sua infraestrutura de computação na AWS.
Guia de Melhores Práticas da AWS sobre Atualização para IMDSv2
Instalar via pip
pip3 install --user metabadger
Instalar via Github
$ git clone https://github.com/salesforce/metabadger
$ cd metabadger
$ pip install -e .
$ metabadger
Usage: metabadger [OPTIONS] COMMAND [ARGS]...
Metabadger is an AWS Security Tool used for discovering and hardening the
Instance Metadata service.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
cloudwatch-metrics Pull CloudWatch Metrics for MetadataNoToken usage
disable-metadata Disable the IMDS service on EC2 instances
discover-metadata Discover summary of IMDS service usage within EC2
discover-role-usage Discover summary of IAM role usage for EC2
harden-metadata Harden the AWS instance metadata service from v1 to v2
cloudwatch-metrics