Esse exemplo é bem tosco, criado por um amigo, o Julio Carvalho, que também me indicou alguns dos links que usei nesse post. Tudo isso para ilustrar o significado de um ataque de...
Subdomain Takeover
Em português, seria algo como "sequestro de subdomínios".
Esse é um ataque que acontece com frequência, aonde uma empresa cria um subdomínio apontando para algum serviço online, mas esse serviço não está ativo ou o serviço existente foi desativado. Esse subdomínio, portanto, aponta para lugar nenhum. O atacante, então, vai nesse serviço e cria uma entrada com o nome da empresa, conseguindo que o subdomínio válido aponte para um serviço malicioso. Tais casos frequentemente acontecem com serviços em nuvem oferecidos por terceiros, como o GitHub e com os serviços de bucket S3 da AWS. Nesses dois casos, por exemplo, o atacante descobre que o domínio está errado e cria um repositório com conteúdo malicioso no GitHub ou na AWS – mesmo que usando uma conta própria nesses serviços.
Com esse tipo de ataque, um ciber criminoso pode criar uma página de phishing, um site falso ou um repositório em nome da empresa, mas que esteja hospedando um conteúdo malicioso – só para citar 3 exemplos de consequências indesejáveis para as empresas.
De fato, com a popularização dos serviços de computação em nuvem e repositórios de dados em nuvem, esse ataque ganhou força. É o caso da Amazon Simple Storage Service (Amazon S3), o serviço de armazenamento de dados da Amazon.
No caso da AWS, o ataque de subdomein takover explora a forma que a AWS trabalha com a nomenclatura dos buckets S3. É possível criar uma URL virtual para identificar e dar acesso ao seu bucket, utilizando o formato https://bucketname.s3.Region.amazonaws.com (por exemplo, "ttps://suaempresa.s3.us-west-2.amazonaws.com"), que é equivalente a URL https:// s3.Region.amazonaws.com/bucketname.
Nesse caso, um atacante pode descobrir que sua empresa tinha uma URL cadastrada no DNS, via CNAME, apontando para um bucket desativado. Assim, ele pode “sequestrar” o seu bucket na AWS criando outro bucket com o nome (bucketname) equivalente ao previamente cadastrado pela sua empresa (por exemplo, “suaempresa”) dentro da “amazonaws.com”. Quem cair numa página que tenha esse link ou quem acessar diretamente o link (por exemplo, "ttps://suaempresa.s3.us-west-2.amazonaws.com" oi "https:// s3.us-west-2.amazonaws.com/suaempresa") vai cair numa URL com o nome da sua empresa, mas o conteúdo será malicioso.
O segredo para prevenir esse ataque é, principalmente, ter uma gestão muito cuidadosa dos seus registros DNS, aqueles que apontam o nome (URL) de um site ou serviço para o serviço em si. E também o monitoramento frequente dos seus ativos na nuvem e dos seus registros no DNA, para garantir que os seus domínios continuam válidos. Normalmente esse cadastro de subdomínios é feito pelos campos CNAME do DNS.
Para saber mais:
- Esses artigos explicam esse ataque: #dicadoJulio
- What Are Subdomain Takeovers, How to Test and Avoid Them? - Ele tem até um exemplo de como identificar um subdomínio problemático em vários serviços online (AWS, Bitbucket, GitHub, Gitlab, Heroku, Wordpress, etc);
- How To Avoid Hostile Subdomains Takeovers
- How an unclaimed AWS S3 bucket escalates to subdomain takeover
- Documentação da AWS: