À medida que empresas ao redor do mundo têm migrado sua infraestrutura digital ao longo da última década de servidores auto-hospedados para a nuvem, elas têm se beneficiado das funcionalidades de segurança padronizadas e integradas dos principais provedores de nuvem como a Microsoft. No entanto, com tanto em jogo nesses sistemas, pode haver potencialmente consequências desastrosas em uma escala massiva se algo der errado. Como exemplo, o pesquisador de segurança Dirk-jan Mollema recentemente se deparou com um par de vulnerabilidades na plataforma de gerenciamento de identidade e acesso da Microsoft Azure que poderiam ser exploradas para uma tomada de controle potencialmente catastrófica de todas as contas de clientes Azure.
Conhecido como Entra ID, o sistema armazena as identidades de usuários de cada cliente de nuvem Azure, controles de acesso de login, aplicativos e ferramentas de gerenciamento de assinatura. Mollema estudou a segurança do Entra ID em profundidade e publicou diversos estudos sobre as vulnerabilidades no sistema, que anteriormente era conhecido como Azure Active Directory. Porém, enquanto se preparava para a apresentação na conferência de segurança Black Hat em Las Vegas em julho, Mollema descobriu duas vulnerabilidades que percebeu que poderiam ser usadas para obter privilégios de administrador global – essencialmente o modo “deus” – e comprometer todos os diretórios Entra ID, ou o que é conhecido como “tenant”. Mollema afirma que isso teria exposto praticamente todos os tenants Entra ID no mundo, com exceção talvez da infraestrutura de nuvem governamental.
“Dê uma olhada na minha tela. Eu pensei, ‘Não, isso não deveria realmente acontecer'”, diz Mollema, que administra a empresa holandesa de segurança cibernética Outsider Security e é especializado em segurança na nuvem. “Foi bastante ruim. Tão ruim quanto pode ficar, eu diria.”
“De meus próprios tenants – meu tenant de teste ou mesmo um tenant de avaliação – você poderia solicitar esses tokens e você poderia essencialmente se passar por qualquer outra pessoa em qualquer tenant”, Mollema acrescenta. “Isso significa que você poderia modificar a configuração de outras pessoas, criar novos usuários administradores nesse tenant e fazer o que quisesse.”
Dada a gravidade da vulnerabilidade, Mollema compartilhou suas descobertas com o Centro de Resposta de Segurança da Microsoft em 14 de julho, no mesmo dia em que descobriu as falhas. A Microsoft começou a investigar as descobertas naquele dia e emitiu uma correção global em 17 de julho. A empresa confirmou a Mollema que o problema foi corrigido até 23 de julho e implementou medidas extras em agosto. A Microsoft emitiu um CVE para a vulnerabilidade em 4 de setembro.
“Mitigamos o problema recém-identificado rapidamente e aceleramos o trabalho de remediação em andamento para descomissionar o uso desse protocolo obsoleto, como parte de nossa Iniciativa de Futuro Seguro”, disse Tom Gallagher, vice-presidente de engenharia do Centro de Resposta de Segurança da Microsoft, à Wired em um comunicado. “Implementamos uma alteração de código na lógica de validação vulnerável, testamos a correção e a aplicamos em todo o nosso ecossistema de nuvem.”
Gallagher afirma que a Microsoft não encontrou “nenhuma evidência de abuso” da vulnerabilidade durante sua investigação.
Ambas as vulnerabilidades estão relacionadas a sistemas legados ainda em funcionamento dentro do Entra ID. A primeira envolve um tipo de token de autenticação do Azure descoberto por Mollema, conhecido como Actor Tokens, emitidos por um mecanismo obscuro do Azure chamado “Access Control Service”. Os Actor Tokens possuem algumas propriedades especiais do sistema que Mollema percebeu que poderiam ser úteis a um atacante quando combinados com outra vulnerabilidade. O outro bug foi uma grande falha em uma interface de programação de aplicativos histórica do Azure Active Directory conhecida como “Graph”, que era usada para facilitar o acesso aos dados armazenados no Microsoft 365. A Microsoft está em processo de aposentar o Azure Active Directory Graph e migrar usuários para seu sucessor, o Microsoft Graph, que é projetado para o Entra ID. A falha estava relacionada à incapacidade do Azure AD Graph de validar corretamente qual tenant do Azure estava fazendo uma solicitação de acesso, o que poderia ser manipulado para que a API aceitasse um Actor Token de um tenant diferente que deveria ter sido rejeitado.