Tendências do dia

Garoto de 16 anos invade serviço interno da Microsoft com IA e usuário “admin”, ganhando acesso a 17,3 trilhões de linhas de dados 

Dez dias de testes, uma IA e um palpite: a chave foi testar "admin" onde nenhuma máquina havia tentado

Windows
Sem comentários Facebook Twitter Flipboard E-mail
victor-bianchin

Victor Bianchin

Redator
victor-bianchin

Victor Bianchin

Redator

Victor Bianchin é jornalista.

2455 publicaciones de Victor Bianchin

Sempre que você faz login em um serviço ou aplicativo, o que passa de um lado para o outro é um token que detalha quem somos e o que podemos fazer. Sua confiabilidade não está tanto no que ele diz, mas em sua assinatura digital, que garante que ele foi emitido por quem deveria e que ninguém o modificou. Há anos se sabe que esse procedimento pode ser significativamente aprimorado, mas, ainda assim, falhas podem acontecer — e uma delas acaba de expor a Microsoft.

Faav é um pesquisador de segurança e também um garoto de 16 anos. Utilizando um token manipulado e o usuário “admin” (um velho conhecido das configurações padrão), o jovem conseguiu executar consultas SQL como administrador do Titan, o serviço interno de análise da Microsoft.

Assim, ele teve acesso a metadados da plataforma, mais especificamente a cerca de 25 mil contas, 17.990 e-mails de funcionários e 24.569 dashboards. Além disso, constatou que o serviço se conectava a 17 bancos de dados de análise que, segundo sua estimativa, somam cerca de 17,3 trilhões de linhas. Ele informou o problema ao Microsoft Security Response Center naquele mesmo dia, 5 de setembro. A empresa encerrou o acesso no dia 9 e lhe pagou US$ 5 mil no dia 17, como relata em seu blog.

Como ele fez

Em 25 de agosto, Faav e sua ferramenta de IA chamada Antares conseguiram encontrar a API do Titan. Ao que parece, o site do serviço só era acessível pela equipe, mas a API estava exposta em um host do Azure. Durante dez dias, Antares testou variações de um token até constatar que o servidor aceitava tokens sem assinatura. O que ele não conseguiu foi encontrar um usuário que o Titan reconhecesse.

Então, ocorreu a ele tentar um velho clássico: alterou o campo de usuário para "admin". Bingo: o Titan o tratou como um nome de usuário local com função de administrador, e a consulta foi executada.

O interessante é que não foi preciso um ataque sofisticado. O Titan verificava o conteúdo do token (tenant, audiência, aplicativo e usuário), mas nunca sua assinatura, o que tornava todo o resto irrelevante. Curiosamente, a documentação do Azure Application Gateway explica que é necessário validar a assinatura, o emissor, o destinatário e a validade do token. Em casa de ferreiro, espeto de pau.

Além disso, o caso é um bom exemplo de caça a vulnerabilidades auxiliada por IA, na qual a máquina não é o cérebro, mas uma aliada do discernimento humano. Segundo Faav, Antares contribuiu com a persistência durante dez dias, mas a ideia de testar “admin” foi dele.

Um método que não é novo

Já vimos que, além da persistência, o que foi necessário foi tentar um clássico, mas esse tipo de acesso é documentado desde 2015, quando o pesquisador Tim McLean mostrou que várias bibliotecas consideravam válidos os tokens declarados sem algoritmo. Cinco anos depois, o Grupo de Trabalho de Engenharia da Internet (IETF) publicou boas práticas de segurança para o padrão JSON Web Token.

Faav esclarece que o impacto desse ataque ficou no campo das hipóteses porque ele não acessou dados de clientes e se limitou a metadados e a duas amostras de uma linha de dados do Bing. As 17,3 trilhões de linhas são uma estimativa baseada em metadados que provavelmente inclui dados históricos, duplicados e derivados. A Microsoft revisou o texto antes de sua publicação e cortou seções e números, mas todos os detalhes técnicos são provenientes do próprio pesquisador.

A lição aprendida também não é nova, mas vale a pena lembrá-la porque continua acontecendo: é preciso sempre verificar a assinatura dos tokens, definir no servidor qual algoritmo é aceito independentemente do que o token declare e não considerar uma API segura apenas porque seu site está oculto.

Imagem | Ed Hardie (Unsplash)

Este texto foi traduzido/adaptado do site Xataka Espanha.


Inicio