Vulnerabilidade de curinga na conta da execution role do AWS MWAA
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
A Vulnerabilidade
A execution role do MWAA (o IAM role que os workers do Airflow usam para acessar recursos da AWS) requer esta política obrigatória para funcionar:
{
"Effect": "Allow",
"Action": [
"sqs:ChangeMessageVisibility",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"sqs:GetQueueUrl",
"sqs:ReceiveMessage",
"sqs:SendMessage"
],
"Resource": "arn:aws:sqs:us-east-1:*:airflow-celery-*"
}
O curinga (*) na posição do account ID permite que a role interaja com qualquer SQS queue em qualquer AWS account que comece com airflow-celery-. Isso é necessário porque a AWS provisiona as filas internas do MWAA em uma conta separada gerenciada pela AWS. Não há restrição para criar filas com o prefixo airflow-celery-.
Não pode ser corrigido: Remover o curinga antes da pré-implantação quebra completamente o MWAA — o scheduler não consegue enfileirar tarefas para os workers.
Documentação verificando a vulnerabilidade e reconhecendo o vetor: AWS Documentation
Exploração
Todos os Airflow DAGs rodam com as permissões da execution role. DAGs são scripts Python que podem executar código arbitrário - eles podem usar yum ou curl para instalar ferramentas, baixar scripts maliciosos ou importar qualquer biblioteca Python. Os DAGs são obtidos de uma pasta S3 atribuída e executados automaticamente segundo o agendamento; tudo que um atacante precisa é da capacidade de fazer um PUT naquele caminho do bucket.
Qualquer pessoa que possa escrever DAGs (tipicamente a maioria dos usuários em ambientes MWAA) pode abusar dessa permissão:
-
Data Exfiltration: Criar uma queue chamada
airflow-celery-exfilem uma conta externa, escrever um DAG que envie dados sensíveis para ela viaboto3 -
Command & Control: Consultar comandos de uma queue externa, executá-los, retornar resultados — criando um backdoor persistente através das SQS APIs
-
Cross-Account Attacks: Injetar mensagens maliciosas nas queues de outras organizações se elas seguirem o padrão de nomes
Todos os ataques contornam controles de rede, pois usam APIs da AWS, não conexões diretas com a internet.
Impacto
Isto é uma falha arquitetural no MWAA sem mitigação baseada em IAM. Toda implantação de MWAA que siga a documentação da AWS tem essa vulnerabilidade.
Evasão de Controles de Rede: Esses ataques funcionam mesmo em VPCs privadas sem acesso à internet. As chamadas da API SQS usam a rede interna da AWS e os VPC endpoints, contornando completamente os controles tradicionais de segurança de rede, firewalls e o monitoramento de egress. As organizações não conseguem detectar ou bloquear esse caminho de exfiltração de dados por meio de controles em nível de rede.
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud