Sumário Executivo
Uma falha de segurança descoberta no AWS Cloud Development Kit (CDK), uma ferramenta de código aberto da Amazon Web Services (AWS), foi identificada por pesquisadores da AquaSec em junho de 2024. Essa vulnerabilidade permite que invasores, em certos cenários, assumam controle de contas de usuários, expondo-as a riscos de segurança significativos. Estima-se que cerca de 1% dos usuários do CDK foram afetados, tornando o incidente de alto impacto para administradores de nuvem e equipes de segurança.
Infraestrutura como Código (IaC) e o AWS CDK
O AWS CDK utiliza linguagens de programação comuns (Python, JavaScript, TypeScript) para definir e implantar infraestrutura na AWS, substituindo a configuração manual por uma abordagem de Infraestrutura como Código (IaC). No entanto, o processo de inicialização (bootstrap) do CDK configura automaticamente permissões administrativas, criando um ambiente vulnerável a ataques, especialmente devido ao uso de padrões previsíveis nos buckets S3.
A Falha e o Vetor de Ataque
A vulnerabilidade ocorre quando o CDK utiliza o comando cdk bootstrap para inicializar o ambiente, criando buckets S3 com nomes padronizados (por exemplo, cdk-{qualifier}-assets-{account-ID}-{Region}). Esse padrão permite que invasores prevejam o nome do bucket e utilizem técnicas como o S3 Bucket Namesquatting, reivindicando o bucket antes que o usuário finalize o processo. Se o usuário tenta inicializar o CDK posteriormente, o bucket, agora sob controle do invasor, pode receber e armazenar arquivos de configuração, permitindo a inserção de backdoors.
Uma vez que um bucket controlado pelo invasor recebe arquivos de configuração, o atacante pode adulterá-los, incluindo uma função administrativa maliciosa que será interpretada pelo AWS CloudFormation, concedendo ao invasor acesso à conta.
Consequências e Impacto
O acesso administrativo à conta AWS de um usuário permite que o invasor controle recursos críticos, expondo dados sensíveis e comprometendo a infraestrutura de nuvem. Esse cenário é exacerbado pela função CloudFormationExecutionRole, que por padrão possui permissões administrativas, permitindo a criação de novos recursos privilegiados na conta afetada.
Recomendações para Mitigação
A AWS sugere as seguintes práticas de segurança:
Trate o ID da Conta como Informação Confidencial: Mantenha seu ID de conta seguro e restrinja o compartilhamento ao mínimo necessário.
Use Políticas IAM com Restrições de Condições: Aplique políticas IAM específicas para restringir o acesso a buckets S3 somente a recursos confiáveis, utilizando condições como aws:ResourceAccount.
Evite Nomes Previsíveis para Buckets S3: Em vez de padrões previsíveis, utilize identificadores únicos e regionais que dificultem a predição e reivindicação de buckets por invasores.
Conclusão
A falha no AWS CDK ressalta a importância da configuração cuidadosa e personalizada de ambientes de nuvem. Práticas inadequadas, como o uso de padrões de nomes previsíveis e a exclusão manual de recursos essenciais, podem criar brechas de segurança. A adoção das práticas recomendadas pela AWS é fundamental para reduzir os riscos e garantir a segurança da infraestrutura de nuvem.
Referências https://www.aquasec.com/blog/aws-cdk-risk-exploiting-a-missing-s3-bucket-allowed-account-takeover/
Comments