Aviso: As técnicas descritas neste artigo são para fins educacionais e de segurança defensiva. Toda exploração deve ser realizada exclusivamente em ambientes de laboratório ou em testes autorizados por contrato.
O que é SSRF e por que cloud muda tudo
Server-Side Request Forgery (SSRF) é uma vulnerabilidade na qual um atacante consegue fazer com que o servidor da aplicação realize requisicoes HTTP para alvos arbitrários. Em ambientes tradicionais, o impacto ficava limitado ao acesso a servicos internos como bancos de dados, painéis administrativos e APIs de infraestrutura.
Em ambientes de cloud como AWS, Azure e GCP, esse cenário muda radicalmente. Todos esses provedores disponibilizam um servico de metadados de instância acessível via um endereço IP especial (169.254.169.254), que expõe informacoes da instância incluindo, em muitos casos, credenciais IAM temporárias com escopo amplo.
O caso mais famoso de SSRF em cloud foi o incidente da Capital One em 2019, onde um atacante explorou uma configuracão incorreta do AWS WAF combinada com SSRF para acessar credenciais IAM e exfiltrar dados de mais de 100 milhões de clientes.
O Instance Metadata Service (IMDS) da AWS
O AWS Instance Metadata Service (IMDS) é acessível em http://169.254.169.254/latest/meta-data/ a partir de qualquer instância EC2. Ele fornece informacoes como o ID da instância, tipo de instância, região, tags e, crucialmente, credenciais IAM temporárias associadas a roles atribuídas à instância.
# Acesso direto ao IMDS via SSRF
http://169.254.169.254/latest/meta-data/
http://169.254.169.254/latest/meta-data/iam/security-credentials/
http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLE_NAME
O endpoint de credenciais retorna um objeto JSON com AccessKeyId, SecretAccessKey e Token. Com essas credenciais, um atacante pode interagir com a AWS API com os mesmos privilégios da role da instância.
Vetores comuns de SSRF em aplicações web
1. Funcionalidades de fetch de URL
Qualquer funcionalidade que aceite uma URL como input é candidata: preview de links, importacão de imagens via URL, webhooks, integracoes com servicos externos. O atacante substitui a URL legítima pelo endereço do IMDS.
2. Parâmetros de redirecionamento
Endpoints que realizam redirecionamentos HTTP baseados em input do usuario podem ser explorados se o servidor seguir redirecionamentos para IPs internos.
3. Processamento de arquivos XML com DTD externo
XXE (XML External Entity) é uma forma de SSRF que pode ser explorada em processadores XML vulneráveis, incluindo parsers que processam uploads de arquivos XML ou SVG.
IMDSv2: a mitigacão da AWS e suas limitacoes
A AWS lancou o IMDSv2 (Instance Metadata Service v2) como mitigacão direta contra SSRF. O IMDSv2 requer uma requisicao PUT para obter um token de sessao antes de acessar qualquer endpoint de metadados, quebrando ataques SSRF simples que usam apenas GET.
# IMDSv2: obter token (requer PUT)
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
# Usar token nas requisicoes subsequentes
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/
Importante: IMDSv2 não é habilitado por padrão em instâncias mais antigas. Muitas organizacoes ainda operam instâncias com IMDSv1 habilitado. A configuracão http-tokens: required deve ser aplicada via Instance Metadata Options para forcar exclusivamente IMDSv2.
Mitigacoes na aplicação
| Controle | Implementacão | Efetividade |
|---|---|---|
| Allowlist de domínios | Validar que a URL pertence a domínios permitidos antes de fazer a requisicão | Alta |
| Bloqueio de IPs privados | Bloquear requisicoes para 169.254.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Alta |
| Resolucão de DNS antes do bloqueio | Resolver o hostname e verificar o IP antes de fazer a requisicão (evita DNS rebinding) | Média |
| IMDSv2 obrigatorio | Configurar http-tokens: required em todas as instâncias EC2 | Alta |
| Principio do menor privilégio para roles IAM | Limitar permissions das instance roles ao mínimo necessário | Alta (limita impacto) |
Sua infraestrutura cloud está exposta a SSRF?
O pentest cloud da First Security cobre SSRF, IMDS exploitation, misconfigurações IAM e todos os principais vetores de ataque em AWS, Azure e GCP.
Ver pentest cloud Solicitar orçamento