Pesquisadores de cibersegurança divulgaram uma falha de segurança que afeta o Amazon Web Services (AWS) Cloud Development Kit (CDK), que poderia resultar na tomada de controle de uma conta em circunstâncias específicas.
"O impacto dessa falha, em certos cenários, poderia permitir a um atacante obter acesso administrativo a uma conta AWS alvo, resultando em uma tomada completa da conta", relataram os pesquisadores da Aqua, Ofek Itach e Yakir Kadkoda, em um relatório compartilhado.
Após a divulgação responsável em 27 de junho de 2024, o problema foi solucionado pelos mantenedores do projeto na versão 2.149.0 do CDK lançada em julho.
O AWS CDK é um framework de desenvolvimento de software de código aberto para definir recursos de aplicativos na nuvem usando Python, TypeScript ou JavaScript e provisioná-los via CloudFormation.
O problema identificado pela Aqua se baseia em descobertas anteriores da firma de segurança em nuvem sobre recursos ocultos no AWS, e como convenções de nomenclatura predefinidas para os buckets do AWS Simple Storage Service (S3) podem ser usadas para orquestrar ataques de Monopólio de Bucket e ganhar acesso a dados sensíveis.
Preparar um ambiente AWS para uso com o AWS Cloud Development Kit (AWS CDK) é alcançado por um processo chamado bootstrapping, onde certos recursos AWS são provisionados no ambiente.
Isso inclui um bucket AWS S3, um repositório Amazon Elastic Container Registry (Amazon ECR) e papéis do AWS Identity and Access Management (IAM).
"Recursos e suas configurações que são usados pelo CDK são definidos em um template do AWS CloudFormation", segundo a documentação da AWS.
Para fazer o bootstrap de um ambiente, você usa o comando cdk bootstrap da AWS CDK Command Line Interface (AWS CDK CLI).
A CLI do CDK recupera o template e o implanta no AWS CloudFormation como um stack, conhecido como o stack de bootstrap.
Por padrão, o nome do stack é CDKToolkit. Alguns dos papéis IAM criados como parte do processo de bootstrapping concedem permissão para fazer upload e deletar ativos do bucket S3 associado, bem como realizar implantações de stack com acesso administrativo.
A Aqua disse que o padrão de nomenclatura dos papéis IAM criados pelo AWS CDK segue a estrutura "cdk-{Qualifier}-{Description}-{Account-ID}-{Region}", onde cada um dos campos é explicado a seguir:
Qualifier, um valor de string único de nove caracteres que por padrão é "hnb659fds", embora possa ser personalizado durante a fase de bootstrap Description, descrição do recurso (por exemplo, cfn-exec-role) Account-ID, ID da conta AWS do ambiente Region, região AWS do ambiente Da mesma forma, o bucket S3 criado durante o bootstrap segue o padrão de nomenclatura "cdk-{Qualifier}-assets-{Account-ID}-{Region}."
"Como muitos usuários executam o comando cdk bootstrap sem personalizar o qualificador, o padrão de nomenclatura do bucket S3 do bucket de staging se torna previsível", disse a Aqua.
Isso porque o valor padrão para o qualificador do nome do bucket é definido como 'hnb659fds', tornando mais fácil antecipar o nome do bucket. Com milhares de instâncias descobertas no GitHub onde o qualificador padrão é usado, isso também significa que adivinhar o nome do bucket é tão simples quanto encontrar o AWS Account ID e a região para a qual o CDK é implantado.
Combinando este aspecto com o fato de que os nomes dos buckets S3 são globalmente únicos em todas as contas AWS, a brecha abre a porta para o que é chamado de S3 Bucket Namesquatting (ou Bucket Sniping), permitindo a um atacante reivindicar o bucket CDK de outro usuário caso ainda não exista.
Isso poderia então pavimentar o caminho para um DoS parcial quando um usuário tenta fazer o bootstrap do CDK com o mesmo ID de conta e região, um cenário que poderia ser resolvido especificando um qualificador personalizado durante o bootstrap.
Uma consequência mais séria poderia ocorrer se o CDK da vítima tivesse permissão para ler e escrever dados do e para o bucket S3 controlado pelo atacante, tornando possível alterar templates do CloudFormation e executar ações maliciosas dentro da conta AWS da vítima.
"O papel de implantação do serviço CloudFormation, que é o papel CloudFormationExecutionRole no CDK, tem privilégios administrativos dentro da conta por padrão," a Aqua apontou.
Isso significa que qualquer template CloudFormation escrito no bucket S3 do atacante pelo CDK da vítima seria implantado posteriormente com privilégios administrativos na conta da vítima.
Isso permitiria ao atacante criar recursos privilegiados. Em um ataque hipotético, caso um usuário tenha iniciado o processo de bootstrap do CDK no passado e posteriormente deletado o bucket S3 devido a limites de cota, um adversário poderia aproveitar a situação para criar um bucket com o mesmo nome.
Isso poderia então fazer com que o CDK confiasse implicitamente no bucket malicioso e lesse/escrevesse templates do CloudFormation nele, tornando-os suscetíveis à exploração.
No entanto, para que isso tenha sucesso, espera-se que o atacante cumpra os seguintes pré-requisitos:
- Reivindicar o bucket com o nome previsível e permitir acesso público Criar uma função Lambda que injete um papel de admin malicioso ou backdoor em um arquivo de template do CloudFormation sempre que for feito upload para o bucket Na etapa final, quando o usuário implanta o CDK usando "cdk deploy," não apenas o processo envia o template ao bucket réplica, mas também injeta um papel de admin que o atacante pode assumir para finalmente ganhar controle da conta da vítima.
Dito de outra forma, a cadeia de ataque facilita a criação de um papel de admin em uma conta AWS alvo quando um bucket S3 do CDK configurado durante o processo de bootstrap é deletado e o CDK é usado novamente.
A AWS desde então confirmou que aproximadamente 1% dos usuários do CDK eram vulneráveis ao vetor de ataque.
A correção implementada pela AWS garante que os ativos sejam carregados apenas em buckets dentro da conta do usuário, de modo a prevenir que o CDK envie dados para buckets não pertencentes à conta que iniciou o bootstrap.
Também instou os clientes a usar um qualificador personalizado em vez do "hnb659fds" padrão.
Dito isso, é necessária uma ação do usuário se o bootstrap foi realizado usando a versão CDK v2.148.1 ou anterior, necessitando que atualizem o CDK para a versão mais recente e reexecutem o comando de bootstrap.
Alternativamente, os usuários têm a opção de aplicar uma condição de política IAM ao papel FilePublishingRole do CDK.
Em uma declaração compartilhada com o The Hacker News, a AWS disse que investigou e abordou todas as preocupações relacionadas à exposição não autorizada de dados ao realizar implantações do CDK.
"Em 12 de julho de 2024, a AWS lançou uma atualização para o AWS Cloud Development Kit (AWS CDK) CLI que implementou controles de segurança adicionais para mitigar o potencial de divulgação de dados para clientes que realizam implantações do CDK", disse um porta-voz da AWS à publicação.
Os clientes usando a versão mais recente precisarão realizar uma ação única para atualizar seus recursos de bootstrap.
A AWS entrou em contato diretamente com os clientes potencialmente afetados para notificá-los da necessidade de atualizar e adicionou verificações adicionais ao CLI para lembrar os usuários de atualizar. Os achados chamam atenção, mais uma vez, para a necessidade de manter os IDs de contas AWS em segredo, definir uma política IAM delimitada e evitar dar nomes previsíveis aos buckets S3.
"Em vez disso, gere hashes únicos ou identificadores aleatórios por região e conta e incorpore-os aos nomes dos seus buckets S3", concluiu a Aqua.
Essa estratégia ajuda a proteger contra atacantes que reivindicam antecipadamente seu bucket. A divulgação ocorre enquanto a Symantec, de propriedade da Broadcom, encontrou vários aplicativos para Android e iOS que codificaram e não criptografaram credenciais de serviços na nuvem para AWS e Microsoft Azure Blob Storage, colocando dados de usuários em risco.
Alguns dos aplicativos ofensivos incluem Pic Stitch: Collage Maker, Crumbl, Eureka: Earn Money for Surveys, Videoshop - Video Editor, Meru Cabs, Sulekha Business e ReSound Tinnitus Relief.
"Essa prática perigosa significa que qualquer pessoa com acesso ao binário ou código-fonte do aplicativo poderia potencialmente extrair essas credenciais e usá-las indevidamente para manipular ou exfiltrar dados, levando a violações de segurança graves", disseram os pesquisadores de segurança Yuanjing Guo e Tommy Dong.
Publicidade
Tenha acesso aos melhores hackers éticos do mercado através de um serviço personalizado, especializado e adaptado para o seu negócio. Qualidade, confiança e especialidade em segurança ofensiva de quem já protegeu centenas de empresas. Saiba mais...